diff options
-rwxr-xr-x | packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java | 19 | ||||
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/qs/tiles/LockscreenToggleTile.java | 19 |
2 files changed, 22 insertions, 16 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java index 8555ef0..563dfa1 100755 --- a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java +++ b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java @@ -290,7 +290,7 @@ public class KeyguardViewMediator extends SystemUI { /** * Whether we are disabling the lock screen internally */ - private boolean mInternallyDisabled = false; + private Boolean mInternallyDisabled = null; /** * we send this intent when the keyguard is dismissed. @@ -690,9 +690,20 @@ public class KeyguardViewMediator extends SystemUI { CMSettings.Secure.LOCKSCREEN_INTERNALLY_ENABLED, getPersistedDefaultOldSetting() ? 1 : 0, UserHandle.USER_CURRENT) == 0; - if (newDisabledState != mInternallyDisabled && mKeyguardBound) { - // it was updated, - setKeyguardEnabledInternal(!newDisabledState); + + if (mKeyguardBound) { + if (mInternallyDisabled == null) { + // if it's enabled on boot, don't go through the notions of + // setting it enabled, as it might cause a flicker, just set the state + if (newDisabledState) { + setKeyguardEnabledInternal(false); // will set mInternallyDisabled + } else { + mInternallyDisabled = false; + } + } else if (newDisabledState != mInternallyDisabled) { + // it was updated, + setKeyguardEnabledInternal(!newDisabledState); + } } } }; diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/LockscreenToggleTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/LockscreenToggleTile.java index 37cfa6e..2d764ba 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/tiles/LockscreenToggleTile.java +++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/LockscreenToggleTile.java @@ -34,7 +34,6 @@ public class LockscreenToggleTile extends QSTile<QSTile.BooleanState> private KeyguardViewMediator mKeyguardViewMediator; private KeyguardMonitor mKeyguard; - private boolean mPersistedState; private boolean mListening; private KeyguardViewMediator.LockscreenEnabledSettingsObserver mSettingsObserver; @@ -52,15 +51,12 @@ public class LockscreenToggleTile extends QSTile<QSTile.BooleanState> @Override public void update() { - boolean newEnabledState = CMSettings.Secure.getIntForUser( + boolean newState = CMSettings.Secure.getIntForUser( mContext.getContentResolver(), CMSettings.Secure.LOCKSCREEN_INTERNALLY_ENABLED, getPersistedDefaultOldSetting() ? 1 : 0, UserHandle.USER_CURRENT) != 0; - if (newEnabledState != mPersistedState) { - mPersistedState = newEnabledState; - refreshState(); - } + refreshState(newState); } }; @@ -89,8 +85,9 @@ public class LockscreenToggleTile extends QSTile<QSTile.BooleanState> @Override protected void handleClick() { - setPersistedState(!mPersistedState); - refreshState(); + final boolean newState = !getState().value; + setPersistedState(newState); + refreshState(newState); } @Override @@ -101,9 +98,8 @@ public class LockscreenToggleTile extends QSTile<QSTile.BooleanState> @Override protected void handleUpdateState(BooleanState state, Object arg) { final boolean lockscreenEnforced = mKeyguardViewMediator.lockscreenEnforcedByDevicePolicy(); - final boolean lockscreenEnabled = lockscreenEnforced - || mPersistedState - || mKeyguardViewMediator.getKeyguardEnabledInternal(); + final boolean lockscreenEnabled = lockscreenEnforced || + arg != null ? (Boolean) arg : mKeyguardViewMediator.getKeyguardEnabledInternal(); state.value = lockscreenEnabled; state.visible = mKeyguardViewMediator.isKeyguardBound(); @@ -147,6 +143,5 @@ public class LockscreenToggleTile extends QSTile<QSTile.BooleanState> CMSettings.Secure.putIntForUser(mContext.getContentResolver(), CMSettings.Secure.LOCKSCREEN_INTERNALLY_ENABLED, enabled ? 1 : 0, UserHandle.USER_CURRENT); - mPersistedState = enabled; } } |