aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod/deprecated/voice/VoiceInput.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/deprecated/voice/VoiceInput.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/deprecated/voice/VoiceInput.java')
-rw-r--r--java/src/com/android/inputmethod/deprecated/voice/VoiceInput.java17
1 files changed, 12 insertions, 5 deletions
diff --git a/java/src/com/android/inputmethod/deprecated/voice/VoiceInput.java b/java/src/com/android/inputmethod/deprecated/voice/VoiceInput.java
index b718ebbb7..8969a2168 100644
--- a/java/src/com/android/inputmethod/deprecated/voice/VoiceInput.java
+++ b/java/src/com/android/inputmethod/deprecated/voice/VoiceInput.java
@@ -19,6 +19,7 @@ package com.android.inputmethod.deprecated.voice;
import com.android.inputmethod.latin.EditingUtils;
import com.android.inputmethod.latin.LatinImeLogger;
import com.android.inputmethod.latin.R;
+import com.android.inputmethod.latin.StaticInnerHandlerWrapper;
import android.content.ContentResolver;
import android.content.Context;
@@ -26,7 +27,6 @@ import android.content.Intent;
import android.content.res.Configuration;
import android.os.Build;
import android.os.Bundle;
-import android.os.Handler;
import android.os.Message;
import android.os.Parcelable;
import android.speech.RecognitionListener;
@@ -132,13 +132,20 @@ public class VoiceInput implements OnClickListener {
private final static int MSG_RESET = 1;
- private final Handler mHandler = new Handler() {
+ private final UIHandler mHandler = new UIHandler(this);
+
+ private static class UIHandler extends StaticInnerHandlerWrapper<VoiceInput> {
+ public UIHandler(VoiceInput outerInstance) {
+ super(outerInstance);
+ }
+
@Override
public void handleMessage(Message msg) {
if (msg.what == MSG_RESET) {
- mState = DEFAULT;
- mRecognitionView.finish();
- mUiListener.onCancelVoice();
+ final VoiceInput voiceInput = getOuterInstance();
+ voiceInput.mState = DEFAULT;
+ voiceInput.mRecognitionView.finish();
+ voiceInput.mUiListener.onCancelVoice();
}
}
};