settings: properly count preferences in group

When the first preference in a settings preference fragment is a caterory, this method cannot
find the first preference of the group, returning an incorrect position.
xe: Lockscreen Settings -> Screen settings

Reason for that is that there's no way to differentiate 0 from -0. Fix
that by avoiding overloading integer semantics and clearly splitting the
result count from the 'was stopAt found' flag.

Change-Id: I68cfde27b9860246b1cc3671dfb35320c4ff3ea8
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
Merge "Apply match spans synchronously to avoid a race condition" into kitkat3
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>
Merge "settings: prevent multiple highlights in settings search" into kitkat3
Settings: Add a2dp profile triggers

Fixes JIRA issue: BACON-47

Conflicts:
	res/values/cm_arrays.xml
	res/values/cm_strings.xml

Change-Id: I720a5898cdeddad5c5f99af2b61d3c93342fdd2e
Merge "Settings: Add a2dp profile triggers" into kitkat3
Settings: Fix patternlock padding for header.

Change-Id: I8d08c3f3fa72c31fb8be77281f653108392ea1a0
Merge "Settings: Fix patternlock padding for header." into kitkat3
Merge "Revert "QuickBoot: enable QuickBoot Settings UI"" into kitkat3
Revert "QuickBoot: enable QuickBoot Settings UI"

This reverts commit a3a9759a9c163e05e5580e2e9c988f04b455a270.

Change-Id: I7a0dfad1c6502b7baf41affe341192e08c5b6a7f
Revert "Settings: Add screen color settings"

This reverts commit e9a3cf2bf691a36ba11e62a870d7037f54a605ba.

Change-Id: Iee25cee1f52b5bb08082f25d8641aadb57495c04
Merge "Revert "Settings: Add screen color settings"" into kitkat3
Intergrate Viper4Android into settings

Change-Id: I40dbe6f5ddbc737c0ab8e05389ab117c83f1cd1d
Fix Audio Engine FC and order it properly

Change-Id: I55c063fd87506fa440df96da5df3555e21cd3c08
Merge pull request #11 from LiquidSmooth/kitkat3

merge latest liquid changes