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

Commit 4ea96198 authored by Lucas Dupin's avatar Lucas Dupin Committed by android-build-merger
Browse files

Merge "Merge "Hide activities when AOD comes in" into pi-dev am: 11866a42" into pi-dev-plus-aosp

am: 28175936

Change-Id: Icc70ab1afa9e5f91f3ad7662d049bd1a9e72f8fb
parents 74e25203 28175936
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -322,12 +322,14 @@ interface IActivityManager {
    /**
     * Informs ActivityManagerService that the keyguard is showing.
     *
     * @param showing True if the keyguard is showing, false otherwise.
     * @param showingKeyguard True if the keyguard is showing, false otherwise.
     * @param showingAod True if AOD is showing, false otherwise.
     * @param secondaryDisplayShowing The displayId of the secondary display on which the keyguard
     *        is showing, or INVALID_DISPLAY if there is no such display. Only meaningful if
     *        showing is true.
     */
    void setLockScreenShown(boolean showing, int secondaryDisplayShowing);
    void setLockScreenShown(boolean showingKeyguard, boolean showingAod,
            int secondaryDisplayShowing);
    boolean finishActivityAffinity(in IBinder token);
    // This is not public because you need to be very careful in how you
    // manage your activity to make sure it is always the uid you expect.
+27 −16
Original line number Diff line number Diff line
@@ -27,7 +27,6 @@ import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.STR

import android.app.ActivityManager;
import android.app.AlarmManager;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.app.StatusBarManager;
import android.app.trust.TrustManager;
@@ -235,6 +234,9 @@ public class KeyguardViewMediator extends SystemUI {
    // answer whether the input should be restricted)
    private boolean mShowing;

    // AOD is enabled and status bar is in AOD state.
    private boolean mAodShowing;

    // display id of the secondary display on which we have put a keyguard window
    private int mSecondaryDisplayShowing = INVALID_DISPLAY;

@@ -664,7 +666,7 @@ public class KeyguardViewMediator extends SystemUI {
        @Override
        public void onSecondaryDisplayShowingChanged(int displayId) {
            synchronized (KeyguardViewMediator.this) {
                setShowingLocked(mShowing, displayId, false);
                setShowingLocked(mShowing, mAodShowing, displayId, false);
            }
        }
    };
@@ -707,10 +709,10 @@ public class KeyguardViewMediator extends SystemUI {
            setShowingLocked(!shouldWaitForProvisioning()
                    && !mLockPatternUtils.isLockScreenDisabled(
                            KeyguardUpdateMonitor.getCurrentUser()),
                    mSecondaryDisplayShowing, true /* forceCallbacks */);
                    mAodShowing, mSecondaryDisplayShowing, true /* forceCallbacks */);
        } else {
            // The system's keyguard is disabled or missing.
            setShowingLocked(false, mSecondaryDisplayShowing, true);
            setShowingLocked(false, mAodShowing, mSecondaryDisplayShowing, true);
        }

        mStatusBarKeyguardViewManager =
@@ -1311,7 +1313,7 @@ public class KeyguardViewMediator extends SystemUI {
            if (mLockPatternUtils.checkVoldPassword(KeyguardUpdateMonitor.getCurrentUser())) {
                if (DEBUG) Log.d(TAG, "Not showing lock screen since just decrypted");
                // Without this, settings is not enabled until the lock screen first appears
                setShowingLocked(false);
                setShowingLocked(false, mAodShowing);
                hideLocked();
                return;
            }
@@ -1713,10 +1715,12 @@ public class KeyguardViewMediator extends SystemUI {
        playSound(mTrustedSoundId);
    }

    private void updateActivityLockScreenState(boolean showing, int secondaryDisplayShowing) {
    private void updateActivityLockScreenState(boolean showing, boolean aodShowing,
            int secondaryDisplayShowing) {
        mUiOffloadThread.submit(() -> {
            try {
                ActivityManager.getService().setLockScreenShown(showing, secondaryDisplayShowing);
                ActivityManager.getService().setLockScreenShown(showing, aodShowing,
                        secondaryDisplayShowing);
            } catch (RemoteException e) {
            }
        });
@@ -1740,7 +1744,7 @@ public class KeyguardViewMediator extends SystemUI {
                if (DEBUG) Log.d(TAG, "handleShow");
            }

            setShowingLocked(true);
            setShowingLocked(true, mAodShowing);
            mStatusBarKeyguardViewManager.show(options);
            mHiding = false;
            mWakeAndUnlocking = false;
@@ -1849,7 +1853,7 @@ public class KeyguardViewMediator extends SystemUI {
            }

            mWakeAndUnlocking = false;
            setShowingLocked(false);
            setShowingLocked(false, mAodShowing);
            mDismissCallbackRegistry.notifyDismissSucceeded();
            mStatusBarKeyguardViewManager.hide(startTime, fadeoutDuration);
            resetKeyguardDonePendingLocked();
@@ -1909,7 +1913,7 @@ public class KeyguardViewMediator extends SystemUI {
        Trace.beginSection("KeyguardViewMediator#handleVerifyUnlock");
        synchronized (KeyguardViewMediator.this) {
            if (DEBUG) Log.d(TAG, "handleVerifyUnlock");
            setShowingLocked(true);
            setShowingLocked(true, mAodShowing);
            mStatusBarKeyguardViewManager.dismissAndCollapse();
        }
        Trace.endSection();
@@ -2064,6 +2068,10 @@ public class KeyguardViewMediator extends SystemUI {
        pw.print("  mDrawnCallback: "); pw.println(mDrawnCallback);
    }

    public void setAodShowing(boolean aodShowing) {
        setShowingLocked(mShowing, aodShowing);
    }

    private static class StartKeyguardExitAnimParams {

        long startTime;
@@ -2075,20 +2083,23 @@ public class KeyguardViewMediator extends SystemUI {
        }
    }

    private void setShowingLocked(boolean showing) {
        setShowingLocked(showing, mSecondaryDisplayShowing, false /* forceCallbacks */);
    private void setShowingLocked(boolean showing, boolean aodShowing) {
        setShowingLocked(showing, aodShowing, mSecondaryDisplayShowing,
                false /* forceCallbacks */);
    }

    private void setShowingLocked(
            boolean showing, int secondaryDisplayShowing, boolean forceCallbacks) {
        final boolean notifyDefaultDisplayCallbacks = showing != mShowing || forceCallbacks;
    private void setShowingLocked(boolean showing, boolean aodShowing, int secondaryDisplayShowing,
            boolean forceCallbacks) {
        final boolean notifyDefaultDisplayCallbacks = showing != mShowing
                || aodShowing != mAodShowing || forceCallbacks;
        if (notifyDefaultDisplayCallbacks || secondaryDisplayShowing != mSecondaryDisplayShowing) {
            mShowing = showing;
            mAodShowing = aodShowing;
            mSecondaryDisplayShowing = secondaryDisplayShowing;
            if (notifyDefaultDisplayCallbacks) {
                notifyDefaultDisplayCallbacks(showing);
            }
            updateActivityLockScreenState(showing, secondaryDisplayShowing);
            updateActivityLockScreenState(showing, aodShowing, secondaryDisplayShowing);
        }
    }

+4 −0
Original line number Diff line number Diff line
@@ -408,6 +408,7 @@ public class StatusBar extends SystemUI implements DemoMode,
    protected NotificationEntryManager mEntryManager;
    protected NotificationViewHierarchyManager mViewHierarchyManager;
    protected AppOpsListener mAppOpsListener;
    protected KeyguardViewMediator mKeyguardViewMediator;
    private ZenModeController mZenController;

    /**
@@ -632,6 +633,7 @@ public class StatusBar extends SystemUI implements DemoMode,
        mAppOpsListener = Dependency.get(AppOpsListener.class);
        mAppOpsListener.setUpWithPresenter(this, mEntryManager);
        mZenController = Dependency.get(ZenModeController.class);
        mKeyguardViewMediator = getComponent(KeyguardViewMediator.class);

        mColorExtractor = Dependency.get(SysuiColorExtractor.class);
        mColorExtractor.addOnColorsChangedListener(this);
@@ -4628,6 +4630,7 @@ public class StatusBar extends SystemUI implements DemoMode,
        boolean dozing = mDozingRequested && mState == StatusBarState.KEYGUARD
                || mFingerprintUnlockController.getMode()
                        == FingerprintUnlockController.MODE_WAKE_AND_UNLOCK_PULSING;
        final boolean alwaysOn = DozeParameters.getInstance(mContext).getAlwaysOn();
        // When in wake-and-unlock we may not have received a change to mState
        // but we still should not be dozing, manually set to false.
        if (mFingerprintUnlockController.getMode() ==
@@ -4635,6 +4638,7 @@ public class StatusBar extends SystemUI implements DemoMode,
            dozing = false;
        }
        mDozing = dozing;
        mKeyguardViewMediator.setAodShowing(mDozing && alwaysOn);
        mStatusBarWindowManager.setDozing(mDozing);
        mStatusBarKeyguardViewManager.setDozing(mDozing);
        if (mAmbientIndicationContainer instanceof DozeReceiver) {
+3 −1
Original line number Diff line number Diff line
@@ -143,7 +143,9 @@ public class StatusBarWindowManager implements RemoteInputController.Callback, D

        final boolean scrimsOccludingWallpaper =
                state.scrimsVisibility == ScrimController.VISIBILITY_FULLY_OPAQUE;
        if (state.keyguardShowing && !state.backdropShowing && !scrimsOccludingWallpaper) {
        final boolean keyguardOrAod = state.keyguardShowing
                || (state.dozing && mDozeParameters.getAlwaysOn());
        if (keyguardOrAod && !state.backdropShowing && !scrimsOccludingWallpaper) {
            mLpChanged.flags |= WindowManager.LayoutParams.FLAG_SHOW_WALLPAPER;
        } else {
            mLpChanged.flags &= ~WindowManager.LayoutParams.FLAG_SHOW_WALLPAPER;
+5 −2
Original line number Diff line number Diff line
@@ -70,6 +70,7 @@ import com.android.systemui.ForegroundServiceController;
import com.android.systemui.R;
import com.android.systemui.SysuiTestCase;
import com.android.systemui.assist.AssistManager;
import com.android.systemui.keyguard.KeyguardViewMediator;
import com.android.systemui.keyguard.WakefulnessLifecycle;
import com.android.systemui.recents.misc.SystemServicesProxy;
import com.android.systemui.statusbar.ActivatableNotificationView;
@@ -132,6 +133,7 @@ public class StatusBarTest extends SysuiTestCase {
    @Mock private NotificationViewHierarchyManager mViewHierarchyManager;
    @Mock private VisualStabilityManager mVisualStabilityManager;
    @Mock private NotificationListener mNotificationListener;
    @Mock private KeyguardViewMediator mKeyguardViewMediator;

    private TestableStatusBar mStatusBar;
    private FakeMetricsLogger mMetricsLogger;
@@ -200,7 +202,7 @@ public class StatusBarTest extends SysuiTestCase {
                mPowerManager, mNotificationPanelView, mBarService, mNotificationListener,
                mNotificationLogger, mVisualStabilityManager, mViewHierarchyManager,
                mEntryManager, mScrimController, mFingerprintUnlockController,
                mock(ActivityLaunchAnimator.class));
                mock(ActivityLaunchAnimator.class), mKeyguardViewMediator);
        mStatusBar.mContext = mContext;
        mStatusBar.mComponents = mContext.getComponents();
        mEntryManager.setUpForTest(mStatusBar, mStackScroller, mStatusBar, mHeadsUpManager,
@@ -638,7 +640,7 @@ public class StatusBarTest extends SysuiTestCase {
                NotificationViewHierarchyManager viewHierarchyManager,
                TestableNotificationEntryManager entryManager, ScrimController scrimController,
                FingerprintUnlockController fingerprintUnlockController,
                ActivityLaunchAnimator launchAnimator) {
                ActivityLaunchAnimator launchAnimator, KeyguardViewMediator keyguardViewMediator) {
            mStatusBarKeyguardViewManager = man;
            mUnlockMethodCache = unlock;
            mKeyguardIndicationController = key;
@@ -656,6 +658,7 @@ public class StatusBarTest extends SysuiTestCase {
            mScrimController = scrimController;
            mFingerprintUnlockController = fingerprintUnlockController;
            mActivityLaunchAnimator = launchAnimator;
            mKeyguardViewMediator = keyguardViewMediator;
            mClearAllEnabled = true;
        }

Loading