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,7 +24,6 @@ import android.os.UserManager;
import android.provider.SearchIndexableResource; import android.provider.SearchIndexableResource;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.core.PreferenceController;
import com.android.settings.dashboard.DashboardFragment; import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.dashboard.SummaryLoader; import com.android.settings.dashboard.SummaryLoader;
import com.android.settings.datetime.AutoTimePreferenceController; import com.android.settings.datetime.AutoTimePreferenceController;
@@ -36,6 +35,7 @@ import com.android.settings.datetime.TimePreferenceController;
import com.android.settings.datetime.TimeZonePreferenceController; import com.android.settings.datetime.TimeZonePreferenceController;
import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.search.Indexable; import com.android.settings.search.Indexable;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.datetime.ZoneGetter; import com.android.settingslib.datetime.ZoneGetter;
import java.util.ArrayList; import java.util.ArrayList;
@@ -72,8 +72,8 @@ public class DateTimeSettings extends DashboardFragment implements
} }
@Override @Override
protected List<PreferenceController> getPreferenceControllers(Context context) { protected List<AbstractPreferenceController> getPreferenceControllers(Context context) {
final List<PreferenceController> controllers = new ArrayList<>(); final List<AbstractPreferenceController> controllers = new ArrayList<>();
final Activity activity = getActivity(); final Activity activity = getActivity();
final Intent intent = activity.getIntent(); final Intent intent = activity.getIntent();
final boolean isFromSUW = intent.getBooleanExtra(EXTRA_IS_FROM_SUW, false); final boolean isFromSUW = intent.getBooleanExtra(EXTRA_IS_FROM_SUW, false);

View File

@@ -23,7 +23,6 @@ import android.content.Intent;
import android.provider.SearchIndexableResource; import android.provider.SearchIndexableResource;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.core.PreferenceController;
import com.android.settings.dashboard.DashboardFragment; import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.dashboard.SummaryLoader; import com.android.settings.dashboard.SummaryLoader;
import com.android.settings.deviceinfo.AdditionalSystemUpdatePreferenceController; import com.android.settings.deviceinfo.AdditionalSystemUpdatePreferenceController;
@@ -41,6 +40,7 @@ import com.android.settings.deviceinfo.SafetyInfoPreferenceController;
import com.android.settings.deviceinfo.SecurityPatchPreferenceController; import com.android.settings.deviceinfo.SecurityPatchPreferenceController;
import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.search.Indexable; import com.android.settings.search.Indexable;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.Lifecycle;
import java.util.ArrayList; import java.util.ArrayList;
@@ -84,7 +84,7 @@ public class DeviceInfoSettings extends DashboardFragment implements Indexable {
} }
@Override @Override
protected List<PreferenceController> getPreferenceControllers(Context context) { protected List<AbstractPreferenceController> getPreferenceControllers(Context context) {
return buildPreferenceControllers(context, getActivity(), this /* fragment */, return buildPreferenceControllers(context, getActivity(), this /* fragment */,
getLifecycle()); getLifecycle());
} }
@@ -114,9 +114,9 @@ public class DeviceInfoSettings extends DashboardFragment implements Indexable {
} }
}; };
private static List<PreferenceController> buildPreferenceControllers(Context context, private static List<AbstractPreferenceController> buildPreferenceControllers(Context context,
Activity activity, Fragment fragment, Lifecycle lifecycle) { Activity activity, Fragment fragment, Lifecycle lifecycle) {
final List<PreferenceController> controllers = new ArrayList<>(); final List<AbstractPreferenceController> controllers = new ArrayList<>();
controllers.add( controllers.add(
new BuildNumberPreferenceController(context, activity, fragment, lifecycle)); new BuildNumberPreferenceController(context, activity, fragment, lifecycle));
controllers.add(new AdditionalSystemUpdatePreferenceController(context)); controllers.add(new AdditionalSystemUpdatePreferenceController(context));
@@ -149,7 +149,7 @@ public class DeviceInfoSettings extends DashboardFragment implements Indexable {
} }
@Override @Override
public List<PreferenceController> getPreferenceControllers(Context context) { public List<AbstractPreferenceController> getPreferenceControllers(Context context) {
return buildPreferenceControllers(context, null /*activity */, return buildPreferenceControllers(context, null /*activity */,
null /* fragment */, null /* lifecycle */); null /* fragment */, null /* lifecycle */);
} }

View File

@@ -21,7 +21,6 @@ import android.provider.SearchIndexableResource;
import com.android.internal.hardware.AmbientDisplayConfiguration; import com.android.internal.hardware.AmbientDisplayConfiguration;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.core.PreferenceController;
import com.android.settings.dashboard.DashboardFragment; import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.display.AmbientDisplayPreferenceController; import com.android.settings.display.AmbientDisplayPreferenceController;
import com.android.settings.display.AutoBrightnessPreferenceController; import com.android.settings.display.AutoBrightnessPreferenceController;
@@ -41,6 +40,7 @@ import com.android.settings.display.VrDisplayPreferenceController;
import com.android.settings.display.WallpaperPreferenceController; import com.android.settings.display.WallpaperPreferenceController;
import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.search.Indexable; import com.android.settings.search.Indexable;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.Lifecycle;
import java.util.ArrayList; import java.util.ArrayList;
@@ -77,7 +77,7 @@ public class DisplaySettings extends DashboardFragment {
} }
@Override @Override
protected List<PreferenceController> getPreferenceControllers(Context context) { protected List<AbstractPreferenceController> getPreferenceControllers(Context context) {
return buildPreferenceControllers(context, getLifecycle()); return buildPreferenceControllers(context, getLifecycle());
} }
@@ -86,9 +86,9 @@ public class DisplaySettings extends DashboardFragment {
return R.string.help_uri_display; return R.string.help_uri_display;
} }
private static List<PreferenceController> buildPreferenceControllers( private static List<AbstractPreferenceController> buildPreferenceControllers(
Context context, Lifecycle lifecycle) { Context context, Lifecycle lifecycle) {
final List<PreferenceController> controllers = new ArrayList<>(); final List<AbstractPreferenceController> controllers = new ArrayList<>();
final AmbientDisplayConfiguration ambientDisplayConfig = new AmbientDisplayConfiguration(context); final AmbientDisplayConfiguration ambientDisplayConfig = new AmbientDisplayConfiguration(context);
controllers.add(new AutoBrightnessPreferenceController(context, KEY_AUTO_BRIGHTNESS)); controllers.add(new AutoBrightnessPreferenceController(context, KEY_AUTO_BRIGHTNESS));
controllers.add(new AutoRotatePreferenceController(context, lifecycle)); controllers.add(new AutoRotatePreferenceController(context, lifecycle));
@@ -131,7 +131,7 @@ public class DisplaySettings extends DashboardFragment {
} }
@Override @Override
public List<PreferenceController> getPreferenceControllers(Context context) { public List<AbstractPreferenceController> getPreferenceControllers(Context context) {
return buildPreferenceControllers(context, null); return buildPreferenceControllers(context, null);
} }
}; };

View File

