Update the automatic storage management preferences.
This updates this page to match the newer mocks. The changes include: * Changing the toggle from a switch to a switch bar. * Removing the Deletion Helper flow from the screen. * Unit testing the previously untested functionality. Change-Id: I35eb1e065c9acfbf32a64d659d35e18034025472 Fixes: 36486021 Test: Robotest
This commit is contained in:
@@ -0,0 +1,85 @@
|
||||
/*
|
||||
* 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.app.FragmentManager;
|
||||
import android.content.Context;
|
||||
import android.os.SystemProperties;
|
||||
import android.provider.Settings;
|
||||
import android.support.v7.preference.Preference;
|
||||
import android.widget.Switch;
|
||||
|
||||
import com.android.internal.util.Preconditions;
|
||||
import com.android.settings.core.instrumentation.MetricsFeatureProvider;
|
||||
import com.android.settings.widget.SwitchBar;
|
||||
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
||||
|
||||
/** Handles the logic for flipping the storage management toggle on a {@link SwitchBar}. */
|
||||
public class AutomaticStorageManagerSwitchBarController
|
||||
implements SwitchBar.OnSwitchChangeListener {
|
||||
private static final String STORAGE_MANAGER_ENABLED_BY_DEFAULT_PROPERTY =
|
||||
"ro.storage_manager.enabled";
|
||||
|
||||
private Context mContext;
|
||||
private SwitchBar mSwitchBar;
|
||||
private MetricsFeatureProvider mMetrics;
|
||||
private Preference mDaysToRetainPreference;
|
||||
private FragmentManager mFragmentManager;
|
||||
|
||||
public AutomaticStorageManagerSwitchBarController(
|
||||
Context context,
|
||||
SwitchBar switchBar,
|
||||
MetricsFeatureProvider metrics,
|
||||
Preference daysToRetainPreference,
|
||||
FragmentManager fragmentManager) {
|
||||
mContext = Preconditions.checkNotNull(context);
|
||||
mSwitchBar = Preconditions.checkNotNull(switchBar);
|
||||
mMetrics = Preconditions.checkNotNull(metrics);
|
||||
mDaysToRetainPreference = Preconditions.checkNotNull(daysToRetainPreference);
|
||||
mFragmentManager = Preconditions.checkNotNull(fragmentManager);
|
||||
|
||||
mSwitchBar.addOnSwitchChangeListener(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSwitchChanged(Switch switchView, boolean isChecked) {
|
||||
mMetrics.action(mContext, MetricsEvent.ACTION_TOGGLE_STORAGE_MANAGER, isChecked);
|
||||
mDaysToRetainPreference.setEnabled(isChecked);
|
||||
Settings.Secure.putInt(
|
||||
mContext.getContentResolver(),
|
||||
Settings.Secure.AUTOMATIC_STORAGE_MANAGER_ENABLED,
|
||||
isChecked ? 1 : 0);
|
||||
// Only show a warning if enabling.
|
||||
if (isChecked) {
|
||||
maybeShowWarning();
|
||||
}
|
||||
}
|
||||
|
||||
/** Unregisters the controller from listening to further events. */
|
||||
public void tearDown() {
|
||||
mSwitchBar.removeOnSwitchChangeListener(this);
|
||||
}
|
||||
|
||||
private void maybeShowWarning() {
|
||||
// If the storage manager is on by default, we don't need to show the additional dialog.
|
||||
if (SystemProperties.getBoolean(STORAGE_MANAGER_ENABLED_BY_DEFAULT_PROPERTY, false)) {
|
||||
return;
|
||||
}
|
||||
ActivationWarningFragment fragment = ActivationWarningFragment.newInstance();
|
||||
fragment.show(mFragmentManager, ActivationWarningFragment.TAG);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user