aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod/accessibility/AccessibleInputMethodServiceProxy.java
diff options
context:
space:
mode:
authorKen Wakasa <kwakasa@google.com>2011-06-25 03:54:11 +0900
committerKen Wakasa <kwakasa@google.com>2011-06-26 00:14:40 +0900
commit4f0d290c5d112ebac434bd8de4635f7d42ea2df0 (patch)
tree04e25e7f7605dd0860147fc0c169ccc381b1881f /java/src/com/android/inputmethod/accessibility/AccessibleInputMethodServiceProxy.java
parente7de39ac424356311ffde20f26c0517f241e2ba0 (diff)
downloadlatinime-4f0d290c5d112ebac434bd8de4635f7d42ea2df0.tar.gz
latinime-4f0d290c5d112ebac434bd8de4635f7d42ea2df0.tar.xz
latinime-4f0d290c5d112ebac434bd8de4635f7d42ea2df0.zip
Avoid memory leak by by non-static Handler inner classes
bug: 4901934 Change-Id: I870ab2e621ef3640a84468f09c074cdd726dc963
Diffstat (limited to 'java/src/com/android/inputmethod/accessibility/AccessibleInputMethodServiceProxy.java')
-rw-r--r--java/src/com/android/inputmethod/accessibility/AccessibleInputMethodServiceProxy.java14
1 files changed, 8 insertions, 6 deletions
diff --git a/java/src/com/android/inputmethod/accessibility/AccessibleInputMethodServiceProxy.java b/java/src/com/android/inputmethod/accessibility/AccessibleInputMethodServiceProxy.java
index 043266c70..7199550a9 100644
--- a/java/src/com/android/inputmethod/accessibility/AccessibleInputMethodServiceProxy.java
+++ b/java/src/com/android/inputmethod/accessibility/AccessibleInputMethodServiceProxy.java
@@ -18,7 +18,6 @@ package com.android.inputmethod.accessibility;
import android.content.SharedPreferences;
import android.inputmethodservice.InputMethodService;
-import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.text.TextUtils;
@@ -26,6 +25,7 @@ import android.view.inputmethod.ExtractedText;
import android.view.inputmethod.ExtractedTextRequest;
import com.android.inputmethod.latin.R;
+import com.android.inputmethod.latin.StaticInnerHandlerWrapper;
public class AccessibleInputMethodServiceProxy implements AccessibleKeyboardActionListener {
private static final AccessibleInputMethodServiceProxy sInstance =
@@ -42,18 +42,20 @@ public class AccessibleInputMethodServiceProxy implements AccessibleKeyboardActi
private AccessibilityHandler mAccessibilityHandler;
- private class AccessibilityHandler extends Handler {
+ private static class AccessibilityHandler
+ extends StaticInnerHandlerWrapper<AccessibleInputMethodServiceProxy> {
private static final int MSG_NO_HOVER_SELECTION = 0;
- public AccessibilityHandler(Looper looper) {
- super(looper);
+ public AccessibilityHandler(AccessibleInputMethodServiceProxy outerInstance,
+ Looper looper) {
+ super(outerInstance, looper);
}
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case MSG_NO_HOVER_SELECTION:
- notifyNoHoverSelection();
+ getOuterInstance().notifyNoHoverSelection();
break;
}
}
@@ -82,7 +84,7 @@ public class AccessibleInputMethodServiceProxy implements AccessibleKeyboardActi
private void initInternal(InputMethodService inputMethod, SharedPreferences prefs) {
mInputMethod = inputMethod;
- mAccessibilityHandler = new AccessibilityHandler(inputMethod.getMainLooper());
+ mAccessibilityHandler = new AccessibilityHandler(this, inputMethod.getMainLooper());
}
/**