Make PreferenceController a mixin

Bug: 62912136
Test: Existing tests in BaseSearchIndexProviderTest
Change-Id: Ieda359806c09a019840b2005446c7ec8b61fdb00
This commit is contained in:
Tony Mantler
2017-06-13 13:09:25 -07:00
parent 4bac421538
commit 1d583e125f
203 changed files with 1027 additions and 782 deletions

View File

@@ -24,17 +24,19 @@ import android.support.annotation.VisibleForTesting;
import android.support.v7.preference.PreferenceScreen;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.core.PreferenceController;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.core.instrumentation.MetricsFeatureProvider;
import com.android.settings.deletionhelper.ActivationWarningFragment;
import com.android.settings.widget.MasterSwitchController;
import com.android.settings.widget.MasterSwitchPreference;
import com.android.settings.widget.SwitchWidgetController;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnResume;
public class AutomaticStorageManagementSwitchPreferenceController extends PreferenceController
implements LifecycleObserver, OnResume, SwitchWidgetController.OnSwitchChangeListener {
public class AutomaticStorageManagementSwitchPreferenceController extends
AbstractPreferenceController implements PreferenceControllerMixin, LifecycleObserver,
OnResume, SwitchWidgetController.OnSwitchChangeListener {
private static final String KEY_TOGGLE_ASM = "toggle_asm";
@VisibleForTesting
static final String STORAGE_MANAGER_ENABLED_BY_DEFAULT_PROPERTY = "ro.storage_manager.enabled";

View File

@@ -28,8 +28,9 @@ import android.util.SparseArray;
import com.android.settings.Utils;
import com.android.settings.applications.UserManagerWrapper;
import com.android.settings.core.PreferenceController;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.deviceinfo.StorageItemPreference;
import com.android.settingslib.core.AbstractPreferenceController;
import java.util.ArrayList;
import java.util.List;
@@ -38,8 +39,9 @@ import java.util.List;
* SecondaryUserController controls the preferences on the Storage screen which had to do with
* secondary users.
*/
public class SecondaryUserController extends PreferenceController
implements StorageAsyncLoader.ResultHandler, UserIconLoader.UserIconHandler {
public class SecondaryUserController extends AbstractPreferenceController implements
PreferenceControllerMixin, StorageAsyncLoader.ResultHandler,
UserIconLoader.UserIconHandler {
// PreferenceGroupKey to try to add our preference onto.
private static final String TARGET_PREFERENCE_GROUP_KEY = "pref_secondary_users";
private static final String PREFERENCE_KEY_BASE = "pref_user_";
@@ -58,9 +60,9 @@ public class SecondaryUserController extends PreferenceController
* @param context Context for initializing the preference controllers.
* @param userManager UserManagerWrapper for figuring out which controllers to add.
*/
public static List<PreferenceController> getSecondaryUserControllers(
public static List<AbstractPreferenceController> getSecondaryUserControllers(
Context context, UserManagerWrapper userManager) {
List<PreferenceController> controllers = new ArrayList<>();
List<AbstractPreferenceController> controllers = new ArrayList<>();
UserInfo primaryUser = userManager.getPrimaryUser();
boolean addedUser = false;
List<UserInfo> infos = userManager.getUsers();
@@ -89,7 +91,7 @@ public class SecondaryUserController extends PreferenceController
/**
* Constructor for a given secondary user.
* @param context Context to initialize the underlying {@link PreferenceController}.
* @param context Context to initialize the underlying {@link AbstractPreferenceController}.
* @param info {@link UserInfo} for the secondary user which this controllers covers.
*/
@VisibleForTesting
@@ -175,7 +177,8 @@ public class SecondaryUserController extends PreferenceController
}
}
private static class NoSecondaryUserController extends PreferenceController {
private static class NoSecondaryUserController extends AbstractPreferenceController implements
PreferenceControllerMixin {
public NoSecondaryUserController(Context context) {
super(context);
}

View File

@@ -38,11 +38,12 @@ import com.android.settings.R;
import com.android.settings.Settings;
import com.android.settings.Utils;
import com.android.settings.applications.ManageApplications;
import com.android.settings.core.PreferenceController;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.core.instrumentation.MetricsFeatureProvider;
import com.android.settings.deviceinfo.PrivateVolumeSettings.SystemInfoFragment;
import com.android.settings.deviceinfo.StorageItemPreference;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.deviceinfo.StorageMeasurement;
import com.android.settingslib.deviceinfo.StorageVolumeProvider;
@@ -54,7 +55,8 @@ import java.util.Map;
* StorageItemPreferenceController handles the storage line items which summarize the storage
* categorization breakdown.
*/
public class StorageItemPreferenceController extends PreferenceController {
public class StorageItemPreferenceController extends AbstractPreferenceController implements
PreferenceControllerMixin {
private static final String TAG = "StorageItemPreference";
private static final String IMAGE_MIME_TYPE = "image/*";

View File

@@ -24,14 +24,16 @@ import android.text.TextUtils;
import android.text.format.Formatter;
import com.android.settings.R;
import com.android.settings.core.PreferenceController;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.deviceinfo.StorageVolumeProvider;
/**
* StorgaeSummaryPreferenceController updates the donut storage summary preference to have the
* correct sizes showing.
*/
public class StorageSummaryDonutPreferenceController extends PreferenceController {
public class StorageSummaryDonutPreferenceController extends AbstractPreferenceController implements
PreferenceControllerMixin {
private long mUsedBytes;
private long mTotalBytes;
private StorageSummaryDonutPreference mSummary;

View File

@@ -30,14 +30,17 @@ import com.android.internal.logging.nano.MetricsProto;
import com.android.internal.util.Preconditions;
import com.android.settings.Utils;
import com.android.settings.applications.UserManagerWrapper;
import com.android.settings.core.PreferenceController;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.deviceinfo.StorageItemPreference;
import com.android.settings.deviceinfo.StorageProfileFragment;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.drawer.SettingsDrawerActivity;
/** Defines a {@link PreferenceController} which handles a single profile of the primary user. */
public class UserProfileController extends PreferenceController
implements StorageAsyncLoader.ResultHandler, UserIconLoader.UserIconHandler {
/** Defines a {@link AbstractPreferenceController} which handles a single profile of the primary
* user. */
public class UserProfileController extends AbstractPreferenceController implements
PreferenceControllerMixin, StorageAsyncLoader.ResultHandler,
UserIconLoader.UserIconHandler {
private static final String PREFERENCE_KEY_BASE = "pref_profile_";
private StorageItemPreference mStoragePreference;
private UserManagerWrapper mUserManager;