Relay extras from sorted cursor.
Add a test to ensure extras are relayed.
Bug: 32229795
Change-Id: I253eb04ab2a7e893534f40ced259146f6b00e75b
diff --git a/src/com/android/documentsui/sorting/SortingCursorWrapper.java b/src/com/android/documentsui/sorting/SortingCursorWrapper.java
index 89869d9..691c1d7 100644
--- a/src/com/android/documentsui/sorting/SortingCursorWrapper.java
+++ b/src/com/android/documentsui/sorting/SortingCursorWrapper.java
@@ -21,6 +21,7 @@
import android.database.AbstractCursor;
import android.database.Cursor;
+import android.os.Bundle;
import android.provider.DocumentsContract.Document;
import com.android.documentsui.base.Shared;
@@ -156,6 +157,11 @@
return mCursor.isNull(column);
}
+ @Override
+ public Bundle getExtras() {
+ return mCursor.getExtras();
+ }
+
/**
* @return Timestamp for the given document. Some docs (e.g. active downloads) have a null
* timestamp - these will be replaced with MAX_LONG so that such files get sorted to the top
diff --git a/tests/common/com/android/documentsui/StubProvider.java b/tests/common/com/android/documentsui/StubProvider.java
index f71ce5d..dbd948c 100644
--- a/tests/common/com/android/documentsui/StubProvider.java
+++ b/tests/common/com/android/documentsui/StubProvider.java
@@ -766,7 +766,7 @@
this.file = file;
this.documentId = getDocumentIdForFile(file);
this.mimeType = Document.MIME_TYPE_DIR;
- this.streamTypes = new ArrayList<String>();
+ this.streamTypes = new ArrayList<>();
this.flags = Document.FLAG_DIR_SUPPORTS_CREATE | Document.FLAG_SUPPORTS_RENAME;
this.parentId = null;
this.rootInfo = rootInfo;
diff --git a/tests/unit/com/android/documentsui/sorting/SortingCursorWrapperTest.java b/tests/unit/com/android/documentsui/sorting/SortingCursorWrapperTest.java
index 1d6a09c..eb1c54f 100644
--- a/tests/unit/com/android/documentsui/sorting/SortingCursorWrapperTest.java
+++ b/tests/unit/com/android/documentsui/sorting/SortingCursorWrapperTest.java
@@ -17,13 +17,14 @@
package com.android.documentsui.sorting;
import static com.android.documentsui.base.DocumentInfo.getCursorString;
-
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertFalse;
import static junit.framework.Assert.assertTrue;
import android.database.Cursor;
import android.database.MatrixCursor;
+import android.os.Bundle;
+import android.provider.DocumentsContract;
import android.provider.DocumentsContract.Document;
import android.support.test.runner.AndroidJUnit4;
@@ -366,6 +367,27 @@
}
}
+ @Test
+ public void testReturnsWrappedExtras() {
+ MatrixCursor c = new MatrixCursor(COLUMNS);
+ Bundle extras = new Bundle();
+ extras.putBoolean(DocumentsContract.EXTRA_LOADING, true);
+ extras.putString(DocumentsContract.EXTRA_INFO, "cheddar");
+ extras.putString(DocumentsContract.EXTRA_ERROR, "flop");
+ c.setExtras(extras);
+
+ // set sorting to avoid an NPE.
+ sortModel.sortByUser(
+ SortModel.SORT_DIMENSION_ID_DATE,
+ SortDimension.SORT_DIRECTION_DESCENDING);
+
+ Bundle actual = createSortingCursorWrapper(c).getExtras();
+
+ assertTrue(actual.getBoolean(DocumentsContract.EXTRA_LOADING, false));
+ assertEquals("cheddar", actual.getString(DocumentsContract.EXTRA_INFO));
+ assertEquals("flop", actual.getString(DocumentsContract.EXTRA_ERROR));
+ }
+
private Cursor createSortingCursorWrapper() {
return createSortingCursorWrapper(cursor);
}