[app] Check version code mismatch (#1386)
This commit is contained in:
parent
b5ba03318b
commit
872dcf4ba8
|
|
@ -34,8 +34,10 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
|||
import org.lsposed.manager.BuildConfig;
|
||||
import org.lsposed.manager.ConfigManager;
|
||||
import org.lsposed.manager.R;
|
||||
import org.lsposed.manager.ui.dialog.FlashDialogBuilder;
|
||||
import org.lsposed.manager.util.NavUtil;
|
||||
import org.lsposed.manager.util.ThemeUtil;
|
||||
import org.lsposed.manager.util.UpdateUtil;
|
||||
|
||||
import rikka.core.util.ResourceUtils;
|
||||
import rikka.material.app.MaterialActivity;
|
||||
|
|
@ -51,14 +53,17 @@ public class BaseActivity extends MaterialActivity {
|
|||
// make sure the versions are consistent
|
||||
if (BuildConfig.DEBUG) return;
|
||||
if (!ConfigManager.isBinderAlive()) return;
|
||||
var version = ConfigManager.getXposedVersionName();
|
||||
if (BuildConfig.VERSION_NAME.equals(version)) return;
|
||||
var version = ConfigManager.getXposedVersionCode();
|
||||
if (BuildConfig.VERSION_CODE == version) return;
|
||||
new MaterialAlertDialogBuilder(this)
|
||||
.setMessage(BuildConfig.VERSION_NAME.compareTo(version) > 0 ?
|
||||
R.string.outdated_core : R.string.outdated_manager)
|
||||
.setMessage(getString(R.string.version_mismatch, version, BuildConfig.VERSION_CODE))
|
||||
.setPositiveButton(android.R.string.ok, (dialog, id) -> {
|
||||
NavUtil.startURL(this, getString(R.string.about_source));
|
||||
finish();
|
||||
if (UpdateUtil.canInstall()) {
|
||||
new FlashDialogBuilder(this, (d, i) -> finish()).show();
|
||||
} else {
|
||||
NavUtil.startURL(this, getString(R.string.about_source));
|
||||
finish();
|
||||
}
|
||||
})
|
||||
.setCancelable(false)
|
||||
.show();
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package org.lsposed.manager.ui.dialog;
|
|||
import static org.lsposed.manager.App.TAG;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.graphics.Typeface;
|
||||
import android.os.ParcelFileDescriptor;
|
||||
import android.text.method.LinkMovementMethod;
|
||||
|
|
@ -33,7 +34,7 @@ public class FlashDialogBuilder extends BlurBehindDialogBuilder {
|
|||
private final TextView textView;
|
||||
private final BorderNestedScrollView rootView;
|
||||
|
||||
public FlashDialogBuilder(@NonNull Context context) {
|
||||
public FlashDialogBuilder(@NonNull Context context, DialogInterface.OnClickListener cancel) {
|
||||
super(context);
|
||||
var pref = App.getPreferences();
|
||||
var notes = pref.getString("release_notes", "");
|
||||
|
|
@ -51,7 +52,7 @@ public class FlashDialogBuilder extends BlurBehindDialogBuilder {
|
|||
rootView = binding.getRoot();
|
||||
setView(rootView);
|
||||
|
||||
setNegativeButton(android.R.string.cancel, null);
|
||||
setNegativeButton(android.R.string.cancel, cancel);
|
||||
setPositiveButton(R.string.install, null);
|
||||
setCancelable(false);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -87,7 +87,7 @@ public class HomeFragment extends BaseFragment implements RepoLoader.Listener {
|
|||
}
|
||||
} else {
|
||||
if (UpdateUtil.canInstall()) {
|
||||
new FlashDialogBuilder(activity).show();
|
||||
new FlashDialogBuilder(activity, null).show();
|
||||
return;
|
||||
}
|
||||
NavUtil.startURL(activity, getString(R.string.about_source));
|
||||
|
|
@ -95,7 +95,7 @@ public class HomeFragment extends BaseFragment implements RepoLoader.Listener {
|
|||
});
|
||||
binding.status.setOnLongClickListener(v -> {
|
||||
if (UpdateUtil.canInstall()) {
|
||||
new FlashDialogBuilder(activity).show();
|
||||
new FlashDialogBuilder(activity, null).show();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -73,7 +73,7 @@ public class UpdateUtil {
|
|||
.apply();
|
||||
var updatedAt = Instant.parse(assets.get("updated_at").getAsString());
|
||||
var downloadUrl = assets.get("browser_download_url").getAsString();
|
||||
var nowZipTime = pref.getLong("zip_time", BuildConfig.BUILD_TIME);
|
||||
var nowZipTime = pref.getLong("zip_time", 0);
|
||||
if (updatedAt.isAfter(Instant.ofEpochSecond(nowZipTime))) {
|
||||
var zip = downloadNewZipSync(downloadUrl, name);
|
||||
var size = assets.get("size").getAsLong();
|
||||
|
|
@ -124,8 +124,6 @@ public class UpdateUtil {
|
|||
if (!ConfigManager.isBinderAlive()) return false;
|
||||
var pref = App.getPreferences();
|
||||
var zip = pref.getString("zip_file", null);
|
||||
if (zip == null || !new File(zip).isFile()) return false;
|
||||
var zipTime = pref.getLong("zip_time", BuildConfig.BUILD_TIME);
|
||||
return zipTime > BuildConfig.BUILD_TIME;
|
||||
return zip != null && new File(zip).isFile();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -195,8 +195,7 @@
|
|||
<string name="module_release_no_more">没有更旧的版本</string>
|
||||
<string name="repo_load_failed">模块仓库加载失败:%s</string>
|
||||
<!-- CrashReportActivity -->
|
||||
<string name="outdated_core">LSPosed 应用的版本高于框架。请更新 LSPosed 框架。</string>
|
||||
<string name="outdated_manager">LSPosed 框架的版本高于应用。请从 /data/adb/lspd/manager.apk 更新 LSPosed 应用。</string>
|
||||
<string name="version_mismatch">LSPosed 框架的版本(%1$d)与管理器(%2$d)不同。请重装 LSPosed。</string>
|
||||
<string name="manager_crashed">应用出现未知错误</string>
|
||||
<string name="manager_crashed_info">反馈该问题到 </string>
|
||||
<string name="send_crash_info">发送崩溃信息</string>
|
||||
|
|
|
|||
|
|
@ -206,8 +206,7 @@
|
|||
<string name="repo_load_failed">Failed to load module repo: %s</string>
|
||||
|
||||
<!-- CrashReportActivity -->
|
||||
<string name="outdated_core">LSPosed app is newer than framework. Please update LSPosed framework.</string>
|
||||
<string name="outdated_manager">LSPosed framework is newer than app. Please update the app from /data/adb/lspd/manager.apk manually.</string>
|
||||
<string name="version_mismatch">The version of the LSPosed framework (%1$d) does not match manager (%2$d). Please reinstall LSPosed.</string>
|
||||
<string name="manager_crashed">Manager crashed</string>
|
||||
<string name="manager_crashed_info">report this to </string>
|
||||
<string name="send_crash_info">Send crash info</string>
|
||||
|
|
|
|||
Loading…
Reference in New Issue