OSDN Git Service

Hide action bar search icon in directories that do not support search operation.
authorAga Wronska <agawronska@google.com>
Fri, 29 Jan 2016 19:41:41 +0000 (11:41 -0800)
committerAga Wronska <agawronska@google.com>
Sat, 30 Jan 2016 02:47:23 +0000 (18:47 -0800)
Bug:26593318
Change-Id: Ibb8945e6eba508aaaa55b1f666ac434f30b2aaaa

packages/DocumentsUI/src/com/android/documentsui/BaseActivity.java

index 9309693..b8be776 100644 (file)
@@ -151,6 +151,7 @@ public abstract class BaseActivity extends Activity implements SearchManagerList
         final MenuItem advanced = menu.findItem(R.id.menu_advanced);
         final MenuItem fileSize = menu.findItem(R.id.menu_file_size);
         final MenuItem settings = menu.findItem(R.id.menu_settings);
+        final MenuItem search = menu.findItem(R.id.menu_search);
 
         // I'm thinkin' this isn't necesary here. If it is...'cuz of a bug....
         // then uncomment the linke and let's get a proper bug reference here.
@@ -167,6 +168,7 @@ public abstract class BaseActivity extends Activity implements SearchManagerList
         fileSize.setVisible(!mState.forceSize);
         advanced.setVisible(!mState.forceAdvanced);
         settings.setVisible((root.flags & Root.FLAG_HAS_SETTINGS) != 0);
+        search.setVisible(canSearchRoot());
 
         advanced.setTitle(LocalPreferences.getDisplayAdvancedDevices(this)
                 ? R.string.menu_advanced_hide : R.string.menu_advanced_show);
@@ -384,6 +386,11 @@ public abstract class BaseActivity extends Activity implements SearchManagerList
         return authorities;
     }
 
+    boolean canSearchRoot() {
+        final RootInfo root = getCurrentRoot();
+        return (root.flags & Root.FLAG_SUPPORTS_SEARCH) != 0;
+    }
+
     final String getCallingPackageMaybeExtra() {
         String callingPackage = getCallingPackage();
         // System apps can set the calling package name using an extra.