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

Commit e542b162 authored by Tomasz Mikolajewski's avatar Tomasz Mikolajewski Committed by Android (Google) Code Review
Browse files

Merge "Reduce memory allocations and improve sorting in DocumentsUI by 8.42%." into nyc-dev

parents bf15a80c 49ca2246
Loading
Loading
Loading
Loading
+8 −11
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ import static com.android.documentsui.State.SORT_ORDER_LAST_MODIFIED;
import static com.android.documentsui.State.SORT_ORDER_SIZE;

import android.database.Cursor;
import android.database.MergeCursor;
import android.os.Bundle;
import android.provider.DocumentsContract;
import android.provider.DocumentsContract.Document;
@@ -71,16 +72,6 @@ public class Model {
    @Nullable String error;
    @Nullable DocumentInfo doc;

    /**
     * Generates a Model ID for a cursor entry that refers to a document. The Model ID is a unique
     * string that can be used to identify the document referred to by the cursor.
     *
     * @param c A cursor that refers to a document.
     */
    static String createModelId(String authority, String docId) {
        return authority + "|" + docId;
    }

    private void notifyUpdateListeners() {
        for (UpdateListener listener: mUpdateListeners) {
            listener.onModelUpdate(this);
@@ -174,7 +165,13 @@ public class Model {

            // Generates a Model ID for a cursor entry that refers to a document. The Model ID is a
            // unique string that can be used to identify the document referred to by the cursor.
            mIds[pos] = createModelId(getString(mAuthorityIndex), getString(mDocIdIndex));
            // If the cursor is a merged cursor over multiple authorities, then prefix the ids
            // with the authority to avoid collisions.
            if (mCursor instanceof MergeCursor) {
                mIds[pos] = getString(mAuthorityIndex) + "|" + mCursor.getString(mDocIdIndex);
            } else {
                mIds[pos] = mCursor.getString(mDocIdIndex);
            }

            mimeType = getString(mMimeTypeIndex);
            isDirs[pos] = Document.MIME_TYPE_DIR.equals(mimeType);
+1 −1
Original line number Diff line number Diff line
@@ -284,7 +284,7 @@ public class ModelTest extends AndroidTestCase {
            String id = Integer.toString(i);
            row.add(RootCursorWrapper.COLUMN_AUTHORITY, AUTHORITY);
            row.add(Document.COLUMN_DOCUMENT_ID, id);
            currentDownloads.add(Model.createModelId(AUTHORITY, id));
            currentDownloads.add(id);
        }

        DirectoryResult r = new DirectoryResult();
+1 −3
Original line number Diff line number Diff line
@@ -62,9 +62,7 @@ public class TestModel extends Model {
        update(r);
    }

    // Note that model id includes authority qualifier and is distinct
    // WRT documentId because of this.
    String idForPosition(int p) {
        return createModelId(mAuthority, Integer.toString(p));
        return Integer.toString(p);
    }
}