summaryrefslogtreecommitdiffstats
path: root/packages
diff options
context:
space:
mode:
authorDanesh M <danesh@cyngn.com>2016-05-17 16:49:02 -0700
committerDanesh M <daneshm90@gmail.com>2016-05-18 14:13:46 -0700
commit2cfbb7a359f8fe549d734693727afa4670876eb7 (patch)
treec45b377281f74afea7049d7244f19af875d34e0a /packages
parent234fb3b03cd4c979286981cf77fef481700a329b (diff)
downloadframeworks_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')
-rwxr-xr-xpackages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java4
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java2
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java14
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowManager.java12
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/policy/LiveLockScreenController.java1
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);
}