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

Commit 427046cb authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Fix layout for lock icon when in landscape"

parents 679bbd51 4069521d
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -78,7 +78,8 @@
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="@dimen/status_bar_height"
        android:layout_gravity="top|center_horizontal">
        android:layout_gravity="top|center_horizontal"
        android:gravity="center_horizontal">
        <com.android.systemui.statusbar.phone.LockIcon
            android:id="@+id/lock_icon"
            android:layout_width="@dimen/keyguard_lock_width"
+41 −6
Original line number Diff line number Diff line
@@ -26,13 +26,17 @@ import static com.android.systemui.statusbar.phone.BiometricUnlockController.MOD
import android.content.ComponentCallbacks2;
import android.content.Context;
import android.content.res.ColorStateList;
import android.content.res.Configuration;
import android.os.Bundle;
import android.os.SystemClock;
import android.util.TypedValue;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewRootImpl;
import android.view.WindowManagerGlobal;
import android.widget.FrameLayout;

import androidx.annotation.VisibleForTesting;

@@ -160,6 +164,8 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
    private boolean mPulsing;
    private boolean mGesturalNav;
    private boolean mIsDocked;
    private boolean mIsPortraitMode;
    private int mScreenWidthDp;

    protected boolean mFirstUpdate = true;
    protected boolean mLastShowing;
@@ -174,6 +180,7 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
    private boolean mLastPulsing;
    private int mLastBiometricMode;
    private boolean mLastLockVisible;
    private boolean mLastLockOrientationIsPortrait;

    private OnDismissAction mAfterKeyguardGoneAction;
    private Runnable mKeyguardGoneCancelAction;
@@ -263,6 +270,9 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
        mKeyguardUpdateManager.registerCallback(mUpdateMonitorCallback);
        mStatusBarStateController.addCallback(this);
        mConfigurationController.addCallback(this);
        mIsPortraitMode = mContext.getResources().getConfiguration().orientation
                == Configuration.ORIENTATION_PORTRAIT;
        mScreenWidthDp = mContext.getResources().getConfiguration().screenWidthDp;
        mGesturalNav = QuickStepContract.isGesturalMode(
                mNavigationModeController.addListener(this));
        if (mDockManager != null) {
@@ -271,6 +281,18 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
        }
    }

    @Override
    public void onDensityOrFontScaleChanged() {
        hideBouncer(true /* destroyView */);
    }

    @Override
    public void onConfigChanged(Configuration newConfig) {
        mIsPortraitMode = newConfig.orientation == Configuration.ORIENTATION_PORTRAIT;
        mScreenWidthDp = newConfig.screenWidthDp;
        updateLockIcon();
    }

    @Override
    public void onPanelExpansionChanged(float expansion, boolean tracking) {
        // We don't want to translate the bounce when:
@@ -317,14 +339,32 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
        if (mLockIconContainer == null) {
            return;
        }

        boolean keyguardWithoutQs = mStatusBarStateController.getState() == StatusBarState.KEYGUARD
                && !mNotificationPanelViewController.isQsExpanded();
        boolean lockVisible = (mBouncer.isShowing() || keyguardWithoutQs)
                && !mBouncer.isAnimatingAway() && !mKeyguardStateController.isKeyguardFadingAway();
        boolean orientationChange =
                lockVisible && (mLastLockOrientationIsPortrait != mIsPortraitMode);

        if (mLastLockVisible != lockVisible) {
        if (mLastLockVisible != lockVisible || orientationChange) {
            mLastLockVisible = lockVisible;
            mLastLockOrientationIsPortrait = mIsPortraitMode;
            if (lockVisible) {
                FrameLayout.LayoutParams lp =
                        (FrameLayout.LayoutParams) mLockIconContainer.getLayoutParams();
                if (mIsPortraitMode) {
                    lp.gravity = Gravity.TOP | Gravity.CENTER_HORIZONTAL;
                } else {
                    final int width = (int) TypedValue.applyDimension(
                            TypedValue.COMPLEX_UNIT_DIP,
                            mScreenWidthDp,
                            mContext.getResources().getDisplayMetrics()) / 3;
                    mLockIconContainer.setMinimumWidth(width);
                    lp.gravity = Gravity.TOP | Gravity.LEFT;
                }
                mLockIconContainer.setLayoutParams(lp);

                CrossFadeHelper.fadeIn(mLockIconContainer,
                        AppearAnimationUtils.DEFAULT_APPEAR_DURATION /* duration */,
                        0 /* delay */);
@@ -684,11 +724,6 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
                && mBypassController.getBypassEnabled();
    }

    @Override
    public void onDensityOrFontScaleChanged() {
        hideBouncer(true /* destroyView */);
    }

    @Override
    public void onNavigationModeChanged(int mode) {
        boolean gesturalNav = QuickStepContract.isGesturalMode(mode);
+2 −0
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@ import android.testing.TestableLooper;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewPropertyAnimator;
import android.widget.FrameLayout;

import androidx.test.filters.SmallTest;

@@ -103,6 +104,7 @@ public class StatusBarKeyguardViewManagerTest extends SysuiTestCase {
        when(mLockIconContainer.getParent()).thenReturn(mock(ViewGroup.class));
        when(mLockIconContainer.animate()).thenReturn(mock(ViewPropertyAnimator.class,
                RETURNS_DEEP_STUBS));
        when(mLockIconContainer.getLayoutParams()).thenReturn(mock(FrameLayout.LayoutParams.class));

        when(mKeyguardBouncerFactory.create(
                any(ViewGroup.class),