diff options
author | The Android Open Source Project <initial-contribution@android.com> | 2009-03-02 22:54:41 -0800 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2009-03-02 22:54:41 -0800 |
commit | b28e1b7d95a4a9aeae54dcac6d1a24fa612ab918 (patch) | |
tree | 84e76f294704a009453c337f6d4aea69bca5134b /src/com/android/launcher/Search.java | |
parent | 233a0136ea1fe86c61f02eb7b60dd2a9e3af4d91 (diff) | |
download | android_packages_apps_Trebuchet-b28e1b7d95a4a9aeae54dcac6d1a24fa612ab918.tar.gz android_packages_apps_Trebuchet-b28e1b7d95a4a9aeae54dcac6d1a24fa612ab918.tar.bz2 android_packages_apps_Trebuchet-b28e1b7d95a4a9aeae54dcac6d1a24fa612ab918.zip |
auto import from //depot/cupcake/@137055
Diffstat (limited to 'src/com/android/launcher/Search.java')
-rw-r--r-- | src/com/android/launcher/Search.java | 36 |
1 files changed, 33 insertions, 3 deletions
diff --git a/src/com/android/launcher/Search.java b/src/com/android/launcher/Search.java index d33fd69fa..522a43262 100644 --- a/src/com/android/launcher/Search.java +++ b/src/com/android/launcher/Search.java @@ -57,8 +57,6 @@ import android.widget.TextView; import android.widget.AdapterView.OnItemClickListener; import android.widget.AdapterView.OnItemSelectedListener; -import java.util.List; - public class Search extends LinearLayout implements OnClickListener, OnKeyListener, OnLongClickListener, TextWatcher, OnItemClickListener, OnItemSelectedListener { @@ -81,6 +79,7 @@ public class Search extends LinearLayout implements OnClickListener, OnKeyListen private Intent mVoiceSearchIntent; private Rect mTempRect = new Rect(); + private boolean mRestoreFocus = false; /** * Used to inflate the Workspace from XML. @@ -170,7 +169,26 @@ public class Search extends LinearLayout implements OnClickListener, OnKeyListen getContext().startActivity(launcher); } - + + @Override + public void onWindowFocusChanged(boolean hasWindowFocus) { + if (!hasWindowFocus && hasFocus()) { + mRestoreFocus = true; + } + + super.onWindowFocusChanged(hasWindowFocus); + + if (hasWindowFocus && mRestoreFocus) { + if (isInTouchMode()) { + final AutoCompleteTextView searchText = mSearchText; + searchText.setSelectAllOnFocus(false); + searchText.requestFocusFromTouch(); + searchText.setSelectAllOnFocus(true); + } + mRestoreFocus = false; + } + } + /** * Implements TextWatcher (for EditText) */ @@ -371,6 +389,18 @@ public class Search extends LinearLayout implements OnClickListener, OnKeyListen } /** + * Remove internal cursor references when detaching from window which + * prevents {@link Context} leaks. + */ + @Override + public void onDetachedFromWindow() { + if (mSuggestionsAdapter != null) { + mSuggestionsAdapter.changeCursor(null); + mSuggestionsAdapter = null; + } + } + + /** * Implements OnItemClickListener */ public void onItemClick(AdapterView<?> parent, View view, int position, long id) { |