Merge "Query only necessary columns in ChooserActivity.extractFileInfo()."

This commit is contained in:
Hai Zhang
2022-02-10 19:11:26 +00:00
committed by Android (Google) Code Review
2 changed files with 11 additions and 5 deletions

View File

@@ -217,6 +217,12 @@ public class ChooserActivity extends ResolverActivity implements
private static final int APP_PREDICTION_SHARE_TARGET_QUERY_PACKAGE_LIMIT = 20;
public static final String APP_PREDICTION_INTENT_FILTER_KEY = "intent_filter";
private static final String[] QUERY_FILE_INFO_PROJECTION = {
OpenableColumns.DISPLAY_NAME,
Downloads.Impl.COLUMN_TITLE,
DocumentsContract.Document.COLUMN_FLAGS
};
private static final String PLURALS_COUNT = "count";
private static final String PLURALS_FILE_NAME = "file_name";
@@ -1474,15 +1480,15 @@ public class ChooserActivity extends ResolverActivity implements
* and to avoid mocking Android core classes.
*/
@VisibleForTesting
public Cursor queryResolver(ContentResolver resolver, Uri uri) {
return resolver.query(uri, null, null, null, null);
public Cursor queryResolver(ContentResolver resolver, String[] projection, Uri uri) {
return resolver.query(uri, projection, null, null, null);
}
private FileInfo extractFileInfo(Uri uri, ContentResolver resolver) {
String fileName = null;
boolean hasThumbnail = false;
try (Cursor cursor = queryResolver(resolver, uri)) {
try (Cursor cursor = queryResolver(resolver, QUERY_FILE_INFO_PROJECTION, uri)) {
if (cursor != null && cursor.getCount() > 0) {
int nameIndex = cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME);
int titleIndex = cursor.getColumnIndex(Downloads.Impl.COLUMN_TITLE);

View File

@@ -192,7 +192,7 @@ public class ChooserWrapperActivity extends ChooserActivity implements IChooserW
}
@Override
public Cursor queryResolver(ContentResolver resolver, Uri uri) {
public Cursor queryResolver(ContentResolver resolver, String[] projection, Uri uri) {
if (sOverrides.resolverCursor != null) {
return sOverrides.resolverCursor;
}
@@ -201,7 +201,7 @@ public class ChooserWrapperActivity extends ChooserActivity implements IChooserW
throw new SecurityException("Test exception handling");
}
return super.queryResolver(resolver, uri);
return super.queryResolver(resolver, projection, uri);
}
@Override