diff --git a/src/com/android/settings/deletionhelper/AutomaticStorageManagerDescriptionPreferenceController.java b/src/com/android/settings/deletionhelper/AutomaticStorageManagerDescriptionPreferenceController.java new file mode 100644 index 00000000000..261f66cea6e --- /dev/null +++ b/src/com/android/settings/deletionhelper/AutomaticStorageManagerDescriptionPreferenceController.java @@ -0,0 +1,76 @@ +/** + * Copyright (C) 2017 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.content.ContentResolver;
+import android.content.Context;
+import android.provider.Settings;
+import android.support.v7.preference.Preference;
+import android.support.v7.preference.PreferenceScreen;
+import android.text.format.DateUtils;
+import android.text.format.Formatter;
+
+import com.android.settings.R;
+import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settingslib.core.AbstractPreferenceController;
+
+/**
+ * Handles the wall of text which appears below the options in the Storage Management settings drill
+ * down.
+ */
+public class AutomaticStorageManagerDescriptionPreferenceController
+ extends AbstractPreferenceController implements PreferenceControllerMixin {
+ private static final String KEY_FREED = "freed_bytes";
+
+ public AutomaticStorageManagerDescriptionPreferenceController(Context context) {
+ super(context);
+ }
+
+ @Override
+ public boolean isAvailable() {
+ return true;
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return KEY_FREED;
+ }
+
+ @Override
+ public void displayPreference(PreferenceScreen screen) {
+ Preference preference = screen.findPreference(getPreferenceKey());
+ final Context context = preference.getContext();
+ ContentResolver cr = context.getContentResolver();
+ long freedBytes =
+ Settings.Secure.getLong(
+ cr, Settings.Secure.AUTOMATIC_STORAGE_MANAGER_BYTES_CLEARED, 0);
+ long lastRunMillis =
+ Settings.Secure.getLong(cr, Settings.Secure.AUTOMATIC_STORAGE_MANAGER_LAST_RUN, 0);
+ if (freedBytes == 0 || lastRunMillis == 0 || !isStorageManagerEnabled(cr)) {
+ preference.setSummary(R.string.automatic_storage_manager_text);
+ } else {
+ preference.setSummary(
+ context.getString(
+ R.string.automatic_storage_manager_freed_bytes,
+ Formatter.formatFileSize(context, freedBytes),
+ DateUtils.formatDateTime(
+ context, lastRunMillis, DateUtils.FORMAT_SHOW_DATE)));
+ }
+ }
+
+ private boolean isStorageManagerEnabled(ContentResolver cr) {
+ return Settings.Secure.getInt(cr, Settings.Secure.AUTOMATIC_STORAGE_MANAGER_ENABLED, 0)
+ != 0;
+ }
+}
diff --git a/src/com/android/settings/deletionhelper/AutomaticStorageManagerSettings.java b/src/com/android/settings/deletionhelper/AutomaticStorageManagerSettings.java
index f7b62b1666f..e38317a824d 100644
--- a/src/com/android/settings/deletionhelper/AutomaticStorageManagerSettings.java
+++ b/src/com/android/settings/deletionhelper/AutomaticStorageManagerSettings.java
@@ -16,15 +16,13 @@
package com.android.settings.deletionhelper;
-import android.app.Activity;
import android.content.ContentResolver;
+import android.content.Context;
import android.os.Bundle;
import android.provider.Settings;
import android.support.v7.preference.DropDownPreference;
import android.support.v7.preference.Preference;
import android.support.v7.preference.Preference.OnPreferenceChangeListener;
-import android.text.format.DateUtils;
-import android.text.format.Formatter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -32,39 +30,34 @@ import android.view.ViewGroup;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
import com.android.settings.SettingsActivity;
-import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.Utils;
+import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settings.search.Indexable;
import com.android.settings.widget.SwitchBar;
+import com.android.settingslib.core.AbstractPreferenceController;
+
+import java.util.ArrayList;
+import java.util.List;
/**
* AutomaticStorageManagerSettings is the Settings screen for configuration and management of the
* automatic storage manager.
*/
-public class AutomaticStorageManagerSettings extends SettingsPreferenceFragment
+public class AutomaticStorageManagerSettings extends DashboardFragment
implements OnPreferenceChangeListener {
private static final String KEY_DAYS = "days";
- private static final String KEY_FREED = "freed_bytes";
- private static final String STORAGE_MANAGER_ENABLED_BY_DEFAULT_PROPERTY =
- "ro.storage_manager.enabled";
private AutomaticStorageManagerSwitchBarController mSwitchController;
private DropDownPreference mDaysToRetain;
- private Preference mFreedBytes;
private SwitchBar mSwitchBar;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- addPreferencesFromResource(R.xml.automatic_storage_management_settings);
- }
-
@Override
public View onCreateView(
LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = super.onCreateView(inflater, container, savedInstanceState);
initializeDaysToRetainPreference();
- initializeFreedBytesPreference();
initializeSwitchBar();
return view;
@@ -98,35 +91,25 @@ public class AutomaticStorageManagerSettings extends SettingsPreferenceFragment
getFragmentManager());
}
- private void initializeFreedBytesPreference() {
- ContentResolver cr = getContentResolver();
- mFreedBytes = findPreference(KEY_FREED);
- long freedBytes = Settings.Secure.getLong(cr,
- Settings.Secure.AUTOMATIC_STORAGE_MANAGER_BYTES_CLEARED,
- 0);
- long lastRunMillis = Settings.Secure.getLong(cr,
- Settings.Secure.AUTOMATIC_STORAGE_MANAGER_LAST_RUN,
- 0);
- if (freedBytes == 0 || lastRunMillis == 0) {
- mFreedBytes.setVisible(false);
- } else {
- final Activity activity = getActivity();
- mFreedBytes.setSummary(
- activity.getString(
- R.string.automatic_storage_manager_freed_bytes,
- Formatter.formatFileSize(activity, freedBytes),
- DateUtils.formatDateTime(
- activity, lastRunMillis, DateUtils.FORMAT_SHOW_DATE)));
- }
- }
-
@Override
public void onResume() {
super.onResume();
- boolean isStorageManagerChecked =
- Settings.Secure.getInt(getContentResolver(),
- Settings.Secure.AUTOMATIC_STORAGE_MANAGER_ENABLED, 0) != 0;
- mDaysToRetain.setEnabled(isStorageManagerChecked);
+ mDaysToRetain.setEnabled(isStorageManagerEnabled());
+ }
+
+ @Override
+ protected String getLogTag() {
+ return null;
+ }
+
+ @Override
+ protected int getPreferenceScreenResId() {
+ return R.xml.automatic_storage_management_settings;
+ }
+
+ @Override
+ protected List