Merge "Reduce memory allocations and improve sorting in DocumentsUI by 8.42%." into nyc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
e542b162e9
@@ -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);
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user