Allow to check if an AB update is being installed

This commit is contained in:
Gabriele M
2017-07-16 21:23:44 +02:00
parent 601823dfc7
commit f94846674f
3 changed files with 20 additions and 6 deletions

View File

@@ -37,7 +37,7 @@ class ABUpdateInstaller {
private static final String TAG = "ABUpdateInstaller"; private static final String TAG = "ABUpdateInstaller";
private static boolean sIsInstallingUpdate; private static String sDownloadId;
private static final String PAYLOAD_BIN_PATH = "payload.bin"; private static final String PAYLOAD_BIN_PATH = "payload.bin";
private static final String PAYLOAD_PROPERTIES_PATH = "payload_properties.txt"; private static final String PAYLOAD_PROPERTIES_PATH = "payload_properties.txt";
@@ -70,7 +70,7 @@ class ABUpdateInstaller {
@Override @Override
public void onPayloadApplicationComplete(int errorCode) { public void onPayloadApplicationComplete(int errorCode) {
sIsInstallingUpdate = false; sDownloadId = null;
switch (errorCode) { switch (errorCode) {
case UpdateEngine.ErrorCodeConstants.SUCCESS: { case UpdateEngine.ErrorCodeConstants.SUCCESS: {
UpdateDownload update = mUpdaterController.getActualUpdate(mDownloadId); UpdateDownload update = mUpdaterController.getActualUpdate(mDownloadId);
@@ -93,16 +93,23 @@ class ABUpdateInstaller {
static synchronized boolean start(UpdaterController updaterController, static synchronized boolean start(UpdaterController updaterController,
String downloadId) { String downloadId) {
if (sIsInstallingUpdate) { if (sDownloadId != null) {
return false; return false;
} }
ABUpdateInstaller installer = new ABUpdateInstaller(updaterController, downloadId); ABUpdateInstaller installer = new ABUpdateInstaller(updaterController, downloadId);
sIsInstallingUpdate = installer.startUpdate(); if (installer.startUpdate()) {
return sIsInstallingUpdate; sDownloadId = downloadId;
return true;
}
return false;
} }
static synchronized boolean isInstallingUpdate() { static synchronized boolean isInstallingUpdate() {
return sIsInstallingUpdate; return sDownloadId != null;
}
static synchronized boolean isInstallingUpdate(String downloadId) {
return sDownloadId != null && sDownloadId.equals(downloadId);
} }
private ABUpdateInstaller(UpdaterController updaterController, String downloadId) { private ABUpdateInstaller(UpdaterController updaterController, String downloadId) {

View File

@@ -519,4 +519,9 @@ public class UpdaterController implements UpdaterControllerInt {
public boolean isInstallingUpdate() { public boolean isInstallingUpdate() {
return ABUpdateInstaller.isInstallingUpdate(); return ABUpdateInstaller.isInstallingUpdate();
} }
@Override
public boolean isInstallingUpdate(String downloadId) {
return ABUpdateInstaller.isInstallingUpdate(downloadId);
}
} }

View File

@@ -50,5 +50,7 @@ public interface UpdaterControllerInt {
boolean isVerifyingUpdate(); boolean isVerifyingUpdate();
boolean isInstallingUpdate(String downloadId);
boolean isInstallingUpdate(); boolean isInstallingUpdate();
} }