diff options
author | Danesh M <danesh@cyngn.com> | 2016-05-17 16:49:02 -0700 |
---|---|---|
committer | Danesh M <daneshm90@gmail.com> | 2016-05-18 14:13:46 -0700 |
commit | 2cfbb7a359f8fe549d734693727afa4670876eb7 (patch) | |
tree | c45b377281f74afea7049d7244f19af875d34e0a /packages | |
parent | 234fb3b03cd4c979286981cf77fef481700a329b (diff) | |
download | frameworks_base-2cfbb7a359f8fe549d734693727afa4670876eb7.zip frameworks_base-2cfbb7a359f8fe549d734693727afa4670876eb7.tar.gz frameworks_base-2cfbb7a359f8fe549d734693727afa4670876eb7.tar.bz2 |
SystemUI : Fix left swipe when dismissing bouncer
- Only show bouncer when requesting dismiss, which will set the states
for us.
- Also remove duplicate states.
- Ensure we disable edge gesture when showKeyguard is called
- Bail out on showKeyguard if already in keyguard.
CYNGNOS-2872
Change-Id: I6be10923de1590b386c270925654669a8f832cfe
Diffstat (limited to 'packages')
5 files changed, 25 insertions, 8 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java index 3c9f47f..166b25c 100755 --- a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java +++ b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java @@ -62,6 +62,7 @@ import android.view.animation.AnimationUtils; import com.android.systemui.cm.UserContentObserver; import com.android.systemui.qs.tiles.LockscreenToggleTile; +import com.android.systemui.statusbar.StatusBarState; import cyanogenmod.app.Profile; import cyanogenmod.app.ProfileManager; @@ -1297,7 +1298,8 @@ public class KeyguardViewMediator extends SystemUI { public void showKeyguard() { // This is to prevent left edge from interfering // with affordances. - if (mStatusBar.isAffordanceSwipeInProgress()) { + if (mStatusBar.isAffordanceSwipeInProgress() + || mStatusBar.getBarState() == StatusBarState.KEYGUARD) { return; } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java index 6b6ce5b..d992b17 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java @@ -88,6 +88,8 @@ public class KeyguardBouncer { if (mRoot.getVisibility() == View.VISIBLE || mShowingSoon) { return; } + // ensure external keyguard view does not have focus + mPhoneStatusBar.unfocusKeyguardExternalView(); mPhoneStatusBar.getScrimController().forceHideScrims(false); // Don't hide bottom area if we are in the middle of a affordance // launch transition, since once the animation is finished, NPV diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java index 87acad4..cf69cf0 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java @@ -928,6 +928,9 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, mLiveLockScreenController = new LiveLockScreenController(mContext, this, mNotificationPanel); mNotificationPanel.setLiveController(mLiveLockScreenController); + if (mStatusBarWindowManager != null) { + mStatusBarWindowManager.setLiveLockscreenController(mLiveLockScreenController); + } if (mHeadsUpManager == null) { mHeadsUpManager = new HeadsUpManager(context, mStatusBarWindow); @@ -3461,6 +3464,9 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, mStatusBarWindowManager = new StatusBarWindowManager(mContext, mKeyguardMonitor); mStatusBarWindowManager.setShowingMedia(mKeyguardShowingMedia); mStatusBarWindowManager.add(mStatusBarWindow, getStatusBarHeight()); + if (mLiveLockScreenController != null) { + mStatusBarWindowManager.setLiveLockscreenController(mLiveLockScreenController); + } } // called by makeStatusbar and also by PhoneStatusBarView @@ -4348,6 +4354,12 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, } mAssistManager.onLockscreenShown(); mKeyguardBottomArea.requestFocus(); + try { + WindowManagerGlobal.getWindowManagerService() + .setLiveLockscreenEdgeDetector(false); + } catch (RemoteException e){ + e.printStackTrace(); + } if (mLiveLockScreenController.isShowingLiveLockScreenView()) { mLiveLockScreenController.getLiveLockScreenView().onKeyguardShowing( mStatusBarKeyguardViewManager.isScreenTurnedOn()); @@ -4685,8 +4697,6 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, public void showBouncer() { if (!mRecreating && mNotificationPanel.mCanDismissKeyguard && (mState != StatusBarState.SHADE || mLiveLockScreenController.getLiveLockScreenHasFocus())) { - // ensure external keyguard view does not have focus - unfocusKeyguardExternalView(); mWaitingForKeyguardExit = mStatusBarKeyguardViewManager.isShowing(); mStatusBarKeyguardViewManager.dismiss(); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowManager.java index b539194..fc2d638 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowManager.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowManager.java @@ -24,7 +24,6 @@ import android.graphics.Point; import android.graphics.PixelFormat; import android.os.Handler; import android.os.SystemProperties; -import android.util.Log; import android.view.Gravity; import android.view.Display; import android.view.SurfaceSession; @@ -37,6 +36,7 @@ import com.android.systemui.keyguard.KeyguardViewMediator; import com.android.systemui.statusbar.BaseStatusBar; import com.android.systemui.statusbar.StatusBarState; import com.android.systemui.statusbar.policy.KeyguardMonitor; +import com.android.systemui.statusbar.policy.LiveLockScreenController; import cyanogenmod.providers.CMSettings; import java.io.FileDescriptor; @@ -70,6 +70,7 @@ public class StatusBarWindowManager implements KeyguardMonitor.Callback { private static final int STATUS_BAR_LAYER = 16 * TYPE_LAYER_MULTIPLIER + TYPE_LAYER_OFFSET; private final State mCurrentState = new State(); + private LiveLockScreenController mLiveLockScreenController; public StatusBarWindowManager(Context context, KeyguardMonitor kgm) { mContext = context; @@ -346,7 +347,7 @@ public class StatusBarWindowManager implements KeyguardMonitor.Callback { } public void setKeyguardExternalViewFocus(boolean hasFocus) { - mCurrentState.keyguardExternalViewHasFocus = hasFocus; + mLiveLockScreenController.onLiveLockScreenFocusChanged(hasFocus); // make the keyguard occluded so the external view gets full focus setKeyguardOccluded(hasFocus); } @@ -399,7 +400,11 @@ public class StatusBarWindowManager implements KeyguardMonitor.Callback { } public boolean keyguardExternalViewHasFocus() { - return mCurrentState.keyguardExternalViewHasFocus; + return mLiveLockScreenController.getLiveLockScreenHasFocus(); + } + + public void setLiveLockscreenController(LiveLockScreenController liveLockScreenController) { + mLiveLockScreenController = liveLockScreenController; } private static class State { @@ -416,7 +421,6 @@ public class StatusBarWindowManager implements KeyguardMonitor.Callback { boolean forceStatusBarVisible; boolean forceCollapsed; boolean forceDozeBrightness; - boolean keyguardExternalViewHasFocus; /** * The {@link BaseStatusBar} state from the status bar. diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/LiveLockScreenController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/LiveLockScreenController.java index a70f424..b292441 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/LiveLockScreenController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/LiveLockScreenController.java @@ -167,7 +167,6 @@ public class LiveLockScreenController { mHandler.post(new Runnable() { @Override public void run() { - mBar.showKeyguard(); mBar.startActivityDismissingKeyguard(intent, false, true, true, null); } |