diff options
| author | 2016-06-20 11:46:56 -0700 | |
|---|---|---|
| committer | 2016-06-20 11:57:19 -0700 | |
| commit | dd27444fa8d1eb3ad774dfd502d6a656acc40bfa (patch) | |
| tree | 6402ca12c6f70c64cbfa27607479eae6e93754f9 | |
| parent | 1f0151220e8c3054e826d2c89056bb3aeaf6542e (diff) | |
Make advanced storage option sticky...
...when used from one of the picker modes.
Bug: 29454465
Change-Id: I5f7db04a51023b59121289afd300a13ea071146d
| -rw-r--r-- | packages/DocumentsUI/src/com/android/documentsui/BaseActivity.java | 8 | ||||
| -rw-r--r-- | packages/DocumentsUI/src/com/android/documentsui/LocalPreferences.java | 18 |
2 files changed, 20 insertions, 6 deletions
diff --git a/packages/DocumentsUI/src/com/android/documentsui/BaseActivity.java b/packages/DocumentsUI/src/com/android/documentsui/BaseActivity.java index 9d4b50c60bfb..1922773c9cb8 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/BaseActivity.java +++ b/packages/DocumentsUI/src/com/android/documentsui/BaseActivity.java @@ -215,9 +215,12 @@ public abstract class BaseActivity extends Activity includeState(state); // Advanced roots are shown by default without menu option if forced by config or intent. - state.showAdvanced = Shared.shouldShowDeviceRoot(this, intent); + boolean forceAdvanced = Shared.shouldShowDeviceRoot(this, intent); + boolean chosenAdvanced = LocalPreferences.getShowDeviceRoot(this, state.action); + state.showAdvanced = forceAdvanced || chosenAdvanced; + // Menu option is shown for whitelisted intents if advanced roots are not shown by default. - state.showAdvancedOption = !state.showAdvanced && ( + state.showAdvancedOption = !forceAdvanced && ( Shared.shouldShowFancyFeatures(this) || state.action == ACTION_OPEN || state.action == ACTION_CREATE @@ -483,6 +486,7 @@ public abstract class BaseActivity extends Activity Metrics.logUserAction(this, display ? Metrics.USER_ACTION_SHOW_ADVANCED : Metrics.USER_ACTION_HIDE_ADVANCED); + LocalPreferences.setShowDeviceRoot(this, mState.action, display); mState.showAdvanced = display; RootsFragment.get(getFragmentManager()).onDisplayStateChanged(); invalidateOptionsMenu(); diff --git a/packages/DocumentsUI/src/com/android/documentsui/LocalPreferences.java b/packages/DocumentsUI/src/com/android/documentsui/LocalPreferences.java index 2315664f0d8a..d2e9885edf14 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/LocalPreferences.java +++ b/packages/DocumentsUI/src/com/android/documentsui/LocalPreferences.java @@ -18,9 +18,6 @@ package com.android.documentsui; import static com.android.documentsui.State.MODE_UNKNOWN; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; - import android.annotation.IntDef; import android.annotation.Nullable; import android.content.Context; @@ -28,11 +25,16 @@ import android.content.SharedPreferences; import android.os.UserHandle; import android.preference.PreferenceManager; +import com.android.documentsui.State.ActionType; import com.android.documentsui.State.ViewMode; import com.android.documentsui.model.RootInfo; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + public class LocalPreferences { private static final String KEY_FILE_SIZE = "fileSize"; + private static final String INCLUDE_DEVICE_ROOT = "includeDeviceRoot-"; private static final String ROOT_VIEW_MODE_PREFIX = "rootViewMode-"; public static boolean getDisplayFileSize(Context context) { @@ -48,9 +50,17 @@ public class LocalPreferences { getPrefs(context).edit().putBoolean(KEY_FILE_SIZE, display).apply(); } + public static boolean getShowDeviceRoot(Context context, @ActionType int action) { + return getPrefs(context).getBoolean(INCLUDE_DEVICE_ROOT + action, false); + } + + public static void setShowDeviceRoot( + Context context, @ActionType int action, boolean display) { + getPrefs(context).edit().putBoolean(INCLUDE_DEVICE_ROOT + action, display).apply(); + } + public static void setViewMode(Context context, RootInfo root, @ViewMode int viewMode) { assert(viewMode != MODE_UNKNOWN); - getPrefs(context).edit().putInt(createKey(root), viewMode).apply(); } |