From d78b586976af9b6b8f6e00c04747facfac313abc Mon Sep 17 00:00:00 2001 From: "Tadashi G. Takaoka" Date: Mon, 2 Jun 2014 18:43:07 +0900 Subject: [PATCH] Create AccessibilityDelegate only when accessibility mode is on Change-Id: I4cbae476d16723778b46ff765dd97832f279785f --- .../keyboard/MainKeyboardView.java | 26 ++++++++++++------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java b/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java index 95258ccdc..495cfa981 100644 --- a/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java +++ b/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java @@ -161,10 +161,9 @@ public final class MainKeyboardView extends KeyboardView implements PointerTrack private final TimerHandler mKeyTimerHandler; private final int mLanguageOnSpacebarHorizontalMargin; - private final DrawingHandler mDrawingHandler = - new DrawingHandler(this); + private final DrawingHandler mDrawingHandler = new DrawingHandler(this); - private final MainKeyboardAccessibilityDelegate mAccessibilityDelegate; + private MainKeyboardAccessibilityDelegate mAccessibilityDelegate; public MainKeyboardView(final Context context, final AttributeSet attrs) { this(context, attrs, R.attr.mainKeyboardViewStyle); @@ -262,8 +261,6 @@ public final class MainKeyboardView extends KeyboardView implements PointerTrack mLanguageOnSpacebarHorizontalMargin = (int)getResources().getDimension( R.dimen.config_language_on_spacebar_horizontal_margin); - - mAccessibilityDelegate = new MainKeyboardAccessibilityDelegate(this, mKeyDetector); } @Override @@ -384,7 +381,14 @@ public final class MainKeyboardView extends KeyboardView implements PointerTrack final int keyHeight = keyboard.mMostCommonKeyHeight - keyboard.mVerticalGap; mLanguageOnSpacebarTextSize = keyHeight * mLanguageOnSpacebarTextRatio; - mAccessibilityDelegate.setKeyboard(keyboard); + final MainKeyboardAccessibilityDelegate accessibilityDelegate; + if (AccessibilityUtils.getInstance().isAccessibilityEnabled()) { + accessibilityDelegate = new MainKeyboardAccessibilityDelegate(this, mKeyDetector); + accessibilityDelegate.setKeyboard(keyboard); + } else { + accessibilityDelegate = null; + } + mAccessibilityDelegate = accessibilityDelegate; } /** @@ -726,8 +730,9 @@ public final class MainKeyboardView extends KeyboardView implements PointerTrack } public void onHideWindow() { - if (AccessibilityUtils.getInstance().isAccessibilityEnabled()) { - mAccessibilityDelegate.onHideWindow(); + final MainKeyboardAccessibilityDelegate accessibilityDelegate = mAccessibilityDelegate; + if (accessibilityDelegate != null) { + accessibilityDelegate.onHideWindow(); } } @@ -736,8 +741,9 @@ public final class MainKeyboardView extends KeyboardView implements PointerTrack */ @Override public boolean onHoverEvent(final MotionEvent event) { - if (AccessibilityUtils.getInstance().isTouchExplorationEnabled()) { - return mAccessibilityDelegate.onHoverEvent(event); + final MainKeyboardAccessibilityDelegate accessibilityDelegate = mAccessibilityDelegate; + if (accessibilityDelegate != null) { + return accessibilityDelegate.onHoverEvent(event); } return super.onHoverEvent(event); }