aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod/latin/CandidateView.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/latin/CandidateView.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/latin/CandidateView.java')
-rw-r--r--java/src/com/android/inputmethod/latin/CandidateView.java14
1 files changed, 9 insertions, 5 deletions
diff --git a/java/src/com/android/inputmethod/latin/CandidateView.java b/java/src/com/android/inputmethod/latin/CandidateView.java
index 09fd3b473..bb1ccbfcd 100644
--- a/java/src/com/android/inputmethod/latin/CandidateView.java
+++ b/java/src/com/android/inputmethod/latin/CandidateView.java
@@ -21,7 +21,6 @@ import android.content.res.Resources;
import android.content.res.TypedArray;
import android.graphics.Color;
import android.graphics.Typeface;
-import android.os.Handler;
import android.os.Message;
import android.text.Spannable;
import android.text.SpannableString;
@@ -95,23 +94,28 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
private boolean mShowingAutoCorrectionInverted;
private boolean mShowingAddToDictionary;
- private final UiHandler mHandler = new UiHandler();
+ private final UiHandler mHandler = new UiHandler(this);
- private class UiHandler extends Handler {
+ private static class UiHandler extends StaticInnerHandlerWrapper<CandidateView> {
private static final int MSG_HIDE_PREVIEW = 0;
private static final int MSG_UPDATE_SUGGESTION = 1;
private static final long DELAY_HIDE_PREVIEW = 1000;
private static final long DELAY_UPDATE_SUGGESTION = 300;
+ public UiHandler(CandidateView outerInstance) {
+ super(outerInstance);
+ }
+
@Override
public void dispatchMessage(Message msg) {
+ final CandidateView candidateView = getOuterInstance();
switch (msg.what) {
case MSG_HIDE_PREVIEW:
- hidePreview();
+ candidateView.hidePreview();
break;
case MSG_UPDATE_SUGGESTION:
- updateSuggestions();
+ candidateView.updateSuggestions();
break;
}
}