Merge "Fix broken unit test done by ag/1729776, and added unit test." into nyc-andromeda-dev
diff --git a/src/com/android/documentsui/BaseActivity.java b/src/com/android/documentsui/BaseActivity.java
index c9db7cc..1b121b4 100644
--- a/src/com/android/documentsui/BaseActivity.java
+++ b/src/com/android/documentsui/BaseActivity.java
@@ -46,13 +46,13 @@
 import com.android.documentsui.Injector.Injected;
 import com.android.documentsui.NavigationViewManager.Breadcrumb;
 import com.android.documentsui.base.DocumentInfo;
-import com.android.documentsui.base.LocalPreferences;
 import com.android.documentsui.base.RootInfo;
 import com.android.documentsui.base.Shared;
 import com.android.documentsui.base.State;
 import com.android.documentsui.base.State.ViewMode;
 import com.android.documentsui.dirlist.AnimationView;
 import com.android.documentsui.dirlist.DirectoryFragment;
+import com.android.documentsui.prefs.LocalPreferences;
 import com.android.documentsui.queries.DebugCommandProcessor;
 import com.android.documentsui.queries.SearchViewManager;
 import com.android.documentsui.queries.SearchViewManager.SearchManagerListener;
diff --git a/src/com/android/documentsui/Injector.java b/src/com/android/documentsui/Injector.java
index 4c767ae..81a7773 100644
--- a/src/com/android/documentsui/Injector.java
+++ b/src/com/android/documentsui/Injector.java
@@ -25,9 +25,9 @@
 
 import com.android.documentsui.MenuManager.SelectionDetails;
 import com.android.documentsui.base.EventHandler;
-import com.android.documentsui.base.ScopedPreferences;
 import com.android.documentsui.dirlist.DocumentsAdapter;
 import com.android.documentsui.dirlist.Model;
+import com.android.documentsui.prefs.ScopedPreferences;
 import com.android.documentsui.selection.SelectionManager;
 import com.android.documentsui.selection.SelectionManager.SelectionPredicate;
 import com.android.documentsui.ui.DialogController;
diff --git a/src/com/android/documentsui/OpenExternalDirectoryActivity.java b/src/com/android/documentsui/OpenExternalDirectoryActivity.java
index 44ccc1e..74af224 100644
--- a/src/com/android/documentsui/OpenExternalDirectoryActivity.java
+++ b/src/com/android/documentsui/OpenExternalDirectoryActivity.java
@@ -29,11 +29,11 @@
 import static com.android.documentsui.Metrics.SCOPED_DIRECTORY_ACCESS_INVALID_DIRECTORY;
 import static com.android.documentsui.Metrics.logInvalidScopedAccessRequest;
 import static com.android.documentsui.Metrics.logValidScopedAccessRequest;
-import static com.android.documentsui.base.LocalPreferences.PERMISSION_ASK_AGAIN;
-import static com.android.documentsui.base.LocalPreferences.PERMISSION_NEVER_ASK;
-import static com.android.documentsui.base.LocalPreferences.getScopedAccessPermissionStatus;
-import static com.android.documentsui.base.LocalPreferences.setScopedAccessPermissionStatus;
 import static com.android.documentsui.base.Shared.DEBUG;
+import static com.android.documentsui.prefs.LocalPreferences.PERMISSION_ASK_AGAIN;
+import static com.android.documentsui.prefs.LocalPreferences.PERMISSION_NEVER_ASK;
+import static com.android.documentsui.prefs.LocalPreferences.getScopedAccessPermissionStatus;
+import static com.android.documentsui.prefs.LocalPreferences.setScopedAccessPermissionStatus;
 
 import android.annotation.SuppressLint;
 import android.app.Activity;
diff --git a/src/com/android/documentsui/PackageReceiver.java b/src/com/android/documentsui/PackageReceiver.java
index 9c4ebf5..5cb2827 100644
--- a/src/com/android/documentsui/PackageReceiver.java
+++ b/src/com/android/documentsui/PackageReceiver.java
@@ -22,8 +22,8 @@
 import android.content.Intent;
 import android.net.Uri;
 
-import com.android.documentsui.base.LocalPreferences;
 import com.android.documentsui.picker.LastAccessedProvider;
+import com.android.documentsui.prefs.LocalPreferences;
 
 /**
  * Clean up {@link LastAccessedProvider} and {@link LocalPreferences} when packages are removed.
diff --git a/src/com/android/documentsui/dirlist/Model.java b/src/com/android/documentsui/dirlist/Model.java
index 63dcb4b..d0128ef 100644
--- a/src/com/android/documentsui/dirlist/Model.java
+++ b/src/com/android/documentsui/dirlist/Model.java
@@ -20,6 +20,7 @@
 import static com.android.documentsui.base.DocumentInfo.getCursorString;
 import static com.android.documentsui.base.Shared.DEBUG;
 import static com.android.documentsui.base.Shared.VERBOSE;
+import static com.android.documentsui.base.Shared.ENABLE_OMC_API_FEATURES;
 
 import android.annotation.IntDef;
 import android.database.Cursor;
@@ -54,11 +55,16 @@
 public class Model {
 
     /**
-     * Filter that passes (returns true) all non-partial files and non-archived files.
+     * Filter that passes (returns true) for all files which can be shared.
      */
     public static final Predicate<Cursor> SHARABLE_FILE_FILTER = (Cursor c) -> {
         int flags = getCursorInt(c, Document.COLUMN_FLAGS);
         String authority = getCursorString(c, RootCursorWrapper.COLUMN_AUTHORITY);
+        if (!ENABLE_OMC_API_FEATURES) {
+            return (flags & Document.FLAG_PARTIAL) == 0
+                    && (flags & Document.FLAG_VIRTUAL_DOCUMENT) == 0
+                    && !ArchivesProvider.AUTHORITY.equals(authority);
+        }
         return (flags & Document.FLAG_PARTIAL) == 0
                 && !ArchivesProvider.AUTHORITY.equals(authority);
     };
