diff --git a/src/com/android/settings/dashboard/DashboardSummary.java b/src/com/android/settings/dashboard/DashboardSummary.java index 077da78ac80..0e034ffe3f4 100644 --- a/src/com/android/settings/dashboard/DashboardSummary.java +++ b/src/com/android/settings/dashboard/DashboardSummary.java @@ -22,9 +22,6 @@ import android.database.Cursor; import android.os.AsyncTask; import android.os.Bundle; import android.text.Editable; -import android.text.InputFilter; -import android.text.SpannableStringBuilder; -import android.text.Spanned; import android.text.TextUtils; import android.text.TextWatcher; import android.view.LayoutInflater; @@ -69,32 +66,6 @@ public class DashboardSummary extends Fragment { } } - /** - * A basic InputFilter for filtering query input (mainly because we are issuing SQL queries - * that need to be valid ones. So just accept Letters, Digits and Spaces. - */ - private class QueryInputFilter implements InputFilter { - - public QueryInputFilter() { - } - - @Override - public CharSequence filter(CharSequence source, int start, int end, Spanned dest, - int dstart, int dend) { - SpannableStringBuilder sb = null; - for (int i = start; i < end; i++) { - char c = source.charAt(i); - if (!Character.isLetterOrDigit(c) && !Character.isSpaceChar(c)) { - if (sb == null) { - sb = new SpannableStringBuilder(source, start, end); - } - sb.delete(i, i + 1); - } - } - return sb; - } - } - @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -147,9 +118,6 @@ public class DashboardSummary extends Fragment { } }); - final InputFilter queryFilter = new QueryInputFilter(); - mEditText.setFilters(new InputFilter[] { queryFilter }); - mListView = (ListView) view.findViewById(R.id.list_results); mListView.setAdapter(mAdapter); mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @@ -191,12 +159,25 @@ public class DashboardSummary extends Fragment { } } + private String getFilteredQueryString() { + final CharSequence query = mEditText.getText().toString(); + final StringBuilder filtered = new StringBuilder(); + for (int n = 0; n < query.length(); n++) { + char c = query.charAt(n); + if (!Character.isLetterOrDigit(c) && !Character.isSpaceChar(c)) { + continue; + } + filtered.append(c); + } + return filtered.toString(); + } + private void updateSearchResults() { if (mUpdateSearchResultsTask != null) { mUpdateSearchResultsTask.cancel(false); mUpdateSearchResultsTask = null; } - final String query = mEditText.getText().toString(); + final String query = getFilteredQueryString(); if (TextUtils.isEmpty(query)) { setCursor(null); } else {