Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f3121f46 authored by Tomasz Mikolajewski's avatar Tomasz Mikolajewski
Browse files

Render thumbnails in DocumentsUI jank tests.

Bug: 27383277
Change-Id: I0b5f267d7dc6c6c426b68f261c470f4ae46367a4
parent 7a24a3da
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -2,8 +2,8 @@ LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

LOCAL_MODULE_TAGS := tests
#LOCAL_SDK_VERSION := current

LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
LOCAL_SRC_FILES := $(call all-java-files-under, src) \
    $(call all-java-files-under, ../tests/src/com/android/documentsui/bots) \
    ../tests/src/com/android/documentsui/ActivityTest.java \
+43.5 KiB
Loading image diff...
+31 −8
Original line number Diff line number Diff line
@@ -18,9 +18,11 @@ package com.android.documentsui;

import android.content.Context;
import android.content.pm.ProviderInfo;
import android.content.res.AssetFileDescriptor;
import android.database.Cursor;
import android.database.MatrixCursor.RowBuilder;
import android.database.MatrixCursor;
import android.graphics.Point;
import android.os.CancellationSignal;
import android.os.FileUtils;
import android.os.ParcelFileDescriptor;
@@ -31,6 +33,7 @@ import android.provider.DocumentsProvider;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -102,7 +105,14 @@ public class StressProvider extends DocumentsProvider {
        children = new ArrayList<StubDocument>();
        mChildDocuments.put(STRESS_ROOT_2_DOC_ID, children);
        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);
            children.add(document);
        }
@@ -150,6 +160,14 @@ public class StressProvider extends DocumentsProvider {
        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
    public ParcelFileDescriptor openDocument(String docId, String mode,
            CancellationSignal signal)
@@ -171,7 +189,8 @@ public class StressProvider extends DocumentsProvider {
        row.add(Document.COLUMN_DISPLAY_NAME, document.id);
        row.add(Document.COLUMN_SIZE, document.size);
        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);
    }

@@ -184,28 +203,32 @@ public class StressProvider extends DocumentsProvider {
        final String id;
        final int size;
        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.id = id;
            this.size = size;
            this.lastModified = lastModified;
            this.thumbnail = thumbnail;
        }

        public static StubDocument createDirectory(int index) {
            return new StubDocument(
                    DocumentsContract.Document.MIME_TYPE_DIR, createRandomId(index), 0,
                    createRandomTime(index));
                    createRandomTime(index), -1);
        }

        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(
                    MIME_TYPE_IMAGE, createRandomId(index), createRandomSize(index),
                    createRandomTime(index));
                    mimeType, createRandomId(index), createRandomSize(index),
                    createRandomTime(index), thumbnail);
        }

        private static String createRandomId(int index) {