Rewrite the broadcast receiver for ACTION_CANCEL_ENABLE_ROLLBACK (1/n)
It makes sense to remove a rollback when ACTION_CANCEL_ENABLE_ROLLBACK is received no matter it is a new rollback or not. For the sake of defensive programming, we don't want to remove a rollback which is already made available or committed. Bug: 149069841 Test: atest RollbackTest Change-Id: I3d8004916e9438bc03fcb0c71a83617411be7379
This commit is contained in:
@@ -235,17 +235,14 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub {
|
||||
Slog.v(TAG, "broadcast=ACTION_CANCEL_ENABLE_ROLLBACK token=" + token);
|
||||
}
|
||||
synchronized (mLock) {
|
||||
Rollback found = null;
|
||||
for (Rollback rollback : mRollbacks) {
|
||||
if (rollback.isNewRollback() && rollback.hasToken(token)) {
|
||||
found = rollback;
|
||||
for (int i = 0; i < mRollbacks.size(); ++i) {
|
||||
Rollback rollback = mRollbacks.get(i);
|
||||
if (rollback.hasToken(token) && rollback.isEnabling()) {
|
||||
mRollbacks.remove(i);
|
||||
rollback.delete(mAppDataRollbackHelper);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (found != null) {
|
||||
mRollbacks.remove(found);
|
||||
found.delete(mAppDataRollbackHelper);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user