diff --git a/app/src/main/java/org/autojs/autojs/model/autocomplete/AnyWordsCompletion.java b/app/src/main/java/org/autojs/autojs/model/autocomplete/AnyWordsCompletion.java index d371498e..511a14b9 100644 --- a/app/src/main/java/org/autojs/autojs/model/autocomplete/AnyWordsCompletion.java +++ b/app/src/main/java/org/autojs/autojs/model/autocomplete/AnyWordsCompletion.java @@ -1,6 +1,7 @@ package org.autojs.autojs.model.autocomplete; import android.text.Editable; +import android.text.TextWatcher; import org.autojs.autojs.model.indices.Property; import org.autojs.autojs.ui.widget.SimpleTextWatcher; @@ -15,7 +16,7 @@ import java.util.regex.Pattern; * Created by Stardust on 2018/2/26. */ -public class AnyWordsCompletion implements SimpleTextWatcher.AfterTextChangedListener { +public class AnyWordsCompletion extends SimpleTextWatcher { private static final String PATTERN = "[\\W]"; diff --git a/app/src/main/java/org/autojs/autojs/model/autocomplete/AutoCompletion.java b/app/src/main/java/org/autojs/autojs/model/autocomplete/AutoCompletion.java index ca95c75f..514a3ce8 100644 --- a/app/src/main/java/org/autojs/autojs/model/autocomplete/AutoCompletion.java +++ b/app/src/main/java/org/autojs/autojs/model/autocomplete/AutoCompletion.java @@ -45,11 +45,13 @@ public class AutoCompletion { private AnyWordsCompletion mAnyWordsCompletion; private AtomicInteger mExecuteId = new AtomicInteger(); private Handler mHandler = new Handler(Looper.getMainLooper()); + private final EditText mEditText; public AutoCompletion(Context context, EditText editText) { buildDictionaryTree(context); + mEditText = editText; mAnyWordsCompletion = new AnyWordsCompletion(mExecutorService); - editText.addTextChangedListener(new SimpleTextWatcher(mAnyWordsCompletion)); + editText.addTextChangedListener(mAnyWordsCompletion); } public void setAutoCompleteCallback(AutoCompleteCallback autoCompleteCallback) { @@ -162,6 +164,7 @@ public class AutoCompletion { public void shutdown(){ + mEditText.removeTextChangedListener(mAnyWordsCompletion); mExecutorService.shutdownNow(); } } diff --git a/app/src/main/java/org/autojs/autojs/ui/widget/SimpleTextWatcher.java b/app/src/main/java/org/autojs/autojs/ui/widget/SimpleTextWatcher.java index 1fba7a31..98312c68 100644 --- a/app/src/main/java/org/autojs/autojs/ui/widget/SimpleTextWatcher.java +++ b/app/src/main/java/org/autojs/autojs/ui/widget/SimpleTextWatcher.java @@ -43,6 +43,9 @@ public class SimpleTextWatcher implements TextWatcher { mOnTextChangedListener = onTextChangedListener; } + public SimpleTextWatcher() { + } + @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { if (mBeforeTextChangedListener != null) {