Loading api/current.txt +3 −3 Original line number Diff line number Diff line Loading @@ -36594,9 +36594,9 @@ package android.provider { field public static final java.lang.String IS_PRIVATE = "isprivate"; field public static final java.lang.String LATITUDE = "latitude"; field public static final java.lang.String LONGITUDE = "longitude"; field public static final java.lang.String MINI_THUMB_MAGIC = "mini_thumb_magic"; field public static final deprecated java.lang.String MINI_THUMB_MAGIC = "mini_thumb_magic"; field public static final java.lang.String ORIENTATION = "orientation"; field public static final java.lang.String PICASA_ID = "picasa_id"; field public static final deprecated java.lang.String PICASA_ID = "picasa_id"; } public static final class MediaStore.Images.Media implements android.provider.MediaStore.Images.ImageColumns { Loading Loading @@ -36699,7 +36699,7 @@ package android.provider { field public static final java.lang.String LANGUAGE = "language"; field public static final java.lang.String LATITUDE = "latitude"; field public static final java.lang.String LONGITUDE = "longitude"; field public static final java.lang.String MINI_THUMB_MAGIC = "mini_thumb_magic"; field public static final deprecated java.lang.String MINI_THUMB_MAGIC = "mini_thumb_magic"; field public static final java.lang.String RESOLUTION = "resolution"; field public static final java.lang.String TAGS = "tags"; } core/java/android/database/sqlite/SQLiteQueryBuilder.java +32 −0 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ import libcore.util.EmptyArray; import java.util.Arrays; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Objects; Loading @@ -50,6 +51,8 @@ public class SQLiteQueryBuilder { Pattern.compile("\\s*\\d+\\s*(,\\s*\\d+\\s*)?"); private Map<String, String> mProjectionMap = null; private List<Pattern> mProjectionGreylist = null; @UnsupportedAppUsage private String mTables = ""; @UnsupportedAppUsage Loading Loading @@ -163,6 +166,17 @@ public class SQLiteQueryBuilder { mProjectionMap = columnMap; } /** * Sets a projection greylist of columns that will be allowed through, even * when {@link #setStrict(boolean)} is enabled. This provides a way for * abusive custom columns like {@code COUNT(*)} to continue working. * * @hide */ public void setProjectionGreylist(List<Pattern> projectionGreylist) { mProjectionGreylist = projectionGreylist; } /** * Sets the cursor factory to be used for the query. You can use * one factory for all queries on a database but it is normally Loading Loading @@ -809,6 +823,24 @@ public class SQLiteQueryBuilder { continue; } // If greylist is configured, we might be willing to let // this custom column bypass our strict checks. if (mProjectionGreylist != null) { boolean match = false; for (Pattern p : mProjectionGreylist) { if (p.matcher(userColumn).matches()) { match = true; break; } } if (match) { Log.w(TAG, "Allowing abusive custom column: " + userColumn); projection[i] = userColumn; continue; } } throw new IllegalArgumentException("Invalid column " + projectionIn[i]); } Loading core/java/android/provider/MediaStore.java +14 −0 Original line number Diff line number Diff line Loading @@ -717,7 +717,11 @@ public final class MediaStore { /** * The picasa id of the image * <P>Type: TEXT</P> * * @deprecated this value was only relevant for images hosted on * Picasa, which are no longer supported. */ @Deprecated public static final String PICASA_ID = "picasa_id"; /** Loading Loading @@ -755,7 +759,12 @@ public final class MediaStore { /** * The mini thumb id. * <P>Type: INTEGER</P> * * @deprecated all thumbnails should be obtained via * {@link Images.Thumbnails#getThumbnail}, as this * value is no longer supported. */ @Deprecated public static final String MINI_THUMB_MAGIC = "mini_thumb_magic"; /** Loading Loading @@ -1947,7 +1956,12 @@ public final class MediaStore { /** * The mini thumb id. * <P>Type: INTEGER</P> * * @deprecated all thumbnails should be obtained via * {@link Images.Thumbnails#getThumbnail}, as this * value is no longer supported. */ @Deprecated public static final String MINI_THUMB_MAGIC = "mini_thumb_magic"; /** Loading media/java/android/media/MiniThumbFile.java +9 −0 Original line number Diff line number Diff line Loading @@ -18,9 +18,12 @@ package android.media; import android.annotation.UnsupportedAppUsage; import android.net.Uri; import android.os.Build; import android.os.Environment; import android.util.Log; import dalvik.system.VMRuntime; import java.io.File; import java.io.IOException; import java.io.RandomAccessFile; Loading @@ -42,7 +45,10 @@ import java.util.Hashtable; * * @hide This file is shared between MediaStore and MediaProvider and should remained internal use * only. * @deprecated thumbnails are now maintained in separate files, and this file * format is no longer used. */ @Deprecated public class MiniThumbFile { private static final String TAG = "MiniThumbFile"; private static final int MINI_THUMB_DATA_FILE_VERSION = 4; Loading @@ -69,6 +75,9 @@ public class MiniThumbFile { } public static synchronized MiniThumbFile instance(Uri uri) { if (VMRuntime.getRuntime().getTargetSdkVersion() >= Build.VERSION_CODES.Q) { throw new UnsupportedOperationException(); } String type = uri.getPathSegments().get(1); MiniThumbFile file = sThumbFiles.get(type); // Log.v(TAG, "get minithumbfile for type: "+type); Loading Loading
api/current.txt +3 −3 Original line number Diff line number Diff line Loading @@ -36594,9 +36594,9 @@ package android.provider { field public static final java.lang.String IS_PRIVATE = "isprivate"; field public static final java.lang.String LATITUDE = "latitude"; field public static final java.lang.String LONGITUDE = "longitude"; field public static final java.lang.String MINI_THUMB_MAGIC = "mini_thumb_magic"; field public static final deprecated java.lang.String MINI_THUMB_MAGIC = "mini_thumb_magic"; field public static final java.lang.String ORIENTATION = "orientation"; field public static final java.lang.String PICASA_ID = "picasa_id"; field public static final deprecated java.lang.String PICASA_ID = "picasa_id"; } public static final class MediaStore.Images.Media implements android.provider.MediaStore.Images.ImageColumns { Loading Loading @@ -36699,7 +36699,7 @@ package android.provider { field public static final java.lang.String LANGUAGE = "language"; field public static final java.lang.String LATITUDE = "latitude"; field public static final java.lang.String LONGITUDE = "longitude"; field public static final java.lang.String MINI_THUMB_MAGIC = "mini_thumb_magic"; field public static final deprecated java.lang.String MINI_THUMB_MAGIC = "mini_thumb_magic"; field public static final java.lang.String RESOLUTION = "resolution"; field public static final java.lang.String TAGS = "tags"; }
core/java/android/database/sqlite/SQLiteQueryBuilder.java +32 −0 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ import libcore.util.EmptyArray; import java.util.Arrays; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Objects; Loading @@ -50,6 +51,8 @@ public class SQLiteQueryBuilder { Pattern.compile("\\s*\\d+\\s*(,\\s*\\d+\\s*)?"); private Map<String, String> mProjectionMap = null; private List<Pattern> mProjectionGreylist = null; @UnsupportedAppUsage private String mTables = ""; @UnsupportedAppUsage Loading Loading @@ -163,6 +166,17 @@ public class SQLiteQueryBuilder { mProjectionMap = columnMap; } /** * Sets a projection greylist of columns that will be allowed through, even * when {@link #setStrict(boolean)} is enabled. This provides a way for * abusive custom columns like {@code COUNT(*)} to continue working. * * @hide */ public void setProjectionGreylist(List<Pattern> projectionGreylist) { mProjectionGreylist = projectionGreylist; } /** * Sets the cursor factory to be used for the query. You can use * one factory for all queries on a database but it is normally Loading Loading @@ -809,6 +823,24 @@ public class SQLiteQueryBuilder { continue; } // If greylist is configured, we might be willing to let // this custom column bypass our strict checks. if (mProjectionGreylist != null) { boolean match = false; for (Pattern p : mProjectionGreylist) { if (p.matcher(userColumn).matches()) { match = true; break; } } if (match) { Log.w(TAG, "Allowing abusive custom column: " + userColumn); projection[i] = userColumn; continue; } } throw new IllegalArgumentException("Invalid column " + projectionIn[i]); } Loading
core/java/android/provider/MediaStore.java +14 −0 Original line number Diff line number Diff line Loading @@ -717,7 +717,11 @@ public final class MediaStore { /** * The picasa id of the image * <P>Type: TEXT</P> * * @deprecated this value was only relevant for images hosted on * Picasa, which are no longer supported. */ @Deprecated public static final String PICASA_ID = "picasa_id"; /** Loading Loading @@ -755,7 +759,12 @@ public final class MediaStore { /** * The mini thumb id. * <P>Type: INTEGER</P> * * @deprecated all thumbnails should be obtained via * {@link Images.Thumbnails#getThumbnail}, as this * value is no longer supported. */ @Deprecated public static final String MINI_THUMB_MAGIC = "mini_thumb_magic"; /** Loading Loading @@ -1947,7 +1956,12 @@ public final class MediaStore { /** * The mini thumb id. * <P>Type: INTEGER</P> * * @deprecated all thumbnails should be obtained via * {@link Images.Thumbnails#getThumbnail}, as this * value is no longer supported. */ @Deprecated public static final String MINI_THUMB_MAGIC = "mini_thumb_magic"; /** Loading
media/java/android/media/MiniThumbFile.java +9 −0 Original line number Diff line number Diff line Loading @@ -18,9 +18,12 @@ package android.media; import android.annotation.UnsupportedAppUsage; import android.net.Uri; import android.os.Build; import android.os.Environment; import android.util.Log; import dalvik.system.VMRuntime; import java.io.File; import java.io.IOException; import java.io.RandomAccessFile; Loading @@ -42,7 +45,10 @@ import java.util.Hashtable; * * @hide This file is shared between MediaStore and MediaProvider and should remained internal use * only. * @deprecated thumbnails are now maintained in separate files, and this file * format is no longer used. */ @Deprecated public class MiniThumbFile { private static final String TAG = "MiniThumbFile"; private static final int MINI_THUMB_DATA_FILE_VERSION = 4; Loading @@ -69,6 +75,9 @@ public class MiniThumbFile { } public static synchronized MiniThumbFile instance(Uri uri) { if (VMRuntime.getRuntime().getTargetSdkVersion() >= Build.VERSION_CODES.Q) { throw new UnsupportedOperationException(); } String type = uri.getPathSegments().get(1); MiniThumbFile file = sThumbFiles.get(type); // Log.v(TAG, "get minithumbfile for type: "+type); Loading