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

Commit 8aea1ad7 authored by shafik's avatar shafik Committed by Shafik Nassar
Browse files

Register Rollback user callbacks for added users

Rollback Manager gets notified when new user is added and then registers
broadcast receivers for that user. The broadcasts this user registers
for are the same as the ones the main user registers for on boot up.

Test: manual -
    1. Add new user to device.
    2. adb install RollbackTestAppAv1.apk
    3. adb install --user 10 --enable-rollback RollbackTestAppAv2.apk
    4. adb shell dumpsys rollback # observe available rollback
Test: atest RollbackTest
Test: atest StagedRollbackTest
Fixes: 133210559

Change-Id: If1666ebe46cb6e17818478b4b82a53369d7cedcc
parent 83518d94
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -231,6 +231,20 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub {
            }
        }, enableRollbackTimedOutFilter, null, getHandler());

        IntentFilter userAddedIntentFilter = new IntentFilter(Intent.ACTION_USER_ADDED);
        mContext.registerReceiver(new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                if (Intent.ACTION_USER_ADDED.equals(intent.getAction())) {
                    final int newUserId = intent.getIntExtra(Intent.EXTRA_USER_HANDLE, -1);
                    if (newUserId == -1) {
                        return;
                    }
                    registerUserCallbacks(UserHandle.of(newUserId));
                }
            }
        }, userAddedIntentFilter, null, getHandler());

        registerTimeChangeReceiver();
    }