Loading packages/SystemUI/src/com/android/keyguard/KeyguardClockSwitch.java +35 −0 Original line number Diff line number Diff line Loading @@ -104,6 +104,8 @@ public class KeyguardClockSwitch extends RelativeLayout { private boolean mSupportsDarkText; private int[] mColorPalette; private int mLockScreenMode = KeyguardUpdateMonitor.LOCK_SCREEN_MODE_NORMAL; public KeyguardClockSwitch(Context context, AttributeSet attrs) { super(context, attrs); Loading @@ -128,6 +130,35 @@ public class KeyguardClockSwitch extends RelativeLayout { return mClockPlugin != null; } /** * Update lock screen mode for testing different layouts */ public void updateLockScreenMode(int mode) { mLockScreenMode = mode; RelativeLayout.LayoutParams statusAreaLP = (RelativeLayout.LayoutParams) mKeyguardStatusArea.getLayoutParams(); RelativeLayout.LayoutParams clockLP = (RelativeLayout.LayoutParams) mSmallClockFrame.getLayoutParams(); if (mode == KeyguardUpdateMonitor.LOCK_SCREEN_MODE_LAYOUT_1) { statusAreaLP.removeRule(RelativeLayout.BELOW); statusAreaLP.addRule(RelativeLayout.LEFT_OF, R.id.clock_view); statusAreaLP.addRule(RelativeLayout.ALIGN_PARENT_START); clockLP.addRule(RelativeLayout.ALIGN_PARENT_END); clockLP.width = ViewGroup.LayoutParams.WRAP_CONTENT; } else { statusAreaLP.removeRule(RelativeLayout.LEFT_OF); statusAreaLP.removeRule(RelativeLayout.ALIGN_PARENT_START); statusAreaLP.addRule(RelativeLayout.BELOW, R.id.clock_view); clockLP.removeRule(RelativeLayout.ALIGN_PARENT_END); clockLP.width = ViewGroup.LayoutParams.MATCH_PARENT; } requestLayout(); } @Override protected void onFinishInflate() { super.onFinishInflate(); Loading Loading @@ -363,6 +394,10 @@ public class KeyguardClockSwitch extends RelativeLayout { * these cases. */ void setKeyguardShowingHeader(boolean hasHeader) { if (mLockScreenMode != KeyguardUpdateMonitor.LOCK_SCREEN_MODE_NORMAL) { hasHeader = false; } if (mShowingHeader == hasHeader) { return; } Loading packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java +9 −0 Original line number Diff line number Diff line Loading @@ -78,6 +78,11 @@ public class KeyguardStatusView extends GridLayout implements private KeyguardUpdateMonitorCallback mInfoCallback = new KeyguardUpdateMonitorCallback() { @Override public void onLockScreenModeChanged(int mode) { updateLockScreenMode(mode); } @Override public void onTimeChanged() { refreshTime(); Loading Loading @@ -255,6 +260,10 @@ public class KeyguardStatusView extends GridLayout implements mClockView.refresh(); } private void updateLockScreenMode(int mode) { mClockView.updateLockScreenMode(mode); } private void updateTimeZone(TimeZone timeZone) { mClockView.onTimeZoneChanged(timeZone); } Loading packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java +46 −0 Original line number Diff line number Diff line Loading @@ -180,6 +180,10 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab private static final int MSG_USER_STOPPED = 340; private static final int MSG_USER_REMOVED = 341; private static final int MSG_KEYGUARD_GOING_AWAY = 342; private static final int MSG_LOCK_SCREEN_MODE = 343; public static final int LOCK_SCREEN_MODE_NORMAL = 0; public static final int LOCK_SCREEN_MODE_LAYOUT_1 = 1; /** Biometric authentication state: Not listening. */ private static final int BIOMETRIC_STATE_STOPPED = 0; Loading Loading @@ -263,6 +267,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab private final ArrayList<WeakReference<KeyguardUpdateMonitorCallback>> mCallbacks = Lists.newArrayList(); private ContentObserver mDeviceProvisionedObserver; private ContentObserver mLockScreenModeObserver; private boolean mSwitchingUser; Loading @@ -286,6 +291,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab private boolean mLockIconPressed; private int mActiveMobileDataSubscription = SubscriptionManager.INVALID_SUBSCRIPTION_ID; private final Executor mBackgroundExecutor; private int mLockScreenMode; /** * Short delay before restarting fingerprint authentication after a successful try. This should Loading Loading @@ -1694,6 +1700,9 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab case MSG_KEYGUARD_GOING_AWAY: handleKeyguardGoingAway((boolean) msg.obj); break; case MSG_LOCK_SCREEN_MODE: handleLockScreenMode(); break; default: super.handleMessage(msg); break; Loading Loading @@ -1828,6 +1837,23 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab } } } updateLockScreenMode(); mLockScreenModeObserver = new ContentObserver(mHandler) { @Override public void onChange(boolean selfChange) { updateLockScreenMode(); mHandler.sendEmptyMessage(MSG_LOCK_SCREEN_MODE); } }; mContext.getContentResolver().registerContentObserver( Settings.Global.getUriFor(Settings.Global.SHOW_NEW_LOCKSCREEN), false, mLockScreenModeObserver); } private void updateLockScreenMode() { mLockScreenMode = Settings.Global.getInt(mContext.getContentResolver(), Settings.Global.SHOW_NEW_LOCKSCREEN, 0); } private final UserSwitchObserver mUserSwitchObserver = new UserSwitchObserver() { Loading Loading @@ -2349,6 +2375,20 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab } } /** * Handle {@link #MSG_LOCK_SCREEN_MODE} */ private void handleLockScreenMode() { Assert.isMainThread(); if (DEBUG) Log.d(TAG, "handleLockScreenMode(" + mLockScreenMode + ")"); for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); if (cb != null) { cb.onLockScreenModeChanged(mLockScreenMode); } } } /** * Handle (@line #MSG_TIMEZONE_UPDATE} */ Loading Loading @@ -2668,6 +2708,8 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab callback.onClockVisibilityChanged(); callback.onKeyguardVisibilityChangedRaw(mKeyguardIsVisible); callback.onTelephonyCapable(mTelephonyCapable); callback.onLockScreenModeChanged(mLockScreenMode); for (Entry<Integer, SimData> data : mSimDatas.entrySet()) { final SimData state = data.getValue(); callback.onSimStateChanged(state.subId, state.slotId, state.simState); Loading Loading @@ -2959,6 +3001,10 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab mContext.getContentResolver().unregisterContentObserver(mDeviceProvisionedObserver); } if (mLockScreenModeObserver != null) { mContext.getContentResolver().unregisterContentObserver(mLockScreenModeObserver); } try { ActivityManager.getService().unregisterUserSwitchObserver(mUserSwitchObserver); } catch (RemoteException e) { Loading packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java +5 −0 Original line number Diff line number Diff line Loading @@ -317,4 +317,9 @@ public class KeyguardUpdateMonitorCallback { */ public void onSecondaryLockscreenRequirementChanged(int userId) { } /** * Called to switch lock screen layout/clock layouts */ public void onLockScreenModeChanged(int mode) { } } packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardClockPositionAlgorithm.java +13 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import android.content.res.Resources; import android.util.MathUtils; import com.android.keyguard.KeyguardStatusView; import com.android.keyguard.KeyguardUpdateMonitor; import com.android.systemui.Interpolators; import com.android.systemui.R; Loading Loading @@ -122,6 +123,8 @@ public class KeyguardClockPositionAlgorithm { */ private int mUnlockedStackScrollerPadding; private int mLockScreenMode; /** * Refreshes the dimension values. */ Loading Loading @@ -171,6 +174,13 @@ public class KeyguardClockPositionAlgorithm { result.clockX = (int) interpolate(0, burnInPreventionOffsetX(), mDarkAmount); } /** * Update lock screen mode for testing different layouts */ public void onLockScreenModeChanged(int mode) { mLockScreenMode = mode; } public float getMinStackScrollerPadding() { return mBypassEnabled ? mUnlockedStackScrollerPadding : mMinTopMargin + mKeyguardStatusHeight + mClockNotificationsMargin; Loading @@ -185,6 +195,9 @@ public class KeyguardClockPositionAlgorithm { } private int getExpandedPreferredClockY() { if (mLockScreenMode != KeyguardUpdateMonitor.LOCK_SCREEN_MODE_NORMAL) { return mMinTopMargin; } return (mHasCustomClock && (!mHasVisibleNotifs || mBypassEnabled)) ? getPreferredClockY() : getExpandedClockPosition(); } Loading Loading
packages/SystemUI/src/com/android/keyguard/KeyguardClockSwitch.java +35 −0 Original line number Diff line number Diff line Loading @@ -104,6 +104,8 @@ public class KeyguardClockSwitch extends RelativeLayout { private boolean mSupportsDarkText; private int[] mColorPalette; private int mLockScreenMode = KeyguardUpdateMonitor.LOCK_SCREEN_MODE_NORMAL; public KeyguardClockSwitch(Context context, AttributeSet attrs) { super(context, attrs); Loading @@ -128,6 +130,35 @@ public class KeyguardClockSwitch extends RelativeLayout { return mClockPlugin != null; } /** * Update lock screen mode for testing different layouts */ public void updateLockScreenMode(int mode) { mLockScreenMode = mode; RelativeLayout.LayoutParams statusAreaLP = (RelativeLayout.LayoutParams) mKeyguardStatusArea.getLayoutParams(); RelativeLayout.LayoutParams clockLP = (RelativeLayout.LayoutParams) mSmallClockFrame.getLayoutParams(); if (mode == KeyguardUpdateMonitor.LOCK_SCREEN_MODE_LAYOUT_1) { statusAreaLP.removeRule(RelativeLayout.BELOW); statusAreaLP.addRule(RelativeLayout.LEFT_OF, R.id.clock_view); statusAreaLP.addRule(RelativeLayout.ALIGN_PARENT_START); clockLP.addRule(RelativeLayout.ALIGN_PARENT_END); clockLP.width = ViewGroup.LayoutParams.WRAP_CONTENT; } else { statusAreaLP.removeRule(RelativeLayout.LEFT_OF); statusAreaLP.removeRule(RelativeLayout.ALIGN_PARENT_START); statusAreaLP.addRule(RelativeLayout.BELOW, R.id.clock_view); clockLP.removeRule(RelativeLayout.ALIGN_PARENT_END); clockLP.width = ViewGroup.LayoutParams.MATCH_PARENT; } requestLayout(); } @Override protected void onFinishInflate() { super.onFinishInflate(); Loading Loading @@ -363,6 +394,10 @@ public class KeyguardClockSwitch extends RelativeLayout { * these cases. */ void setKeyguardShowingHeader(boolean hasHeader) { if (mLockScreenMode != KeyguardUpdateMonitor.LOCK_SCREEN_MODE_NORMAL) { hasHeader = false; } if (mShowingHeader == hasHeader) { return; } Loading
packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java +9 −0 Original line number Diff line number Diff line Loading @@ -78,6 +78,11 @@ public class KeyguardStatusView extends GridLayout implements private KeyguardUpdateMonitorCallback mInfoCallback = new KeyguardUpdateMonitorCallback() { @Override public void onLockScreenModeChanged(int mode) { updateLockScreenMode(mode); } @Override public void onTimeChanged() { refreshTime(); Loading Loading @@ -255,6 +260,10 @@ public class KeyguardStatusView extends GridLayout implements mClockView.refresh(); } private void updateLockScreenMode(int mode) { mClockView.updateLockScreenMode(mode); } private void updateTimeZone(TimeZone timeZone) { mClockView.onTimeZoneChanged(timeZone); } Loading
packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java +46 −0 Original line number Diff line number Diff line Loading @@ -180,6 +180,10 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab private static final int MSG_USER_STOPPED = 340; private static final int MSG_USER_REMOVED = 341; private static final int MSG_KEYGUARD_GOING_AWAY = 342; private static final int MSG_LOCK_SCREEN_MODE = 343; public static final int LOCK_SCREEN_MODE_NORMAL = 0; public static final int LOCK_SCREEN_MODE_LAYOUT_1 = 1; /** Biometric authentication state: Not listening. */ private static final int BIOMETRIC_STATE_STOPPED = 0; Loading Loading @@ -263,6 +267,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab private final ArrayList<WeakReference<KeyguardUpdateMonitorCallback>> mCallbacks = Lists.newArrayList(); private ContentObserver mDeviceProvisionedObserver; private ContentObserver mLockScreenModeObserver; private boolean mSwitchingUser; Loading @@ -286,6 +291,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab private boolean mLockIconPressed; private int mActiveMobileDataSubscription = SubscriptionManager.INVALID_SUBSCRIPTION_ID; private final Executor mBackgroundExecutor; private int mLockScreenMode; /** * Short delay before restarting fingerprint authentication after a successful try. This should Loading Loading @@ -1694,6 +1700,9 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab case MSG_KEYGUARD_GOING_AWAY: handleKeyguardGoingAway((boolean) msg.obj); break; case MSG_LOCK_SCREEN_MODE: handleLockScreenMode(); break; default: super.handleMessage(msg); break; Loading Loading @@ -1828,6 +1837,23 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab } } } updateLockScreenMode(); mLockScreenModeObserver = new ContentObserver(mHandler) { @Override public void onChange(boolean selfChange) { updateLockScreenMode(); mHandler.sendEmptyMessage(MSG_LOCK_SCREEN_MODE); } }; mContext.getContentResolver().registerContentObserver( Settings.Global.getUriFor(Settings.Global.SHOW_NEW_LOCKSCREEN), false, mLockScreenModeObserver); } private void updateLockScreenMode() { mLockScreenMode = Settings.Global.getInt(mContext.getContentResolver(), Settings.Global.SHOW_NEW_LOCKSCREEN, 0); } private final UserSwitchObserver mUserSwitchObserver = new UserSwitchObserver() { Loading Loading @@ -2349,6 +2375,20 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab } } /** * Handle {@link #MSG_LOCK_SCREEN_MODE} */ private void handleLockScreenMode() { Assert.isMainThread(); if (DEBUG) Log.d(TAG, "handleLockScreenMode(" + mLockScreenMode + ")"); for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); if (cb != null) { cb.onLockScreenModeChanged(mLockScreenMode); } } } /** * Handle (@line #MSG_TIMEZONE_UPDATE} */ Loading Loading @@ -2668,6 +2708,8 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab callback.onClockVisibilityChanged(); callback.onKeyguardVisibilityChangedRaw(mKeyguardIsVisible); callback.onTelephonyCapable(mTelephonyCapable); callback.onLockScreenModeChanged(mLockScreenMode); for (Entry<Integer, SimData> data : mSimDatas.entrySet()) { final SimData state = data.getValue(); callback.onSimStateChanged(state.subId, state.slotId, state.simState); Loading Loading @@ -2959,6 +3001,10 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab mContext.getContentResolver().unregisterContentObserver(mDeviceProvisionedObserver); } if (mLockScreenModeObserver != null) { mContext.getContentResolver().unregisterContentObserver(mLockScreenModeObserver); } try { ActivityManager.getService().unregisterUserSwitchObserver(mUserSwitchObserver); } catch (RemoteException e) { Loading
packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java +5 −0 Original line number Diff line number Diff line Loading @@ -317,4 +317,9 @@ public class KeyguardUpdateMonitorCallback { */ public void onSecondaryLockscreenRequirementChanged(int userId) { } /** * Called to switch lock screen layout/clock layouts */ public void onLockScreenModeChanged(int mode) { } }
packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardClockPositionAlgorithm.java +13 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import android.content.res.Resources; import android.util.MathUtils; import com.android.keyguard.KeyguardStatusView; import com.android.keyguard.KeyguardUpdateMonitor; import com.android.systemui.Interpolators; import com.android.systemui.R; Loading Loading @@ -122,6 +123,8 @@ public class KeyguardClockPositionAlgorithm { */ private int mUnlockedStackScrollerPadding; private int mLockScreenMode; /** * Refreshes the dimension values. */ Loading Loading @@ -171,6 +174,13 @@ public class KeyguardClockPositionAlgorithm { result.clockX = (int) interpolate(0, burnInPreventionOffsetX(), mDarkAmount); } /** * Update lock screen mode for testing different layouts */ public void onLockScreenModeChanged(int mode) { mLockScreenMode = mode; } public float getMinStackScrollerPadding() { return mBypassEnabled ? mUnlockedStackScrollerPadding : mMinTopMargin + mKeyguardStatusHeight + mClockNotificationsMargin; Loading @@ -185,6 +195,9 @@ public class KeyguardClockPositionAlgorithm { } private int getExpandedPreferredClockY() { if (mLockScreenMode != KeyguardUpdateMonitor.LOCK_SCREEN_MODE_NORMAL) { return mMinTopMargin; } return (mHasCustomClock && (!mHasVisibleNotifs || mBypassEnabled)) ? getPreferredClockY() : getExpandedClockPosition(); } Loading