am 11fe181e: Add faster TextUtil function for searching delimited lists.
Merge commit '11fe181e16501103d7c0f70344661ea2ef5d3df9' into gingerbread-plus-aosp * commit '11fe181e16501103d7c0f70344661ea2ef5d3df9': Add faster TextUtil function for searching delimited lists.
This commit is contained in:
@@ -3481,13 +3481,7 @@ public final class Settings {
|
||||
*/
|
||||
public static final boolean isLocationProviderEnabled(ContentResolver cr, String provider) {
|
||||
String allowedProviders = Settings.Secure.getString(cr, LOCATION_PROVIDERS_ALLOWED);
|
||||
if (allowedProviders != null) {
|
||||
return (allowedProviders.equals(provider) ||
|
||||
allowedProviders.contains("," + provider + ",") ||
|
||||
allowedProviders.startsWith(provider + ",") ||
|
||||
allowedProviders.endsWith("," + provider));
|
||||
}
|
||||
return false;
|
||||
return TextUtils.delimitedStringContains(allowedProviders, ',', provider);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1651,7 +1651,36 @@ public class TextUtils {
|
||||
|
||||
return mode;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Does a comma-delimited list 'delimitedString' contain a certain item?
|
||||
* (without allocating memory)
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
public static boolean delimitedStringContains(
|
||||
String delimitedString, char delimiter, String item) {
|
||||
if (isEmpty(delimitedString) || isEmpty(item)) {
|
||||
return false;
|
||||
}
|
||||
int pos = -1;
|
||||
int length = delimitedString.length();
|
||||
while ((pos = delimitedString.indexOf(item, pos + 1)) != -1) {
|
||||
if (pos > 0 && delimitedString.charAt(pos - 1) != delimiter) {
|
||||
continue;
|
||||
}
|
||||
int expectedDelimiterPos = pos + item.length();
|
||||
if (expectedDelimiterPos == length) {
|
||||
// Match at end of string.
|
||||
return true;
|
||||
}
|
||||
if (delimitedString.charAt(expectedDelimiterPos) == delimiter) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private static Object sLock = new Object();
|
||||
private static char[] sTemp = null;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user