OSDN Git Service

Merge "Add a warning message to the ASM toggle." into nyc-mr1-dev
authorTreeHugger Robot <treehugger-gerrit@google.com>
Wed, 28 Sep 2016 18:34:29 +0000 (18:34 +0000)
committerAndroid (Google) Code Review <android-gerrit@google.com>
Wed, 28 Sep 2016 18:34:30 +0000 (18:34 +0000)
res/values/strings.xml
src/com/android/settings/deletionhelper/ActivationWarningFragment.java [new file with mode: 0644]
src/com/android/settings/deletionhelper/AutomaticStorageManagerSettings.java

index df5448b..57c33b1 100644 (file)
 
     <!-- Section title for the Domain URL app preference list [CHAR LIMIT=60]-->
     <string name="domain_url_section_title">Installed apps</string>
+
+    <!-- Warning when activating the automatic storage manager on legacy devices. [CHAR LIMIT=NONE] -->
+    <string name="automatic_storage_manager_activation_warning">Your storage is now being managed by the storage manager</string>
 </resources>
diff --git a/src/com/android/settings/deletionhelper/ActivationWarningFragment.java b/src/com/android/settings/deletionhelper/ActivationWarningFragment.java
new file mode 100644 (file)
index 0000000..f7d46d1
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.deletionhelper;
+
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.app.DialogFragment;
+import android.content.DialogInterface;
+import android.os.Bundle;
+import com.android.settings.R;
+
+/**
+ * Fragment to warn the user about activating the storage manager.
+ */
+public class ActivationWarningFragment extends DialogFragment {
+    public static final String TAG = "ActivationWarningFragment";
+
+    public static ActivationWarningFragment newInstance() {
+        return new ActivationWarningFragment();
+    }
+
+    @Override
+    public Dialog onCreateDialog(Bundle savedInstanceState) {
+        return new AlertDialog.Builder(getActivity())
+                .setMessage(R.string.automatic_storage_manager_activation_warning)
+                .setPositiveButton(android.R.string.ok, null)
+                .create();
+    }
+
+}
index 20efdda..f9b1a57 100644 (file)
 package com.android.settings.deletionhelper;
 
 import android.app.Activity;
+import android.app.AlertDialog;
 import android.content.ContentResolver;
 import android.content.Context;
 import android.content.Intent;
 import android.content.res.Resources;
 import android.os.Bundle;
+import android.os.SystemProperties;
 import android.os.storage.StorageManager;
 import android.provider.Settings;
 import android.text.format.DateUtils;
@@ -55,6 +57,8 @@ public class AutomaticStorageManagerSettings extends SettingsPreferenceFragment
     private static final String KEY_DELETION_HELPER = "deletion_helper";
     private static final String KEY_FREED = "freed_bytes";
     private static final String KEY_STORAGE_MANAGER_SWITCH = "storage_manager_active";
+    private static final String STORAGE_MANAGER_ENABLED_BY_DEFAULT_PROPERTY =
+            "ro.storage_manager.enabled";
 
     private DropDownPreference mDaysToRetain;
     private Preference mFreedBytes;
@@ -126,6 +130,10 @@ public class AutomaticStorageManagerSettings extends SettingsPreferenceFragment
                 mDaysToRetain.setEnabled(checked);
                 Settings.Secure.putInt(getContentResolver(),
                         Settings.Secure.AUTOMATIC_STORAGE_MANAGER_ENABLED, checked ? 1 : 0);
+                // Only show a warning if enabling.
+                if (checked) {
+                    maybeShowWarning();
+                }
                 break;
             case KEY_DAYS:
                 Settings.Secure.putInt(getContentResolver(),
@@ -164,4 +172,15 @@ public class AutomaticStorageManagerSettings extends SettingsPreferenceFragment
         }
         return indices.length - 1;
     }
+
+    private void maybeShowWarning() {
+        // If the storage manager is on by default, we can use the normal message.
+        boolean warningUnneeded = SystemProperties.getBoolean(
+                STORAGE_MANAGER_ENABLED_BY_DEFAULT_PROPERTY, false);
+        if (warningUnneeded) {
+            return;
+        }
+        ActivationWarningFragment fragment = ActivationWarningFragment.newInstance();
+        fragment.show(getFragmentManager(), ActivationWarningFragment.TAG);
+    }
 }