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
This commit is contained in:
Adrian Roos
2014-09-22 17:34:56 +02:00
parent ee3ef2b8af
commit 38fc7606b1
2 changed files with 16 additions and 4 deletions

View File

@@ -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;
}
}
}

View File

@@ -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());
}