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

Commit d88d16a0 authored by Tomasz Mikolajewski's avatar Tomasz Mikolajewski Committed by android-build-merger
Browse files

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

am: e542b162

* commit 'e542b162':
  Reduce memory allocations and improve sorting in DocumentsUI by 8.42%.
parents 2b91ab91 e542b162
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);
    }
}