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

Commit 39422271 authored by Michal Karpinski's avatar Michal Karpinski
Browse files

Remember the process that token was added for also for the

services that are already running

Previously we'd only save the process in setProcess(), which
doesn't get called if the service already has a process attached.

Bug: 133309421
Test: manual (with the app on the bug)
Change-Id: I383d2ba9e0fd0bcda218c61dba4ef61ccd658691
parent 02db431c
Loading
Loading
Loading
Loading
+6 −5
Original line number Diff line number Diff line
@@ -551,12 +551,10 @@ final class ServiceRecord extends Binder implements ComponentName.WithComponentN
                            .removeAllowBackgroundActivityStartsToken(this);
                    ams.mHandler.removeCallbacks(mStartedWhitelistingBgActivityStartsCleanUp);
                }
                mAppForStartedWhitelistingBgActivityStarts = null;
            }
            if (mHasStartedWhitelistingBgActivityStarts) {
            // Make sure the cleanup callback knows about the new process.
                mAppForStartedWhitelistingBgActivityStarts = _proc;
            }
            mAppForStartedWhitelistingBgActivityStarts = mHasStartedWhitelistingBgActivityStarts
                    ? _proc : null;
            if (mHasStartedWhitelistingBgActivityStarts
                    || mHasBindingWhitelistingBgActivityStarts) {
                _proc.addAllowBackgroundActivityStartsToken(this);
@@ -656,6 +654,9 @@ final class ServiceRecord extends Binder implements ComponentName.WithComponentN
     */
    void whitelistBgActivityStartsOnServiceStart() {
        setHasStartedWhitelistingBgActivityStarts(true);
        if (app != null) {
            mAppForStartedWhitelistingBgActivityStarts = app;
        }

        // This callback is stateless, so we create it once when we first need it.
        if (mStartedWhitelistingBgActivityStartsCleanUp == null) {