Loading policy/src/com/android/internal/policy/impl/keyguard/KeyguardHostView.java +21 −0 Original line number Diff line number Diff line Loading @@ -67,6 +67,7 @@ public class KeyguardHostView extends KeyguardViewBase { private AppWidgetHost mAppWidgetHost; private KeyguardWidgetPager mAppWidgetContainer; private ViewFlipper mSecurityViewContainer; private KeyguardSelectorView mKeyguardSelectorView; private KeyguardTransportControlView mTransportControl; private boolean mEnableMenuKey; private boolean mIsVerifyUnlockOnly; Loading @@ -90,6 +91,7 @@ public class KeyguardHostView extends KeyguardViewBase { /*package*/ interface UserSwitcherCallback { void hideSecurityView(int duration); void showSecurityView(); void showUnlockHint(); } public KeyguardHostView(Context context) { Loading Loading @@ -144,6 +146,7 @@ public class KeyguardHostView extends KeyguardViewBase { KeyguardWidgetRegion kgwr = (KeyguardWidgetRegion) findViewById(R.id.kg_widget_region); kgwr.setVisibility(VISIBLE); mSecurityViewContainer = (ViewFlipper) findViewById(R.id.view_flipper); mKeyguardSelectorView = (KeyguardSelectorView) findViewById(R.id.keyguard_selector_view); addDefaultWidgets(); updateSecurityViews(); Loading Loading @@ -373,6 +376,18 @@ public class KeyguardHostView extends KeyguardViewBase { showSecurityScreen(mSecurityModel.getBackupFor(currentMode)); } public boolean showNextSecurityScreenIfPresent() { SecurityMode securityMode = mSecurityModel.getSecurityMode(); // Allow an alternate, such as biometric unlock securityMode = mSecurityModel.getAlternateFor(securityMode); if (SecurityMode.None == securityMode) { return false; } else { showSecurityScreen(securityMode); // switch to the alternate security view return true; } } private void showNextSecurityScreenOrFinish(boolean authenticated) { boolean finish = false; if (SecurityMode.None == mCurrentSecuritySelection) { Loading Loading @@ -794,6 +809,12 @@ public class KeyguardHostView extends KeyguardViewBase { public void showSecurityView() { mSecurityViewContainer.setAlpha(1.0f); } @Override public void showUnlockHint() { mKeyguardSelectorView.ping(); } }; multiUser.setCallback(callback); } Loading policy/src/com/android/internal/policy/impl/keyguard/KeyguardMultiUserAvatar.java +8 −11 Original line number Diff line number Diff line Loading @@ -57,32 +57,29 @@ class KeyguardMultiUserAvatar extends FrameLayout { KeyguardMultiUserAvatar icon = (KeyguardMultiUserAvatar) LayoutInflater.from(context).inflate(resId, userSelector, false); icon.setup(info, userSelector); icon.init(info, userSelector); return icon; } public KeyguardMultiUserAvatar(Context context) { super(context, null, 0); this(context, null, 0); } public KeyguardMultiUserAvatar(Context context, AttributeSet attrs) { super(context, attrs, 0); this(context, attrs, 0); } public KeyguardMultiUserAvatar(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public void setup(UserInfo user, KeyguardMultiUserSelectorView userSelector) { mUserInfo = user; mUserSelector = userSelector; init(); } private void init() { Resources res = mContext.getResources(); mActiveTextColor = res.getColor(R.color.kg_multi_user_text_active); mInactiveTextColor = res.getColor(R.color.kg_multi_user_text_inactive); } public void init(UserInfo user, KeyguardMultiUserSelectorView userSelector) { mUserInfo = user; mUserSelector = userSelector; mUserImage = (ImageView) findViewById(R.id.keyguard_user_avatar); mUserName = (TextView) findViewById(R.id.keyguard_user_name); Loading policy/src/com/android/internal/policy/impl/keyguard/KeyguardMultiUserSelectorView.java +2 −1 Original line number Diff line number Diff line Loading @@ -107,7 +107,8 @@ public class KeyguardMultiUserSelectorView extends FrameLayout implements View.O if (!(v instanceof KeyguardMultiUserAvatar)) return; final KeyguardMultiUserAvatar avatar = (KeyguardMultiUserAvatar) v; if (mActiveUserAvatar == avatar) { // They clicked the active user, no need to do anything // If they click the currently active user, show the unlock hint mCallback.showUnlockHint(); return; } else { // Reset the previously active user to appear inactive Loading policy/src/com/android/internal/policy/impl/keyguard/KeyguardSelectorView.java +4 −0 Original line number Diff line number Diff line Loading @@ -179,6 +179,10 @@ public class KeyguardSelectorView extends LinearLayout implements KeyguardSecuri return mGlowPadView.getTargetPosition(resId) != -1; } public void ping() { mGlowPadView.ping(); } private void updateTargets() { int currentUserHandle = mLockPatternUtils.getCurrentUser(); DevicePolicyManager dpm = mLockPatternUtils.getDevicePolicyManager(); Loading policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewManager.java +2 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ import android.view.ViewManager; import android.view.WindowManager; import android.widget.FrameLayout; import com.android.internal.policy.impl.keyguard.KeyguardSecurityModel.SecurityMode; import com.android.internal.widget.LockPatternUtils; import com.android.internal.R; Loading Loading @@ -191,6 +192,7 @@ public class KeyguardViewManager { if (userSwitched) { mKeyguardView.goToUserSwitcher(); mKeyguardView.showNextSecurityScreenIfPresent(); } if (mScreenOn) { Loading Loading
policy/src/com/android/internal/policy/impl/keyguard/KeyguardHostView.java +21 −0 Original line number Diff line number Diff line Loading @@ -67,6 +67,7 @@ public class KeyguardHostView extends KeyguardViewBase { private AppWidgetHost mAppWidgetHost; private KeyguardWidgetPager mAppWidgetContainer; private ViewFlipper mSecurityViewContainer; private KeyguardSelectorView mKeyguardSelectorView; private KeyguardTransportControlView mTransportControl; private boolean mEnableMenuKey; private boolean mIsVerifyUnlockOnly; Loading @@ -90,6 +91,7 @@ public class KeyguardHostView extends KeyguardViewBase { /*package*/ interface UserSwitcherCallback { void hideSecurityView(int duration); void showSecurityView(); void showUnlockHint(); } public KeyguardHostView(Context context) { Loading Loading @@ -144,6 +146,7 @@ public class KeyguardHostView extends KeyguardViewBase { KeyguardWidgetRegion kgwr = (KeyguardWidgetRegion) findViewById(R.id.kg_widget_region); kgwr.setVisibility(VISIBLE); mSecurityViewContainer = (ViewFlipper) findViewById(R.id.view_flipper); mKeyguardSelectorView = (KeyguardSelectorView) findViewById(R.id.keyguard_selector_view); addDefaultWidgets(); updateSecurityViews(); Loading Loading @@ -373,6 +376,18 @@ public class KeyguardHostView extends KeyguardViewBase { showSecurityScreen(mSecurityModel.getBackupFor(currentMode)); } public boolean showNextSecurityScreenIfPresent() { SecurityMode securityMode = mSecurityModel.getSecurityMode(); // Allow an alternate, such as biometric unlock securityMode = mSecurityModel.getAlternateFor(securityMode); if (SecurityMode.None == securityMode) { return false; } else { showSecurityScreen(securityMode); // switch to the alternate security view return true; } } private void showNextSecurityScreenOrFinish(boolean authenticated) { boolean finish = false; if (SecurityMode.None == mCurrentSecuritySelection) { Loading Loading @@ -794,6 +809,12 @@ public class KeyguardHostView extends KeyguardViewBase { public void showSecurityView() { mSecurityViewContainer.setAlpha(1.0f); } @Override public void showUnlockHint() { mKeyguardSelectorView.ping(); } }; multiUser.setCallback(callback); } Loading
policy/src/com/android/internal/policy/impl/keyguard/KeyguardMultiUserAvatar.java +8 −11 Original line number Diff line number Diff line Loading @@ -57,32 +57,29 @@ class KeyguardMultiUserAvatar extends FrameLayout { KeyguardMultiUserAvatar icon = (KeyguardMultiUserAvatar) LayoutInflater.from(context).inflate(resId, userSelector, false); icon.setup(info, userSelector); icon.init(info, userSelector); return icon; } public KeyguardMultiUserAvatar(Context context) { super(context, null, 0); this(context, null, 0); } public KeyguardMultiUserAvatar(Context context, AttributeSet attrs) { super(context, attrs, 0); this(context, attrs, 0); } public KeyguardMultiUserAvatar(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public void setup(UserInfo user, KeyguardMultiUserSelectorView userSelector) { mUserInfo = user; mUserSelector = userSelector; init(); } private void init() { Resources res = mContext.getResources(); mActiveTextColor = res.getColor(R.color.kg_multi_user_text_active); mInactiveTextColor = res.getColor(R.color.kg_multi_user_text_inactive); } public void init(UserInfo user, KeyguardMultiUserSelectorView userSelector) { mUserInfo = user; mUserSelector = userSelector; mUserImage = (ImageView) findViewById(R.id.keyguard_user_avatar); mUserName = (TextView) findViewById(R.id.keyguard_user_name); Loading
policy/src/com/android/internal/policy/impl/keyguard/KeyguardMultiUserSelectorView.java +2 −1 Original line number Diff line number Diff line Loading @@ -107,7 +107,8 @@ public class KeyguardMultiUserSelectorView extends FrameLayout implements View.O if (!(v instanceof KeyguardMultiUserAvatar)) return; final KeyguardMultiUserAvatar avatar = (KeyguardMultiUserAvatar) v; if (mActiveUserAvatar == avatar) { // They clicked the active user, no need to do anything // If they click the currently active user, show the unlock hint mCallback.showUnlockHint(); return; } else { // Reset the previously active user to appear inactive Loading
policy/src/com/android/internal/policy/impl/keyguard/KeyguardSelectorView.java +4 −0 Original line number Diff line number Diff line Loading @@ -179,6 +179,10 @@ public class KeyguardSelectorView extends LinearLayout implements KeyguardSecuri return mGlowPadView.getTargetPosition(resId) != -1; } public void ping() { mGlowPadView.ping(); } private void updateTargets() { int currentUserHandle = mLockPatternUtils.getCurrentUser(); DevicePolicyManager dpm = mLockPatternUtils.getDevicePolicyManager(); Loading
policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewManager.java +2 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ import android.view.ViewManager; import android.view.WindowManager; import android.widget.FrameLayout; import com.android.internal.policy.impl.keyguard.KeyguardSecurityModel.SecurityMode; import com.android.internal.widget.LockPatternUtils; import com.android.internal.R; Loading Loading @@ -191,6 +192,7 @@ public class KeyguardViewManager { if (userSwitched) { mKeyguardView.goToUserSwitcher(); mKeyguardView.showNextSecurityScreenIfPresent(); } if (mScreenOn) { Loading