Don't allow to install older builds
In some cases, installing an update older than the one currently installed requires a data wipe, so don't allow it. However, allow to verify old updates if not verified yet (e.g. when imported).
This commit is contained in:
@@ -116,20 +116,21 @@ public class UpdatesListAdapter extends RecyclerView.Adapter<UpdatesListAdapter.
|
||||
viewHolder.mButton2.setEnabled(false);
|
||||
} else {
|
||||
// Allow one active download
|
||||
boolean enabled = !mUpdaterController.hasActiveDownloads() &&
|
||||
Utils.canInstall(update) && !mUpdaterController.isVerifyingUpdate();
|
||||
boolean busy = mUpdaterController.hasActiveDownloads() ||
|
||||
mUpdaterController.isVerifyingUpdate();
|
||||
boolean enabled = !busy && Utils.canInstall(update);
|
||||
int persistentStatus = update.getPersistentStatus();
|
||||
if (persistentStatus == UpdateStatus.Persistent.INCOMPLETE) {
|
||||
if (update.getFile().length() == update.getFileSize()) {
|
||||
setButtonAction(viewHolder.mButton1, Action.VERIFY, downloadId, enabled);
|
||||
setButtonAction(viewHolder.mButton1, Action.VERIFY, downloadId, !busy);
|
||||
} else {
|
||||
setButtonAction(viewHolder.mButton1, Action.RESUME, downloadId,
|
||||
enabled && update.getAvailableOnline());
|
||||
}
|
||||
setButtonAction(viewHolder.mButton2, Action.CANCEL, downloadId, enabled);
|
||||
setButtonAction(viewHolder.mButton2, Action.CANCEL, downloadId, !busy);
|
||||
} else if (persistentStatus == UpdateStatus.Persistent.VERIFIED) {
|
||||
setButtonAction(viewHolder.mButton1, Action.INSTALL, downloadId, enabled);
|
||||
setButtonAction(viewHolder.mButton2, Action.CANCEL, downloadId, enabled);
|
||||
setButtonAction(viewHolder.mButton2, Action.CANCEL, downloadId, !busy);
|
||||
} else {
|
||||
setButtonAction(viewHolder.mButton1, Action.DOWNLOAD, downloadId, enabled);
|
||||
setButtonAction(viewHolder.mButton2, Action.CANCEL, downloadId, false);
|
||||
|
@@ -85,7 +85,9 @@ public class Utils {
|
||||
}
|
||||
|
||||
public static boolean canInstall(Update update) {
|
||||
return update.getVersion().equalsIgnoreCase(SystemProperties.get(Constants.PROP_BUILD_VERSION));
|
||||
return update.getTimestamp() > SystemProperties.getLong(Constants.PROP_BUILD_DATE, 0) &&
|
||||
update.getVersion().equalsIgnoreCase(
|
||||
SystemProperties.get(Constants.PROP_BUILD_VERSION));
|
||||
}
|
||||
|
||||
public static List<UpdateDownload> parseJson(File file, boolean compatibleOnly)
|
||||
|
Reference in New Issue
Block a user