bugfix
This commit is contained in:
parent
1c9fd7dd98
commit
e13675522c
@ -27,6 +27,16 @@ public class UpdateContext {
|
||||
}
|
||||
|
||||
this.sp = context.getSharedPreferences("update", Context.MODE_PRIVATE);
|
||||
|
||||
String packageVersion = getPackageVersion();
|
||||
if (!packageVersion.equals(this.sp.getString("packageVersion", null))) {
|
||||
SharedPreferences.Editor editor = sp.edit();
|
||||
editor.clear();
|
||||
editor.putString("packageVersion", packageVersion);
|
||||
editor.apply();
|
||||
|
||||
this.clearUp();
|
||||
}
|
||||
}
|
||||
|
||||
public String getRootDir() {
|
||||
@ -98,7 +108,7 @@ public class UpdateContext {
|
||||
editor.putString("lastVersion", hashName);
|
||||
}
|
||||
editor.putBoolean("firstTime", true);
|
||||
editor.putBoolean("shouldRollback", false);
|
||||
editor.putBoolean("firstTimeOk", false);
|
||||
editor.putBoolean("rolledBack", false);
|
||||
editor.apply();
|
||||
}
|
||||
@ -115,10 +125,17 @@ public class UpdateContext {
|
||||
return sp.getBoolean("rolledBack", false);
|
||||
}
|
||||
|
||||
public void clearFirstTimeMark() {
|
||||
public void markSuccess() {
|
||||
SharedPreferences.Editor editor = sp.edit();
|
||||
editor.putBoolean("firstTimeOk", true);
|
||||
editor.apply();
|
||||
|
||||
this.clearUp();
|
||||
}
|
||||
|
||||
public void clearFirstTime() {
|
||||
SharedPreferences.Editor editor = sp.edit();
|
||||
editor.putBoolean("firstTime", false);
|
||||
editor.putBoolean("shouldRollback", false);
|
||||
editor.apply();
|
||||
|
||||
this.clearUp();
|
||||
@ -145,33 +162,32 @@ public class UpdateContext {
|
||||
}
|
||||
|
||||
public String getBundleUrl(String defaultAssetsUrl) {
|
||||
// Test should rollback.
|
||||
if (sp.getBoolean("shouldRollback", false)) {
|
||||
this.rollBack();
|
||||
}
|
||||
String currentVersion = getCurrentVersion();
|
||||
if (currentVersion == null) {
|
||||
return defaultAssetsUrl;
|
||||
}
|
||||
if (sp.getBoolean("firstTime", false)) {
|
||||
SharedPreferences.Editor editor = sp.edit();
|
||||
editor.putBoolean("shouldRollback", true);
|
||||
editor.apply();
|
||||
// Test should rollback.
|
||||
if (!sp.getBoolean("firstTime", false)) {
|
||||
if (!sp.getBoolean("firstTimeOk", true)) {
|
||||
// Not firstTime, but not ok, so we roll back.
|
||||
currentVersion = this.rollBack();
|
||||
}
|
||||
}
|
||||
return (new File(rootDir, currentVersion+"/index.bundlejs").toString());
|
||||
}
|
||||
|
||||
private void rollBack() {
|
||||
private String rollBack() {
|
||||
String lastVersion = sp.getString("lastVersion", null);
|
||||
if (lastVersion == null) {
|
||||
throw new Error("This should never happen");
|
||||
}
|
||||
SharedPreferences.Editor editor = sp.edit();
|
||||
editor.putString("currentVersion", lastVersion);
|
||||
editor.putBoolean("shouldRollback", false);
|
||||
editor.putBoolean("firstTimeOk", true);
|
||||
editor.putBoolean("firstTime", false);
|
||||
editor.putBoolean("rolledBack", true);
|
||||
editor.apply();
|
||||
return lastVersion;
|
||||
}
|
||||
|
||||
private void clearUp() {
|
||||
|
@ -34,7 +34,11 @@ public class UpdateModule extends ReactContextBaseJavaModule{
|
||||
constants.put("downloadRootDir", updateContext.getRootDir());
|
||||
constants.put("packageVersion", updateContext.getPackageVersion());
|
||||
constants.put("currentVersion", updateContext.getCurrentVersion());
|
||||
constants.put("isFirstTime", updateContext.isFirstTime());
|
||||
boolean isFirstTime = updateContext.isFirstTime();
|
||||
constants.put("isFirstTime", isFirstTime);
|
||||
if (isFirstTime) {
|
||||
updateContext.clearFirstTime();
|
||||
}
|
||||
boolean isRolledBack = updateContext.isRolledBack();
|
||||
constants.put("isRolledBack", isRolledBack);
|
||||
if (isRolledBack) {
|
||||
@ -129,11 +133,11 @@ public class UpdateModule extends ReactContextBaseJavaModule{
|
||||
}
|
||||
|
||||
@ReactMethod
|
||||
public void clearFirstTimeMark() {
|
||||
public void markSuccess() {
|
||||
UiThreadUtil.runOnUiThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
updateContext.clearFirstTimeMark();
|
||||
updateContext.markSuccess();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -87,6 +87,6 @@ export async function switchVersionLater(hash) {
|
||||
HotUpdate.setNeedUpdate({hashName:hash});
|
||||
}
|
||||
|
||||
export function clearFirstTimeMark() {
|
||||
HotUpdate.clearFirstTimeMark();
|
||||
export function markSuccess() {
|
||||
HotUpdate.markSuccess();
|
||||
}
|
||||
|
@ -88,7 +88,7 @@ export const commands = {
|
||||
selectApp: async function({args, options}) {
|
||||
const {platform} = options;
|
||||
checkPlatform(platform);
|
||||
const id = args[0] || (await chooseApp()).id;
|
||||
const id = args[0] || (await chooseApp(platform)).id;
|
||||
|
||||
let updateInfo = {};
|
||||
if (await fs.exists('update.json')) {
|
||||
|
Loading…
Reference in New Issue
Block a user