Loading packages/SystemUI/src/com/android/systemui/EventLogTags.logtags +8 −1 Original line number Diff line number Diff line Loading @@ -9,7 +9,14 @@ option java_package com.android.systemui; 36001 sysui_heads_up_status (key|3),(visible|1) 36002 sysui_fullscreen_notification (key|3) 36003 sysui_heads_up_escalation (key|3) 36004 sysui_status_bar_state (state|1) # sysui_status_bar_state: Logged whenever the status bar / keyguard state changes ## state: 0: SHADE, 1: KEYGUARD, 2: SHADE_LOCKED ## keyguardShowing: 1: Keyguard shown to the user (or keyguardOccluded) ## keyguardOccluded: 1: Keyguard active, but another activity is occluding it ## bouncerShowing: 1: Bouncer currently shown to the user ## secure: 1: The user has set up a secure unlock method (PIN, password, etc.) ## currentlyInsecure: 1: No secure unlock method set up (!secure), or trusted environment (TrustManager) 36004 sysui_status_bar_state (state|1),(keyguardShowing|1),(keyguardOccluded|1),(bouncerShowing|1),(secure|1),(currentlyInsecure|1) # --------------------------- # PhoneStatusBarView.java Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java +2 −2 Original line number Diff line number Diff line Loading @@ -388,7 +388,7 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL // TODO: Real icon for facelock. int iconRes = mUnlockMethodCache.isFaceUnlockRunning() ? com.android.internal.R.drawable.ic_account_circle : mUnlockMethodCache.isMethodInsecure() ? R.drawable.ic_lock_open_24dp : mUnlockMethodCache.isCurrentlyInsecure() ? R.drawable.ic_lock_open_24dp : R.drawable.ic_lock_24dp; if (mLastUnlockIconRes != iconRes) { Drawable icon = mContext.getDrawable(iconRes); Loading Loading @@ -438,7 +438,7 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL } @Override public void onMethodSecureChanged(boolean methodSecure) { public void onUnlockMethodStateChanged() { updateLockIcon(); updateCameraVisibility(); } Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java +3 −0 Original line number Diff line number Diff line Loading @@ -212,6 +212,9 @@ public class KeyguardBouncer { return false; } /** * WARNING: This method might cause Binder calls. */ public boolean isSecure() { return mKeyguardView == null || mKeyguardView.getSecurityMode() != SecurityMode.None; } Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +71 −17 Original line number Diff line number Diff line Loading @@ -147,6 +147,7 @@ import com.android.systemui.statusbar.SignalClusterView; import com.android.systemui.statusbar.SpeedBumpView; import com.android.systemui.statusbar.StatusBarIconView; import com.android.systemui.statusbar.StatusBarState; import com.android.systemui.statusbar.phone.UnlockMethodCache.OnUnlockMethodChangedListener; import com.android.systemui.statusbar.policy.AccessibilityController; import com.android.systemui.statusbar.policy.BatteryController; import com.android.systemui.statusbar.policy.BatteryController.BatteryStateChangeCallback; Loading Loading @@ -183,7 +184,7 @@ import java.util.List; import java.util.Map; public class PhoneStatusBar extends BaseStatusBar implements DemoMode, DragDownHelper.DragDownCallback, ActivityStarter { DragDownHelper.DragDownCallback, ActivityStarter, OnUnlockMethodChangedListener { static final String TAG = "PhoneStatusBar"; public static final boolean DEBUG = BaseStatusBar.DEBUG; public static final boolean SPEW = false; Loading Loading @@ -493,6 +494,9 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, private boolean mLaunchTransitionFadingAway; private ExpandableNotificationRow mDraggedDownRow; // Fingerprint (as computed by getLoggingFingerprint() of the last logged state. private int mLastLoggedStateFingerprint; private static final int VISIBLE_LOCATIONS = ViewState.LOCATION_FIRST_CARD | ViewState.LOCATION_TOP_STACK_PEEKING | ViewState.LOCATION_MAIN_AREA Loading Loading @@ -603,6 +607,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, mHeadsUpObserver); } mUnlockMethodCache = UnlockMethodCache.getInstance(mContext); mUnlockMethodCache.addListener(this); startKeyguard(); mDozeServiceHost = new DozeServiceHost(); Loading Loading @@ -2159,8 +2164,8 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, public boolean isFalsingThresholdNeeded() { boolean onKeyguard = getBarState() == StatusBarState.KEYGUARD; boolean isMethodInsecure = mUnlockMethodCache.isMethodInsecure(); return onKeyguard && (isMethodInsecure || mDozing || mScreenOnComingFromTouch); boolean isCurrentlyInsecure = mUnlockMethodCache.isCurrentlyInsecure(); return onKeyguard && (isCurrentlyInsecure || mDozing || mScreenOnComingFromTouch); } public boolean isDozing() { Loading @@ -2176,6 +2181,18 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, return mScrimSrcModeEnabled; } /** * To be called when there's a state change in StatusBarKeyguardViewManager. */ public void onKeyguardViewManagerStatesUpdated() { logStateToEventlog(); } @Override // UnlockMethodCache.OnUnlockMethodChangedListener public void onUnlockMethodStateChanged() { logStateToEventlog(); } /** * All changes to the status bar and notifications funnel through here and are batched. */ Loading Loading @@ -3348,6 +3365,47 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, } } // State logging private void logStateToEventlog() { boolean isShowing = mStatusBarKeyguardViewManager.isShowing(); boolean isOccluded = mStatusBarKeyguardViewManager.isOccluded(); boolean isBouncerShowing = mStatusBarKeyguardViewManager.isBouncerShowing(); boolean isSecure = mUnlockMethodCache.isMethodSecure(); boolean isCurrentlyInsecure = mUnlockMethodCache.isCurrentlyInsecure(); int stateFingerprint = getLoggingFingerprint(mState, isShowing, isOccluded, isBouncerShowing, isSecure, isCurrentlyInsecure); if (stateFingerprint != mLastLoggedStateFingerprint) { EventLogTags.writeSysuiStatusBarState(mState, isShowing ? 1 : 0, isOccluded ? 1 : 0, isBouncerShowing ? 1 : 0, isSecure ? 1 : 0, isCurrentlyInsecure ? 1 : 0); mLastLoggedStateFingerprint = stateFingerprint; } } /** * Returns a fingerprint of fields logged to eventlog */ private static int getLoggingFingerprint(int statusBarState, boolean keyguardShowing, boolean keyguardOccluded, boolean bouncerShowing, boolean secure, boolean currentlyInsecure) { // Reserve 8 bits for statusBarState. We'll never go higher than // that, right? Riiiight. return (statusBarState & 0xFF) | ((keyguardShowing ? 1 : 0) << 8) | ((keyguardOccluded ? 1 : 0) << 9) | ((bouncerShowing ? 1 : 0) << 10) | ((secure ? 1 : 0) << 11) | ((currentlyInsecure ? 1 : 0) << 12); } // // tracing // Loading Loading @@ -3836,21 +3894,17 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, * @param state The {@link StatusBarState} to set. */ public void setBarState(int state) { if (state != mState) { EventLogTags.writeSysuiStatusBarState(state); // If we're visible and switched to SHADE_LOCKED (the user dragged // down on the lockscreen), clear notification LED, vibration, // ringing. // Other transitions are covered in handleVisibleToUserChanged(). if (mVisible && state == StatusBarState.SHADE_LOCKED) { if (state != mState && mVisible && state == StatusBarState.SHADE_LOCKED) { try { mBarService.clearNotificationEffects(); } catch (RemoteException e) { // Ignore. } } } mState = state; mStatusBarWindowManager.setStatusBarState(state); } Loading Loading @@ -3890,7 +3944,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, public void onTrackingStopped(boolean expand) { if (mState == StatusBarState.KEYGUARD || mState == StatusBarState.SHADE_LOCKED) { if (!expand && !mUnlockMethodCache.isMethodInsecure()) { if (!expand && !mUnlockMethodCache.isCurrentlyInsecure()) { showBouncer(); } } Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java +1 −1 Original line number Diff line number Diff line Loading @@ -88,7 +88,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener { public void onTrackingStarted() { mExpanding = true; mDarkenWhileDragging = !mUnlockMethodCache.isMethodInsecure(); mDarkenWhileDragging = !mUnlockMethodCache.isCurrentlyInsecure(); } public void onExpandingFinished() { Loading Loading
packages/SystemUI/src/com/android/systemui/EventLogTags.logtags +8 −1 Original line number Diff line number Diff line Loading @@ -9,7 +9,14 @@ option java_package com.android.systemui; 36001 sysui_heads_up_status (key|3),(visible|1) 36002 sysui_fullscreen_notification (key|3) 36003 sysui_heads_up_escalation (key|3) 36004 sysui_status_bar_state (state|1) # sysui_status_bar_state: Logged whenever the status bar / keyguard state changes ## state: 0: SHADE, 1: KEYGUARD, 2: SHADE_LOCKED ## keyguardShowing: 1: Keyguard shown to the user (or keyguardOccluded) ## keyguardOccluded: 1: Keyguard active, but another activity is occluding it ## bouncerShowing: 1: Bouncer currently shown to the user ## secure: 1: The user has set up a secure unlock method (PIN, password, etc.) ## currentlyInsecure: 1: No secure unlock method set up (!secure), or trusted environment (TrustManager) 36004 sysui_status_bar_state (state|1),(keyguardShowing|1),(keyguardOccluded|1),(bouncerShowing|1),(secure|1),(currentlyInsecure|1) # --------------------------- # PhoneStatusBarView.java Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java +2 −2 Original line number Diff line number Diff line Loading @@ -388,7 +388,7 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL // TODO: Real icon for facelock. int iconRes = mUnlockMethodCache.isFaceUnlockRunning() ? com.android.internal.R.drawable.ic_account_circle : mUnlockMethodCache.isMethodInsecure() ? R.drawable.ic_lock_open_24dp : mUnlockMethodCache.isCurrentlyInsecure() ? R.drawable.ic_lock_open_24dp : R.drawable.ic_lock_24dp; if (mLastUnlockIconRes != iconRes) { Drawable icon = mContext.getDrawable(iconRes); Loading Loading @@ -438,7 +438,7 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL } @Override public void onMethodSecureChanged(boolean methodSecure) { public void onUnlockMethodStateChanged() { updateLockIcon(); updateCameraVisibility(); } Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java +3 −0 Original line number Diff line number Diff line Loading @@ -212,6 +212,9 @@ public class KeyguardBouncer { return false; } /** * WARNING: This method might cause Binder calls. */ public boolean isSecure() { return mKeyguardView == null || mKeyguardView.getSecurityMode() != SecurityMode.None; } Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +71 −17 Original line number Diff line number Diff line Loading @@ -147,6 +147,7 @@ import com.android.systemui.statusbar.SignalClusterView; import com.android.systemui.statusbar.SpeedBumpView; import com.android.systemui.statusbar.StatusBarIconView; import com.android.systemui.statusbar.StatusBarState; import com.android.systemui.statusbar.phone.UnlockMethodCache.OnUnlockMethodChangedListener; import com.android.systemui.statusbar.policy.AccessibilityController; import com.android.systemui.statusbar.policy.BatteryController; import com.android.systemui.statusbar.policy.BatteryController.BatteryStateChangeCallback; Loading Loading @@ -183,7 +184,7 @@ import java.util.List; import java.util.Map; public class PhoneStatusBar extends BaseStatusBar implements DemoMode, DragDownHelper.DragDownCallback, ActivityStarter { DragDownHelper.DragDownCallback, ActivityStarter, OnUnlockMethodChangedListener { static final String TAG = "PhoneStatusBar"; public static final boolean DEBUG = BaseStatusBar.DEBUG; public static final boolean SPEW = false; Loading Loading @@ -493,6 +494,9 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, private boolean mLaunchTransitionFadingAway; private ExpandableNotificationRow mDraggedDownRow; // Fingerprint (as computed by getLoggingFingerprint() of the last logged state. private int mLastLoggedStateFingerprint; private static final int VISIBLE_LOCATIONS = ViewState.LOCATION_FIRST_CARD | ViewState.LOCATION_TOP_STACK_PEEKING | ViewState.LOCATION_MAIN_AREA Loading Loading @@ -603,6 +607,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, mHeadsUpObserver); } mUnlockMethodCache = UnlockMethodCache.getInstance(mContext); mUnlockMethodCache.addListener(this); startKeyguard(); mDozeServiceHost = new DozeServiceHost(); Loading Loading @@ -2159,8 +2164,8 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, public boolean isFalsingThresholdNeeded() { boolean onKeyguard = getBarState() == StatusBarState.KEYGUARD; boolean isMethodInsecure = mUnlockMethodCache.isMethodInsecure(); return onKeyguard && (isMethodInsecure || mDozing || mScreenOnComingFromTouch); boolean isCurrentlyInsecure = mUnlockMethodCache.isCurrentlyInsecure(); return onKeyguard && (isCurrentlyInsecure || mDozing || mScreenOnComingFromTouch); } public boolean isDozing() { Loading @@ -2176,6 +2181,18 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, return mScrimSrcModeEnabled; } /** * To be called when there's a state change in StatusBarKeyguardViewManager. */ public void onKeyguardViewManagerStatesUpdated() { logStateToEventlog(); } @Override // UnlockMethodCache.OnUnlockMethodChangedListener public void onUnlockMethodStateChanged() { logStateToEventlog(); } /** * All changes to the status bar and notifications funnel through here and are batched. */ Loading Loading @@ -3348,6 +3365,47 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, } } // State logging private void logStateToEventlog() { boolean isShowing = mStatusBarKeyguardViewManager.isShowing(); boolean isOccluded = mStatusBarKeyguardViewManager.isOccluded(); boolean isBouncerShowing = mStatusBarKeyguardViewManager.isBouncerShowing(); boolean isSecure = mUnlockMethodCache.isMethodSecure(); boolean isCurrentlyInsecure = mUnlockMethodCache.isCurrentlyInsecure(); int stateFingerprint = getLoggingFingerprint(mState, isShowing, isOccluded, isBouncerShowing, isSecure, isCurrentlyInsecure); if (stateFingerprint != mLastLoggedStateFingerprint) { EventLogTags.writeSysuiStatusBarState(mState, isShowing ? 1 : 0, isOccluded ? 1 : 0, isBouncerShowing ? 1 : 0, isSecure ? 1 : 0, isCurrentlyInsecure ? 1 : 0); mLastLoggedStateFingerprint = stateFingerprint; } } /** * Returns a fingerprint of fields logged to eventlog */ private static int getLoggingFingerprint(int statusBarState, boolean keyguardShowing, boolean keyguardOccluded, boolean bouncerShowing, boolean secure, boolean currentlyInsecure) { // Reserve 8 bits for statusBarState. We'll never go higher than // that, right? Riiiight. return (statusBarState & 0xFF) | ((keyguardShowing ? 1 : 0) << 8) | ((keyguardOccluded ? 1 : 0) << 9) | ((bouncerShowing ? 1 : 0) << 10) | ((secure ? 1 : 0) << 11) | ((currentlyInsecure ? 1 : 0) << 12); } // // tracing // Loading Loading @@ -3836,21 +3894,17 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, * @param state The {@link StatusBarState} to set. */ public void setBarState(int state) { if (state != mState) { EventLogTags.writeSysuiStatusBarState(state); // If we're visible and switched to SHADE_LOCKED (the user dragged // down on the lockscreen), clear notification LED, vibration, // ringing. // Other transitions are covered in handleVisibleToUserChanged(). if (mVisible && state == StatusBarState.SHADE_LOCKED) { if (state != mState && mVisible && state == StatusBarState.SHADE_LOCKED) { try { mBarService.clearNotificationEffects(); } catch (RemoteException e) { // Ignore. } } } mState = state; mStatusBarWindowManager.setStatusBarState(state); } Loading Loading @@ -3890,7 +3944,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, public void onTrackingStopped(boolean expand) { if (mState == StatusBarState.KEYGUARD || mState == StatusBarState.SHADE_LOCKED) { if (!expand && !mUnlockMethodCache.isMethodInsecure()) { if (!expand && !mUnlockMethodCache.isCurrentlyInsecure()) { showBouncer(); } } Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java +1 −1 Original line number Diff line number Diff line Loading @@ -88,7 +88,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener { public void onTrackingStarted() { mExpanding = true; mDarkenWhileDragging = !mUnlockMethodCache.isMethodInsecure(); mDarkenWhileDragging = !mUnlockMethodCache.isCurrentlyInsecure(); } public void onExpandingFinished() { Loading