diff --git a/src/com/android/documentsui/files/ActionHandler.java b/src/com/android/documentsui/files/ActionHandler.java
index ff8f5a9..9bbba35 100644
--- a/src/com/android/documentsui/files/ActionHandler.java
+++ b/src/com/android/documentsui/files/ActionHandler.java
@@ -321,7 +321,8 @@
         intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
         intent.addCategory(Intent.CATEGORY_DEFAULT);
 
-        if (mScope.model.hasDocuments(selection, Model.VIRTUAL_DOCUMENT_FILTER)) {
+        if (Shared.ENABLE_OMC_API_FEATURES
+                && mScope.model.hasDocuments(selection, Model.VIRTUAL_DOCUMENT_FILTER)) {
             intent.addCategory(Intent.CATEGORY_TYPED_OPENABLE);
         }
 
diff --git a/src/com/android/documentsui/files/FilesActivity.java b/src/com/android/documentsui/files/FilesActivity.java
index 85c140a..bbeb623 100644
--- a/src/com/android/documentsui/files/FilesActivity.java
+++ b/src/com/android/documentsui/files/FilesActivity.java
@@ -47,11 +47,11 @@
 import com.android.documentsui.base.DocumentInfo;
 import com.android.documentsui.base.DocumentStack;
 import com.android.documentsui.base.RootInfo;
-import com.android.documentsui.base.ScopedPreferences;
 import com.android.documentsui.base.Shared;
 import com.android.documentsui.base.State;
 import com.android.documentsui.clipping.DocumentClipper;
 import com.android.documentsui.dirlist.AnimationView.AnimationType;
+import com.android.documentsui.prefs.ScopedPreferences;
 import com.android.documentsui.dirlist.DirectoryFragment;
 import com.android.documentsui.selection.SelectionManager;
 import com.android.documentsui.services.FileOperationService;
diff --git a/src/com/android/documentsui/picker/PickActivity.java b/src/com/android/documentsui/picker/PickActivity.java
index b0b4ff4..8c5961f 100644
--- a/src/com/android/documentsui/picker/PickActivity.java
+++ b/src/com/android/documentsui/picker/PickActivity.java
@@ -56,11 +56,11 @@
 import com.android.documentsui.base.MimeTypes;
 import com.android.documentsui.base.PairedTask;
 import com.android.documentsui.base.RootInfo;
-import com.android.documentsui.base.ScopedPreferences;
 import com.android.documentsui.base.Shared;
 import com.android.documentsui.base.State;
 import com.android.documentsui.dirlist.DirectoryFragment;
 import com.android.documentsui.picker.LastAccessedProvider.Columns;
+import com.android.documentsui.prefs.ScopedPreferences;
 import com.android.documentsui.selection.SelectionManager;
 import com.android.documentsui.services.FileOperationService;
 import com.android.documentsui.sidebar.RootsFragment;
diff --git a/src/com/android/documentsui/base/LocalPreferences.java b/src/com/android/documentsui/prefs/LocalPreferences.java
similarity index 97%
rename from src/com/android/documentsui/base/LocalPreferences.java
rename to src/com/android/documentsui/prefs/LocalPreferences.java
index 0d1e639..1beaf5d 100644
--- a/src/com/android/documentsui/base/LocalPreferences.java
+++ b/src/com/android/documentsui/prefs/LocalPreferences.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.documentsui.base;
+package com.android.documentsui.prefs;
 
 import static com.android.documentsui.base.State.MODE_UNKNOWN;
 
@@ -26,6 +26,8 @@
 import android.os.UserHandle;
 import android.preference.PreferenceManager;
 
+import com.android.documentsui.base.RootInfo;
+import com.android.documentsui.base.State;
 import com.android.documentsui.base.State.ViewMode;
 
 import java.lang.annotation.Retention;
diff --git a/src/com/android/documentsui/base/ScopedPreferences.java b/src/com/android/documentsui/prefs/ScopedPreferences.java
similarity index 98%
rename from src/com/android/documentsui/base/ScopedPreferences.java
rename to src/com/android/documentsui/prefs/ScopedPreferences.java
index 92cca49..c74753a 100644
--- a/src/com/android/documentsui/base/ScopedPreferences.java
+++ b/src/com/android/documentsui/prefs/ScopedPreferences.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.android.documentsui.base;
+package com.android.documentsui.prefs;
 
 import android.content.Context;
 import android.content.SharedPreferences;