Improve search UX prior to load being finished.

Show a informative hint in that case.
Also clean up code somewhat.

Change-Id: I57f37bc60fbaef2ea0db0b0c3227df125b0e4ab9

Conflicts:
	res/values/cm_strings.xml
	src/com/android/settings/Settings.java
Check locale when populating DB instead of using separate receiver.

This makes reloading the search data race condition free. Previously,
when invoking search directly after the locale change, one would get the
results for the old or the new locale depending on timing between the
broadcast being delivered and the activity restart.

Change-Id: I35bc11a7f68e655e00fe53b829deea613da74f69
Settings: persist double tap to wake state

After disabling double tap to wake and rebooting, the state would be
persisted in the device, but it would display incorrect checkbox state.

Fixes JIRA bug BACON-92

Change-Id: Ie99e59872778dcdc3028e1770d97507fd831f515
Signed-off-by: Roman Birg <roman@cyngn.com>
settings: prevent multiple highlights in settings search

xe: Developer Options -> Launch Tools. The Process Stats is highlighted along
with Launch Tools, because the view of the latter is reused for the former and the
latter later gets a new view. Fix that by making sure to cancel old
highlights when triggering a new one.

Change-Id: Ibf2068628e5024d61495d4f9968811c77e120918
Signed-off-by: Jorge Ruesga <jorge@ruesga.com>
Apply match spans synchronously to avoid a race condition

Using the match start/end positions from both the main thread (when
updating UI) and the filter thread (when the filter constraint changed)
at the same time can lead into exceptions. Make sure to update the positions used by
the UI thread only from there.

07-11 03:26:18.845: E/AndroidRuntime(12765): Process: com.android.settings, PID: 12765
07-11 03:26:18.845: E/AndroidRuntime(12765): java.lang.IndexOutOfBoundsException: setSpan (-1 ... -1) starts before 0
07-11 03:26:18.845: E/AndroidRuntime(12765): at android.text.SpannableStringBuilder.checkRange(SpannableStringBuilder.java:1021)
07-11 03:26:18.845: E/AndroidRuntime(12765): at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:592)
07-11 03:26:18.845: E/AndroidRuntime(12765): at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:588)
07-11 03:26:18.845: E/AndroidRuntime(12765): at com.android.settings.search.SettingsSearchFilterAdapter.getView(SettingsSearchFilterAdapter.java:216)
07-11 03:26:18.845: E/AndroidRuntime(12765): at android.widget.AbsListView.obtainView(AbsListView.java:2255)
07-11 03:26:18.845: E/AndroidRuntime(12765): at android.widget.ListPopupWindow.obtainView(ListPopupWindow.java:1585)
07-11 03:26:18.845: E/AndroidRuntime(12765): at android.widget.ListView.measureHeightOfChildren(ListView.java:1263)
07-11 03:26:18.845: E/AndroidRuntime(12765): at android.widget.ListPopupWindow.buildDropDown(ListPopupWindow.java:1167)
07-11 03:26:18.845: E/AndroidRuntime(12765): at android.widget.ListPopupWindow.show(ListPopupWindow.java:554)
07-11 03:26:18.845: E/AndroidRuntime(12765): at android.widget.AutoCompleteTextView.showDropDown(AutoCompleteTextView.java:1096)
07-11 03:26:18.845: E/AndroidRuntime(12765): at android.widget.AutoCompleteTextView.updateDropDownForFilter(AutoCompleteTextView.java:971)
07-11 03:26:18.845: E/AndroidRuntime(12765): at android.widget.AutoCompleteTextView.access00(AutoCompleteTextView.java:91)
07-11 03:26:18.845: E/AndroidRuntime(12765): at android.widget.AutoCompleteTextView.run(AutoCompleteTextView.java:1268)
07-11 03:26:18.845: E/AndroidRuntime(12765): at android.os.Handler.handleCallback(Handler.java:733)
07-11 03:26:18.845: E/AndroidRuntime(12765): at android.os.Handler.dispatchMessage(Handler.java:95)
07-11 03:26:18.845: E/AndroidRuntime(12765): at android.os.Looper.loop(Looper.java:136)
07-11 03:26:18.845: E/AndroidRuntime(12765): at android.app.ActivityThread.main(ActivityThread.java:5140)
07-11 03:26:18.845: E/AndroidRuntime(12765): at java.lang.reflect.Method.invokeNative(Native Method)
07-11 03:26:18.845: E/AndroidRuntime(12765): at java.lang.reflect.Method.invoke(Method.java:515)
07-11 03:26:18.845: E/AndroidRuntime(12765): at com.android.internal.os.ZygoteInit.run(ZygoteInit.java:795)
07-11 03:26:18.845: E/AndroidRuntime(12765): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:611)
07-11 03:26:18.845: E/AndroidRuntime(12765): at dalvik.system.NativeStart.main(Native Method)

Change-Id: I60cff301d3bfb15ea2bbf63fcae524af0ae0b8a6