From 38fc7606b1d8869cd79a19f324bbcd97ba320994 Mon Sep 17 00:00:00 2001 From: Adrian Roos Date: Mon, 22 Sep 2014 17:34:56 +0200 Subject: [PATCH] Ensure that force lock works with accessibility enabled Fixes a bug where the force lock gesture was not available when an accessibility service was active, but touch exploration wasn't. Bug: 17514298 Change-Id: Ib42e28f643559040ad5f24d45456b0a41008c647 --- .../systemui/statusbar/KeyguardAffordanceView.java | 9 +++++++++ .../statusbar/phone/KeyguardBottomAreaView.java | 11 +++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardAffordanceView.java b/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardAffordanceView.java index a4161f9563084..e2464c2ffe915 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardAffordanceView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardAffordanceView.java @@ -497,4 +497,13 @@ public class KeyguardAffordanceView extends ImageView { public void setIsLeft(boolean left) { mIsLeft = left; } + + @Override + public boolean performClick() { + if (isClickable()) { + return super.performClick(); + } else { + return false; + } + } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java index 754fade755566..fceed2f1a3fa6 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java @@ -284,10 +284,13 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL if (mAccessibilityController == null) { return; } - mLockIcon.setClickable(mUnlockMethodCache.isTrustManaged() - || mAccessibilityController.isTouchExplorationEnabled()); - mLockIcon.setLongClickable(mAccessibilityController.isTouchExplorationEnabled() - && mUnlockMethodCache.isTrustManaged()); + boolean clickToUnlock = mAccessibilityController.isTouchExplorationEnabled(); + boolean clickToForceLock = mUnlockMethodCache.isTrustManaged() + && !mAccessibilityController.isAccessibilityEnabled(); + boolean longClickToForceLock = mUnlockMethodCache.isTrustManaged() + && !clickToForceLock; + mLockIcon.setClickable(clickToForceLock || clickToUnlock); + mLockIcon.setLongClickable(longClickToForceLock); mLockIcon.setFocusable(mAccessibilityController.isAccessibilityEnabled()); }