Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dc1f9219 authored by JW Wang's avatar JW Wang
Browse files

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
parent 9c6da834
Loading
Loading
Loading
Loading
+5 −8
Original line number Diff line number Diff line
@@ -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);
                        }
                    }
                }
            }