Loading res/menu/activity.xml +5 −0 Original line number Diff line number Diff line Loading @@ -76,6 +76,11 @@ android:title="@string/menu_inspect" android:visible="false" app:showAsAction="never"/> <item android:id="@+id/option_menu_show_hidden_files" android:title="@string/menu_show_hidden_files" android:visible="false" app:showAsAction="never"/> <item android:id="@+id/option_menu_launcher" android:visible="false" Loading res/values/strings.xml +4 −0 Original line number Diff line number Diff line Loading @@ -75,6 +75,10 @@ <string name="menu_rename">Rename</string> <!-- Menu item that displays properties about the selected document [CHAR LIMIT=28] --> <string name="menu_inspect">Get info</string> <!-- Menu item that shows hidden files [CHAR LIMIT=28] --> <string name="menu_show_hidden_files">Show hidden files</string> <!-- Menu item that hides hidden files [CHAR LIMIT=28] --> <string name="menu_hide_hidden_files">Don\u2019t show hidden files</string> <!-- Menu item that renames the selected document [CHAR LIMIT=28] --> <string name="menu_view_in_owner">View in <xliff:g id="source" example="Google Drive">%1$s</xliff:g></string> Loading src/com/android/documentsui/BaseActivity.java +27 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import static com.android.documentsui.base.Shared.EXTRA_BENCHMARK; import static com.android.documentsui.base.SharedMinimal.DEBUG; import static com.android.documentsui.base.State.MODE_GRID; import android.content.Context; import android.content.Intent; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; Loading Loading @@ -416,6 +417,11 @@ public abstract class BaseActivity state.localOnly = intent.getBooleanExtra(Intent.EXTRA_LOCAL_ONLY, false); state.excludedAuthorities = getExcludedAuthorities(); state.restrictScopeStorage = Shared.shouldRestrictStorageAccessFramework(this); state.showHiddenFiles = LocalPreferences.getShowHiddenFiles( getApplicationContext(), getApplicationContext() .getResources() .getBoolean(R.bool.show_hidden_files_by_default)); includeState(state); Loading Loading @@ -537,6 +543,10 @@ public abstract class BaseActivity getInjector().actions.switchLauncherIcon(); return true; case R.id.option_menu_show_hidden_files: onClickedShowHiddenFiles(); return true; case R.id.sub_menu_grid: setViewMode(State.MODE_GRID); return true; Loading Loading @@ -664,6 +674,23 @@ public abstract class BaseActivity return mState; } /** * Updates hidden files visibility based on user action. */ private void onClickedShowHiddenFiles() { boolean showHiddenFiles = !mState.showHiddenFiles; Context context = getApplicationContext(); Metrics.logUserAction(showHiddenFiles ? MetricConsts.USER_ACTION_SHOW_HIDDEN_FILES : MetricConsts.USER_ACTION_HIDE_HIDDEN_FILES); LocalPreferences.setShowHiddenFiles(context, showHiddenFiles); mState.showHiddenFiles = showHiddenFiles; // Calls this to trigger either MultiRootDocumentsLoader or DirectoryLoader reloading. mInjector.actions.loadDocumentsForCurrentStack(); } /** * Set mode based on explicit user action. */ Loading src/com/android/documentsui/DirectoryLoader.java +2 −4 Original line number Diff line number Diff line Loading @@ -46,7 +46,6 @@ import com.android.documentsui.base.MimeTypes; import com.android.documentsui.base.RootInfo; import com.android.documentsui.base.State; import com.android.documentsui.base.UserId; import com.android.documentsui.prefs.LocalPreferences; import com.android.documentsui.roots.RootCursorWrapper; import com.android.documentsui.sorting.SortModel; Loading Loading @@ -179,9 +178,8 @@ public class DirectoryLoader extends AsyncTaskLoader<DirectoryResult> { } cursor.registerContentObserver(mObserver); boolean showHiddenFiles = LocalPreferences.getShowHiddenFiles(getContext(), getContext().getResources().getBoolean(R.bool.show_hidden_files_by_default)); cursor = new FilteringCursorWrapper(cursor, showHiddenFiles); // Filter hidden files. cursor = new FilteringCursorWrapper(cursor, mState.showHiddenFiles); if (mSearchMode && !mFeatures.isFoldersInSearchResultsEnabled()) { // There is no findDocumentPath API. Enable filtering on folders in search mode. Loading src/com/android/documentsui/MenuManager.java +8 −0 Original line number Diff line number Diff line Loading @@ -96,6 +96,7 @@ public abstract class MenuManager { updateInspect(mOptionMenu.findItem(R.id.option_menu_inspect)); updateSort(mOptionMenu.findItem(R.id.option_menu_sort)); updateLauncher(mOptionMenu.findItem(R.id.option_menu_launcher)); updateShowHiddenFiles(mOptionMenu.findItem(R.id.option_menu_show_hidden_files)); Menus.disableHiddenItems(mOptionMenu); mSearchManager.updateMenu(); Loading Loading @@ -258,6 +259,13 @@ public abstract class MenuManager { Menus.setEnabledAndVisible(list, mState.derivedMode != State.MODE_LIST); } protected void updateShowHiddenFiles(MenuItem showHidden) { Menus.setEnabledAndVisible(showHidden, true); showHidden.setTitle(mState.showHiddenFiles ? R.string.menu_hide_hidden_files : R.string.menu_show_hidden_files); } protected void updateSort(MenuItem sort) { Menus.setEnabledAndVisible(sort, true); } Loading Loading
res/menu/activity.xml +5 −0 Original line number Diff line number Diff line Loading @@ -76,6 +76,11 @@ android:title="@string/menu_inspect" android:visible="false" app:showAsAction="never"/> <item android:id="@+id/option_menu_show_hidden_files" android:title="@string/menu_show_hidden_files" android:visible="false" app:showAsAction="never"/> <item android:id="@+id/option_menu_launcher" android:visible="false" Loading
res/values/strings.xml +4 −0 Original line number Diff line number Diff line Loading @@ -75,6 +75,10 @@ <string name="menu_rename">Rename</string> <!-- Menu item that displays properties about the selected document [CHAR LIMIT=28] --> <string name="menu_inspect">Get info</string> <!-- Menu item that shows hidden files [CHAR LIMIT=28] --> <string name="menu_show_hidden_files">Show hidden files</string> <!-- Menu item that hides hidden files [CHAR LIMIT=28] --> <string name="menu_hide_hidden_files">Don\u2019t show hidden files</string> <!-- Menu item that renames the selected document [CHAR LIMIT=28] --> <string name="menu_view_in_owner">View in <xliff:g id="source" example="Google Drive">%1$s</xliff:g></string> Loading
src/com/android/documentsui/BaseActivity.java +27 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import static com.android.documentsui.base.Shared.EXTRA_BENCHMARK; import static com.android.documentsui.base.SharedMinimal.DEBUG; import static com.android.documentsui.base.State.MODE_GRID; import android.content.Context; import android.content.Intent; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; Loading Loading @@ -416,6 +417,11 @@ public abstract class BaseActivity state.localOnly = intent.getBooleanExtra(Intent.EXTRA_LOCAL_ONLY, false); state.excludedAuthorities = getExcludedAuthorities(); state.restrictScopeStorage = Shared.shouldRestrictStorageAccessFramework(this); state.showHiddenFiles = LocalPreferences.getShowHiddenFiles( getApplicationContext(), getApplicationContext() .getResources() .getBoolean(R.bool.show_hidden_files_by_default)); includeState(state); Loading Loading @@ -537,6 +543,10 @@ public abstract class BaseActivity getInjector().actions.switchLauncherIcon(); return true; case R.id.option_menu_show_hidden_files: onClickedShowHiddenFiles(); return true; case R.id.sub_menu_grid: setViewMode(State.MODE_GRID); return true; Loading Loading @@ -664,6 +674,23 @@ public abstract class BaseActivity return mState; } /** * Updates hidden files visibility based on user action. */ private void onClickedShowHiddenFiles() { boolean showHiddenFiles = !mState.showHiddenFiles; Context context = getApplicationContext(); Metrics.logUserAction(showHiddenFiles ? MetricConsts.USER_ACTION_SHOW_HIDDEN_FILES : MetricConsts.USER_ACTION_HIDE_HIDDEN_FILES); LocalPreferences.setShowHiddenFiles(context, showHiddenFiles); mState.showHiddenFiles = showHiddenFiles; // Calls this to trigger either MultiRootDocumentsLoader or DirectoryLoader reloading. mInjector.actions.loadDocumentsForCurrentStack(); } /** * Set mode based on explicit user action. */ Loading
src/com/android/documentsui/DirectoryLoader.java +2 −4 Original line number Diff line number Diff line Loading @@ -46,7 +46,6 @@ import com.android.documentsui.base.MimeTypes; import com.android.documentsui.base.RootInfo; import com.android.documentsui.base.State; import com.android.documentsui.base.UserId; import com.android.documentsui.prefs.LocalPreferences; import com.android.documentsui.roots.RootCursorWrapper; import com.android.documentsui.sorting.SortModel; Loading Loading @@ -179,9 +178,8 @@ public class DirectoryLoader extends AsyncTaskLoader<DirectoryResult> { } cursor.registerContentObserver(mObserver); boolean showHiddenFiles = LocalPreferences.getShowHiddenFiles(getContext(), getContext().getResources().getBoolean(R.bool.show_hidden_files_by_default)); cursor = new FilteringCursorWrapper(cursor, showHiddenFiles); // Filter hidden files. cursor = new FilteringCursorWrapper(cursor, mState.showHiddenFiles); if (mSearchMode && !mFeatures.isFoldersInSearchResultsEnabled()) { // There is no findDocumentPath API. Enable filtering on folders in search mode. Loading
src/com/android/documentsui/MenuManager.java +8 −0 Original line number Diff line number Diff line Loading @@ -96,6 +96,7 @@ public abstract class MenuManager { updateInspect(mOptionMenu.findItem(R.id.option_menu_inspect)); updateSort(mOptionMenu.findItem(R.id.option_menu_sort)); updateLauncher(mOptionMenu.findItem(R.id.option_menu_launcher)); updateShowHiddenFiles(mOptionMenu.findItem(R.id.option_menu_show_hidden_files)); Menus.disableHiddenItems(mOptionMenu); mSearchManager.updateMenu(); Loading Loading @@ -258,6 +259,13 @@ public abstract class MenuManager { Menus.setEnabledAndVisible(list, mState.derivedMode != State.MODE_LIST); } protected void updateShowHiddenFiles(MenuItem showHidden) { Menus.setEnabledAndVisible(showHidden, true); showHidden.setTitle(mState.showHiddenFiles ? R.string.menu_hide_hidden_files : R.string.menu_show_hidden_files); } protected void updateSort(MenuItem sort) { Menus.setEnabledAndVisible(sort, true); } Loading