@@ -27,9 +27,9 @@ import android.support.v7.preference.PreferenceScreen;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.Utils; import com.android.settings.Utils;
import com.android.settings.core.PreferenceController;
import com.android.settings.dashboard.DashboardFragment; import com.android.settings.dashboard.DashboardFragment;
import com.android.settingslib.accounts.AuthenticatorHelper; import com.android.settingslib.accounts.AuthenticatorHelper;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.drawer.Tile; import com.android.settingslib.drawer.Tile;
import java.util.ArrayList; import java.util.ArrayList;
@@ -108,8 +108,8 @@ public class AccountDetailDashboardFragment extends DashboardFragment {
} }
@Override @Override
protected List<PreferenceController> getPreferenceControllers(Context context) { protected List<AbstractPreferenceController> getPreferenceControllers(Context context) {
final List<PreferenceController> controllers = new ArrayList<>(); final List<AbstractPreferenceController> controllers = new ArrayList<>();
mAccountSynController = new AccountSyncPreferenceController(context); mAccountSynController = new AccountSyncPreferenceController(context);
controllers.add(mAccountSynController); controllers.add(mAccountSynController);
mRemoveAccountController = new RemoveAccountPreferenceController(context, this); mRemoveAccountController = new RemoveAccountPreferenceController(context, this);

View File

@@ -26,15 +26,17 @@ import android.support.v7.preference.PreferenceScreen;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.applications.LayoutPreference; import com.android.settings.applications.LayoutPreference;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.widget.EntityHeaderController; import com.android.settings.widget.EntityHeaderController;
import com.android.settingslib.accounts.AuthenticatorHelper; import com.android.settingslib.accounts.AuthenticatorHelper;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.Lifecycle;
import static com.android.settings.accounts.AccountDetailDashboardFragment.KEY_ACCOUNT; import static com.android.settings.accounts.AccountDetailDashboardFragment.KEY_ACCOUNT;
import static com.android.settings.accounts.AccountDetailDashboardFragment.KEY_USER_HANDLE; import static com.android.settings.accounts.AccountDetailDashboardFragment.KEY_USER_HANDLE;
public class AccountHeaderPreferenceController extends PreferenceController { public class AccountHeaderPreferenceController extends AbstractPreferenceController
implements PreferenceControllerMixin {
private static final String KEY_ACCOUNT_HEADER = "account_header"; private static final String KEY_ACCOUNT_HEADER = "account_header";

View File

@@ -51,13 +51,14 @@ import com.android.settings.R;
import com.android.settings.SettingsActivity; import com.android.settings.SettingsActivity;
import com.android.settings.SettingsPreferenceFragment; import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.Utils; import com.android.settings.Utils;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.core.instrumentation.MetricsFeatureProvider; import com.android.settings.core.instrumentation.MetricsFeatureProvider;
import com.android.settings.overlay.FeatureFactory; import com.android.settings.overlay.FeatureFactory;
import com.android.settings.search.SearchFeatureProviderImpl; import com.android.settings.search.SearchFeatureProviderImpl;
import com.android.settings.search.SearchIndexableRaw; import com.android.settings.search.SearchIndexableRaw;
import com.android.settingslib.RestrictedPreference; import com.android.settingslib.RestrictedPreference;
import com.android.settingslib.accounts.AuthenticatorHelper; import com.android.settingslib.accounts.AuthenticatorHelper;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnPause; import com.android.settingslib.core.lifecycle.events.OnPause;
import com.android.settingslib.core.lifecycle.events.OnResume; import com.android.settingslib.core.lifecycle.events.OnResume;
@@ -67,8 +68,8 @@ import java.util.Collections;
import java.util.Comparator; import java.util.Comparator;
import java.util.List; import java.util.List;
public class AccountPreferenceController extends PreferenceController public class AccountPreferenceController extends AbstractPreferenceController
implements AuthenticatorHelper.OnAccountsUpdateListener, implements PreferenceControllerMixin, AuthenticatorHelper.OnAccountsUpdateListener,
OnPreferenceClickListener, LifecycleObserver, OnPause, OnResume { OnPreferenceClickListener, LifecycleObserver, OnPause, OnResume {
private static final String TAG = "AccountPrefController"; private static final String TAG = "AccountPrefController";

View File

@@ -27,9 +27,11 @@ import android.support.v7.preference.Preference;
import com.android.internal.logging.nano.MetricsProto; import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.Utils; import com.android.settings.Utils;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
public class AccountSyncPreferenceController extends PreferenceController { public class AccountSyncPreferenceController extends AbstractPreferenceController
implements PreferenceControllerMixin {
private static final String TAG = "AccountSyncController"; private static final String TAG = "AccountSyncController";
private static final String KEY_ACCOUNT_SYNC = "account_sync"; private static final String KEY_ACCOUNT_SYNC = "account_sync";

View File

@@ -19,15 +19,17 @@ import android.content.Context;
import android.provider.Settings.Global; import android.provider.Settings.Global;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.users.UserCapabilities; import com.android.settings.users.UserCapabilities;
import com.android.settingslib.RestrictedSwitchPreference; import com.android.settingslib.RestrictedSwitchPreference;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnPause; import com.android.settingslib.core.lifecycle.events.OnPause;
import com.android.settingslib.core.lifecycle.events.OnResume; import com.android.settingslib.core.lifecycle.events.OnResume;
public class AddUserWhenLockedPreferenceController extends PreferenceController public class AddUserWhenLockedPreferenceController extends AbstractPreferenceController
implements Preference.OnPreferenceChangeListener, LifecycleObserver, OnPause, OnResume { implements PreferenceControllerMixin, Preference.OnPreferenceChangeListener,
LifecycleObserver, OnPause, OnResume {
private static final String KEY_ADD_USER_WHEN_LOCKED = "add_users_when_locked"; private static final String KEY_ADD_USER_WHEN_LOCKED = "add_users_when_locked";

View File

@@ -32,10 +32,12 @@ import android.util.Log;
import com.android.internal.logging.nano.MetricsProto; import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment; import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
import com.android.settingslib.core.AbstractPreferenceController;
public class AutoSyncDataPreferenceController extends PreferenceController { public class AutoSyncDataPreferenceController extends AbstractPreferenceController
implements PreferenceControllerMixin {
private static final String TAG = "AutoSyncDataController"; private static final String TAG = "AutoSyncDataController";
private static final String TAG_CONFIRM_AUTO_SYNC_CHANGE = "confirmAutoSyncChange"; private static final String TAG_CONFIRM_AUTO_SYNC_CHANGE = "confirmAutoSyncChange";

View File

@@ -23,15 +23,16 @@ import android.content.res.Resources;
import android.os.UserHandle; import android.os.UserHandle;
import android.os.UserManager; import android.os.UserManager;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.search.SearchIndexableRaw; import com.android.settings.search.SearchIndexableRaw;
import com.android.settingslib.core.AbstractPreferenceController;
import java.util.List; import java.util.List;
public class EmergencyInfoPreferenceController extends PreferenceController { public class EmergencyInfoPreferenceController extends AbstractPreferenceController
implements PreferenceControllerMixin {
private static final String KEY_EMERGENCY_INFO = "emergency_info"; private static final String KEY_EMERGENCY_INFO = "emergency_info";
private static final String ACTION_EDIT_EMERGENCY_INFO = "android.settings.EDIT_EMERGENCY_INFO"; private static final String ACTION_EDIT_EMERGENCY_INFO = "android.settings.EDIT_EMERGENCY_INFO";

View File

@@ -29,7 +29,6 @@ import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.os.Process;
import android.os.UserHandle; import android.os.UserHandle;
import android.support.v7.preference.PreferenceScreen; import android.support.v7.preference.PreferenceScreen;
import android.view.View; import android.view.View;
@@ -39,13 +38,14 @@ import android.widget.Button;
import com.android.internal.logging.nano.MetricsProto; import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.applications.LayoutPreference; import com.android.settings.applications.LayoutPreference;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment; import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
import com.android.settingslib.core.AbstractPreferenceController;
import java.io.IOException; import java.io.IOException;
public class RemoveAccountPreferenceController extends PreferenceController public class RemoveAccountPreferenceController extends AbstractPreferenceController
implements OnClickListener { implements PreferenceControllerMixin, OnClickListener {
private static final String KEY_REMOVE_ACCOUNT = "remove_account"; private static final String KEY_REMOVE_ACCOUNT = "remove_account";

View File

@@ -15,6 +15,8 @@
*/ */
package com.android.settings.accounts; package com.android.settings.accounts;
import static android.provider.Settings.EXTRA_AUTHORITIES;
import android.app.Activity; import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.content.pm.UserInfo; import android.content.pm.UserInfo;
@@ -25,18 +27,16 @@ import android.provider.SearchIndexableResource;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.PreferenceController;
import com.android.settings.dashboard.DashboardFragment; import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.dashboard.SummaryLoader; import com.android.settings.dashboard.SummaryLoader;
import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.drawer.Tile; import com.android.settingslib.drawer.Tile;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import static android.provider.Settings.EXTRA_AUTHORITIES;
public class UserAndAccountDashboardFragment extends DashboardFragment { public class UserAndAccountDashboardFragment extends DashboardFragment {
private static final String TAG = "UserAndAccountDashboard"; private static final String TAG = "UserAndAccountDashboard";
@@ -63,8 +63,8 @@ public class UserAndAccountDashboardFragment extends DashboardFragment {
} }
@Override @Override
protected List<PreferenceController> getPreferenceControllers(Context context) { protected List<AbstractPreferenceController> getPreferenceControllers(Context context) {
final List<PreferenceController> controllers = new ArrayList<>(); final List<AbstractPreferenceController> controllers = new ArrayList<>();
controllers.add(new EmergencyInfoPreferenceController(context)); controllers.add(new EmergencyInfoPreferenceController(context));
AddUserWhenLockedPreferenceController addUserWhenLockedPrefController = AddUserWhenLockedPreferenceController addUserWhenLockedPrefController =
new AddUserWhenLockedPreferenceController(context); new AddUserWhenLockedPreferenceController(context);

View File

@@ -29,11 +29,11 @@ import com.android.settings.applications.defaultapps.DefaultPhonePreferenceContr
import com.android.settings.applications.defaultapps.DefaultSmsPreferenceController; import com.android.settings.applications.defaultapps.DefaultSmsPreferenceController;
import com.android.settings.applications.defaultapps.DefaultWorkBrowserPreferenceController; import com.android.settings.applications.defaultapps.DefaultWorkBrowserPreferenceController;
import com.android.settings.applications.defaultapps.DefaultWorkPhonePreferenceController; import com.android.settings.applications.defaultapps.DefaultWorkPhonePreferenceController;
import com.android.settings.core.PreferenceController;
import com.android.settings.dashboard.DashboardFragment; import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.dashboard.SummaryLoader; import com.android.settings.dashboard.SummaryLoader;
import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.search.Indexable; import com.android.settings.search.Indexable;
import com.android.settingslib.core.AbstractPreferenceController;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
@@ -56,7 +56,7 @@ public class AdvancedAppSettings extends DashboardFragment {
} }
@Override @Override
protected List<PreferenceController> getPreferenceControllers(Context context) { protected List<AbstractPreferenceController> getPreferenceControllers(Context context) {
return buildPreferenceControllers(context); return buildPreferenceControllers(context);
} }
@@ -65,8 +65,8 @@ public class AdvancedAppSettings extends DashboardFragment {
return MetricsEvent.APPLICATIONS_ADVANCED; return MetricsEvent.APPLICATIONS_ADVANCED;
} }
private static List<PreferenceController> buildPreferenceControllers(Context context) { private static List<AbstractPreferenceController> buildPreferenceControllers(Context context) {
final List<PreferenceController> controllers = new ArrayList<>(); final List<AbstractPreferenceController> controllers = new ArrayList<>();
controllers.add(new DefaultBrowserPreferenceController(context)); controllers.add(new DefaultBrowserPreferenceController(context));
controllers.add(new DefaultWorkBrowserPreferenceController(context)); controllers.add(new DefaultWorkBrowserPreferenceController(context));
controllers.add(new DefaultPhonePreferenceController(context)); controllers.add(new DefaultPhonePreferenceController(context));
@@ -100,7 +100,7 @@ public class AdvancedAppSettings extends DashboardFragment {
} }
@Override @Override
public List<PreferenceController> getPreferenceControllers(Context context) { public List<AbstractPreferenceController> getPreferenceControllers(Context context) {
return buildPreferenceControllers(context); return buildPreferenceControllers(context);
} }
}; };

View File

@@ -24,10 +24,10 @@ import android.provider.SearchIndexableResource;
import com.android.internal.logging.nano.MetricsProto; import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.PreferenceController;
import com.android.settings.dashboard.DashboardFragment; import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.notification.EmergencyBroadcastPreferenceController; import com.android.settings.notification.EmergencyBroadcastPreferenceController;
import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settingslib.core.AbstractPreferenceController;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
@@ -64,7 +64,7 @@ public class AppAndNotificationDashboardFragment extends DashboardFragment {
} }
@Override @Override
protected List<PreferenceController> getPreferenceControllers(Context context) { protected List<AbstractPreferenceController> getPreferenceControllers(Context context) {
final Activity activity = getActivity(); final Activity activity = getActivity();
final Application app; final Application app;
if (activity != null) { if (activity != null) {
@@ -75,9 +75,9 @@ public class AppAndNotificationDashboardFragment extends DashboardFragment {
return buildPreferenceControllers(context, app, this); return buildPreferenceControllers(context, app, this);
} }
private static List<PreferenceController> buildPreferenceControllers(Context context, private static List<AbstractPreferenceController> buildPreferenceControllers(Context context,
Application app, Fragment host) { Application app, Fragment host) {
final List<PreferenceController> controllers = new ArrayList<>(); final List<AbstractPreferenceController> controllers = new ArrayList<>();
controllers.add(new EmergencyBroadcastPreferenceController(context, controllers.add(new EmergencyBroadcastPreferenceController(context,
"app_and_notif_cell_broadcast_settings")); "app_and_notif_cell_broadcast_settings"));
controllers.add(new SpecialAppAccessPreferenceController(context)); controllers.add(new SpecialAppAccessPreferenceController(context));
@@ -97,7 +97,8 @@ public class AppAndNotificationDashboardFragment extends DashboardFragment {
} }
@Override @Override
public List<PreferenceController> getPreferenceControllers(Context context) { public List<AbstractPreferenceController> getPreferenceControllers(
Context context) {
return buildPreferenceControllers(context, null, null /* host */); return buildPreferenceControllers(context, null, null /* host */);
} }

View File

@@ -24,11 +24,14 @@ import android.text.TextUtils;
import android.util.ArraySet; import android.util.ArraySet;
import android.util.Log; import android.util.Log;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
public class AppPermissionsPreferenceController extends PreferenceController { public class AppPermissionsPreferenceController extends AbstractPreferenceController
implements PreferenceControllerMixin {
private static final String TAG = "AppPermissionPrefCtrl"; private static final String TAG = "AppPermissionPrefCtrl";
private static final String KEY_APP_PERMISSION_GROUPS = "manage_perms"; private static final String KEY_APP_PERMISSION_GROUPS = "manage_perms";

View File

@@ -16,6 +16,9 @@
package com.android.settings.applications; package com.android.settings.applications;
import static com.android.internal.logging.nano.MetricsProto.MetricsEvent
.SETTINGS_APP_NOTIF_CATEGORY;
import android.app.Application; import android.app.Application;
import android.app.Fragment; import android.app.Fragment;
import android.app.usage.UsageStats; import android.app.usage.UsageStats;
@@ -29,7 +32,6 @@ import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceCategory; import android.support.v7.preference.PreferenceCategory;
import android.support.v7.preference.PreferenceScreen; import android.support.v7.preference.PreferenceScreen;
import android.text.TextUtils; import android.text.TextUtils;
import android.text.format.DateUtils;
import android.util.ArrayMap; import android.util.ArrayMap;
import android.util.ArraySet; import android.util.ArraySet;
import android.util.IconDrawableFactory; import android.util.IconDrawableFactory;
@@ -37,8 +39,9 @@ import android.util.Log;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.Utils; import com.android.settings.Utils;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.applications.ApplicationsState; import com.android.settingslib.applications.ApplicationsState;
import com.android.settingslib.core.AbstractPreferenceController;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
@@ -49,15 +52,12 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import static com.android.internal.logging.nano.MetricsProto.MetricsEvent
.SETTINGS_APP_NOTIF_CATEGORY;
/** /**
* This controller displays a list of recently used apps and a "See all" button. If there is * This controller displays a list of recently used apps and a "See all" button. If there is
* no recently used app, "See all" will be displayed as "App info". * no recently used app, "See all" will be displayed as "App info".
*/ */
public class RecentAppsPreferenceController extends PreferenceController public class RecentAppsPreferenceController extends AbstractPreferenceController
implements Comparator<UsageStats> { implements PreferenceControllerMixin, Comparator<UsageStats> {
private static final String TAG = "RecentAppsCtrl"; private static final String TAG = "RecentAppsCtrl";
private static final String KEY_PREF_CATEGORY = "recent_apps_category"; private static final String KEY_PREF_CATEGORY = "recent_apps_category";
@@ -122,7 +122,7 @@ public class RecentAppsPreferenceController extends PreferenceController
@Override @Override
public void updateNonIndexableKeys(List<String> keys) { public void updateNonIndexableKeys(List<String> keys) {
super.updateNonIndexableKeys(keys); PreferenceControllerMixin.super.updateNonIndexableKeys(keys);
// Don't index category name into search. It's not actionable. // Don't index category name into search. It's not actionable.
keys.add(KEY_PREF_CATEGORY); keys.add(KEY_PREF_CATEGORY);
keys.add(KEY_DIVIDER); keys.add(KEY_DIVIDER);

View File

@@ -21,14 +21,15 @@ import android.os.Bundle;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import android.text.TextUtils; import android.text.TextUtils;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnCreate; import com.android.settingslib.core.lifecycle.events.OnCreate;
import com.android.settingslib.core.lifecycle.events.OnSaveInstanceState; import com.android.settingslib.core.lifecycle.events.OnSaveInstanceState;
public class ResetAppPrefPreferenceController extends PreferenceController public class ResetAppPrefPreferenceController extends AbstractPreferenceController
implements LifecycleObserver, OnCreate, OnSaveInstanceState { implements PreferenceControllerMixin, LifecycleObserver, OnCreate, OnSaveInstanceState {
private ResetAppsHelper mResetAppsHelper; private ResetAppsHelper mResetAppsHelper;

View File

@@ -22,10 +22,10 @@ import android.support.v7.preference.Preference;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.PreferenceController;
import com.android.settings.dashboard.DashboardFragment; import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.search.Indexable; import com.android.settings.search.Indexable;
import com.android.settingslib.core.AbstractPreferenceController;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@@ -62,7 +62,7 @@ public class SpecialAccessSettings extends DashboardFragment {
} }
@Override @Override
protected List<PreferenceController> getPreferenceControllers(Context context) { protected List<AbstractPreferenceController> getPreferenceControllers(Context context) {
return null; return null;
} }

View File

@@ -16,10 +16,12 @@ package com.android.settings.applications;
import android.content.Context; import android.content.Context;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.datausage.DataSaverBackend; import com.android.settings.datausage.DataSaverBackend;
import com.android.settingslib.core.AbstractPreferenceController;
public class SpecialAppAccessPreferenceController extends PreferenceController { public class SpecialAppAccessPreferenceController extends AbstractPreferenceController
implements PreferenceControllerMixin {
private static final String KEY_SPECIAL_ACCESS = "special_access"; private static final String KEY_SPECIAL_ACCESS = "special_access";

View File

@@ -25,7 +25,8 @@ import android.support.v7.preference.PreferenceScreen;
import android.support.v7.preference.TwoStatePreference; import android.support.v7.preference.TwoStatePreference;
import com.android.internal.app.AssistUtils; import com.android.internal.app.AssistUtils;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnPause; import com.android.settingslib.core.lifecycle.events.OnPause;
@@ -34,8 +35,9 @@ import com.android.settingslib.core.lifecycle.events.OnResume;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
public class AssistContextPreferenceController extends PreferenceController public class AssistContextPreferenceController extends AbstractPreferenceController
implements Preference.OnPreferenceChangeListener, LifecycleObserver, OnResume, OnPause { implements PreferenceControllerMixin, Preference.OnPreferenceChangeListener,
LifecycleObserver, OnResume, OnPause {
private static final String KEY_CONTEXT = "context"; private static final String KEY_CONTEXT = "context";

View File

@@ -27,7 +27,8 @@ import android.support.v7.preference.TwoStatePreference;
import com.android.internal.annotations.VisibleForTesting; import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.app.AssistUtils; import com.android.internal.app.AssistUtils;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnPause; import com.android.settingslib.core.lifecycle.events.OnPause;
@@ -36,8 +37,9 @@ import com.android.settingslib.core.lifecycle.events.OnResume;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
public class AssistFlashScreenPreferenceController extends PreferenceController public class AssistFlashScreenPreferenceController extends AbstractPreferenceController
implements Preference.OnPreferenceChangeListener, LifecycleObserver, OnResume, OnPause { implements PreferenceControllerMixin, Preference.OnPreferenceChangeListener,
LifecycleObserver, OnResume, OnPause {
private static final String KEY_FLASH = "flash"; private static final String KEY_FLASH = "flash";

View File

@@ -25,7 +25,8 @@ import android.support.v7.preference.PreferenceScreen;
import android.support.v7.preference.TwoStatePreference; import android.support.v7.preference.TwoStatePreference;
import com.android.internal.app.AssistUtils; import com.android.internal.app.AssistUtils;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnPause; import com.android.settingslib.core.lifecycle.events.OnPause;
@@ -34,8 +35,9 @@ import com.android.settingslib.core.lifecycle.events.OnResume;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
public class AssistScreenshotPreferenceController extends PreferenceController public class AssistScreenshotPreferenceController extends AbstractPreferenceController
implements Preference.OnPreferenceChangeListener, LifecycleObserver, OnResume, OnPause { implements PreferenceControllerMixin, Preference.OnPreferenceChangeListener,
LifecycleObserver, OnResume, OnPause {
private static final String KEY_SCREENSHOT = "screenshot"; private static final String KEY_SCREENSHOT = "screenshot";

View File

@@ -21,11 +21,11 @@ import android.provider.SearchIndexableResource;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.PreferenceController;
import com.android.settings.dashboard.DashboardFragment; import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.gestures.AssistGesturePreferenceController; import com.android.settings.gestures.AssistGesturePreferenceController;
import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.search.Indexable; import com.android.settings.search.Indexable;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.Lifecycle;
import java.util.ArrayList; import java.util.ArrayList;
@@ -51,7 +51,7 @@ public class ManageAssist extends DashboardFragment {
} }
@Override @Override
protected List<PreferenceController> getPreferenceControllers(Context context) { protected List<AbstractPreferenceController> getPreferenceControllers(Context context) {
return buildPreferenceControllers(context, getLifecycle()); return buildPreferenceControllers(context, getLifecycle());
} }
@@ -68,9 +68,9 @@ public class ManageAssist extends DashboardFragment {
.setTitle(R.string.assist_footer); .setTitle(R.string.assist_footer);
} }
private static List<PreferenceController> buildPreferenceControllers(Context context, private static List<AbstractPreferenceController> buildPreferenceControllers(Context context,
Lifecycle lifecycle) { Lifecycle lifecycle) {
final List<PreferenceController> controllers = new ArrayList<>(); final List<AbstractPreferenceController> controllers = new ArrayList<>();
controllers.add(new DefaultAssistPreferenceController(context)); controllers.add(new DefaultAssistPreferenceController(context));
controllers.add(new AssistGesturePreferenceController(context, lifecycle, KEY_ASSIST)); controllers.add(new AssistGesturePreferenceController(context, lifecycle, KEY_ASSIST));
controllers.add(new AssistContextPreferenceController(context, lifecycle)); controllers.add(new AssistContextPreferenceController(context, lifecycle));
@@ -92,7 +92,8 @@ public class ManageAssist extends DashboardFragment {
} }
@Override @Override
public List<PreferenceController> getPreferenceControllers(Context context) { public List<AbstractPreferenceController> getPreferenceControllers(
Context context) {
return buildPreferenceControllers(context, null /* lifecycle */); return buildPreferenceControllers(context, null /* lifecycle */);
} }

View File

@@ -27,10 +27,12 @@ import android.util.Log;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.applications.PackageManagerWrapper; import com.android.settings.applications.PackageManagerWrapper;
import com.android.settings.applications.PackageManagerWrapperImpl; import com.android.settings.applications.PackageManagerWrapperImpl;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.widget.GearPreference; import com.android.settings.widget.GearPreference;
import com.android.settingslib.core.AbstractPreferenceController;
public abstract class DefaultAppPreferenceController extends PreferenceController { public abstract class DefaultAppPreferenceController extends AbstractPreferenceController
implements PreferenceControllerMixin {
private static final String TAG = "DefaultAppPrefControl"; private static final String TAG = "DefaultAppPrefControl";

View File

@@ -18,19 +18,15 @@ package com.android.settings.backup;
import android.app.backup.BackupManager; import android.app.backup.BackupManager;
import android.content.Context; import android.content.Context;
import android.os.Build;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.os.UserManager; import android.os.UserManager;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen;
import android.util.Log;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.Utils; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.core.PreferenceController; import com.android.settingslib.core.AbstractPreferenceController;
public class BackupSettingsActivityPreferenceController extends PreferenceController { public class BackupSettingsActivityPreferenceController extends
AbstractPreferenceController implements PreferenceControllerMixin {
private static final String KEY_BACKUP_SETTINGS = "backup_settings"; private static final String KEY_BACKUP_SETTINGS = "backup_settings";
private static final String TAG = "BackupSettingActivityPC" ; private static final String TAG = "BackupSettingActivityPC" ;

View File

@@ -21,10 +21,11 @@ import android.os.Bundle;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.dashboard.DashboardFragment; import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.search.Indexable; import com.android.settings.search.Indexable;
import com.android.settingslib.core.AbstractPreferenceController;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@@ -57,11 +58,11 @@ public class BackupSettingsFragment extends DashboardFragment {
} }
/** /**
* Get a list of {@link PreferenceController} for this fragment. * Get a list of {@link AbstractPreferenceController} for this fragment.
*/ */
@Override @Override
protected List<PreferenceController> getPreferenceControllers(Context context) { protected List<AbstractPreferenceController> getPreferenceControllers(Context context) {
final List<PreferenceController> controllers = new ArrayList<>(); final List<AbstractPreferenceController> controllers = new ArrayList<>();
controllers.add(new BackupSettingsPreferenceController(context)); controllers.add(new BackupSettingsPreferenceController(context));
return controllers; return controllers;
} }

View File

@@ -22,9 +22,11 @@ import android.content.Intent;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen; import android.support.v7.preference.PreferenceScreen;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
public class BackupSettingsPreferenceController extends PreferenceController { public class BackupSettingsPreferenceController extends AbstractPreferenceController
implements PreferenceControllerMixin {
private static final String BACKUP_SETTINGS = "backup_settings"; private static final String BACKUP_SETTINGS = "backup_settings";
private static final String MANUFACTURER_SETTINGS = "manufacturer_backup"; private static final String MANUFACTURER_SETTINGS = "manufacturer_backup";
private Intent mBackupSettingsIntent; private Intent mBackupSettingsIntent;

View File

@@ -20,8 +20,9 @@ import android.content.Context;
import android.support.v14.preference.PreferenceFragment; import android.support.v14.preference.PreferenceFragment;
import android.support.v7.preference.PreferenceScreen; import android.support.v7.preference.PreferenceScreen;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.bluetooth.CachedBluetoothDevice; import com.android.settingslib.bluetooth.CachedBluetoothDevice;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnPause; import com.android.settingslib.core.lifecycle.events.OnPause;
@@ -31,8 +32,9 @@ import com.android.settingslib.core.lifecycle.events.OnResume;
* This class provides common lifecycle and bluetooth device event registration for Bluetooth device * This class provides common lifecycle and bluetooth device event registration for Bluetooth device
* details controllers. * details controllers.
*/ */
public abstract class BluetoothDetailsController extends PreferenceController public abstract class BluetoothDetailsController extends AbstractPreferenceController
implements CachedBluetoothDevice.Callback, LifecycleObserver, OnPause, OnResume { implements PreferenceControllerMixin, CachedBluetoothDevice.Callback, LifecycleObserver,
OnPause, OnResume {
protected final Context mContext; protected final Context mContext;
protected final PreferenceFragment mFragment; protected final PreferenceFragment mFragment;

View File

@@ -23,10 +23,10 @@ import android.content.Context;
import com.android.internal.logging.nano.MetricsProto; import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.PreferenceController;
import com.android.settings.dashboard.RestrictedDashboardFragment; import com.android.settings.dashboard.RestrictedDashboardFragment;
import com.android.settingslib.bluetooth.CachedBluetoothDevice; import com.android.settingslib.bluetooth.CachedBluetoothDevice;
import com.android.settingslib.bluetooth.LocalBluetoothManager; import com.android.settingslib.bluetooth.LocalBluetoothManager;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.Lifecycle;
import java.util.ArrayList; import java.util.ArrayList;
@@ -64,8 +64,8 @@ public class BluetoothDeviceDetailsFragment extends RestrictedDashboardFragment
} }
@Override @Override
protected List<PreferenceController> getPreferenceControllers(Context context) { protected List<AbstractPreferenceController> getPreferenceControllers(Context context) {
ArrayList<PreferenceController> controllers = new ArrayList<>(); ArrayList<AbstractPreferenceController> controllers = new ArrayList<>();
LocalBluetoothManager manager = Utils.getLocalBtManager(context); LocalBluetoothManager manager = Utils.getLocalBtManager(context);
BluetoothDevice remoteDevice = manager.getBluetoothAdapter().getRemoteDevice( BluetoothDevice remoteDevice = manager.getBluetoothAdapter().getRemoteDevice(
mDeviceAddress); mDeviceAddress);

View File

@@ -32,20 +32,20 @@ import android.util.Log;
import com.android.internal.annotations.VisibleForTesting; import com.android.internal.annotations.VisibleForTesting;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.bluetooth.LocalBluetoothAdapter; import com.android.settingslib.bluetooth.LocalBluetoothAdapter;
import com.android.settingslib.bluetooth.LocalBluetoothManager; import com.android.settingslib.bluetooth.LocalBluetoothManager;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnResume;
import com.android.settingslib.core.lifecycle.events.OnStart; import com.android.settingslib.core.lifecycle.events.OnStart;
import com.android.settingslib.core.lifecycle.events.OnStop; import com.android.settingslib.core.lifecycle.events.OnStop;
/** /**
* Controller that shows and updates the bluetooth device name * Controller that shows and updates the bluetooth device name
*/ */
public class BluetoothDeviceNamePreferenceController extends PreferenceController implements public class BluetoothDeviceNamePreferenceController extends AbstractPreferenceController
LifecycleObserver, OnStart, OnStop { implements PreferenceControllerMixin, LifecycleObserver, OnStart, OnStop {
private static final String TAG = "BluetoothNamePrefCtrl"; private static final String TAG = "BluetoothNamePrefCtrl";
public static final String KEY_DEVICE_NAME = "device_name"; public static final String KEY_DEVICE_NAME = "device_name";

View File

@@ -22,14 +22,16 @@ import android.support.annotation.VisibleForTesting;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import com.android.internal.logging.nano.MetricsProto; import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.core.instrumentation.MetricsFeatureProvider; import com.android.settings.core.instrumentation.MetricsFeatureProvider;
import com.android.settings.overlay.FeatureFactory; import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.core.AbstractPreferenceController;
/** /**
* Controller that shows received files * Controller that shows received files
*/ */
public class BluetoothFilesPreferenceController extends PreferenceController { public class BluetoothFilesPreferenceController extends AbstractPreferenceController
implements PreferenceControllerMixin {
private static final String TAG = "BluetoothFilesPrefCtrl"; private static final String TAG = "BluetoothFilesPrefCtrl";
public static final String KEY_RECEIVED_FILES = "bt_received_files"; public static final String KEY_RECEIVED_FILES = "bt_received_files";

View File

@@ -25,21 +25,22 @@ import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.SettingsActivity; import com.android.settings.SettingsActivity;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.overlay.FeatureFactory; import com.android.settings.overlay.FeatureFactory;
import com.android.settings.widget.MasterSwitchController; import com.android.settings.widget.MasterSwitchController;
import com.android.settings.widget.MasterSwitchPreference; import com.android.settings.widget.MasterSwitchPreference;
import com.android.settings.widget.SummaryUpdater.OnSummaryChangeListener; import com.android.settings.widget.SummaryUpdater.OnSummaryChangeListener;
import com.android.settingslib.bluetooth.LocalBluetoothManager; import com.android.settingslib.bluetooth.LocalBluetoothManager;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnPause; import com.android.settingslib.core.lifecycle.events.OnPause;
import com.android.settingslib.core.lifecycle.events.OnResume; import com.android.settingslib.core.lifecycle.events.OnResume;
import com.android.settingslib.core.lifecycle.events.OnStart; import com.android.settingslib.core.lifecycle.events.OnStart;
import com.android.settingslib.core.lifecycle.events.OnStop; import com.android.settingslib.core.lifecycle.events.OnStop;
public class BluetoothMasterSwitchPreferenceController extends PreferenceController public class BluetoothMasterSwitchPreferenceController extends AbstractPreferenceController
implements OnSummaryChangeListener, implements PreferenceControllerMixin, OnSummaryChangeListener, LifecycleObserver, OnResume,
LifecycleObserver, OnResume, OnPause, OnStart, OnStop { OnPause, OnStart, OnStop {
public static final String KEY_TOGGLE_BLUETOOTH = "toggle_bluetooth"; public static final String KEY_TOGGLE_BLUETOOTH = "toggle_bluetooth";

View File

@@ -26,10 +26,10 @@ import android.support.annotation.VisibleForTesting;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.PreferenceController;
import com.android.settings.search.Indexable; import com.android.settings.search.Indexable;
import com.android.settingslib.bluetooth.BluetoothDeviceFilter; import com.android.settingslib.bluetooth.BluetoothDeviceFilter;
import com.android.settingslib.bluetooth.CachedBluetoothDevice; import com.android.settingslib.bluetooth.CachedBluetoothDevice;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.widget.FooterPreference; import com.android.settingslib.widget.FooterPreference;
import java.util.ArrayList; import java.util.ArrayList;
@@ -185,8 +185,8 @@ public class BluetoothPairingDetail extends DeviceListPreferenceFragment impleme
} }
@Override @Override
protected List<PreferenceController> getPreferenceControllers(Context context) { protected List<AbstractPreferenceController> getPreferenceControllers(Context context) {
List<PreferenceController> controllers = new ArrayList<>(); List<AbstractPreferenceController> controllers = new ArrayList<>();
mDeviceNamePrefController = new BluetoothDeviceNamePreferenceController(context, mDeviceNamePrefController = new BluetoothDeviceNamePreferenceController(context,
this, getLifecycle()); this, getLifecycle());
controllers.add(mDeviceNamePrefController); controllers.add(mDeviceNamePrefController);

View File

@@ -22,14 +22,16 @@ import android.support.v7.preference.Preference;
import android.os.UserHandle; import android.os.UserHandle;
import com.android.settings.SettingsActivity; import com.android.settings.SettingsActivity;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.R; import com.android.settings.R;
import com.android.settingslib.core.AbstractPreferenceController;
/** /**
* Controller that shows and updates the bluetooth device name * Controller that shows and updates the bluetooth device name
*/ */
public class BluetoothPairingPreferenceController extends PreferenceController { public class BluetoothPairingPreferenceController extends AbstractPreferenceController
implements PreferenceControllerMixin {
private static final String TAG = "BluetoothPairingPrefCtrl"; private static final String TAG = "BluetoothPairingPrefCtrl";
public static final String KEY_PAIRING = "pref_bt_pairing"; public static final String KEY_PAIRING = "pref_bt_pairing";

View File

@@ -16,8 +16,9 @@
package com.android.settings.bluetooth; package com.android.settings.bluetooth;
import static android.os.UserManager.DISALLOW_CONFIG_BLUETOOTH;
import android.app.Activity; import android.app.Activity;
import android.app.Fragment;
import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice; import android.bluetooth.BluetoothDevice;
import android.content.ContentResolver; import android.content.ContentResolver;
@@ -25,7 +26,6 @@ import android.content.Context;
import android.content.IntentFilter; import android.content.IntentFilter;
import android.content.res.Resources; import android.content.res.Resources;
import android.os.Bundle; import android.os.Bundle;
import android.os.SystemProperties;
import android.provider.Settings; import android.provider.Settings;
import android.support.annotation.VisibleForTesting; import android.support.annotation.VisibleForTesting;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
@@ -40,7 +40,6 @@ import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.LinkifyUtils; import com.android.settings.LinkifyUtils;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.SettingsActivity; import com.android.settings.SettingsActivity;
import com.android.settings.core.PreferenceController;
import com.android.settings.dashboard.SummaryLoader; import com.android.settings.dashboard.SummaryLoader;
import com.android.settings.location.ScanningSettings; import com.android.settings.location.ScanningSettings;
import com.android.settings.overlay.FeatureFactory; import com.android.settings.overlay.FeatureFactory;
@@ -55,13 +54,11 @@ import com.android.settingslib.bluetooth.BluetoothDeviceFilter;
import com.android.settingslib.bluetooth.CachedBluetoothDevice; import com.android.settingslib.bluetooth.CachedBluetoothDevice;
import com.android.settingslib.bluetooth.LocalBluetoothAdapter; import com.android.settingslib.bluetooth.LocalBluetoothAdapter;
import com.android.settingslib.bluetooth.LocalBluetoothManager; import com.android.settingslib.bluetooth.LocalBluetoothManager;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.widget.FooterPreference; import com.android.settingslib.widget.FooterPreference;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Set;
import static android.os.UserManager.DISALLOW_CONFIG_BLUETOOTH;
/** /**
* BluetoothSettings is the Settings screen for Bluetooth configuration and * BluetoothSettings is the Settings screen for Bluetooth configuration and
@@ -356,8 +353,8 @@ public class BluetoothSettings extends DeviceListPreferenceFragment implements I
} }
@Override @Override
protected List<PreferenceController> getPreferenceControllers(Context context) { protected List<AbstractPreferenceController> getPreferenceControllers(Context context) {
List<PreferenceController> controllers = new ArrayList<>(); List<AbstractPreferenceController> controllers = new ArrayList<>();
mDeviceNamePrefController = new BluetoothDeviceNamePreferenceController(context, mDeviceNamePrefController = new BluetoothDeviceNamePreferenceController(context,
this, getLifecycle()); this, getLifecycle());
mPairingPrefController = new BluetoothPairingPreferenceController(context, this, mPairingPrefController = new BluetoothPairingPreferenceController(context, this,

View File

@@ -48,7 +48,6 @@ import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.LinkifyUtils; import com.android.settings.LinkifyUtils;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.SettingsActivity; import com.android.settings.SettingsActivity;
import com.android.settings.core.PreferenceController;
import com.android.settings.dashboard.SummaryLoader; import com.android.settings.dashboard.SummaryLoader;
import com.android.settings.location.ScanningSettings; import com.android.settings.location.ScanningSettings;
import com.android.settings.overlay.FeatureFactory; import com.android.settings.overlay.FeatureFactory;
@@ -63,6 +62,7 @@ import com.android.settingslib.bluetooth.BluetoothDeviceFilter;
import com.android.settingslib.bluetooth.CachedBluetoothDevice; import com.android.settingslib.bluetooth.CachedBluetoothDevice;
import com.android.settingslib.bluetooth.LocalBluetoothAdapter; import com.android.settingslib.bluetooth.LocalBluetoothAdapter;
import com.android.settingslib.bluetooth.LocalBluetoothManager; import com.android.settingslib.bluetooth.LocalBluetoothManager;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.widget.FooterPreference; import com.android.settingslib.widget.FooterPreference;
import java.util.ArrayList; import java.util.ArrayList;
@@ -525,8 +525,8 @@ public class BluetoothSettingsObsolete extends DeviceListPreferenceObsoleteFragm
} }
@Override @Override
protected List<PreferenceController> getPreferenceControllers(Context context) { protected List<AbstractPreferenceController> getPreferenceControllers(Context context) {
List<PreferenceController> controllers = new ArrayList<>(); List<AbstractPreferenceController> controllers = new ArrayList<>();
mDeviceNamePrefController = new BluetoothDeviceNamePreferenceController(context, mDeviceNamePrefController = new BluetoothDeviceNamePreferenceController(context,
this, getLifecycle()); this, getLifecycle());
controllers.add(mDeviceNamePrefController); controllers.add(mDeviceNamePrefController);

View File

@@ -16,6 +16,8 @@
package com.android.settings.bluetooth; package com.android.settings.bluetooth;
import static android.os.UserManager.DISALLOW_CONFIG_BLUETOOTH;
import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice; import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothDevicePicker; import android.bluetooth.BluetoothDevicePicker;
@@ -28,10 +30,8 @@ import android.view.MenuInflater;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.PreferenceController;
import com.android.settingslib.bluetooth.CachedBluetoothDevice; import com.android.settingslib.bluetooth.CachedBluetoothDevice;
import com.android.settingslib.core.AbstractPreferenceController;
import static android.os.UserManager.DISALLOW_CONFIG_BLUETOOTH;
import java.util.List; import java.util.List;
@@ -157,7 +157,7 @@ public final class DevicePickerFragment extends DeviceListPreferenceFragment {
} }
@Override @Override
protected List<PreferenceController> getPreferenceControllers(Context context) { protected List<AbstractPreferenceController> getPreferenceControllers(Context context) {
return null; return null;
} }

View File

@@ -26,13 +26,13 @@ import com.android.settings.R;
import com.android.settings.SettingsActivity; import com.android.settings.SettingsActivity;
import com.android.settings.bluetooth.BluetoothMasterSwitchPreferenceController; import com.android.settings.bluetooth.BluetoothMasterSwitchPreferenceController;
import com.android.settings.bluetooth.Utils; import com.android.settings.bluetooth.Utils;
import com.android.settings.core.PreferenceController;
import com.android.settings.dashboard.DashboardFragment; import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.dashboard.SummaryLoader; import com.android.settings.dashboard.SummaryLoader;
import com.android.settings.deviceinfo.UsbBackend; import com.android.settings.deviceinfo.UsbBackend;
import com.android.settings.nfc.NfcPreferenceController; import com.android.settings.nfc.NfcPreferenceController;
import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.search.Indexable; import com.android.settings.search.Indexable;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.Lifecycle;
import java.util.ArrayList; import java.util.ArrayList;
@@ -65,8 +65,8 @@ public class ConnectedDeviceDashboardFragment extends DashboardFragment {
} }
@Override @Override
protected List<PreferenceController> getPreferenceControllers(Context context) { protected List<AbstractPreferenceController> getPreferenceControllers(Context context) {
final List<PreferenceController> controllers = new ArrayList<>(); final List<AbstractPreferenceController> controllers = new ArrayList<>();
final Lifecycle lifecycle = getLifecycle(); final Lifecycle lifecycle = getLifecycle();
final NfcPreferenceController nfcPreferenceController = final NfcPreferenceController nfcPreferenceController =
new NfcPreferenceController(context); new NfcPreferenceController(context);

View File

@@ -24,15 +24,16 @@ import android.support.annotation.VisibleForTesting;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen; import android.support.v7.preference.PreferenceScreen;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.deviceinfo.UsbBackend; import com.android.settings.deviceinfo.UsbBackend;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnPause; import com.android.settingslib.core.lifecycle.events.OnPause;
import com.android.settingslib.core.lifecycle.events.OnResume; import com.android.settingslib.core.lifecycle.events.OnResume;
public class UsbModePreferenceController extends PreferenceController public class UsbModePreferenceController extends AbstractPreferenceController
implements LifecycleObserver, OnResume, OnPause { implements PreferenceControllerMixin, LifecycleObserver, OnResume, OnPause {
private static final String KEY_USB_MODE = "usb_mode"; private static final String KEY_USB_MODE = "usb_mode";

View File

@@ -20,12 +20,13 @@ import android.content.Context;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen; import android.support.v7.preference.PreferenceScreen;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnResume; import com.android.settingslib.core.lifecycle.events.OnResume;
public abstract class DynamicAvailabilityPreferenceController extends PreferenceController public abstract class DynamicAvailabilityPreferenceController extends AbstractPreferenceController
implements LifecycleObserver, OnResume { implements PreferenceControllerMixin, LifecycleObserver, OnResume {
private Preference mPreference; private Preference mPreference;
private PreferenceScreen mScreen; private PreferenceScreen mScreen;

View File

@@ -15,21 +15,28 @@
*/ */
package com.android.settings.core; package com.android.settings.core;
import android.content.Context;
import com.android.settings.search.SearchIndexableRaw;
import com.android.settings.search.ResultPayload; import com.android.settings.search.ResultPayload;
import com.android.settings.search.SearchIndexableRaw;
import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.core.AbstractPreferenceController;
import java.util.List; import java.util.List;
/** /**
* A controller that manages event for preference. * A controller mixin that adds mobile settings specific functionality
*/ */
public abstract class PreferenceController extends AbstractPreferenceController { public interface PreferenceControllerMixin {
public PreferenceController(Context context) { /**
super(context); * Updates non-indexable keys for search provider.
*
* Called by SearchIndexProvider#getNonIndexableKeys
*/
default void updateNonIndexableKeys(List<String> keys) {
if (this instanceof AbstractPreferenceController) {
if (!((AbstractPreferenceController) this).isAvailable()) {
keys.add(((AbstractPreferenceController) this).getPreferenceKey());
}
}
} }
/** /**
@@ -37,13 +44,13 @@ public abstract class PreferenceController extends AbstractPreferenceController
* *
* Called by SearchIndexProvider#getRawDataToIndex * Called by SearchIndexProvider#getRawDataToIndex
*/ */
public void updateRawDataToIndex(List<SearchIndexableRaw> rawData) { default void updateRawDataToIndex(List<SearchIndexableRaw> rawData) {
} }
/** /**
* @return the {@link ResultPayload} corresponding to the search result type for the preference. * @return the {@link ResultPayload} corresponding to the search result type for the preference.
*/ */
public ResultPayload getResultPayload() { default ResultPayload getResultPayload() {
return null; return null;
} }
} }

View File

@@ -32,9 +32,9 @@ import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import com.android.settings.SettingsPreferenceFragment; import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.core.PreferenceController;
import com.android.settings.overlay.FeatureFactory; import com.android.settings.overlay.FeatureFactory;
import com.android.settings.search.Indexable; import com.android.settings.search.Indexable;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.drawer.DashboardCategory; import com.android.settingslib.drawer.DashboardCategory;
import com.android.settingslib.drawer.SettingsDrawerActivity; import com.android.settingslib.drawer.SettingsDrawerActivity;
import com.android.settingslib.drawer.Tile; import com.android.settingslib.drawer.Tile;
@@ -53,7 +53,7 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment
SummaryLoader.SummaryConsumer { SummaryLoader.SummaryConsumer {
private static final String TAG = "DashboardFragment"; private static final String TAG = "DashboardFragment";
private final Map<Class, PreferenceController> mPreferenceControllers = private final Map<Class, AbstractPreferenceController> mPreferenceControllers =
new ArrayMap<>(); new ArrayMap<>();
private final Set<String> mDashboardTilePrefKeys = new ArraySet<>(); private final Set<String> mDashboardTilePrefKeys = new ArraySet<>();
@@ -72,14 +72,14 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment
.getProgressiveDisclosureMixin(context, this, getArguments()); .getProgressiveDisclosureMixin(context, this, getArguments());
getLifecycle().addObserver(mProgressiveDisclosureMixin); getLifecycle().addObserver(mProgressiveDisclosureMixin);
List<PreferenceController> controllers = getPreferenceControllers(context); List<AbstractPreferenceController> controllers = getPreferenceControllers(context);
if (controllers == null) { if (controllers == null) {
controllers = new ArrayList<>(); controllers = new ArrayList<>();
} }
mPlaceholderPreferenceController = mPlaceholderPreferenceController =
new DashboardTilePlaceholderPreferenceController(context); new DashboardTilePlaceholderPreferenceController(context);
controllers.add(mPlaceholderPreferenceController); controllers.add(mPlaceholderPreferenceController);
for (PreferenceController controller : controllers) { for (AbstractPreferenceController controller : controllers) {
addPreferenceController(controller); addPreferenceController(controller);
} }
} }
@@ -159,12 +159,12 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment
@Override @Override
public boolean onPreferenceTreeClick(Preference preference) { public boolean onPreferenceTreeClick(Preference preference) {
Collection<PreferenceController> controllers = mPreferenceControllers.values(); Collection<AbstractPreferenceController> controllers = mPreferenceControllers.values();
// If preference contains intent, log it before handling. // If preference contains intent, log it before handling.
mMetricsFeatureProvider.logDashboardStartIntent( mMetricsFeatureProvider.logDashboardStartIntent(
getContext(), preference.getIntent(), getMetricsCategory()); getContext(), preference.getIntent(), getMetricsCategory());
// Give all controllers a chance to handle click. // Give all controllers a chance to handle click.
for (PreferenceController controller : controllers) { for (AbstractPreferenceController controller : controllers) {
if (controller.handlePreferenceTreeClick(preference)) { if (controller.handlePreferenceTreeClick(preference)) {
return true; return true;
} }
@@ -188,12 +188,12 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment
} }
} }
protected <T extends PreferenceController> T getPreferenceController(Class<T> clazz) { protected <T extends AbstractPreferenceController> T getPreferenceController(Class<T> clazz) {
PreferenceController controller = mPreferenceControllers.get(clazz); AbstractPreferenceController controller = mPreferenceControllers.get(clazz);
return (T) controller; return (T) controller;
} }
protected void addPreferenceController(PreferenceController controller) { protected void addPreferenceController(AbstractPreferenceController controller) {
mPreferenceControllers.put(controller.getClass(), controller); mPreferenceControllers.put(controller.getClass(), controller);
} }
@@ -216,9 +216,9 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment
protected abstract int getPreferenceScreenResId(); protected abstract int getPreferenceScreenResId();
/** /**
* Get a list of {@link PreferenceController} for this fragment. * Get a list of {@link AbstractPreferenceController} for this fragment.
*/ */
protected abstract List<PreferenceController> getPreferenceControllers(Context context); protected abstract List<AbstractPreferenceController> getPreferenceControllers(Context context);
/** /**
* Returns true if this tile should be displayed * Returns true if this tile should be displayed
@@ -237,8 +237,8 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment
} }
addPreferencesFromResource(resId); addPreferencesFromResource(resId);
final PreferenceScreen screen = getPreferenceScreen(); final PreferenceScreen screen = getPreferenceScreen();
Collection<PreferenceController> controllers = mPreferenceControllers.values(); Collection<AbstractPreferenceController> controllers = mPreferenceControllers.values();
for (PreferenceController controller : controllers) { for (AbstractPreferenceController controller : controllers) {
controller.displayPreference(screen); controller.displayPreference(screen);
} }
} }
@@ -247,9 +247,9 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment
* Update state of each preference managed by PreferenceController. * Update state of each preference managed by PreferenceController.
*/ */
protected void updatePreferenceStates() { protected void updatePreferenceStates() {
Collection<PreferenceController> controllers = mPreferenceControllers.values(); Collection<AbstractPreferenceController> controllers = mPreferenceControllers.values();
final PreferenceScreen screen = getPreferenceScreen(); final PreferenceScreen screen = getPreferenceScreen();
for (PreferenceController controller : controllers) { for (AbstractPreferenceController controller : controllers) {
if (!controller.isAvailable()) { if (!controller.isAvailable()) {
continue; continue;
} }

View File

@@ -20,7 +20,8 @@ import android.content.Context;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen; import android.support.v7.preference.PreferenceScreen;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
/** /**
* PreferenceController for a dashboard_tile_placeholder, a special preference marking where * PreferenceController for a dashboard_tile_placeholder, a special preference marking where
@@ -28,7 +29,8 @@ import com.android.settings.core.PreferenceController;
* preference screen in xml. If not present, all dynamic dashboard tiles will be added to the * preference screen in xml. If not present, all dynamic dashboard tiles will be added to the
* bottom of page. * bottom of page.
*/ */
class DashboardTilePlaceholderPreferenceController extends PreferenceController { class DashboardTilePlaceholderPreferenceController extends AbstractPreferenceController
implements PreferenceControllerMixin {
private static final String KEY_PLACEHOLDER = "dashboard_tile_placeholder"; private static final String KEY_PLACEHOLDER = "dashboard_tile_placeholder";

View File

@@ -49,7 +49,7 @@ import com.android.settingslib.RestrictedLockUtils;
* *
* This fragment is a replacement of {@link RestrictedSettingsFragment} but extends * This fragment is a replacement of {@link RestrictedSettingsFragment} but extends
* from {@link DashboardFragment}, so we could also use * from {@link DashboardFragment}, so we could also use
* {@link com.android.settings.core.PreferenceController} in this fragment. * {@link com.android.settingslib.core.AbstractPreferenceController} in this fragment.
*/ */
public abstract class RestrictedDashboardFragment extends DashboardFragment { public abstract class RestrictedDashboardFragment extends DashboardFragment {

View File

@@ -20,12 +20,13 @@ import android.content.Context;
import android.provider.Settings; import android.provider.Settings;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.RestrictedSwitchPreference; import com.android.settingslib.RestrictedSwitchPreference;
import com.android.settingslib.core.AbstractPreferenceController;
public class AutoTimePreferenceController extends PreferenceController public class AutoTimePreferenceController extends AbstractPreferenceController
implements Preference.OnPreferenceChangeListener { implements PreferenceControllerMixin, Preference.OnPreferenceChangeListener {
private static final String KEY_AUTO_TIME = "auto_time"; private static final String KEY_AUTO_TIME = "auto_time";
private final UpdateTimeAndDateCallback mCallback; private final UpdateTimeAndDateCallback mCallback;

View File

@@ -22,10 +22,11 @@ import android.support.v14.preference.SwitchPreference;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import com.android.settings.Utils; import com.android.settings.Utils;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
public class AutoTimeZonePreferenceController extends PreferenceController public class AutoTimeZonePreferenceController extends AbstractPreferenceController
implements Preference.OnPreferenceChangeListener { implements PreferenceControllerMixin, Preference.OnPreferenceChangeListener {
private static final String KEY_AUTO_TIME_ZONE = "auto_zone"; private static final String KEY_AUTO_TIME_ZONE = "auto_zone";

View File

@@ -26,12 +26,13 @@ import android.text.TextUtils;
import android.text.format.DateFormat; import android.text.format.DateFormat;
import android.widget.DatePicker; import android.widget.DatePicker;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
import java.util.Calendar; import java.util.Calendar;
public class DatePreferenceController extends PreferenceController implements public class DatePreferenceController extends AbstractPreferenceController
DatePickerDialog.OnDateSetListener { implements PreferenceControllerMixin, DatePickerDialog.OnDateSetListener {
public interface DatePreferenceHost extends UpdateTimeAndDateCallback { public interface DatePreferenceHost extends UpdateTimeAndDateCallback {
void showDatePicker(); void showDatePicker();

View File

@@ -25,12 +25,14 @@ import android.support.v7.preference.TwoStatePreference;
import android.text.TextUtils; import android.text.TextUtils;
import android.text.format.DateFormat; import android.text.format.DateFormat;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date; import java.util.Date;
public class TimeFormatPreferenceController extends PreferenceController { public class TimeFormatPreferenceController extends AbstractPreferenceController
implements PreferenceControllerMixin {
static final String HOURS_12 = "12"; static final String HOURS_12 = "12";
static final String HOURS_24 = "24"; static final String HOURS_24 = "24";

View File

@@ -25,12 +25,13 @@ import android.text.TextUtils;
import android.text.format.DateFormat; import android.text.format.DateFormat;
import android.widget.TimePicker; import android.widget.TimePicker;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
import java.util.Calendar; import java.util.Calendar;
public class TimePreferenceController extends PreferenceController implements public class TimePreferenceController extends AbstractPreferenceController
TimePickerDialog.OnTimeSetListener { implements PreferenceControllerMixin, TimePickerDialog.OnTimeSetListener {
public interface TimePreferenceHost extends UpdateTimeAndDateCallback { public interface TimePreferenceHost extends UpdateTimeAndDateCallback {
void showTimePicker(); void showTimePicker();

View File

@@ -20,12 +20,14 @@ import android.content.Context;
import android.support.annotation.VisibleForTesting; import android.support.annotation.VisibleForTesting;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.datetime.ZoneGetter; import com.android.settingslib.datetime.ZoneGetter;
import java.util.Calendar; import java.util.Calendar;
public class TimeZonePreferenceController extends PreferenceController { public class TimeZonePreferenceController extends AbstractPreferenceController
implements PreferenceControllerMixin {
private static final String KEY_TIMEZONE = "timezone"; private static final String KEY_TIMEZONE = "timezone";

View File

@@ -25,9 +25,11 @@ import android.support.v14.preference.SwitchPreference;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen; import android.support.v7.preference.PreferenceScreen;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
public class BugReportInPowerPreferenceController extends PreferenceController { public class BugReportInPowerPreferenceController extends AbstractPreferenceController
implements PreferenceControllerMixin {
private static final String KEY_BUGREPORT_IN_POWER = "bugreport_in_power"; private static final String KEY_BUGREPORT_IN_POWER = "bugreport_in_power";

View File

@@ -21,9 +21,11 @@ import android.os.UserManager;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen; import android.support.v7.preference.PreferenceScreen;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
public class BugReportPreferenceController extends PreferenceController { public class BugReportPreferenceController extends AbstractPreferenceController implements
PreferenceControllerMixin {
private static final String KEY_BUGREPORT = "bugreport"; private static final String KEY_BUGREPORT = "bugreport";

View File

@@ -24,10 +24,12 @@ import android.support.v7.preference.PreferenceScreen;
import android.widget.Toast; import android.widget.Toast;
import com.android.internal.annotations.VisibleForTesting; import com.android.internal.annotations.VisibleForTesting;
import com.android.settings.core.PreferenceController;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
public class CameraHalHdrplusPreferenceController extends PreferenceController { public class CameraHalHdrplusPreferenceController extends AbstractPreferenceController
implements PreferenceControllerMixin {
private static final String KEY_CAMERA_HAL_HDRPLUS_SWITCH = "camera_hal_hdrplus_switch"; private static final String KEY_CAMERA_HAL_HDRPLUS_SWITCH = "camera_hal_hdrplus_switch";
@VisibleForTesting @VisibleForTesting

View File

@@ -24,10 +24,12 @@ import android.support.v7.preference.PreferenceScreen;
import android.widget.Toast; import android.widget.Toast;
import com.android.internal.annotations.VisibleForTesting; import com.android.internal.annotations.VisibleForTesting;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.R; import com.android.settings.R;
import com.android.settingslib.core.AbstractPreferenceController;
public class TelephonyMonitorPreferenceController extends PreferenceController { public class TelephonyMonitorPreferenceController extends AbstractPreferenceController implements
PreferenceControllerMixin {
private static final String KEY_TELEPHONY_MONITOR_SWITCH = "telephony_monitor_switch"; private static final String KEY_TELEPHONY_MONITOR_SWITCH = "telephony_monitor_switch";
@VisibleForTesting @VisibleForTesting

View File

@@ -27,17 +27,19 @@ import android.support.annotation.VisibleForTesting;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen; import android.support.v7.preference.PreferenceScreen;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin; import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
import com.android.settingslib.RestrictedSwitchPreference; import com.android.settingslib.RestrictedSwitchPreference;
import com.android.settingslib.core.AbstractPreferenceController;
import java.util.List; import java.util.List;
/** /**
* Controller to manage the state of "Verify apps over USB" toggle. * Controller to manage the state of "Verify apps over USB" toggle.
*/ */
public class VerifyAppsOverUsbPreferenceController extends PreferenceController { public class VerifyAppsOverUsbPreferenceController extends AbstractPreferenceController implements
PreferenceControllerMixin {
private static final String VERIFY_APPS_OVER_USB_KEY = "verify_apps_over_usb"; private static final String VERIFY_APPS_OVER_USB_KEY = "verify_apps_over_usb";
private static final String PACKAGE_MIME_TYPE = "application/vnd.android.package-archive"; private static final String PACKAGE_MIME_TYPE = "application/vnd.android.package-archive";

View File

@@ -16,11 +16,12 @@
package com.android.settings.deviceinfo; package com.android.settings.deviceinfo;
import android.content.Context; import android.content.Context;
import android.support.v7.preference.Preference;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
public class AdditionalSystemUpdatePreferenceController extends PreferenceController { public class AdditionalSystemUpdatePreferenceController extends
AbstractPreferenceController implements PreferenceControllerMixin {
private static final String KEY_UPDATE_SETTING = "additional_system_update_settings"; private static final String KEY_UPDATE_SETTING = "additional_system_update_settings";

View File

@@ -21,9 +21,11 @@ import android.support.v7.preference.Preference;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.Utils; import com.android.settings.Utils;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
public class BasebandVersionPreferenceController extends PreferenceController { public class BasebandVersionPreferenceController extends AbstractPreferenceController implements
PreferenceControllerMixin {
private static final String BASEBAND_PROPERTY = "gsm.version.baseband"; private static final String BASEBAND_PROPERTY = "gsm.version.baseband";
private static final String KEY_BASEBAND_VERSION = "baseband_version"; private static final String KEY_BASEBAND_VERSION = "baseband_version";

View File

@@ -32,19 +32,20 @@ import android.widget.Toast;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.Utils; import com.android.settings.Utils;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.core.instrumentation.MetricsFeatureProvider; import com.android.settings.core.instrumentation.MetricsFeatureProvider;
import com.android.settings.development.DevelopmentSettings; import com.android.settings.development.DevelopmentSettings;
import com.android.settings.development.DevelopmentSettingsEnabler; import com.android.settings.development.DevelopmentSettingsEnabler;
import com.android.settings.overlay.FeatureFactory; import com.android.settings.overlay.FeatureFactory;
import com.android.settings.password.ChooseLockSettingsHelper; import com.android.settings.password.ChooseLockSettingsHelper;
import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnResume; import com.android.settingslib.core.lifecycle.events.OnResume;
public class BuildNumberPreferenceController extends PreferenceController public class BuildNumberPreferenceController extends AbstractPreferenceController implements
implements LifecycleObserver, OnResume { PreferenceControllerMixin, LifecycleObserver, OnResume {
static final int TAPS_TO_BE_A_DEVELOPER = 7; static final int TAPS_TO_BE_A_DEVELOPER = 7;
static final int REQUEST_CONFIRM_PASSWORD_FOR_DEV_PREF = 100; static final int REQUEST_CONFIRM_PASSWORD_FOR_DEV_PREF = 100;

View File

@@ -22,10 +22,12 @@ import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen; import android.support.v7.preference.PreferenceScreen;
import android.text.TextUtils; import android.text.TextUtils;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.DeviceInfoUtils; import com.android.settingslib.DeviceInfoUtils;
import com.android.settingslib.core.AbstractPreferenceController;
public class DeviceModelPreferenceController extends PreferenceController { public class DeviceModelPreferenceController extends AbstractPreferenceController implements
PreferenceControllerMixin {
private static final String KEY_DEVICE_MODEL = "device_model"; private static final String KEY_DEVICE_MODEL = "device_model";

View File

@@ -22,9 +22,11 @@ import android.support.v7.preference.PreferenceScreen;
import android.text.TextUtils; import android.text.TextUtils;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
public class FccEquipmentIdPreferenceController extends PreferenceController { public class FccEquipmentIdPreferenceController extends AbstractPreferenceController implements
PreferenceControllerMixin {
private static final String PROPERTY_EQUIPMENT_ID = "ro.ril.fccid"; private static final String PROPERTY_EQUIPMENT_ID = "ro.ril.fccid";

View File

@@ -21,10 +21,12 @@ import android.content.Intent;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import android.text.TextUtils; import android.text.TextUtils;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.DeviceInfoUtils; import com.android.settingslib.DeviceInfoUtils;
import com.android.settingslib.core.AbstractPreferenceController;
public class FeedbackPreferenceController extends PreferenceController { public class FeedbackPreferenceController extends AbstractPreferenceController implements
PreferenceControllerMixin {
private static final String KEY_DEVICE_FEEDBACK = "device_feedback"; private static final String KEY_DEVICE_FEEDBACK = "device_feedback";
private final Fragment mHost; private final Fragment mHost;

View File

@@ -26,15 +26,16 @@ import android.support.v7.preference.PreferenceScreen;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnResume; import com.android.settingslib.core.lifecycle.events.OnResume;
public class FirmwareVersionPreferenceController extends PreferenceController public class FirmwareVersionPreferenceController extends AbstractPreferenceController implements
implements LifecycleObserver, OnResume { PreferenceControllerMixin, LifecycleObserver, OnResume {
private static final String TAG = "FirmwareVersionPref"; private static final String TAG = "FirmwareVersionPref";
private static final String KEY_FIRMWARE_VERSION = "firmware_version"; private static final String KEY_FIRMWARE_VERSION = "firmware_version";

View File

@@ -18,10 +18,12 @@ package com.android.settings.deviceinfo;
import android.content.Context; import android.content.Context;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.DeviceInfoUtils; import com.android.settingslib.DeviceInfoUtils;
import com.android.settingslib.core.AbstractPreferenceController;
public class KernelVersionPreferenceController extends PreferenceController { public class KernelVersionPreferenceController extends AbstractPreferenceController implements
PreferenceControllerMixin {
private static final String KEY_KERNEL_VERSION = "kernel_version"; private static final String KEY_KERNEL_VERSION = "kernel_version";

View File

@@ -19,9 +19,11 @@ package com.android.settings.deviceinfo;
import android.content.Context; import android.content.Context;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
public class ManualPreferenceController extends PreferenceController { public class ManualPreferenceController extends AbstractPreferenceController implements
PreferenceControllerMixin {
private static final String KEY_MANUAL = "manual"; private static final String KEY_MANUAL = "manual";

View File

@@ -19,9 +19,11 @@ import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.provider.Settings; import android.provider.Settings;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
public class RegulatoryInfoPreferenceController extends PreferenceController { public class RegulatoryInfoPreferenceController extends AbstractPreferenceController implements
PreferenceControllerMixin {
private static final String KEY_REGULATORY_INFO = "regulatory_info"; private static final String KEY_REGULATORY_INFO = "regulatory_info";
private static final Intent INTENT_PROBE = new Intent(Settings.ACTION_SHOW_REGULATORY_INFO); private static final Intent INTENT_PROBE = new Intent(Settings.ACTION_SHOW_REGULATORY_INFO);

View File

@@ -23,9 +23,11 @@ import android.support.v7.preference.PreferenceScreen;
import android.text.TextUtils; import android.text.TextUtils;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
public class SELinuxStatusPreferenceController extends PreferenceController { public class SELinuxStatusPreferenceController extends AbstractPreferenceController implements
PreferenceControllerMixin {
private static final String PROPERTY_SELINUX_STATUS = "ro.build.selinux"; private static final String PROPERTY_SELINUX_STATUS = "ro.build.selinux";
private static final String KEY_SELINUX_STATUS = "selinux_status"; private static final String KEY_SELINUX_STATUS = "selinux_status";

View File

@@ -19,9 +19,11 @@ import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
public class SafetyInfoPreferenceController extends PreferenceController { public class SafetyInfoPreferenceController extends AbstractPreferenceController implements
PreferenceControllerMixin {
private static final Intent INTENT_PROBE = private static final Intent INTENT_PROBE =
new Intent("android.settings.SHOW_SAFETY_AND_REGULATORY_INFO"); new Intent("android.settings.SHOW_SAFETY_AND_REGULATORY_INFO");

View File

@@ -19,9 +19,11 @@ import android.content.Context;
import android.os.SystemProperties; import android.os.SystemProperties;
import android.text.TextUtils; import android.text.TextUtils;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
public class SafetyLegalPreferenceController extends PreferenceController { public class SafetyLegalPreferenceController extends AbstractPreferenceController implements
PreferenceControllerMixin {
private static final String KEY_SAFETY_LEGAL = "safetylegal"; private static final String KEY_SAFETY_LEGAL = "safetylegal";
private static final String PROPERTY_URL_SAFETYLEGAL = "ro.url.safetylegal"; private static final String PROPERTY_URL_SAFETYLEGAL = "ro.url.safetylegal";

View File

@@ -22,10 +22,12 @@ import android.support.v7.preference.PreferenceScreen;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.DeviceInfoUtils; import com.android.settingslib.DeviceInfoUtils;
import com.android.settingslib.core.AbstractPreferenceController;
public class SecurityPatchPreferenceController extends PreferenceController { public class SecurityPatchPreferenceController extends AbstractPreferenceController implements
PreferenceControllerMixin {
private static final String KEY_SECURITY_PATCH = "security_patch"; private static final String KEY_SECURITY_PATCH = "security_patch";
private static final String TAG = "SecurityPatchPref"; private static final String TAG = "SecurityPatchPref";

View File

@@ -23,9 +23,11 @@ import android.support.v7.preference.PreferenceScreen;
import android.text.TextUtils; import android.text.TextUtils;
import com.android.internal.annotations.VisibleForTesting; import com.android.internal.annotations.VisibleForTesting;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
public class SerialNumberPreferenceController extends PreferenceController { public class SerialNumberPreferenceController extends AbstractPreferenceController implements
PreferenceControllerMixin {
private static final String KEY_SERIAL_NUMBER = "serial_number"; private static final String KEY_SERIAL_NUMBER = "serial_number";

View File

@@ -38,7 +38,6 @@ import com.android.settings.Utils;
import com.android.settings.applications.PackageManagerWrapperImpl; import com.android.settings.applications.PackageManagerWrapperImpl;
import com.android.settings.applications.UserManagerWrapper; import com.android.settings.applications.UserManagerWrapper;
import com.android.settings.applications.UserManagerWrapperImpl; import com.android.settings.applications.UserManagerWrapperImpl;
import com.android.settings.core.PreferenceController;
import com.android.settings.dashboard.DashboardFragment; import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.deviceinfo.storage.AutomaticStorageManagementSwitchPreferenceController; import com.android.settings.deviceinfo.storage.AutomaticStorageManagementSwitchPreferenceController;
import com.android.settings.deviceinfo.storage.SecondaryUserController; import com.android.settings.deviceinfo.storage.SecondaryUserController;
@@ -50,6 +49,7 @@ import com.android.settings.deviceinfo.storage.VolumeSizesLoader;
import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.search.Indexable; import com.android.settings.search.Indexable;
import com.android.settingslib.applications.StorageStatsSource; import com.android.settingslib.applications.StorageStatsSource;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.deviceinfo.PrivateStorageInfo; import com.android.settingslib.deviceinfo.PrivateStorageInfo;
import com.android.settingslib.deviceinfo.StorageManagerVolumeProvider; import com.android.settingslib.deviceinfo.StorageManagerVolumeProvider;
@@ -72,7 +72,7 @@ public class StorageDashboardFragment extends DashboardFragment
private StorageSummaryDonutPreferenceController mSummaryController; private StorageSummaryDonutPreferenceController mSummaryController;
private StorageItemPreferenceController mPreferenceController; private StorageItemPreferenceController mPreferenceController;
private PrivateVolumeOptionMenuController mOptionMenuController; private PrivateVolumeOptionMenuController mOptionMenuController;
private List<PreferenceController> mSecondaryUsers; private List<AbstractPreferenceController> mSecondaryUsers;
@Override @Override
public void onCreate(Bundle icicle) { public void onCreate(Bundle icicle) {
@@ -129,7 +129,7 @@ public class StorageDashboardFragment extends DashboardFragment
mPreferenceController.setUsedSize(privateUsedBytes); mPreferenceController.setUsedSize(privateUsedBytes);
mPreferenceController.setTotalSize(mStorageInfo.totalBytes); mPreferenceController.setTotalSize(mStorageInfo.totalBytes);
for (int i = 0, size = mSecondaryUsers.size(); i < size; i++) { for (int i = 0, size = mSecondaryUsers.size(); i < size; i++) {
PreferenceController controller = mSecondaryUsers.get(i); AbstractPreferenceController controller = mSecondaryUsers.get(i);
if (controller instanceof SecondaryUserController) { if (controller instanceof SecondaryUserController) {
SecondaryUserController userController = (SecondaryUserController) controller; SecondaryUserController userController = (SecondaryUserController) controller;
userController.setTotalSize(mStorageInfo.totalBytes); userController.setTotalSize(mStorageInfo.totalBytes);
@@ -161,8 +161,8 @@ public class StorageDashboardFragment extends DashboardFragment
} }
@Override @Override
protected List<PreferenceController> getPreferenceControllers(Context context) { protected List<AbstractPreferenceController> getPreferenceControllers(Context context) {
final List<PreferenceController> controllers = new ArrayList<>(); final List<AbstractPreferenceController> controllers = new ArrayList<>();
mSummaryController = new StorageSummaryDonutPreferenceController(context); mSummaryController = new StorageSummaryDonutPreferenceController(context);
controllers.add(mSummaryController); controllers.add(mSummaryController);
@@ -192,10 +192,10 @@ public class StorageDashboardFragment extends DashboardFragment
/** /**
* Updates the secondary user controller sizes. * Updates the secondary user controller sizes.
*/ */
private void updateSecondaryUserControllers(List<PreferenceController> controllers, private void updateSecondaryUserControllers(List<AbstractPreferenceController> controllers,
SparseArray<StorageAsyncLoader.AppsStorageResult> stats) { SparseArray<StorageAsyncLoader.AppsStorageResult> stats) {
for (int i = 0, size = controllers.size(); i < size; i++) { for (int i = 0, size = controllers.size(); i < size; i++) {
PreferenceController controller = controllers.get(i); AbstractPreferenceController controller = controllers.get(i);
if (controller instanceof StorageAsyncLoader.ResultHandler) { if (controller instanceof StorageAsyncLoader.ResultHandler) {
StorageAsyncLoader.ResultHandler userController = StorageAsyncLoader.ResultHandler userController =
(StorageAsyncLoader.ResultHandler) controller; (StorageAsyncLoader.ResultHandler) controller;
@@ -218,11 +218,11 @@ public class StorageDashboardFragment extends DashboardFragment
} }
@Override @Override
public List<PreferenceController> getPreferenceControllers(Context context) { public List<AbstractPreferenceController> getPreferenceControllers(Context context) {
final StorageManager sm = context.getSystemService(StorageManager.class); final StorageManager sm = context.getSystemService(StorageManager.class);
final UserManagerWrapper userManager = final UserManagerWrapper userManager =
new UserManagerWrapperImpl(context.getSystemService(UserManager.class)); new UserManagerWrapperImpl(context.getSystemService(UserManager.class));
final List<PreferenceController> controllers = new ArrayList<>(); final List<AbstractPreferenceController> controllers = new ArrayList<>();
controllers.add(new StorageSummaryDonutPreferenceController(context)); controllers.add(new StorageSummaryDonutPreferenceController(context));
controllers.add(new StorageItemPreferenceController(context, null /* host */, controllers.add(new StorageItemPreferenceController(context, null /* host */,
null /* volume */, new StorageManagerVolumeProvider(sm))); null /* volume */, new StorageManagerVolumeProvider(sm)));

View File

@@ -32,12 +32,12 @@ import com.android.settings.R;
import com.android.settings.Utils; import com.android.settings.Utils;
import com.android.settings.applications.PackageManagerWrapperImpl; import com.android.settings.applications.PackageManagerWrapperImpl;
import com.android.settings.applications.UserManagerWrapperImpl; import com.android.settings.applications.UserManagerWrapperImpl;
import com.android.settings.core.PreferenceController;
import com.android.settings.dashboard.DashboardFragment; import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.deviceinfo.storage.StorageAsyncLoader; import com.android.settings.deviceinfo.storage.StorageAsyncLoader;
import com.android.settings.deviceinfo.storage.StorageAsyncLoader.AppsStorageResult; import com.android.settings.deviceinfo.storage.StorageAsyncLoader.AppsStorageResult;
import com.android.settings.deviceinfo.storage.StorageItemPreferenceController; import com.android.settings.deviceinfo.storage.StorageItemPreferenceController;
import com.android.settingslib.applications.StorageStatsSource; import com.android.settingslib.applications.StorageStatsSource;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.deviceinfo.StorageManagerVolumeProvider; import com.android.settingslib.deviceinfo.StorageManagerVolumeProvider;
import java.util.ArrayList; import java.util.ArrayList;
@@ -98,8 +98,8 @@ public class StorageProfileFragment extends DashboardFragment
} }
@Override @Override
protected List<PreferenceController> getPreferenceControllers(Context context) { protected List<AbstractPreferenceController> getPreferenceControllers(Context context) {
final List<PreferenceController> controllers = new ArrayList<>(); final List<AbstractPreferenceController> controllers = new ArrayList<>();
final StorageManager sm = context.getSystemService(StorageManager.class); final StorageManager sm = context.getSystemService(StorageManager.class);
mPreferenceController = new StorageItemPreferenceController(context, this, mPreferenceController = new StorageItemPreferenceController(context, this,
mVolume, new StorageManagerVolumeProvider(sm)); mVolume, new StorageManagerVolumeProvider(sm));

View File

@@ -28,11 +28,13 @@ import android.util.Log;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.Utils; import com.android.settings.Utils;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
import static android.content.Context.CARRIER_CONFIG_SERVICE; import static android.content.Context.CARRIER_CONFIG_SERVICE;
public class SystemUpdatePreferenceController extends PreferenceController { public class SystemUpdatePreferenceController extends AbstractPreferenceController implements
PreferenceControllerMixin {
private static final String TAG = "SysUpdatePrefContr"; private static final String TAG = "SysUpdatePrefContr";

View File

@@ -24,17 +24,19 @@ import android.support.annotation.VisibleForTesting;
import android.support.v7.preference.PreferenceScreen; import android.support.v7.preference.PreferenceScreen;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent; 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.core.instrumentation.MetricsFeatureProvider;
import com.android.settings.deletionhelper.ActivationWarningFragment; import com.android.settings.deletionhelper.ActivationWarningFragment;
import com.android.settings.widget.MasterSwitchController; import com.android.settings.widget.MasterSwitchController;
import com.android.settings.widget.MasterSwitchPreference; import com.android.settings.widget.MasterSwitchPreference;
import com.android.settings.widget.SwitchWidgetController; 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.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnResume; import com.android.settingslib.core.lifecycle.events.OnResume;
public class AutomaticStorageManagementSwitchPreferenceController extends PreferenceController public class AutomaticStorageManagementSwitchPreferenceController extends
implements LifecycleObserver, OnResume, SwitchWidgetController.OnSwitchChangeListener { AbstractPreferenceController implements PreferenceControllerMixin, LifecycleObserver,
OnResume, SwitchWidgetController.OnSwitchChangeListener {
private static final String KEY_TOGGLE_ASM = "toggle_asm"; private static final String KEY_TOGGLE_ASM = "toggle_asm";
@VisibleForTesting @VisibleForTesting
static final String STORAGE_MANAGER_ENABLED_BY_DEFAULT_PROPERTY = "ro.storage_manager.enabled"; 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.Utils;
import com.android.settings.applications.UserManagerWrapper; 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.StorageItemPreference;
import com.android.settingslib.core.AbstractPreferenceController;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; 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 * SecondaryUserController controls the preferences on the Storage screen which had to do with
* secondary users. * secondary users.
*/ */
public class SecondaryUserController extends PreferenceController public class SecondaryUserController extends AbstractPreferenceController implements
implements StorageAsyncLoader.ResultHandler, UserIconLoader.UserIconHandler { PreferenceControllerMixin, StorageAsyncLoader.ResultHandler,
UserIconLoader.UserIconHandler {
// PreferenceGroupKey to try to add our preference onto. // PreferenceGroupKey to try to add our preference onto.
private static final String TARGET_PREFERENCE_GROUP_KEY = "pref_secondary_users"; private static final String TARGET_PREFERENCE_GROUP_KEY = "pref_secondary_users";
private static final String PREFERENCE_KEY_BASE = "pref_user_"; 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 context Context for initializing the preference controllers.
* @param userManager UserManagerWrapper for figuring out which controllers to add. * @param userManager UserManagerWrapper for figuring out which controllers to add.
*/ */
public static List<PreferenceController> getSecondaryUserControllers( public static List<AbstractPreferenceController> getSecondaryUserControllers(
Context context, UserManagerWrapper userManager) { Context context, UserManagerWrapper userManager) {
List<PreferenceController> controllers = new ArrayList<>(); List<AbstractPreferenceController> controllers = new ArrayList<>();
UserInfo primaryUser = userManager.getPrimaryUser(); UserInfo primaryUser = userManager.getPrimaryUser();
boolean addedUser = false; boolean addedUser = false;
List<UserInfo> infos = userManager.getUsers(); List<UserInfo> infos = userManager.getUsers();
@@ -89,7 +91,7 @@ public class SecondaryUserController extends PreferenceController
/** /**
* Constructor for a given secondary user. * 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. * @param info {@link UserInfo} for the secondary user which this controllers covers.
*/ */
@VisibleForTesting @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) { public NoSecondaryUserController(Context context) {
super(context); super(context);
} }

View File

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

View File

@@ -24,14 +24,16 @@ import android.text.TextUtils;
import android.text.format.Formatter; import android.text.format.Formatter;
import com.android.settings.R; 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; import com.android.settingslib.deviceinfo.StorageVolumeProvider;
/** /**
* StorgaeSummaryPreferenceController updates the donut storage summary preference to have the * StorgaeSummaryPreferenceController updates the donut storage summary preference to have the
* correct sizes showing. * correct sizes showing.
*/ */
public class StorageSummaryDonutPreferenceController extends PreferenceController { public class StorageSummaryDonutPreferenceController extends AbstractPreferenceController implements
PreferenceControllerMixin {
private long mUsedBytes; private long mUsedBytes;
private long mTotalBytes; private long mTotalBytes;
private StorageSummaryDonutPreference mSummary; 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.internal.util.Preconditions;
import com.android.settings.Utils; import com.android.settings.Utils;
import com.android.settings.applications.UserManagerWrapper; 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.StorageItemPreference;
import com.android.settings.deviceinfo.StorageProfileFragment; import com.android.settings.deviceinfo.StorageProfileFragment;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.drawer.SettingsDrawerActivity; import com.android.settingslib.drawer.SettingsDrawerActivity;
/** Defines a {@link PreferenceController} which handles a single profile of the primary user. */ /** Defines a {@link AbstractPreferenceController} which handles a single profile of the primary
public class UserProfileController extends PreferenceController * user. */
implements StorageAsyncLoader.ResultHandler, UserIconLoader.UserIconHandler { public class UserProfileController extends AbstractPreferenceController implements
PreferenceControllerMixin, StorageAsyncLoader.ResultHandler,
UserIconLoader.UserIconHandler {
private static final String PREFERENCE_KEY_BASE = "pref_profile_"; private static final String PREFERENCE_KEY_BASE = "pref_profile_";
private StorageItemPreference mStoragePreference; private StorageItemPreference mStoragePreference;
private UserManagerWrapper mUserManager; private UserManagerWrapper mUserManager;

View File

@@ -25,10 +25,12 @@ import android.support.v14.preference.SwitchPreference;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import com.android.internal.hardware.AmbientDisplayConfiguration; import com.android.internal.hardware.AmbientDisplayConfiguration;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
public class AmbientDisplayAlwaysOnPreferenceController extends PreferenceController public class AmbientDisplayAlwaysOnPreferenceController extends
implements Preference.OnPreferenceChangeListener { AbstractPreferenceController implements PreferenceControllerMixin,
Preference.OnPreferenceChangeListener {
private static final String KEY_ALWAYS_ON = "ambient_display_always_on"; private static final String KEY_ALWAYS_ON = "ambient_display_always_on";
private static final int MY_USER = UserHandle.myUserId(); private static final int MY_USER = UserHandle.myUserId();

View File

@@ -21,14 +21,16 @@ import android.support.v14.preference.SwitchPreference;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import com.android.internal.hardware.AmbientDisplayConfiguration; import com.android.internal.hardware.AmbientDisplayConfiguration;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.core.instrumentation.MetricsFeatureProvider; import com.android.settings.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.core.AbstractPreferenceController;
import static android.provider.Settings.Secure.DOZE_ENABLED; import static android.provider.Settings.Secure.DOZE_ENABLED;
import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.ACTION_AMBIENT_DISPLAY; import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.ACTION_AMBIENT_DISPLAY;
public class AmbientDisplayNotificationsPreferenceController extends PreferenceController public class AmbientDisplayNotificationsPreferenceController extends
implements Preference.OnPreferenceChangeListener { AbstractPreferenceController implements PreferenceControllerMixin,
Preference.OnPreferenceChangeListener {
@VisibleForTesting @VisibleForTesting
static final String KEY_AMBIENT_DISPLAY_NOTIFICATIONS = "ambient_display_notification"; static final String KEY_AMBIENT_DISPLAY_NOTIFICATIONS = "ambient_display_notification";

View File

@@ -19,12 +19,13 @@ import android.content.Context;
import android.os.UserHandle; import android.os.UserHandle;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import com.android.internal.app.NightDisplayController;
import com.android.internal.hardware.AmbientDisplayConfiguration; import com.android.internal.hardware.AmbientDisplayConfiguration;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
public class AmbientDisplayPreferenceController extends PreferenceController { public class AmbientDisplayPreferenceController extends AbstractPreferenceController implements
PreferenceControllerMixin {
private static final int MY_USER_ID = UserHandle.myUserId(); private static final int MY_USER_ID = UserHandle.myUserId();

View File

@@ -17,20 +17,19 @@
package com.android.settings.display; package com.android.settings.display;
import android.content.Context; import android.content.Context;
import android.os.Bundle;
import android.os.UserHandle; import android.os.UserHandle;
import android.provider.SearchIndexableResource; import android.provider.SearchIndexableResource;
import com.android.internal.hardware.AmbientDisplayConfiguration; import com.android.internal.hardware.AmbientDisplayConfiguration;
import com.android.internal.logging.nano.MetricsProto; import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.PreferenceController;
import com.android.settings.core.instrumentation.MetricsFeatureProvider; import com.android.settings.core.instrumentation.MetricsFeatureProvider;
import com.android.settings.dashboard.DashboardFragment; import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.gestures.DoubleTapScreenPreferenceController; import com.android.settings.gestures.DoubleTapScreenPreferenceController;
import com.android.settings.gestures.PickupGesturePreferenceController; import com.android.settings.gestures.PickupGesturePreferenceController;
import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.search.Indexable; import com.android.settings.search.Indexable;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.Lifecycle;
import java.util.ArrayList; import java.util.ArrayList;
@@ -49,10 +48,10 @@ public class AmbientDisplaySettings extends DashboardFragment {
private static final String KEY_AMBIENT_DISPLAY_PICK_UP = "ambient_display_pick_up"; private static final String KEY_AMBIENT_DISPLAY_PICK_UP = "ambient_display_pick_up";
private static final String KEY_AMBIENT_DISPLAY_NOTIFICATION = "ambient_display_notification"; private static final String KEY_AMBIENT_DISPLAY_NOTIFICATION = "ambient_display_notification";
private static List<PreferenceController> buildPreferenceControllers(Context context, private static List<AbstractPreferenceController> buildPreferenceControllers(Context context,
Lifecycle lifecycle, AmbientDisplayConfiguration config, Lifecycle lifecycle, AmbientDisplayConfiguration config,
MetricsFeatureProvider metricsFeatureProvider) { MetricsFeatureProvider metricsFeatureProvider) {
final List<PreferenceController> controllers = new ArrayList<>(); final List<AbstractPreferenceController> controllers = new ArrayList<>();
controllers.add(new AmbientDisplayNotificationsPreferenceController(context, config, controllers.add(new AmbientDisplayNotificationsPreferenceController(context, config,
metricsFeatureProvider)); metricsFeatureProvider));
controllers.add(new AmbientDisplayAlwaysOnPreferenceController(context, config)); controllers.add(new AmbientDisplayAlwaysOnPreferenceController(context, config));
@@ -75,7 +74,7 @@ public class AmbientDisplaySettings extends DashboardFragment {
} }
@Override @Override
protected List<PreferenceController> getPreferenceControllers(Context context) { protected List<AbstractPreferenceController> getPreferenceControllers(Context context) {
return buildPreferenceControllers(context, getLifecycle(), return buildPreferenceControllers(context, getLifecycle(),
new AmbientDisplayConfiguration(context), mMetricsFeatureProvider); new AmbientDisplayConfiguration(context), mMetricsFeatureProvider);
} }
@@ -99,7 +98,7 @@ public class AmbientDisplaySettings extends DashboardFragment {
} }
@Override @Override
public List<PreferenceController> getPreferenceControllers(Context context) { public List<AbstractPreferenceController> getPreferenceControllers(Context context) {
return buildPreferenceControllers(context, null, return buildPreferenceControllers(context, null,
new AmbientDisplayConfiguration(context), null); new AmbientDisplayConfiguration(context), null);
} }

View File

@@ -20,19 +20,20 @@ import android.support.v14.preference.SwitchPreference;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import com.android.settings.DisplaySettings; import com.android.settings.DisplaySettings;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.search.DatabaseIndexingUtils; import com.android.settings.search.DatabaseIndexingUtils;
import com.android.settings.search.InlineSwitchPayload; import com.android.settings.search.InlineSwitchPayload;
import com.android.settings.search.ResultPayload; import com.android.settings.search.ResultPayload;
import com.android.settings.R; import com.android.settings.R;
import com.android.settingslib.core.AbstractPreferenceController;
import static android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE; import static android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE;
import static android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC; import static android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC;
import static android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL; import static android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL;
public class AutoBrightnessPreferenceController extends PreferenceController implements public class AutoBrightnessPreferenceController extends AbstractPreferenceController implements
Preference.OnPreferenceChangeListener { PreferenceControllerMixin, Preference.OnPreferenceChangeListener {
private final String mAutoBrightnessKey; private final String mAutoBrightnessKey;

View File

@@ -19,16 +19,18 @@ import android.support.v7.preference.TwoStatePreference;
import com.android.internal.logging.nano.MetricsProto; import com.android.internal.logging.nano.MetricsProto;
import com.android.internal.view.RotationPolicy; import com.android.internal.view.RotationPolicy;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.core.instrumentation.MetricsFeatureProvider; import com.android.settings.core.instrumentation.MetricsFeatureProvider;
import com.android.settings.overlay.FeatureFactory; import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnPause; import com.android.settingslib.core.lifecycle.events.OnPause;
import com.android.settingslib.core.lifecycle.events.OnResume; import com.android.settingslib.core.lifecycle.events.OnResume;
public class AutoRotatePreferenceController extends PreferenceController implements public class AutoRotatePreferenceController extends AbstractPreferenceController implements
Preference.OnPreferenceChangeListener, LifecycleObserver, OnResume, OnPause { PreferenceControllerMixin, Preference.OnPreferenceChangeListener, LifecycleObserver,
OnResume, OnPause {
private static final String KEY_AUTO_ROTATE = "auto_rotate"; private static final String KEY_AUTO_ROTATE = "auto_rotate";
private final MetricsFeatureProvider mMetricsFeatureProvider; private final MetricsFeatureProvider mMetricsFeatureProvider;

View File

@@ -20,7 +20,8 @@ import android.provider.Settings;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import android.support.v14.preference.SwitchPreference; import android.support.v14.preference.SwitchPreference;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
import static android.provider.Settings.System.SHOW_BATTERY_PERCENT; import static android.provider.Settings.System.SHOW_BATTERY_PERCENT;
@@ -28,8 +29,8 @@ import static android.provider.Settings.System.SHOW_BATTERY_PERCENT;
* A controller to manage the switch for showing battery percentage in the status bar. * A controller to manage the switch for showing battery percentage in the status bar.
*/ */
public class BatteryPercentagePreferenceController extends PreferenceController public class BatteryPercentagePreferenceController extends AbstractPreferenceController implements
implements Preference.OnPreferenceChangeListener { PreferenceControllerMixin, Preference.OnPreferenceChangeListener {
private static final String KEY_BATTERY_PERCENTAGE = "battery_percentage"; private static final String KEY_BATTERY_PERCENTAGE = "battery_percentage";

View File

@@ -30,7 +30,8 @@ import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen; import android.support.v7.preference.PreferenceScreen;
import android.util.Log; import android.util.Log;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnPause; import com.android.settingslib.core.lifecycle.events.OnPause;
@@ -38,8 +39,8 @@ import com.android.settingslib.core.lifecycle.events.OnResume;
import java.text.NumberFormat; import java.text.NumberFormat;
public class BrightnessLevelPreferenceController extends PreferenceController implements public class BrightnessLevelPreferenceController extends AbstractPreferenceController implements
LifecycleObserver, OnResume, OnPause { PreferenceControllerMixin, LifecycleObserver, OnResume, OnPause {
private static final String TAG = "BrightnessPrefCtrl"; private static final String TAG = "BrightnessPrefCtrl";
private static final String KEY_BRIGHTNESS = "brightness"; private static final String KEY_BRIGHTNESS = "brightness";

View File

@@ -19,12 +19,13 @@ import android.provider.Settings;
import android.support.v14.preference.SwitchPreference; import android.support.v14.preference.SwitchPreference;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
import static android.provider.Settings.Secure.CAMERA_GESTURE_DISABLED; import static android.provider.Settings.Secure.CAMERA_GESTURE_DISABLED;
public class CameraGesturePreferenceController extends PreferenceController implements public class CameraGesturePreferenceController extends AbstractPreferenceController implements
Preference.OnPreferenceChangeListener { PreferenceControllerMixin, Preference.OnPreferenceChangeListener {
private static final String KEY_CAMERA_GESTURE = "camera_gesture"; private static final String KEY_CAMERA_GESTURE = "camera_gesture";

View File

@@ -23,10 +23,11 @@ import android.support.v7.preference.Preference;
import android.support.v7.preference.TwoStatePreference; import android.support.v7.preference.TwoStatePreference;
import android.util.Log; import android.util.Log;
import com.android.internal.annotations.VisibleForTesting; import com.android.internal.annotations.VisibleForTesting;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
public class ColorModePreferenceController extends PreferenceController implements public class ColorModePreferenceController extends AbstractPreferenceController implements
Preference.OnPreferenceChangeListener { PreferenceControllerMixin, Preference.OnPreferenceChangeListener {
private static final String TAG = "ColorModePreference"; private static final String TAG = "ColorModePreference";
private static final String KEY_COLOR_MODE = "color_mode"; private static final String KEY_COLOR_MODE = "color_mode";

View File

@@ -20,9 +20,11 @@ import android.support.v7.preference.Preference;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.accessibility.ToggleFontSizePreferenceFragment; import com.android.settings.accessibility.ToggleFontSizePreferenceFragment;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
public class FontSizePreferenceController extends PreferenceController { public class FontSizePreferenceController extends AbstractPreferenceController implements
PreferenceControllerMixin {
private static final String KEY_FONT_SIZE = "font_size"; private static final String KEY_FONT_SIZE = "font_size";

View File

@@ -20,12 +20,13 @@ import android.provider.Settings;
import android.support.v14.preference.SwitchPreference; import android.support.v14.preference.SwitchPreference;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
import static android.provider.Settings.Secure.WAKE_GESTURE_ENABLED; import static android.provider.Settings.Secure.WAKE_GESTURE_ENABLED;
public class LiftToWakePreferenceController extends PreferenceController implements public class LiftToWakePreferenceController extends AbstractPreferenceController implements
Preference.OnPreferenceChangeListener { PreferenceControllerMixin, Preference.OnPreferenceChangeListener {
private static final String KEY_LIFT_TO_WAKE = "lift_to_wake"; private static final String KEY_LIFT_TO_WAKE = "lift_to_wake";

View File

@@ -14,12 +14,13 @@
package com.android.settings.display; package com.android.settings.display;
import android.content.Context; import android.content.Context;
import android.support.v7.preference.Preference;
import com.android.internal.app.NightDisplayController; import com.android.internal.app.NightDisplayController;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
public class NightDisplayPreferenceController extends PreferenceController { public class NightDisplayPreferenceController extends AbstractPreferenceController implements
PreferenceControllerMixin {
private static final String KEY_NIGHT_DISPLAY = "night_display"; private static final String KEY_NIGHT_DISPLAY = "night_display";

View File

@@ -20,12 +20,13 @@ import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen; import android.support.v7.preference.PreferenceScreen;
import android.util.Log; import android.util.Log;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
import static android.content.Context.UI_MODE_SERVICE; import static android.content.Context.UI_MODE_SERVICE;
public class NightModePreferenceController extends PreferenceController public class NightModePreferenceController extends AbstractPreferenceController implements
implements Preference.OnPreferenceChangeListener { PreferenceControllerMixin, Preference.OnPreferenceChangeListener {
private static final String TAG = "NightModePrefContr"; private static final String TAG = "NightModePrefContr";
private static final String KEY_NIGHT_MODE = "night_mode"; private static final String KEY_NIGHT_MODE = "night_mode";

View File

@@ -16,10 +16,12 @@ package com.android.settings.display;
import android.content.Context; import android.content.Context;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.dream.DreamSettings; import com.android.settings.dream.DreamSettings;
import com.android.settingslib.core.AbstractPreferenceController;
public class ScreenSaverPreferenceController extends PreferenceController { public class ScreenSaverPreferenceController extends AbstractPreferenceController implements
PreferenceControllerMixin {
private static final String KEY_SCREEN_SAVER = "screensaver"; private static final String KEY_SCREEN_SAVER = "screensaver";

View File

@@ -18,10 +18,11 @@ import android.provider.Settings;
import android.support.v14.preference.SwitchPreference; import android.support.v14.preference.SwitchPreference;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
public class TapToWakePreferenceController extends PreferenceController implements public class TapToWakePreferenceController extends AbstractPreferenceController implements
Preference.OnPreferenceChangeListener { PreferenceControllerMixin, Preference.OnPreferenceChangeListener {
private static final String KEY_TAP_TO_WAKE = "tap_to_wake"; private static final String KEY_TAP_TO_WAKE = "tap_to_wake";

View File

@@ -28,9 +28,10 @@ import android.support.v7.preference.Preference;
import android.text.TextUtils; import android.text.TextUtils;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.core.instrumentation.MetricsFeatureProvider; import com.android.settings.core.instrumentation.MetricsFeatureProvider;
import com.android.settings.overlay.FeatureFactory; import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.core.AbstractPreferenceController;
import libcore.util.Objects; import libcore.util.Objects;
@@ -39,8 +40,8 @@ import java.util.List;
import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.ACTION_THEME; import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.ACTION_THEME;
public class ThemePreferenceController extends PreferenceController implements public class ThemePreferenceController extends AbstractPreferenceController implements
Preference.OnPreferenceChangeListener { PreferenceControllerMixin, Preference.OnPreferenceChangeListener {
private static final String KEY_THEME = "theme"; private static final String KEY_THEME = "theme";

View File

@@ -22,13 +22,14 @@ import android.util.Log;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.TimeoutListPreference; import com.android.settings.TimeoutListPreference;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.core.AbstractPreferenceController;
import static android.provider.Settings.System.SCREEN_OFF_TIMEOUT; import static android.provider.Settings.System.SCREEN_OFF_TIMEOUT;
public class TimeoutPreferenceController extends PreferenceController implements public class TimeoutPreferenceController extends AbstractPreferenceController implements
Preference.OnPreferenceChangeListener { PreferenceControllerMixin, Preference.OnPreferenceChangeListener {
private static final String TAG = "TimeoutPrefContr"; private static final String TAG = "TimeoutPrefContr";

View File

@@ -20,9 +20,11 @@ import android.provider.Settings;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
public class VrDisplayPreferenceController extends PreferenceController { public class VrDisplayPreferenceController extends AbstractPreferenceController implements
PreferenceControllerMixin {
private static final String KEY_VR_DISPLAY_PREF = "vr_display_pref"; private static final String KEY_VR_DISPLAY_PREF = "vr_display_pref";

View File

@@ -17,13 +17,15 @@ import android.content.Context;
import android.os.UserHandle; import android.os.UserHandle;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.RestrictedPreference; import com.android.settingslib.RestrictedPreference;
import com.android.settingslib.core.AbstractPreferenceController;
import static android.os.UserManager.DISALLOW_SET_WALLPAPER; import static android.os.UserManager.DISALLOW_SET_WALLPAPER;
public class WallpaperPreferenceController extends PreferenceController { public class WallpaperPreferenceController extends AbstractPreferenceController implements
PreferenceControllerMixin {
private static final String KEY_WALLPAPER = "wallpaper"; private static final String KEY_WALLPAPER = "wallpaper";

View File

@@ -18,13 +18,15 @@ package com.android.settings.dream;
import android.content.Context; import android.content.Context;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.widget.GearPreference; import com.android.settings.widget.GearPreference;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.dream.DreamBackend; import com.android.settingslib.dream.DreamBackend;
import com.android.settingslib.dream.DreamBackend.DreamInfo; import com.android.settingslib.dream.DreamBackend.DreamInfo;
import java.util.Optional; import java.util.Optional;
public class CurrentDreamPreferenceController extends PreferenceController { public class CurrentDreamPreferenceController extends AbstractPreferenceController implements
PreferenceControllerMixin {
private final DreamBackend mBackend; private final DreamBackend mBackend;
private final static String TAG = "CurrentDreamPreferenceController"; private final static String TAG = "CurrentDreamPreferenceController";
private final static String CURRENT_SCREENSAVER = "current_screensaver"; private final static String CURRENT_SCREENSAVER = "current_screensaver";

View File

@@ -16,15 +16,20 @@
package com.android.settings.dream; package com.android.settings.dream;
import static com.android.settingslib.dream.DreamBackend.EITHER;
import static com.android.settingslib.dream.DreamBackend.NEVER;
import static com.android.settingslib.dream.DreamBackend.WHILE_CHARGING;
import static com.android.settingslib.dream.DreamBackend.WHILE_DOCKED;
import android.content.Context; import android.content.Context;
import android.provider.SearchIndexableResource; import android.provider.SearchIndexableResource;
import android.support.annotation.VisibleForTesting; import android.support.annotation.VisibleForTesting;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.PreferenceController;
import com.android.settings.dashboard.DashboardFragment; import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.dream.DreamBackend; import com.android.settingslib.dream.DreamBackend;
import com.android.settingslib.dream.DreamBackend.WhenToDream; import com.android.settingslib.dream.DreamBackend.WhenToDream;
@@ -32,11 +37,6 @@ import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import static com.android.settingslib.dream.DreamBackend.EITHER;
import static com.android.settingslib.dream.DreamBackend.NEVER;
import static com.android.settingslib.dream.DreamBackend.WHILE_CHARGING;
import static com.android.settingslib.dream.DreamBackend.WHILE_DOCKED;
public class DreamSettings extends DashboardFragment { public class DreamSettings extends DashboardFragment {
private static final String TAG = "DreamSettings"; private static final String TAG = "DreamSettings";
@@ -109,7 +109,7 @@ public class DreamSettings extends DashboardFragment {
} }
@Override @Override
protected List<PreferenceController> getPreferenceControllers(Context context) { protected List<AbstractPreferenceController> getPreferenceControllers(Context context) {
return buildPreferenceControllers(context); return buildPreferenceControllers(context);
} }
@@ -127,8 +127,8 @@ public class DreamSettings extends DashboardFragment {
} }
} }
private static List<PreferenceController> buildPreferenceControllers(Context context) { private static List<AbstractPreferenceController> buildPreferenceControllers(Context context) {
List<PreferenceController> controllers = new ArrayList<>(); List<AbstractPreferenceController> controllers = new ArrayList<>();
controllers.add(new CurrentDreamPreferenceController(context)); controllers.add(new CurrentDreamPreferenceController(context));
controllers.add(new WhenToDreamPreferenceController(context)); controllers.add(new WhenToDreamPreferenceController(context));
controllers.add(new StartNowPreferenceController(context)); controllers.add(new StartNowPreferenceController(context));
@@ -146,7 +146,7 @@ public class DreamSettings extends DashboardFragment {
} }
@Override @Override
public List<PreferenceController> getPreferenceControllers(Context context) { public List<AbstractPreferenceController> getPreferenceControllers(Context context) {
return buildPreferenceControllers(context); return buildPreferenceControllers(context);
} }
}; };

Some files were not shown because too many files have changed in this diff Show More