diff options
author | 2011-06-25 03:54:11 +0900 | |
---|---|---|
committer | 2011-06-26 00:14:40 +0900 | |
commit | 4f0d290c5d112ebac434bd8de4635f7d42ea2df0 (patch) | |
tree | 04e25e7f7605dd0860147fc0c169ccc381b1881f /java/src/com/android/inputmethod/latin/CandidateView.java | |
parent | e7de39ac424356311ffde20f26c0517f241e2ba0 (diff) | |
download | latinime-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.java | 14 |
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; } } |