Merge "Render thumbnails in DocumentsUI jank tests." into nyc-dev

This commit is contained in:
Tomasz Mikolajewski
2016-03-30 06:01:12 +00:00
committed by Android (Google) Code Review
3 changed files with 32 additions and 9 deletions

View File

@@ -2,8 +2,8 @@ LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS) include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := tests LOCAL_MODULE_TAGS := tests
#LOCAL_SDK_VERSION := current
LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
LOCAL_SRC_FILES := $(call all-java-files-under, src) \ LOCAL_SRC_FILES := $(call all-java-files-under, src) \
$(call all-java-files-under, ../tests/src/com/android/documentsui/bots) \ $(call all-java-files-under, ../tests/src/com/android/documentsui/bots) \
../tests/src/com/android/documentsui/ActivityTest.java \ ../tests/src/com/android/documentsui/ActivityTest.java \

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

View File

@@ -18,9 +18,11 @@ package com.android.documentsui;
import android.content.Context; import android.content.Context;
import android.content.pm.ProviderInfo; import android.content.pm.ProviderInfo;
import android.content.res.AssetFileDescriptor;
import android.database.Cursor; import android.database.Cursor;
import android.database.MatrixCursor.RowBuilder; import android.database.MatrixCursor.RowBuilder;
import android.database.MatrixCursor; import android.database.MatrixCursor;
import android.graphics.Point;
import android.os.CancellationSignal; import android.os.CancellationSignal;
import android.os.FileUtils; import android.os.FileUtils;
import android.os.ParcelFileDescriptor; import android.os.ParcelFileDescriptor;
@@ -31,6 +33,7 @@ import android.provider.DocumentsProvider;
import java.io.File; import java.io.File;
import java.io.FileNotFoundException; import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
@@ -102,7 +105,14 @@ public class StressProvider extends DocumentsProvider {
children = new ArrayList<StubDocument>(); children = new ArrayList<StubDocument>();
mChildDocuments.put(STRESS_ROOT_2_DOC_ID, children); mChildDocuments.put(STRESS_ROOT_2_DOC_ID, children);
for (int i = 0; i < STRESS_ROOT_2_ITEMS; i++) { for (int i = 0; i < STRESS_ROOT_2_ITEMS; i++) {
document = StubDocument.createFile(STRESS_ROOT_1_ITEMS + i); try {
document = StubDocument.createFile(
getContext(), MIME_TYPE_IMAGE,
com.android.documentsui.perftests.R.raw.earth_small,
STRESS_ROOT_1_ITEMS + i);
} catch (IOException e) {
return false;
}
mDocuments.put(document.id, document); mDocuments.put(document.id, document);
children.add(document); children.add(document);
} }
@@ -150,6 +160,14 @@ public class StressProvider extends DocumentsProvider {
return result; return result;
} }
@Override
public AssetFileDescriptor openDocumentThumbnail(String docId, Point sizeHint,
CancellationSignal signal)
throws FileNotFoundException {
final StubDocument document = mDocuments.get(docId);
return getContext().getResources().openRawResourceFd(document.thumbnail);
}
@Override @Override
public ParcelFileDescriptor openDocument(String docId, String mode, public ParcelFileDescriptor openDocument(String docId, String mode,
CancellationSignal signal) CancellationSignal signal)
@@ -171,7 +189,8 @@ public class StressProvider extends DocumentsProvider {
row.add(Document.COLUMN_DISPLAY_NAME, document.id); row.add(Document.COLUMN_DISPLAY_NAME, document.id);
row.add(Document.COLUMN_SIZE, document.size); row.add(Document.COLUMN_SIZE, document.size);
row.add(Document.COLUMN_MIME_TYPE, document.mimeType); row.add(Document.COLUMN_MIME_TYPE, document.mimeType);
row.add(Document.COLUMN_FLAGS, 0); row.add(Document.COLUMN_FLAGS,
document.thumbnail != -1 ? Document.FLAG_SUPPORTS_THUMBNAIL : 0);
row.add(Document.COLUMN_LAST_MODIFIED, document.lastModified); row.add(Document.COLUMN_LAST_MODIFIED, document.lastModified);
} }
@@ -184,28 +203,32 @@ public class StressProvider extends DocumentsProvider {
final String id; final String id;
final int size; final int size;
final long lastModified; final long lastModified;
final int thumbnail;
private StubDocument(String mimeType, String id, int size, long lastModified) { private StubDocument(String mimeType, String id, int size, long lastModified,
int thumbnail) {
this.mimeType = mimeType; this.mimeType = mimeType;
this.id = id; this.id = id;
this.size = size; this.size = size;
this.lastModified = lastModified; this.lastModified = lastModified;
this.thumbnail = thumbnail;
} }
public static StubDocument createDirectory(int index) { public static StubDocument createDirectory(int index) {
return new StubDocument( return new StubDocument(
DocumentsContract.Document.MIME_TYPE_DIR, createRandomId(index), 0, DocumentsContract.Document.MIME_TYPE_DIR, createRandomId(index), 0,
createRandomTime(index)); createRandomTime(index), -1);
} }
public static StubDocument createDirectory(String id) { public static StubDocument createDirectory(String id) {
return new StubDocument(DocumentsContract.Document.MIME_TYPE_DIR, id, 0, 0); return new StubDocument(DocumentsContract.Document.MIME_TYPE_DIR, id, 0, 0, -1);
} }
public static StubDocument createFile(int index) { public static StubDocument createFile(Context context, String mimeType, int thumbnail,
int index) throws IOException {
return new StubDocument( return new StubDocument(
MIME_TYPE_IMAGE, createRandomId(index), createRandomSize(index), mimeType, createRandomId(index), createRandomSize(index),
createRandomTime(index)); createRandomTime(index), thumbnail);
} }
private static String createRandomId(int index) { private static String createRandomId(int index) {