Loading packages/Keyguard/src/com/android/keyguard/KeyguardHostView.java +51 −54 Original line number Diff line number Diff line Loading @@ -90,9 +90,6 @@ public class KeyguardHostView extends KeyguardViewBase { private SecurityMode mCurrentSecuritySelection = SecurityMode.Invalid; private int mAppWidgetToShow; private boolean mCheckAppWidgetConsistencyOnBootCompleted = false; private boolean mCleanupAppWidgetsOnBootCompleted = false; protected OnDismissAction mDismissAction; protected int mFailedAttempts; Loading @@ -117,8 +114,6 @@ public class KeyguardHostView extends KeyguardViewBase { private KeyguardMultiUserSelectorView mKeyguardMultiUserSelectorView; private boolean mIsScreenOn; protected int mClientGeneration; protected boolean mShowSecurityWhenReturn; Loading @@ -127,6 +122,8 @@ public class KeyguardHostView extends KeyguardViewBase { private MyOnClickHandler mOnClickHandler = new MyOnClickHandler(this); private Runnable mPostBootCompletedRunnable; /*package*/ interface UserSwitcherCallback { void hideSecurityView(int duration); void showSecurityView(); Loading Loading @@ -185,8 +182,6 @@ public class KeyguardHostView extends KeyguardViewBase { mAppWidgetHost = new AppWidgetHost(userContext, APPWIDGET_HOST_ID, mOnClickHandler, Looper.myLooper()); cleanupAppWidgetIds(); mAppWidgetManager = AppWidgetManager.getInstance(userContext); mSecurityModel = new KeyguardSecurityModel(context); Loading Loading @@ -228,13 +223,8 @@ public class KeyguardHostView extends KeyguardViewBase { } private void cleanupAppWidgetIds() { // Since this method may delete a widget (which we can't do until boot completed) we // may have to defer it until after boot complete. if (!KeyguardUpdateMonitor.getInstance(mContext).hasBootCompleted()) { mCleanupAppWidgetsOnBootCompleted = true; return; } if (!mSafeModeEnabled && !widgetsDisabled()) { if (mSafeModeEnabled || widgetsDisabled()) return; // Clean up appWidgetIds that are bound to lockscreen, but not actually used // This is only to clean up after another bug: we used to not call // deleteAppWidgetId when a user manually deleted a widget in keyguard. This code Loading @@ -251,7 +241,6 @@ public class KeyguardHostView extends KeyguardViewBase { } } } } private static boolean contains(int[] array, int target) { for (int value : array) { Loading @@ -266,14 +255,9 @@ public class KeyguardHostView extends KeyguardViewBase { new KeyguardUpdateMonitorCallback() { @Override public void onBootCompleted() { if (mCheckAppWidgetConsistencyOnBootCompleted) { checkAppWidgetConsistency(); mSwitchPageRunnable.run(); mCheckAppWidgetConsistencyOnBootCompleted = false; } if (mCleanupAppWidgetsOnBootCompleted) { cleanupAppWidgetIds(); mCleanupAppWidgetsOnBootCompleted = false; if (mPostBootCompletedRunnable != null) { mPostBootCompletedRunnable.run(); mPostBootCompletedRunnable = null; } } @Override Loading Loading @@ -398,12 +382,29 @@ public class KeyguardHostView extends KeyguardViewBase { setBackButtonEnabled(false); addDefaultWidgets(); if (KeyguardUpdateMonitor.getInstance(mContext).hasBootCompleted()) { updateAndAddWidgets(); } else { // We can't add widgets until after boot completes because AppWidgetHost may try // to contact the providers. Do it later. mPostBootCompletedRunnable = new Runnable() { @Override public void run() { updateAndAddWidgets(); } }; } addWidgetsFromSettings(); if (!shouldEnableAddWidget()) { mAppWidgetContainer.setAddWidgetEnabled(false); showPrimarySecurityScreen(false); updateSecurityViews(); enableUserSelectorIfNecessary(); } private void updateAndAddWidgets() { cleanupAppWidgetIds(); addDefaultWidgets(); addWidgetsFromSettings(); maybeEnableAddButton(); checkAppWidgetConsistency(); // Don't let the user drag the challenge down if widgets are disabled. Loading @@ -411,12 +412,17 @@ public class KeyguardHostView extends KeyguardViewBase { mSlidingChallengeLayout.setEnableChallengeDragging(!widgetsDisabled()); } // Select the appropriate page mSwitchPageRunnable.run(); // This needs to be called after the pages are all added. mViewStateManager.showUsabilityHints(); } showPrimarySecurityScreen(false); updateSecurityViews(); private void maybeEnableAddButton() { if (!shouldEnableAddWidget()) { mAppWidgetContainer.setAddWidgetEnabled(false); } } private void setBackButtonEnabled(boolean enabled) { Loading Loading @@ -646,7 +652,6 @@ public class KeyguardHostView extends KeyguardViewBase { } private void showAlmostAtWipeDialog(int attempts, int remaining) { int timeoutInSeconds = (int) LockPatternUtils.FAILED_ATTEMPT_TIMEOUT_MS / 1000; String message = mContext.getString(R.string.kg_failed_attempts_almost_at_wipe, attempts, remaining); showDialog(null, message); Loading Loading @@ -1025,7 +1030,6 @@ public class KeyguardHostView extends KeyguardViewBase { @Override public void onScreenTurnedOn() { if (DEBUG) Log.d(TAG, "screen on, instance " + Integer.toHexString(hashCode())); mIsScreenOn = true; showPrimarySecurityScreen(false); getSecurityView(mCurrentSecuritySelection).onResume(KeyguardSecurityView.SCREEN_ON); Loading @@ -1045,14 +1049,15 @@ public class KeyguardHostView extends KeyguardViewBase { public void onScreenTurnedOff() { if (DEBUG) Log.d(TAG, String.format("screen off, instance %s at %s", Integer.toHexString(hashCode()), SystemClock.uptimeMillis())); mIsScreenOn = false; // Once the screen turns off, we no longer consider this to be first boot and we want the // biometric unlock to start next time keyguard is shown. KeyguardUpdateMonitor.getInstance(mContext).setAlternateUnlockEnabled(true); // We use mAppWidgetToShow to show a particular widget after you add it-- once the screen // turns off we reset that behavior clearAppWidgetToShow(); if (KeyguardUpdateMonitor.getInstance(mContext).hasBootCompleted()) { checkAppWidgetConsistency(); } showPrimarySecurityScreen(true); getSecurityView(mCurrentSecuritySelection).onPause(); CameraWidgetFrame cameraPage = findCameraPage(); Loading Loading @@ -1224,8 +1229,6 @@ public class KeyguardHostView extends KeyguardViewBase { mAppWidgetContainer.addWidget(cameraWidget); } } enableUserSelectorIfNecessary(); } /** Loading Loading @@ -1311,12 +1314,6 @@ public class KeyguardHostView extends KeyguardViewBase { } public void checkAppWidgetConsistency() { // Since this method may bind a widget (which we can't do until boot completed) we // may have to defer it until after boot complete. if (!KeyguardUpdateMonitor.getInstance(mContext).hasBootCompleted()) { mCheckAppWidgetConsistencyOnBootCompleted = true; return; } final int childCount = mAppWidgetContainer.getChildCount(); boolean widgetPageExists = false; for (int i = 0; i < childCount; i++) { Loading Loading
packages/Keyguard/src/com/android/keyguard/KeyguardHostView.java +51 −54 Original line number Diff line number Diff line Loading @@ -90,9 +90,6 @@ public class KeyguardHostView extends KeyguardViewBase { private SecurityMode mCurrentSecuritySelection = SecurityMode.Invalid; private int mAppWidgetToShow; private boolean mCheckAppWidgetConsistencyOnBootCompleted = false; private boolean mCleanupAppWidgetsOnBootCompleted = false; protected OnDismissAction mDismissAction; protected int mFailedAttempts; Loading @@ -117,8 +114,6 @@ public class KeyguardHostView extends KeyguardViewBase { private KeyguardMultiUserSelectorView mKeyguardMultiUserSelectorView; private boolean mIsScreenOn; protected int mClientGeneration; protected boolean mShowSecurityWhenReturn; Loading @@ -127,6 +122,8 @@ public class KeyguardHostView extends KeyguardViewBase { private MyOnClickHandler mOnClickHandler = new MyOnClickHandler(this); private Runnable mPostBootCompletedRunnable; /*package*/ interface UserSwitcherCallback { void hideSecurityView(int duration); void showSecurityView(); Loading Loading @@ -185,8 +182,6 @@ public class KeyguardHostView extends KeyguardViewBase { mAppWidgetHost = new AppWidgetHost(userContext, APPWIDGET_HOST_ID, mOnClickHandler, Looper.myLooper()); cleanupAppWidgetIds(); mAppWidgetManager = AppWidgetManager.getInstance(userContext); mSecurityModel = new KeyguardSecurityModel(context); Loading Loading @@ -228,13 +223,8 @@ public class KeyguardHostView extends KeyguardViewBase { } private void cleanupAppWidgetIds() { // Since this method may delete a widget (which we can't do until boot completed) we // may have to defer it until after boot complete. if (!KeyguardUpdateMonitor.getInstance(mContext).hasBootCompleted()) { mCleanupAppWidgetsOnBootCompleted = true; return; } if (!mSafeModeEnabled && !widgetsDisabled()) { if (mSafeModeEnabled || widgetsDisabled()) return; // Clean up appWidgetIds that are bound to lockscreen, but not actually used // This is only to clean up after another bug: we used to not call // deleteAppWidgetId when a user manually deleted a widget in keyguard. This code Loading @@ -251,7 +241,6 @@ public class KeyguardHostView extends KeyguardViewBase { } } } } private static boolean contains(int[] array, int target) { for (int value : array) { Loading @@ -266,14 +255,9 @@ public class KeyguardHostView extends KeyguardViewBase { new KeyguardUpdateMonitorCallback() { @Override public void onBootCompleted() { if (mCheckAppWidgetConsistencyOnBootCompleted) { checkAppWidgetConsistency(); mSwitchPageRunnable.run(); mCheckAppWidgetConsistencyOnBootCompleted = false; } if (mCleanupAppWidgetsOnBootCompleted) { cleanupAppWidgetIds(); mCleanupAppWidgetsOnBootCompleted = false; if (mPostBootCompletedRunnable != null) { mPostBootCompletedRunnable.run(); mPostBootCompletedRunnable = null; } } @Override Loading Loading @@ -398,12 +382,29 @@ public class KeyguardHostView extends KeyguardViewBase { setBackButtonEnabled(false); addDefaultWidgets(); if (KeyguardUpdateMonitor.getInstance(mContext).hasBootCompleted()) { updateAndAddWidgets(); } else { // We can't add widgets until after boot completes because AppWidgetHost may try // to contact the providers. Do it later. mPostBootCompletedRunnable = new Runnable() { @Override public void run() { updateAndAddWidgets(); } }; } addWidgetsFromSettings(); if (!shouldEnableAddWidget()) { mAppWidgetContainer.setAddWidgetEnabled(false); showPrimarySecurityScreen(false); updateSecurityViews(); enableUserSelectorIfNecessary(); } private void updateAndAddWidgets() { cleanupAppWidgetIds(); addDefaultWidgets(); addWidgetsFromSettings(); maybeEnableAddButton(); checkAppWidgetConsistency(); // Don't let the user drag the challenge down if widgets are disabled. Loading @@ -411,12 +412,17 @@ public class KeyguardHostView extends KeyguardViewBase { mSlidingChallengeLayout.setEnableChallengeDragging(!widgetsDisabled()); } // Select the appropriate page mSwitchPageRunnable.run(); // This needs to be called after the pages are all added. mViewStateManager.showUsabilityHints(); } showPrimarySecurityScreen(false); updateSecurityViews(); private void maybeEnableAddButton() { if (!shouldEnableAddWidget()) { mAppWidgetContainer.setAddWidgetEnabled(false); } } private void setBackButtonEnabled(boolean enabled) { Loading Loading @@ -646,7 +652,6 @@ public class KeyguardHostView extends KeyguardViewBase { } private void showAlmostAtWipeDialog(int attempts, int remaining) { int timeoutInSeconds = (int) LockPatternUtils.FAILED_ATTEMPT_TIMEOUT_MS / 1000; String message = mContext.getString(R.string.kg_failed_attempts_almost_at_wipe, attempts, remaining); showDialog(null, message); Loading Loading @@ -1025,7 +1030,6 @@ public class KeyguardHostView extends KeyguardViewBase { @Override public void onScreenTurnedOn() { if (DEBUG) Log.d(TAG, "screen on, instance " + Integer.toHexString(hashCode())); mIsScreenOn = true; showPrimarySecurityScreen(false); getSecurityView(mCurrentSecuritySelection).onResume(KeyguardSecurityView.SCREEN_ON); Loading @@ -1045,14 +1049,15 @@ public class KeyguardHostView extends KeyguardViewBase { public void onScreenTurnedOff() { if (DEBUG) Log.d(TAG, String.format("screen off, instance %s at %s", Integer.toHexString(hashCode()), SystemClock.uptimeMillis())); mIsScreenOn = false; // Once the screen turns off, we no longer consider this to be first boot and we want the // biometric unlock to start next time keyguard is shown. KeyguardUpdateMonitor.getInstance(mContext).setAlternateUnlockEnabled(true); // We use mAppWidgetToShow to show a particular widget after you add it-- once the screen // turns off we reset that behavior clearAppWidgetToShow(); if (KeyguardUpdateMonitor.getInstance(mContext).hasBootCompleted()) { checkAppWidgetConsistency(); } showPrimarySecurityScreen(true); getSecurityView(mCurrentSecuritySelection).onPause(); CameraWidgetFrame cameraPage = findCameraPage(); Loading Loading @@ -1224,8 +1229,6 @@ public class KeyguardHostView extends KeyguardViewBase { mAppWidgetContainer.addWidget(cameraWidget); } } enableUserSelectorIfNecessary(); } /** Loading Loading @@ -1311,12 +1314,6 @@ public class KeyguardHostView extends KeyguardViewBase { } public void checkAppWidgetConsistency() { // Since this method may bind a widget (which we can't do until boot completed) we // may have to defer it until after boot complete. if (!KeyguardUpdateMonitor.getInstance(mContext).hasBootCompleted()) { mCheckAppWidgetConsistencyOnBootCompleted = true; return; } final int childCount = mAppWidgetContainer.getChildCount(); boolean widgetPageExists = false; for (int i = 0; i < childCount; i++) { Loading