diff options
Diffstat (limited to 'core/java/android/database/DatabaseUtils.java')
| -rw-r--r-- | core/java/android/database/DatabaseUtils.java | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/core/java/android/database/DatabaseUtils.java b/core/java/android/database/DatabaseUtils.java index 4246b84dc52f..34cc856e000f 100644 --- a/core/java/android/database/DatabaseUtils.java +++ b/core/java/android/database/DatabaseUtils.java @@ -16,6 +16,7 @@ package android.database; +import android.annotation.NonNull; import android.annotation.Nullable; import android.compat.annotation.UnsupportedAppUsage; import android.content.ContentValues; @@ -1548,4 +1549,24 @@ public class DatabaseUtils { } return -1; } + + /** + * Escape the given argument for use in a {@code LIKE} statement. + * @hide + */ + public static String escapeForLike(@NonNull String arg) { + // Shamelessly borrowed from com.android.providers.media.util.DatabaseUtils + final StringBuilder sb = new StringBuilder(); + for (int i = 0; i < arg.length(); i++) { + final char c = arg.charAt(i); + switch (c) { + case '%': sb.append('\\'); + break; + case '_': sb.append('\\'); + break; + } + sb.append(c); + } + return sb.toString(); + } } |
