Add Feature Flag support.
Bug: 35923154
Change-Id: I34dd956e8309c779e7a3f35eadc3d84132b970ce
diff --git a/src/com/android/documentsui/DirectoryLoader.java b/src/com/android/documentsui/DirectoryLoader.java
index 5c93f76..0a4dff1 100644
--- a/src/com/android/documentsui/DirectoryLoader.java
+++ b/src/com/android/documentsui/DirectoryLoader.java
@@ -16,10 +16,13 @@
package com.android.documentsui;
+import static com.android.documentsui.base.Shared.VERBOSE;
+
import android.content.AsyncTaskLoader;
import android.content.ContentProviderClient;
import android.content.ContentResolver;
import android.content.Context;
+import android.content.res.Resources;
import android.database.ContentObserver;
import android.database.Cursor;
import android.net.Uri;
@@ -36,7 +39,6 @@
import com.android.documentsui.base.DocumentInfo;
import com.android.documentsui.base.FilteringCursorWrapper;
import com.android.documentsui.base.RootInfo;
-import com.android.documentsui.base.Shared;
import com.android.documentsui.roots.RootCursorWrapper;
import com.android.documentsui.sorting.SortModel;
@@ -100,7 +102,8 @@
}
result.client = client;
- if (Shared.ENABLE_OMC_API_FEATURES) {
+ Resources resources = getContext().getResources();
+ if (resources.getBoolean(R.bool.feature_content_paging)) {
Bundle queryArgs = new Bundle();
mModel.addQuerySortArgs(queryArgs);
@@ -122,12 +125,19 @@
cursor = new RootCursorWrapper(mUri.getAuthority(), mRoot.rootId, cursor, -1);
- if (mSearchMode && !Shared.ENABLE_OMC_API_FEATURES) {
+ if (mSearchMode && !resources.getBoolean(R.bool.feature_folders_in_search_results)) {
// There is no findDocumentPath API. Enable filtering on folders in search mode.
cursor = new FilteringCursorWrapper(cursor, null, SEARCH_REJECT_MIMES);
}
- cursor = mModel.sortCursor(cursor);
+ // TODO: When API tweaks have landed, use ContentResolver.EXTRA_HONORED_ARGS
+ // instead of checking directly for ContentResolver.QUERY_ARG_SORT_COLUMNS (won't work)
+ if (resources.getBoolean(R.bool.feature_content_paging)
+ && cursor.getExtras().containsKey(ContentResolver.QUERY_ARG_SORT_COLUMNS)) {
+ if (VERBOSE) Log.d(TAG, "Skipping sort of pre-sorted cursor. Booya!");
+ } else {
+ cursor = mModel.sortCursor(cursor);
+ }
result.cursor = cursor;
} catch (Exception e) {
Log.w(TAG, "Failed to query", e);