Merge changes I7579d6c9,I329b1f1a,I46d08fe2
* changes: No need to call #updateRollbackLifetimeDurationInMillis (3/n) Register an OnPropertiesChangedListener in onBootCompleted (2/n) Squash runnables in onBootCompleted (1/n)
This commit is contained in:
@@ -43,6 +43,7 @@ import android.content.rollback.RollbackManager;
|
||||
import android.os.Binder;
|
||||
import android.os.Environment;
|
||||
import android.os.Handler;
|
||||
import android.os.HandlerExecutor;
|
||||
import android.os.HandlerThread;
|
||||
import android.os.Process;
|
||||
import android.os.SystemClock;
|
||||
@@ -78,6 +79,7 @@ import java.util.List;
|
||||
import java.util.Random;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.CountDownLatch;
|
||||
import java.util.concurrent.Executor;
|
||||
import java.util.concurrent.LinkedBlockingQueue;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
@@ -134,6 +136,7 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub {
|
||||
|
||||
private final Context mContext;
|
||||
private final HandlerThread mHandlerThread;
|
||||
private final Executor mExecutor;
|
||||
private final Installer mInstaller;
|
||||
private final RollbackPackageHealthObserver mPackageHealthObserver;
|
||||
private final AppDataRollbackHelper mAppDataRollbackHelper;
|
||||
@@ -173,6 +176,7 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub {
|
||||
mHandlerThread = new HandlerThread("RollbackManagerServiceHandler");
|
||||
mHandlerThread.start();
|
||||
Watchdog.getInstance().addThread(getHandler(), HANDLER_THREAD_TIMEOUT_DURATION_MILLIS);
|
||||
mExecutor = new HandlerExecutor(getHandler());
|
||||
|
||||
for (UserInfo userInfo : UserManager.get(mContext).getUsers(true)) {
|
||||
registerUserCallbacks(userInfo.getUserHandle());
|
||||
@@ -409,7 +413,6 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub {
|
||||
|
||||
CountDownLatch latch = new CountDownLatch(1);
|
||||
getHandler().post(() -> {
|
||||
updateRollbackLifetimeDurationInMillis();
|
||||
synchronized (mLock) {
|
||||
mRollbacks.clear();
|
||||
mRollbacks.addAll(mRollbackStore.loadRollbacks());
|
||||
@@ -520,11 +523,13 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub {
|
||||
|
||||
@AnyThread
|
||||
void onBootCompleted() {
|
||||
getHandler().post(() -> updateRollbackLifetimeDurationInMillis());
|
||||
// Also posts to handler thread
|
||||
scheduleExpiration(0);
|
||||
DeviceConfig.addOnPropertiesChangedListener(DeviceConfig.NAMESPACE_ROLLBACK_BOOT,
|
||||
mExecutor, properties -> updateRollbackLifetimeDurationInMillis());
|
||||
|
||||
getHandler().post(() -> {
|
||||
updateRollbackLifetimeDurationInMillis();
|
||||
runExpiration();
|
||||
|
||||
// Check to see if any rollback-enabled staged sessions or staged
|
||||
// rollback sessions been applied.
|
||||
List<Rollback> enabling = new ArrayList<>();
|
||||
|
||||
@@ -392,9 +392,6 @@ public class RollbackTest {
|
||||
RollbackManager.PROPERTY_ROLLBACK_LIFETIME_MILLIS,
|
||||
Long.toString(expirationTime), false /* makeDefault*/);
|
||||
|
||||
// Pull the new expiration time from DeviceConfig
|
||||
rm.reloadPersistedData();
|
||||
|
||||
// Uninstall TestApp.A
|
||||
Uninstall.packages(TestApp.A);
|
||||
assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(-1);
|
||||
@@ -457,9 +454,6 @@ public class RollbackTest {
|
||||
RollbackManager.PROPERTY_ROLLBACK_LIFETIME_MILLIS,
|
||||
Long.toString(expirationTime), false /* makeDefault*/);
|
||||
|
||||
// Pull the new expiration time from DeviceConfig
|
||||
rm.reloadPersistedData();
|
||||
|
||||
// Install app A with rollback enabled
|
||||
Uninstall.packages(TestApp.A);
|
||||
Install.single(TestApp.A1).commit();
|
||||
|
||||
Reference in New Issue
Block a user