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

Commit cdbb1cbf authored by Lucas Dupin's avatar Lucas Dupin
Browse files

Wait for scrim animation before showing lock icon

Fixes: 132198859
Test: unlock with fingerprint
Change-Id: I9cb01bee696991102cbb65cc1f6f443f42f70e70
parent 51374fc7
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -44,6 +44,7 @@ import com.android.systemui.R;
import com.android.systemui.dock.DockManager;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.statusbar.KeyguardAffordanceView;
import com.android.systemui.statusbar.phone.ScrimController.ScrimVisibility;
import com.android.systemui.statusbar.policy.AccessibilityController;
import com.android.systemui.statusbar.policy.ConfigurationController;
import com.android.systemui.statusbar.policy.KeyguardMonitor;
@@ -484,10 +485,13 @@ public class LockIcon extends KeyguardAffordanceView implements OnUserInfoChange
    }

    /**
     * Triggered after the unlock animation is over and the user is looking at launcher.
     * Called whenever the scrims become opaque, transparent or semi-transparent.
     */
    public void onKeyguardFadedAway() {
    public void onScrimVisibilityChanged(@ScrimVisibility int scrimsVisible) {
        if (mWakeAndUnlockRunning
                && scrimsVisible == ScrimController.VISIBILITY_FULLY_TRANSPARENT) {
            mWakeAndUnlockRunning = false;
            update();
        }
    }
}
+12 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package com.android.systemui.statusbar.phone;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.ValueAnimator;
import android.annotation.IntDef;
import android.app.AlarmManager;
import android.content.Context;
import android.graphics.Color;
@@ -52,6 +53,8 @@ import com.android.systemui.util.wakelock.WakeLock;

import java.io.FileDescriptor;
import java.io.PrintWriter;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.function.Consumer;

/**
@@ -84,6 +87,15 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, OnCo
     * When at least 1 scrim is fully opaque (alpha set to 1.)
     */
    public static final int VISIBILITY_FULLY_OPAQUE = 2;

    @IntDef(prefix = { "VISIBILITY_" }, value = {
            VISIBILITY_FULLY_TRANSPARENT,
            VISIBILITY_SEMI_TRANSPARENT,
            VISIBILITY_FULLY_OPAQUE
    })
    @Retention(RetentionPolicy.SOURCE)
    public @interface ScrimVisibility {}

    /**
     * Default alpha value for most scrims.
     */
+3 −1
Original line number Diff line number Diff line
@@ -538,7 +538,6 @@ public class StatusBar extends SystemUI implements DemoMode,
            }
            if (mKeyguardMonitor.isKeyguardFadingAway()) {
                mStatusBarKeyguardViewManager.onKeyguardFadedAway();
                mStatusBarWindow.onKeyguardFadedAway();
            }
        }

@@ -929,6 +928,9 @@ public class StatusBar extends SystemUI implements DemoMode,
                    if (mStatusBarWindowController != null) {
                        mStatusBarWindowController.setScrimsVisibility(scrimsVisible);
                    }
                    if (mStatusBarWindow != null) {
                        mStatusBarWindow.onScrimVisibilityChanged(scrimsVisible);
                    }
                }, DozeParameters.getInstance(mContext),
                mContext.getSystemService(AlarmManager.class));
        mNotificationPanel.initDependencies(this, mGroupManager, mNotificationShelf,
+10 −9
Original line number Diff line number Diff line
@@ -68,6 +68,7 @@ import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.statusbar.DragDownHelper;
import com.android.systemui.statusbar.StatusBarState;
import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout;
import com.android.systemui.statusbar.phone.ScrimController.ScrimVisibility;
import com.android.systemui.tuner.TunerService;

import java.io.FileDescriptor;
@@ -277,15 +278,6 @@ public class StatusBarWindowView extends FrameLayout {
        }
    }

    /**
     * Called after finished unlocking and the status bar window is already collapsed.
     */
    public void onKeyguardFadedAway() {
        if (mLockIcon != null) {
            mLockIcon.onKeyguardFadedAway();
        }
    }

    public void setStatusBarView(PhoneStatusBarView statusBarView) {
        mStatusBarView = statusBarView;
    }
@@ -509,6 +501,15 @@ public class StatusBarWindowView extends FrameLayout {
        pw.print("  mTouchActive="); pw.println(mTouchActive);
    }

    /**
     * Called whenever the scrims become opaque, transparent or semi-transparent.
     */
    public void onScrimVisibilityChanged(@ScrimVisibility int scrimsVisible) {
        if (mLockIcon != null) {
            mLockIcon.onScrimVisibilityChanged(scrimsVisible);
        }
    }

    public class LayoutParams extends FrameLayout.LayoutParams {

        public boolean ignoreRightInset;