diff --git a/src/com/android/settings/development/AdbPreferenceController.java b/src/com/android/settings/development/AdbPreferenceController.java index ed13b7339c5..cf23fe04a6d 100644 --- a/src/com/android/settings/development/AdbPreferenceController.java +++ b/src/com/android/settings/development/AdbPreferenceController.java @@ -18,67 +18,44 @@ package com.android.settings.development; import android.content.Context; -import android.content.Intent; -import android.os.UserManager; -import android.provider.Settings; -import android.support.annotation.VisibleForTesting; -import android.support.v14.preference.SwitchPreference; -import android.support.v4.content.LocalBroadcastManager; +import android.support.annotation.Nullable; import android.support.v7.preference.Preference; -import android.support.v7.preference.PreferenceScreen; -public class AdbPreferenceController extends DeveloperOptionsPreferenceController implements - Preference.OnPreferenceChangeListener { +import com.android.settings.core.PreferenceControllerMixin; +import com.android.settingslib.development.AbstractEnableAdbPreferenceController; - public static final String ADB_STATE_CHANGED = - "com.android.settings.development.AdbPreferenceController.ADB_STATE_CHANGED"; - public static final int ADB_SETTING_ON = 1; - public static final int ADB_SETTING_OFF = 0; - - private static final String KEY_ENABLE_ADB = "enable_adb"; +public class AdbPreferenceController extends AbstractEnableAdbPreferenceController implements + PreferenceControllerMixin { private final DevelopmentSettingsDashboardFragment mFragment; - private SwitchPreference mPreference; public AdbPreferenceController(Context context, DevelopmentSettingsDashboardFragment fragment) { super(context); mFragment = fragment; } - @Override - public boolean isAvailable() { - return mContext.getSystemService(UserManager.class).isAdminUser(); + public void onAdbDialogConfirmed() { + writeAdbSetting(true); + } + + public void onAdbDialogDismissed() { + updateState(mPreference); } @Override - public String getPreferenceKey() { - return KEY_ENABLE_ADB; + public void showConfirmationDialog(@Nullable Preference preference) { + EnableAdbWarningDialog.show(mFragment); } @Override - public void displayPreference(PreferenceScreen screen) { - super.displayPreference(screen); - - mPreference = (SwitchPreference) screen.findPreference(getPreferenceKey()); + public void dismissConfirmationDialog() { + // intentional no-op } @Override - public boolean onPreferenceChange(Preference preference, Object newValue) { - final boolean isAdbEnabled = (Boolean) newValue; - if (isAdbEnabled) { - EnableAdbWarningDialog.show(mFragment); - } else { - writeAdbSetting(isAdbEnabled); - notifyStateChanged(); - } - return true; - } - - @Override - public void updateState(Preference preference) { - final int adbMode = Settings.Global.getInt(mContext.getContentResolver(), - Settings.Global.ADB_ENABLED, 0 /* default */); - mPreference.setChecked(adbMode != ADB_SETTING_OFF); + public boolean isConfirmationDialogShowing() { + // intentional no-op + return false; } @Override @@ -89,28 +66,7 @@ public class AdbPreferenceController extends DeveloperOptionsPreferenceControlle @Override protected void onDeveloperOptionsSwitchDisabled() { writeAdbSetting(false); - notifyStateChanged(); mPreference.setEnabled(false); mPreference.setChecked(false); } - - public void onAdbDialogConfirmed() { - writeAdbSetting(true); - notifyStateChanged(); - } - - public void onAdbDialogDismissed() { - updateState(mPreference); - } - - private void writeAdbSetting(boolean enabled) { - Settings.Global.putInt(mContext.getContentResolver(), - Settings.Global.ADB_ENABLED, enabled ? ADB_SETTING_ON : ADB_SETTING_OFF); - } - - @VisibleForTesting - void notifyStateChanged() { - LocalBroadcastManager.getInstance(mContext) - .sendBroadcast(new Intent(ADB_STATE_CHANGED)); - } } diff --git a/src/com/android/settings/development/AllowAppsOnExternalPreferenceController.java b/src/com/android/settings/development/AllowAppsOnExternalPreferenceController.java index fb6945553ee..c3b527f7055 100644 --- a/src/com/android/settings/development/AllowAppsOnExternalPreferenceController.java +++ b/src/com/android/settings/development/AllowAppsOnExternalPreferenceController.java @@ -23,8 +23,12 @@ import android.support.v14.preference.SwitchPreference; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; +import com.android.settings.core.PreferenceControllerMixin; +import com.android.settingslib.development.DeveloperOptionsPreferenceController; + public class AllowAppsOnExternalPreferenceController extends - DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener { + DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener, + PreferenceControllerMixin { private static final String FORCE_ALLOW_ON_EXTERNAL_KEY = "force_allow_on_external"; diff --git a/src/com/android/settings/development/AppsNotRespondingPreferenceController.java b/src/com/android/settings/development/AppsNotRespondingPreferenceController.java index 3f454ea6f35..98d7fa510c3 100644 --- a/src/com/android/settings/development/AppsNotRespondingPreferenceController.java +++ b/src/com/android/settings/development/AppsNotRespondingPreferenceController.java @@ -22,8 +22,12 @@ import android.support.v14.preference.SwitchPreference; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; +import com.android.settings.core.PreferenceControllerMixin; +import com.android.settingslib.development.DeveloperOptionsPreferenceController; + public class AppsNotRespondingPreferenceController extends - DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener { + DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener, + PreferenceControllerMixin { private static final String SHOW_ALL_ANRS_KEY = "show_all_anrs"; diff --git a/src/com/android/settings/development/BluetoothAbsoluteVolumePreferenceController.java b/src/com/android/settings/development/BluetoothAbsoluteVolumePreferenceController.java index 8e6df8ee6d9..64f64407bf4 100644 --- a/src/com/android/settings/development/BluetoothAbsoluteVolumePreferenceController.java +++ b/src/com/android/settings/development/BluetoothAbsoluteVolumePreferenceController.java @@ -23,8 +23,12 @@ import android.support.v14.preference.SwitchPreference; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; +import com.android.settings.core.PreferenceControllerMixin; +import com.android.settingslib.development.DeveloperOptionsPreferenceController; + public class BluetoothAbsoluteVolumePreferenceController extends - DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener { + DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener, + PreferenceControllerMixin { private static final String BLUETOOTH_DISABLE_ABSOLUTE_VOLUME_KEY = "bluetooth_disable_absolute_volume"; diff --git a/src/com/android/settings/development/BluetoothDeviceNoNamePreferenceController.java b/src/com/android/settings/development/BluetoothDeviceNoNamePreferenceController.java index cd2915fc58f..654a531349b 100644 --- a/src/com/android/settings/development/BluetoothDeviceNoNamePreferenceController.java +++ b/src/com/android/settings/development/BluetoothDeviceNoNamePreferenceController.java @@ -23,8 +23,12 @@ import android.support.v14.preference.SwitchPreference; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; +import com.android.settings.core.PreferenceControllerMixin; +import com.android.settingslib.development.DeveloperOptionsPreferenceController; + public class BluetoothDeviceNoNamePreferenceController extends - DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener { + DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener, + PreferenceControllerMixin { private static final String BLUETOOTH_SHOW_DEVICES_WITHOUT_NAMES_KEY = "bluetooth_show_devices_without_names"; diff --git a/src/com/android/settings/development/BluetoothInbandRingingPreferenceController.java b/src/com/android/settings/development/BluetoothInbandRingingPreferenceController.java index 250e84a8f6b..db5a881e996 100644 --- a/src/com/android/settings/development/BluetoothInbandRingingPreferenceController.java +++ b/src/com/android/settings/development/BluetoothInbandRingingPreferenceController.java @@ -24,8 +24,12 @@ import android.support.v14.preference.SwitchPreference; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; +import com.android.settings.core.PreferenceControllerMixin; +import com.android.settingslib.development.DeveloperOptionsPreferenceController; + public class BluetoothInbandRingingPreferenceController extends - DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener { + DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener, + PreferenceControllerMixin { private static final String BLUETOOTH_ENABLE_INBAND_RINGING_KEY = "bluetooth_enable_inband_ringing"; diff --git a/src/com/android/settings/development/BluetoothSnoopLogPreferenceController.java b/src/com/android/settings/development/BluetoothSnoopLogPreferenceController.java index 16a549e9123..56cfd73fab2 100644 --- a/src/com/android/settings/development/BluetoothSnoopLogPreferenceController.java +++ b/src/com/android/settings/development/BluetoothSnoopLogPreferenceController.java @@ -23,8 +23,12 @@ import android.support.v14.preference.SwitchPreference; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; +import com.android.settings.core.PreferenceControllerMixin; +import com.android.settingslib.development.DeveloperOptionsPreferenceController; + public class BluetoothSnoopLogPreferenceController extends - DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener { + DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener, + PreferenceControllerMixin { private static final String PREFERENCE_KEY = "bt_hci_snoop_log"; @VisibleForTesting diff --git a/src/com/android/settings/development/BugReportInPowerPreferenceControllerV2.java b/src/com/android/settings/development/BugReportInPowerPreferenceControllerV2.java index 34a95a63bd1..0ab826f19a3 100644 --- a/src/com/android/settings/development/BugReportInPowerPreferenceControllerV2.java +++ b/src/com/android/settings/development/BugReportInPowerPreferenceControllerV2.java @@ -26,10 +26,13 @@ import android.support.v14.preference.SwitchPreference; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; +import com.android.settings.core.PreferenceControllerMixin; +import com.android.settingslib.development.DeveloperOptionsPreferenceController; import com.android.settingslib.wrapper.PackageManagerWrapper; public class BugReportInPowerPreferenceControllerV2 extends - DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener { + DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener, + PreferenceControllerMixin { private static final String KEY_BUGREPORT_IN_POWER = "bugreport_in_power"; diff --git a/src/com/android/settings/development/BugReportPreferenceControllerV2.java b/src/com/android/settings/development/BugReportPreferenceControllerV2.java index 7df23a6752b..38dece86a28 100644 --- a/src/com/android/settings/development/BugReportPreferenceControllerV2.java +++ b/src/com/android/settings/development/BugReportPreferenceControllerV2.java @@ -19,7 +19,11 @@ package com.android.settings.development; import android.content.Context; import android.os.UserManager; -public class BugReportPreferenceControllerV2 extends DeveloperOptionsPreferenceController { +import com.android.settings.core.PreferenceControllerMixin; +import com.android.settingslib.development.DeveloperOptionsPreferenceController; + +public class BugReportPreferenceControllerV2 extends DeveloperOptionsPreferenceController implements + PreferenceControllerMixin { private static final String KEY_BUGREPORT = "bugreport"; diff --git a/src/com/android/settings/development/CameraHalHdrPlusPreferenceControllerV2.java b/src/com/android/settings/development/CameraHalHdrPlusPreferenceControllerV2.java index 2005623334c..cb03bfc0211 100644 --- a/src/com/android/settings/development/CameraHalHdrPlusPreferenceControllerV2.java +++ b/src/com/android/settings/development/CameraHalHdrPlusPreferenceControllerV2.java @@ -26,10 +26,12 @@ import android.widget.Toast; import com.android.internal.annotations.VisibleForTesting; import com.android.settings.R; +import com.android.settings.core.PreferenceControllerMixin; +import com.android.settingslib.development.DeveloperOptionsPreferenceController; public class CameraHalHdrPlusPreferenceControllerV2 extends DeveloperOptionsPreferenceController implements - Preference.OnPreferenceChangeListener { + Preference.OnPreferenceChangeListener, PreferenceControllerMixin { private static final String KEY_CAMERA_HAL_HDRPLUS_SWITCH = "camera_hal_hdrplus_switch"; @VisibleForTesting diff --git a/src/com/android/settings/development/CameraLaserSensorPreferenceControllerV2.java b/src/com/android/settings/development/CameraLaserSensorPreferenceControllerV2.java index c3a5f164b0f..43943acc387 100644 --- a/src/com/android/settings/development/CameraLaserSensorPreferenceControllerV2.java +++ b/src/com/android/settings/development/CameraLaserSensorPreferenceControllerV2.java @@ -26,10 +26,12 @@ import android.text.TextUtils; import com.android.internal.annotations.VisibleForTesting; import com.android.settings.R; +import com.android.settings.core.PreferenceControllerMixin; +import com.android.settingslib.development.DeveloperOptionsPreferenceController; public class CameraLaserSensorPreferenceControllerV2 extends DeveloperOptionsPreferenceController implements - Preference.OnPreferenceChangeListener { + Preference.OnPreferenceChangeListener, PreferenceControllerMixin { private static final String KEY_CAMERA_LASER_SENSOR_SWITCH = "camera_laser_sensor_switch"; @VisibleForTesting diff --git a/src/com/android/settings/development/ClearAdbKeysPreferenceController.java b/src/com/android/settings/development/ClearAdbKeysPreferenceController.java index 9c93280e777..2248b896835 100644 --- a/src/com/android/settings/development/ClearAdbKeysPreferenceController.java +++ b/src/com/android/settings/development/ClearAdbKeysPreferenceController.java @@ -28,7 +28,11 @@ import android.support.v7.preference.PreferenceScreen; import android.text.TextUtils; import android.util.Log; -public class ClearAdbKeysPreferenceController extends DeveloperOptionsPreferenceController { +import com.android.settings.core.PreferenceControllerMixin; +import com.android.settingslib.development.DeveloperOptionsPreferenceController; + +public class ClearAdbKeysPreferenceController extends + DeveloperOptionsPreferenceController implements PreferenceControllerMixin { private static final String TAG = "ClearAdbPrefCtrl"; private static final String CLEAR_ADB_KEYS = "clear_adb_keys"; diff --git a/src/com/android/settings/development/ConnectivityMonitorPreferenceControllerV2.java b/src/com/android/settings/development/ConnectivityMonitorPreferenceControllerV2.java index 1fe2a0f3826..fdcecfb39a6 100644 --- a/src/com/android/settings/development/ConnectivityMonitorPreferenceControllerV2.java +++ b/src/com/android/settings/development/ConnectivityMonitorPreferenceControllerV2.java @@ -26,9 +26,12 @@ import android.widget.Toast; import com.android.internal.annotations.VisibleForTesting; import com.android.settings.R; +import com.android.settings.core.PreferenceControllerMixin; +import com.android.settingslib.development.DeveloperOptionsPreferenceController; public class ConnectivityMonitorPreferenceControllerV2 extends - DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener { + DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener, + PreferenceControllerMixin { private static final String KEY_CONNECTIVITY_MONITOR_SWITCH = "connectivity_monitor_switch"; @VisibleForTesting diff --git a/src/com/android/settings/development/CoolColorTemperaturePreferenceController.java b/src/com/android/settings/development/CoolColorTemperaturePreferenceController.java index 894435ae708..aa954c0ecd1 100644 --- a/src/com/android/settings/development/CoolColorTemperaturePreferenceController.java +++ b/src/com/android/settings/development/CoolColorTemperaturePreferenceController.java @@ -25,11 +25,13 @@ import android.support.v7.preference.PreferenceScreen; import android.widget.Toast; import com.android.settings.R; +import com.android.settings.core.PreferenceControllerMixin; +import com.android.settingslib.development.DeveloperOptionsPreferenceController; import com.android.settingslib.development.SystemPropPoker; public class CoolColorTemperaturePreferenceController extends DeveloperOptionsPreferenceController implements - Preference.OnPreferenceChangeListener { + Preference.OnPreferenceChangeListener, PreferenceControllerMixin { private static final String COLOR_TEMPERATURE_KEY = "color_temperature"; diff --git a/src/com/android/settings/development/DebugViewAttributesPreferenceController.java b/src/com/android/settings/development/DebugViewAttributesPreferenceController.java index 080c92167e7..caf23fa8303 100644 --- a/src/com/android/settings/development/DebugViewAttributesPreferenceController.java +++ b/src/com/android/settings/development/DebugViewAttributesPreferenceController.java @@ -23,8 +23,12 @@ import android.support.v14.preference.SwitchPreference; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; +import com.android.settings.core.PreferenceControllerMixin; +import com.android.settingslib.development.DeveloperOptionsPreferenceController; + public class DebugViewAttributesPreferenceController extends - DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener { + DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener, + PreferenceControllerMixin { private static final String DEBUG_VIEW_ATTRIBUTES_KEY = "debug_view_attributes"; diff --git a/src/com/android/settings/development/DeveloperOptionsPreferenceController.java b/src/com/android/settings/development/DeveloperOptionsPreferenceController.java deleted file mode 100644 index 431d9998071..00000000000 --- a/src/com/android/settings/development/DeveloperOptionsPreferenceController.java +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Copyright (C) 2017 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.settings.development; - -import android.content.Context; -import android.content.Intent; - -import com.android.settings.core.PreferenceControllerMixin; -import com.android.settingslib.core.AbstractPreferenceController; - -/** - * This controller is used handle changes for the master switch in the developer options page. - * - * All Preference Controllers that are a part of the developer options page should inherit this - * class. - */ -public abstract class DeveloperOptionsPreferenceController extends - AbstractPreferenceController implements PreferenceControllerMixin { - - public DeveloperOptionsPreferenceController(Context context) { - super(context); - } - - /** - * Called when an activity returns to the DeveloperSettingsDashboardFragment. - * - * @param requestCode The integer request code originally supplied to - * startActivityForResult(), allowing you to identify who this - * result came from. - * @param resultCode The integer result code returned by the child activity - * through its setResult(). - * @param data An Intent, which can return result data to the caller - * (various data can be attached to Intent "extras"). - * @return true if the controller handled the activity result - */ - public boolean onActivityResult(int requestCode, int resultCode, Intent data) { - return false; - } - - /** - * Child classes should override this method to create custom logic for hiding preferences. - * - * @return true if the preference is to be displayed. - */ - @Override - public boolean isAvailable() { - return true; - } - - /** - * Called when developer options is enabled - */ - public void onDeveloperOptionsEnabled() { - if (isAvailable()) { - onDeveloperOptionsSwitchEnabled(); - } - } - - /** - * Called when developer options is disabled - */ - public void onDeveloperOptionsDisabled() { - if (isAvailable()) { - onDeveloperOptionsSwitchDisabled(); - } - } - - /** - * Called when developer options is enabled and the preference is available - */ - protected abstract void onDeveloperOptionsSwitchEnabled(); - - /** - * Called when developer options is disabled and the preference is available - */ - protected abstract void onDeveloperOptionsSwitchDisabled(); - -} diff --git a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java index 8f61c52d897..5bd0f32a0b4 100644 --- a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java +++ b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java @@ -42,6 +42,7 @@ import com.android.settings.search.Indexable; import com.android.settings.widget.SwitchBar; import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.core.lifecycle.Lifecycle; +import com.android.settingslib.development.DeveloperOptionsPreferenceController; import com.android.settingslib.development.DevelopmentSettingsEnabler; import com.android.settingslib.development.SystemPropPoker; @@ -182,11 +183,11 @@ public class DevelopmentSettingsDashboardFragment extends RestrictedDashboardFra public void onActivityResult(int requestCode, int resultCode, Intent data) { boolean handledResult = false; for (AbstractPreferenceController controller : mPreferenceControllers) { - if (controller instanceof DeveloperOptionsPreferenceController) { + if (controller instanceof OnActivityResultListener) { // We do not break early because it is possible for multiple controllers to // handle the same result code. handledResult |= - ((DeveloperOptionsPreferenceController) controller).onActivityResult( + ((OnActivityResultListener) controller).onActivityResult( requestCode, resultCode, data); } } @@ -221,7 +222,7 @@ public class DevelopmentSettingsDashboardFragment extends RestrictedDashboardFra private void registerReceivers() { LocalBroadcastManager.getInstance(getContext()) .registerReceiver(mEnableAdbReceiver, new IntentFilter( - AdbPreferenceController.ADB_STATE_CHANGED)); + AdbPreferenceController.ACTION_ENABLE_ADB_STATE_CHANGED)); } private void unregisterReceivers() { diff --git a/src/com/android/settings/development/DisableAutomaticUpdatesPreferenceController.java b/src/com/android/settings/development/DisableAutomaticUpdatesPreferenceController.java index 4bd7d8cf9ee..4090462f32f 100644 --- a/src/com/android/settings/development/DisableAutomaticUpdatesPreferenceController.java +++ b/src/com/android/settings/development/DisableAutomaticUpdatesPreferenceController.java @@ -23,9 +23,12 @@ import android.support.v14.preference.SwitchPreference; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; +import com.android.settings.core.PreferenceControllerMixin; +import com.android.settingslib.development.DeveloperOptionsPreferenceController; + public class DisableAutomaticUpdatesPreferenceController extends DeveloperOptionsPreferenceController implements - Preference.OnPreferenceChangeListener { + Preference.OnPreferenceChangeListener, PreferenceControllerMixin { private static final String OTA_DISABLE_AUTOMATIC_UPDATE_KEY = "ota_disable_automatic_update"; diff --git a/src/com/android/settings/development/FileEncryptionPreferenceController.java b/src/com/android/settings/development/FileEncryptionPreferenceController.java index 463bb708581..0a6b4fa991c 100644 --- a/src/com/android/settings/development/FileEncryptionPreferenceController.java +++ b/src/com/android/settings/development/FileEncryptionPreferenceController.java @@ -27,8 +27,11 @@ import android.support.v7.preference.PreferenceScreen; import android.text.TextUtils; import com.android.settings.R; +import com.android.settings.core.PreferenceControllerMixin; +import com.android.settingslib.development.DeveloperOptionsPreferenceController; -public class FileEncryptionPreferenceController extends DeveloperOptionsPreferenceController { +public class FileEncryptionPreferenceController extends + DeveloperOptionsPreferenceController implements PreferenceControllerMixin { private static final String KEY_CONVERT_FBE = "convert_to_file_encryption"; private static final String KEY_STORAGE_MANAGER = "mount"; diff --git a/src/com/android/settings/development/ForceGpuRenderingPreferenceController.java b/src/com/android/settings/development/ForceGpuRenderingPreferenceController.java index 9c56f654210..83f79306ecb 100644 --- a/src/com/android/settings/development/ForceGpuRenderingPreferenceController.java +++ b/src/com/android/settings/development/ForceGpuRenderingPreferenceController.java @@ -23,10 +23,13 @@ import android.support.v14.preference.SwitchPreference; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; +import com.android.settings.core.PreferenceControllerMixin; +import com.android.settingslib.development.DeveloperOptionsPreferenceController; import com.android.settingslib.development.SystemPropPoker; public class ForceGpuRenderingPreferenceController extends - DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener { + DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener, + PreferenceControllerMixin { private static final String FORCE_HARDWARE_UI_KEY = "force_hw_ui"; diff --git a/src/com/android/settings/development/ForceMSAAPreferenceController.java b/src/com/android/settings/development/ForceMSAAPreferenceController.java index 69436be7f6b..2d2fd956bd4 100644 --- a/src/com/android/settings/development/ForceMSAAPreferenceController.java +++ b/src/com/android/settings/development/ForceMSAAPreferenceController.java @@ -23,10 +23,12 @@ import android.support.v14.preference.SwitchPreference; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; +import com.android.settings.core.PreferenceControllerMixin; +import com.android.settingslib.development.DeveloperOptionsPreferenceController; import com.android.settingslib.development.SystemPropPoker; public class ForceMSAAPreferenceController extends DeveloperOptionsPreferenceController - implements Preference.OnPreferenceChangeListener { + implements Preference.OnPreferenceChangeListener, PreferenceControllerMixin { private static final String FORCE_MSAA_KEY = "force_msaa"; diff --git a/src/com/android/settings/development/GpuViewUpdatesPreferenceController.java b/src/com/android/settings/development/GpuViewUpdatesPreferenceController.java index 1538da41726..cccb38b5fdb 100644 --- a/src/com/android/settings/development/GpuViewUpdatesPreferenceController.java +++ b/src/com/android/settings/development/GpuViewUpdatesPreferenceController.java @@ -23,10 +23,13 @@ import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; import android.view.ThreadedRenderer; +import com.android.settings.core.PreferenceControllerMixin; +import com.android.settingslib.development.DeveloperOptionsPreferenceController; import com.android.settingslib.development.SystemPropPoker; public class GpuViewUpdatesPreferenceController extends - DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener { + DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener, + PreferenceControllerMixin { private static final String SHOW_HW_SCREEN_UPDATES_KEY = "show_hw_screen_updates"; diff --git a/src/com/android/settings/development/HardwareLayersUpdatesPreferenceController.java b/src/com/android/settings/development/HardwareLayersUpdatesPreferenceController.java index abab0ab8cc9..967839e8b62 100644 --- a/src/com/android/settings/development/HardwareLayersUpdatesPreferenceController.java +++ b/src/com/android/settings/development/HardwareLayersUpdatesPreferenceController.java @@ -23,10 +23,13 @@ import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; import android.view.ThreadedRenderer; +import com.android.settings.core.PreferenceControllerMixin; +import com.android.settingslib.development.DeveloperOptionsPreferenceController; import com.android.settingslib.development.SystemPropPoker; public class HardwareLayersUpdatesPreferenceController extends - DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener { + DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener, + PreferenceControllerMixin { private static final String SHOW_HW_LAYERS_UPDATES_KEY = "show_hw_layers_updates"; diff --git a/src/com/android/settings/development/HardwareOverlaysPreferenceController.java b/src/com/android/settings/development/HardwareOverlaysPreferenceController.java index e6d4798f4f5..c2f7c54bef1 100644 --- a/src/com/android/settings/development/HardwareOverlaysPreferenceController.java +++ b/src/com/android/settings/development/HardwareOverlaysPreferenceController.java @@ -26,8 +26,11 @@ import android.support.v14.preference.SwitchPreference; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; +import com.android.settings.core.PreferenceControllerMixin; +import com.android.settingslib.development.DeveloperOptionsPreferenceController; + public class HardwareOverlaysPreferenceController extends DeveloperOptionsPreferenceController - implements Preference.OnPreferenceChangeListener { + implements Preference.OnPreferenceChangeListener, PreferenceControllerMixin { private static final String DISABLE_OVERLAYS_KEY = "disable_overlays"; diff --git a/src/com/android/settings/development/HdcpCheckingPreferenceController.java b/src/com/android/settings/development/HdcpCheckingPreferenceController.java index a443f877de2..60264efb3a7 100644 --- a/src/com/android/settings/development/HdcpCheckingPreferenceController.java +++ b/src/com/android/settings/development/HdcpCheckingPreferenceController.java @@ -26,10 +26,13 @@ import android.support.v7.preference.PreferenceScreen; import android.text.TextUtils; import com.android.settings.R; +import com.android.settings.core.PreferenceControllerMixin; +import com.android.settingslib.development.DeveloperOptionsPreferenceController; import com.android.settingslib.development.SystemPropPoker; public class HdcpCheckingPreferenceController extends - DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener { + DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener, + PreferenceControllerMixin { private static final String HDCP_CHECKING_KEY = "hdcp_checking"; diff --git a/src/com/android/settings/development/KeepActivitiesPreferenceController.java b/src/com/android/settings/development/KeepActivitiesPreferenceController.java index 437fd9d8371..aab4d1f8d2a 100644 --- a/src/com/android/settings/development/KeepActivitiesPreferenceController.java +++ b/src/com/android/settings/development/KeepActivitiesPreferenceController.java @@ -26,8 +26,11 @@ import android.support.v14.preference.SwitchPreference; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; +import com.android.settings.core.PreferenceControllerMixin; +import com.android.settingslib.development.DeveloperOptionsPreferenceController; + public class KeepActivitiesPreferenceController extends DeveloperOptionsPreferenceController - implements Preference.OnPreferenceChangeListener { + implements Preference.OnPreferenceChangeListener, PreferenceControllerMixin { private static final String IMMEDIATELY_DESTROY_ACTIVITIES_KEY = "immediately_destroy_activities"; diff --git a/src/com/android/settings/development/LocalBackupPasswordPreferenceController.java b/src/com/android/settings/development/LocalBackupPasswordPreferenceController.java index b509448a3e7..e52b073cd1c 100644 --- a/src/com/android/settings/development/LocalBackupPasswordPreferenceController.java +++ b/src/com/android/settings/development/LocalBackupPasswordPreferenceController.java @@ -26,8 +26,11 @@ import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; import com.android.settings.R; +import com.android.settings.core.PreferenceControllerMixin; +import com.android.settingslib.development.DeveloperOptionsPreferenceController; -public class LocalBackupPasswordPreferenceController extends DeveloperOptionsPreferenceController { +public class LocalBackupPasswordPreferenceController extends + DeveloperOptionsPreferenceController implements PreferenceControllerMixin { private static final String LOCAL_BACKUP_PASSWORD = "local_backup_password"; diff --git a/src/com/android/settings/development/LocalTerminalPreferenceController.java b/src/com/android/settings/development/LocalTerminalPreferenceController.java index cda6e27d222..17a57857aa5 100644 --- a/src/com/android/settings/development/LocalTerminalPreferenceController.java +++ b/src/com/android/settings/development/LocalTerminalPreferenceController.java @@ -8,10 +8,13 @@ import android.support.v14.preference.SwitchPreference; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; +import com.android.settings.core.PreferenceControllerMixin; +import com.android.settingslib.development.DeveloperOptionsPreferenceController; import com.android.settingslib.wrapper.PackageManagerWrapper; public class LocalTerminalPreferenceController extends - DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener { + DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener, + PreferenceControllerMixin { private static final String ENABLE_TERMINAL_KEY = "enable_terminal"; diff --git a/src/com/android/settings/development/MobileDataAlwaysOnPreferenceController.java b/src/com/android/settings/development/MobileDataAlwaysOnPreferenceController.java index a98bf20b3f2..eafcb5c0baa 100644 --- a/src/com/android/settings/development/MobileDataAlwaysOnPreferenceController.java +++ b/src/com/android/settings/development/MobileDataAlwaysOnPreferenceController.java @@ -23,8 +23,12 @@ import android.support.v14.preference.SwitchPreference; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; +import com.android.settings.core.PreferenceControllerMixin; +import com.android.settingslib.development.DeveloperOptionsPreferenceController; + public class MobileDataAlwaysOnPreferenceController extends - DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener { + DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener, + PreferenceControllerMixin { private static final String MOBILE_DATA_ALWAYS_ON = "mobile_data_always_on"; diff --git a/src/com/android/settings/development/MockLocationAppPreferenceController.java b/src/com/android/settings/development/MockLocationAppPreferenceController.java index 9f6c4d3d1e8..8305a9d09e8 100644 --- a/src/com/android/settings/development/MockLocationAppPreferenceController.java +++ b/src/com/android/settings/development/MockLocationAppPreferenceController.java @@ -31,11 +31,15 @@ import android.support.v7.preference.PreferenceScreen; import android.text.TextUtils; import com.android.settings.R; +import com.android.settings.core.PreferenceControllerMixin; +import com.android.settingslib.development.DeveloperOptionsPreferenceController; import com.android.settingslib.wrapper.PackageManagerWrapper; import java.util.List; -public class MockLocationAppPreferenceController extends DeveloperOptionsPreferenceController { +public class MockLocationAppPreferenceController extends + DeveloperOptionsPreferenceController implements PreferenceControllerMixin, + OnActivityResultListener { private static final String MOCK_LOCATION_APP_KEY = "mock_location_app"; private static final int[] MOCK_LOCATION_APP_OPS = new int[]{AppOpsManager.OP_MOCK_LOCATION}; diff --git a/src/com/android/settings/development/NotificationChannelWarningsPreferenceController.java b/src/com/android/settings/development/NotificationChannelWarningsPreferenceController.java index c0382f2e2e9..15a1532a9fe 100644 --- a/src/com/android/settings/development/NotificationChannelWarningsPreferenceController.java +++ b/src/com/android/settings/development/NotificationChannelWarningsPreferenceController.java @@ -24,8 +24,12 @@ import android.support.v14.preference.SwitchPreference; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; +import com.android.settings.core.PreferenceControllerMixin; +import com.android.settingslib.development.DeveloperOptionsPreferenceController; + public class NotificationChannelWarningsPreferenceController extends - DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener { + DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener, + PreferenceControllerMixin { private static final String SHOW_NOTIFICATION_CHANNEL_WARNINGS_KEY = "show_notification_channel_warnings"; diff --git a/src/com/android/settings/development/OemUnlockPreferenceController.java b/src/com/android/settings/development/OemUnlockPreferenceController.java index cb391a8e893..91994c2d644 100644 --- a/src/com/android/settings/development/OemUnlockPreferenceController.java +++ b/src/com/android/settings/development/OemUnlockPreferenceController.java @@ -32,11 +32,13 @@ import android.support.v7.preference.PreferenceScreen; import android.telephony.TelephonyManager; import com.android.settings.R; +import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.password.ChooseLockSettingsHelper; import com.android.settingslib.RestrictedSwitchPreference; +import com.android.settingslib.development.DeveloperOptionsPreferenceController; public class OemUnlockPreferenceController extends DeveloperOptionsPreferenceController implements - Preference.OnPreferenceChangeListener { + Preference.OnPreferenceChangeListener, PreferenceControllerMixin, OnActivityResultListener { private static final String PREFERENCE_KEY = "oem_unlock_enable"; diff --git a/src/com/android/settings/development/OnActivityResultListener.java b/src/com/android/settings/development/OnActivityResultListener.java new file mode 100644 index 00000000000..676365346fa --- /dev/null +++ b/src/com/android/settings/development/OnActivityResultListener.java @@ -0,0 +1,22 @@ +package com.android.settings.development; + +import android.content.Intent; + +/** + * Interface for activity result callbacks in the {@link DevelopmentSettingsDashboardFragment} + */ +public interface OnActivityResultListener { + /** + * Called when an activity returns to the {@link DevelopmentSettingsDashboardFragment}. + * + * @param requestCode The integer request code originally supplied to + * startActivityForResult(), allowing you to identify who this + * result came from. + * @param resultCode The integer result code returned by the child activity + * through its setResult(). + * @param data An Intent, which can return result data to the caller + * (various data can be attached to Intent "extras"). + * @return true if the controller handled the result. + */ + boolean onActivityResult(int requestCode, int resultCode, Intent data); +} diff --git a/src/com/android/settings/development/PictureColorModePreferenceController.java b/src/com/android/settings/development/PictureColorModePreferenceController.java index fe4755ff409..07df1e9e885 100644 --- a/src/com/android/settings/development/PictureColorModePreferenceController.java +++ b/src/com/android/settings/development/PictureColorModePreferenceController.java @@ -20,14 +20,16 @@ import android.content.Context; import android.support.annotation.VisibleForTesting; import android.support.v7.preference.PreferenceScreen; +import com.android.settings.core.PreferenceControllerMixin; import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnPause; import com.android.settingslib.core.lifecycle.events.OnResume; +import com.android.settingslib.development.DeveloperOptionsPreferenceController; public class PictureColorModePreferenceController extends DeveloperOptionsPreferenceController implements - LifecycleObserver, OnResume, OnPause { + LifecycleObserver, OnResume, OnPause, PreferenceControllerMixin { private static final String KEY_COLOR_MODE = "picture_color_mode"; diff --git a/src/com/android/settings/development/PointerLocationPreferenceController.java b/src/com/android/settings/development/PointerLocationPreferenceController.java index 55c8feea532..98298af8ac8 100644 --- a/src/com/android/settings/development/PointerLocationPreferenceController.java +++ b/src/com/android/settings/development/PointerLocationPreferenceController.java @@ -23,8 +23,11 @@ import android.support.v14.preference.SwitchPreference; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; +import com.android.settings.core.PreferenceControllerMixin; +import com.android.settingslib.development.DeveloperOptionsPreferenceController; + public class PointerLocationPreferenceController extends DeveloperOptionsPreferenceController - implements Preference.OnPreferenceChangeListener { + implements Preference.OnPreferenceChangeListener, PreferenceControllerMixin { private static final String POINTER_LOCATION_KEY = "pointer_location"; diff --git a/src/com/android/settings/development/ResizableActivityPreferenceController.java b/src/com/android/settings/development/ResizableActivityPreferenceController.java index 70be4b6cb5e..d192e112a7b 100644 --- a/src/com/android/settings/development/ResizableActivityPreferenceController.java +++ b/src/com/android/settings/development/ResizableActivityPreferenceController.java @@ -23,8 +23,12 @@ import android.support.v14.preference.SwitchPreference; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; +import com.android.settings.core.PreferenceControllerMixin; +import com.android.settingslib.development.DeveloperOptionsPreferenceController; + public class ResizableActivityPreferenceController extends - DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener { + DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener, + PreferenceControllerMixin { private static final String FORCE_RESIZABLE_KEY = "force_resizable_activities"; diff --git a/src/com/android/settings/development/RtlLayoutPreferenceController.java b/src/com/android/settings/development/RtlLayoutPreferenceController.java index 364ee9dfdcb..6729e76478f 100644 --- a/src/com/android/settings/development/RtlLayoutPreferenceController.java +++ b/src/com/android/settings/development/RtlLayoutPreferenceController.java @@ -25,9 +25,11 @@ import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; import com.android.internal.app.LocalePicker; +import com.android.settings.core.PreferenceControllerMixin; +import com.android.settingslib.development.DeveloperOptionsPreferenceController; public class RtlLayoutPreferenceController extends DeveloperOptionsPreferenceController implements - Preference.OnPreferenceChangeListener { + Preference.OnPreferenceChangeListener, PreferenceControllerMixin { private static final String FORCE_RTL_LAYOUT_KEY = "force_rtl_layout_all_locales"; diff --git a/src/com/android/settings/development/SelectDebugAppPreferenceController.java b/src/com/android/settings/development/SelectDebugAppPreferenceController.java index 162fe6d83a3..1037f918af3 100644 --- a/src/com/android/settings/development/SelectDebugAppPreferenceController.java +++ b/src/com/android/settings/development/SelectDebugAppPreferenceController.java @@ -30,9 +30,13 @@ import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; import com.android.settings.R; +import com.android.settings.core.PreferenceControllerMixin; +import com.android.settingslib.development.DeveloperOptionsPreferenceController; import com.android.settingslib.wrapper.PackageManagerWrapper; -public class SelectDebugAppPreferenceController extends DeveloperOptionsPreferenceController { +public class SelectDebugAppPreferenceController extends + DeveloperOptionsPreferenceController implements PreferenceControllerMixin, + OnActivityResultListener { private static final String DEBUG_APP_KEY = "debug_app"; diff --git a/src/com/android/settings/development/SelectUsbConfigPreferenceController.java b/src/com/android/settings/development/SelectUsbConfigPreferenceController.java index 41fe6a3967e..59ac23f04a8 100644 --- a/src/com/android/settings/development/SelectUsbConfigPreferenceController.java +++ b/src/com/android/settings/development/SelectUsbConfigPreferenceController.java @@ -29,14 +29,17 @@ import android.support.v7.preference.PreferenceScreen; import android.text.TextUtils; import com.android.settings.R; +import com.android.settings.core.PreferenceControllerMixin; import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnCreate; import com.android.settingslib.core.lifecycle.events.OnDestroy; +import com.android.settingslib.development.DeveloperOptionsPreferenceController; public class SelectUsbConfigPreferenceController extends DeveloperOptionsPreferenceController implements - Preference.OnPreferenceChangeListener, LifecycleObserver, OnCreate, OnDestroy { + Preference.OnPreferenceChangeListener, LifecycleObserver, OnCreate, OnDestroy, + PreferenceControllerMixin { private static final String USB_CONFIGURATION_KEY = "select_usb_configuration"; diff --git a/src/com/android/settings/development/ShortcutManagerThrottlingPreferenceController.java b/src/com/android/settings/development/ShortcutManagerThrottlingPreferenceController.java index c8fdaecc4b6..0ef2561d9bd 100644 --- a/src/com/android/settings/development/ShortcutManagerThrottlingPreferenceController.java +++ b/src/com/android/settings/development/ShortcutManagerThrottlingPreferenceController.java @@ -26,9 +26,11 @@ import android.util.Log; import android.widget.Toast; import com.android.settings.R; +import com.android.settings.core.PreferenceControllerMixin; +import com.android.settingslib.development.DeveloperOptionsPreferenceController; public class ShortcutManagerThrottlingPreferenceController extends - DeveloperOptionsPreferenceController { + DeveloperOptionsPreferenceController implements PreferenceControllerMixin { private static final String TAG = "ShortcutMgrPrefCtrl"; diff --git a/src/com/android/settings/development/ShowLayoutBoundsPreferenceController.java b/src/com/android/settings/development/ShowLayoutBoundsPreferenceController.java index fa13a583d05..ad4a44e29cc 100644 --- a/src/com/android/settings/development/ShowLayoutBoundsPreferenceController.java +++ b/src/com/android/settings/development/ShowLayoutBoundsPreferenceController.java @@ -23,10 +23,12 @@ import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; import android.view.View; +import com.android.settings.core.PreferenceControllerMixin; +import com.android.settingslib.development.DeveloperOptionsPreferenceController; import com.android.settingslib.development.SystemPropPoker; public class ShowLayoutBoundsPreferenceController extends DeveloperOptionsPreferenceController - implements Preference.OnPreferenceChangeListener { + implements Preference.OnPreferenceChangeListener, PreferenceControllerMixin { private static final String DEBUG_LAYOUT_KEY = "debug_layout"; diff --git a/src/com/android/settings/development/ShowSurfaceUpdatesPreferenceController.java b/src/com/android/settings/development/ShowSurfaceUpdatesPreferenceController.java index 7c893be719e..12027593902 100644 --- a/src/com/android/settings/development/ShowSurfaceUpdatesPreferenceController.java +++ b/src/com/android/settings/development/ShowSurfaceUpdatesPreferenceController.java @@ -26,8 +26,11 @@ import android.support.v14.preference.SwitchPreference; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; +import com.android.settings.core.PreferenceControllerMixin; +import com.android.settingslib.development.DeveloperOptionsPreferenceController; + public class ShowSurfaceUpdatesPreferenceController extends DeveloperOptionsPreferenceController - implements Preference.OnPreferenceChangeListener { + implements Preference.OnPreferenceChangeListener, PreferenceControllerMixin { private static final String SHOW_SCREEN_UPDATES_KEY = "show_screen_updates"; diff --git a/src/com/android/settings/development/ShowTapsPreferenceController.java b/src/com/android/settings/development/ShowTapsPreferenceController.java index 6ac9c7e2e3b..ce7d4bd1aba 100644 --- a/src/com/android/settings/development/ShowTapsPreferenceController.java +++ b/src/com/android/settings/development/ShowTapsPreferenceController.java @@ -23,8 +23,11 @@ import android.support.v14.preference.SwitchPreference; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; +import com.android.settings.core.PreferenceControllerMixin; +import com.android.settingslib.development.DeveloperOptionsPreferenceController; + public class ShowTapsPreferenceController extends DeveloperOptionsPreferenceController implements - Preference.OnPreferenceChangeListener { + Preference.OnPreferenceChangeListener, PreferenceControllerMixin { private static final String SHOW_TOUCHES_KEY = "show_touches"; diff --git a/src/com/android/settings/development/StayAwakePreferenceController.java b/src/com/android/settings/development/StayAwakePreferenceController.java index 8e0d38ca88b..1296770e7b1 100644 --- a/src/com/android/settings/development/StayAwakePreferenceController.java +++ b/src/com/android/settings/development/StayAwakePreferenceController.java @@ -27,17 +27,19 @@ import android.support.annotation.VisibleForTesting; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; +import com.android.settings.core.PreferenceControllerMixin; import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.RestrictedSwitchPreference; import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnPause; import com.android.settingslib.core.lifecycle.events.OnResume; +import com.android.settingslib.development.DeveloperOptionsPreferenceController; public class StayAwakePreferenceController extends DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener, LifecycleObserver, - OnResume, OnPause { + OnResume, OnPause, PreferenceControllerMixin { private static final String TAG = "StayAwakeCtrl"; private static final String PREFERENCE_KEY = "keep_screen_on"; diff --git a/src/com/android/settings/development/StrictModePreferenceController.java b/src/com/android/settings/development/StrictModePreferenceController.java index 037f66efd64..7a4a0690ad2 100644 --- a/src/com/android/settings/development/StrictModePreferenceController.java +++ b/src/com/android/settings/development/StrictModePreferenceController.java @@ -25,11 +25,13 @@ import android.support.annotation.VisibleForTesting; import android.support.v14.preference.SwitchPreference; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; -import android.text.TextUtils; import android.view.IWindowManager; +import com.android.settings.core.PreferenceControllerMixin; +import com.android.settingslib.development.DeveloperOptionsPreferenceController; + public class StrictModePreferenceController extends DeveloperOptionsPreferenceController implements - Preference.OnPreferenceChangeListener { + Preference.OnPreferenceChangeListener, PreferenceControllerMixin { private static final String STRICT_MODE_KEY = "strict_mode"; private static final String WINDOW_MANAGER_KEY = "window"; diff --git a/src/com/android/settings/development/TetheringHardwareAccelPreferenceController.java b/src/com/android/settings/development/TetheringHardwareAccelPreferenceController.java index c54fc5bc6be..ed143829954 100644 --- a/src/com/android/settings/development/TetheringHardwareAccelPreferenceController.java +++ b/src/com/android/settings/development/TetheringHardwareAccelPreferenceController.java @@ -23,8 +23,12 @@ import android.support.v14.preference.SwitchPreference; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; +import com.android.settings.core.PreferenceControllerMixin; +import com.android.settingslib.development.DeveloperOptionsPreferenceController; + public class TetheringHardwareAccelPreferenceController extends - DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener { + DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener, + PreferenceControllerMixin { private static final String TETHERING_HARDWARE_OFFLOAD = "tethering_hardware_offload"; diff --git a/src/com/android/settings/development/UsbAudioRoutingPreferenceController.java b/src/com/android/settings/development/UsbAudioRoutingPreferenceController.java index 3cd2a2b9304..1e5febdedc3 100644 --- a/src/com/android/settings/development/UsbAudioRoutingPreferenceController.java +++ b/src/com/android/settings/development/UsbAudioRoutingPreferenceController.java @@ -23,8 +23,11 @@ import android.support.v14.preference.SwitchPreference; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; +import com.android.settings.core.PreferenceControllerMixin; +import com.android.settingslib.development.DeveloperOptionsPreferenceController; + public class UsbAudioRoutingPreferenceController extends DeveloperOptionsPreferenceController - implements Preference.OnPreferenceChangeListener { + implements Preference.OnPreferenceChangeListener, PreferenceControllerMixin { private static final String USB_AUDIO_KEY = "usb_audio"; diff --git a/src/com/android/settings/development/VerifyAppsOverUsbPreferenceControllerV2.java b/src/com/android/settings/development/VerifyAppsOverUsbPreferenceControllerV2.java index 76c8669b7b4..6e3035eec0a 100644 --- a/src/com/android/settings/development/VerifyAppsOverUsbPreferenceControllerV2.java +++ b/src/com/android/settings/development/VerifyAppsOverUsbPreferenceControllerV2.java @@ -26,9 +26,11 @@ import android.support.annotation.VisibleForTesting; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; +import com.android.settings.core.PreferenceControllerMixin; import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin; import com.android.settingslib.RestrictedSwitchPreference; +import com.android.settingslib.development.DeveloperOptionsPreferenceController; import com.android.settingslib.wrapper.PackageManagerWrapper; import java.util.List; @@ -38,7 +40,7 @@ import java.util.List; */ public class VerifyAppsOverUsbPreferenceControllerV2 extends DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener, - AdbOnChangeListener { + AdbOnChangeListener, PreferenceControllerMixin { 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"; diff --git a/src/com/android/settings/development/WaitForDebuggerPreferenceController.java b/src/com/android/settings/development/WaitForDebuggerPreferenceController.java index 2ca887afd9b..ec259be940c 100644 --- a/src/com/android/settings/development/WaitForDebuggerPreferenceController.java +++ b/src/com/android/settings/development/WaitForDebuggerPreferenceController.java @@ -32,8 +32,12 @@ import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; import android.text.TextUtils; +import com.android.settings.core.PreferenceControllerMixin; +import com.android.settingslib.development.DeveloperOptionsPreferenceController; + public class WaitForDebuggerPreferenceController extends - DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener { + DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener, + PreferenceControllerMixin, OnActivityResultListener { private static final String WAIT_FOR_DEBUGGER_KEY = "wait_for_debugger"; diff --git a/src/com/android/settings/development/WebViewAppPreferenceControllerV2.java b/src/com/android/settings/development/WebViewAppPreferenceControllerV2.java index 61a98aa9dfa..8217d74a9ec 100644 --- a/src/com/android/settings/development/WebViewAppPreferenceControllerV2.java +++ b/src/com/android/settings/development/WebViewAppPreferenceControllerV2.java @@ -27,10 +27,13 @@ import android.util.Log; import com.android.settings.R; import com.android.settings.applications.defaultapps.DefaultAppInfo; +import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.webview.WebViewUpdateServiceWrapper; +import com.android.settingslib.development.DeveloperOptionsPreferenceController; import com.android.settingslib.wrapper.PackageManagerWrapper; -public class WebViewAppPreferenceControllerV2 extends DeveloperOptionsPreferenceController { +public class WebViewAppPreferenceControllerV2 extends + DeveloperOptionsPreferenceController implements PreferenceControllerMixin { private static final String TAG = "WebViewAppPrefCtrl"; private static final String WEBVIEW_APP_KEY = "select_webview_provider"; diff --git a/src/com/android/settings/development/WifiAggressiveHandoverPreferenceController.java b/src/com/android/settings/development/WifiAggressiveHandoverPreferenceController.java index 007d7d0406c..aa607cefb79 100644 --- a/src/com/android/settings/development/WifiAggressiveHandoverPreferenceController.java +++ b/src/com/android/settings/development/WifiAggressiveHandoverPreferenceController.java @@ -23,8 +23,12 @@ import android.support.v14.preference.SwitchPreference; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; +import com.android.settings.core.PreferenceControllerMixin; +import com.android.settingslib.development.DeveloperOptionsPreferenceController; + public class WifiAggressiveHandoverPreferenceController extends - DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener { + DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener, + PreferenceControllerMixin { private static final String WIFI_AGGRESSIVE_HANDOVER_KEY = "wifi_aggressive_handover"; diff --git a/src/com/android/settings/development/WifiDisplayCertificationPreferenceController.java b/src/com/android/settings/development/WifiDisplayCertificationPreferenceController.java index 399d6d8f3a1..5de30710685 100644 --- a/src/com/android/settings/development/WifiDisplayCertificationPreferenceController.java +++ b/src/com/android/settings/development/WifiDisplayCertificationPreferenceController.java @@ -23,9 +23,12 @@ import android.support.v14.preference.SwitchPreference; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; +import com.android.settings.core.PreferenceControllerMixin; +import com.android.settingslib.development.DeveloperOptionsPreferenceController; + public class WifiDisplayCertificationPreferenceController extends DeveloperOptionsPreferenceController implements - Preference.OnPreferenceChangeListener { + Preference.OnPreferenceChangeListener, PreferenceControllerMixin { private static final String WIFI_DISPLAY_CERTIFICATION_KEY = "wifi_display_certification"; diff --git a/src/com/android/settings/development/WifiRoamScansPreferenceController.java b/src/com/android/settings/development/WifiRoamScansPreferenceController.java index e9d2fd4798f..b3ff40098d5 100644 --- a/src/com/android/settings/development/WifiRoamScansPreferenceController.java +++ b/src/com/android/settings/development/WifiRoamScansPreferenceController.java @@ -23,8 +23,12 @@ import android.support.v14.preference.SwitchPreference; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; +import com.android.settings.core.PreferenceControllerMixin; +import com.android.settingslib.development.DeveloperOptionsPreferenceController; + public class WifiRoamScansPreferenceController extends - DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener { + DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener, + PreferenceControllerMixin { private static final String WIFI_ALLOW_SCAN_WITH_TRAFFIC_KEY = "wifi_allow_scan_with_traffic"; diff --git a/src/com/android/settings/development/WifiVerboseLoggingPreferenceController.java b/src/com/android/settings/development/WifiVerboseLoggingPreferenceController.java index 4a05d840441..ad2b7eb5b7a 100644 --- a/src/com/android/settings/development/WifiVerboseLoggingPreferenceController.java +++ b/src/com/android/settings/development/WifiVerboseLoggingPreferenceController.java @@ -23,8 +23,12 @@ import android.support.v14.preference.SwitchPreference; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; +import com.android.settings.core.PreferenceControllerMixin; +import com.android.settingslib.development.DeveloperOptionsPreferenceController; + public class WifiVerboseLoggingPreferenceController extends - DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener { + DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener, + PreferenceControllerMixin { private static final String WIFI_VERBOSE_LOGGING_KEY = "wifi_verbose_logging"; diff --git a/tests/robotests/src/com/android/settings/development/AdbPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/AdbPreferenceControllerTest.java index 25353abeb2f..ddcd850a1b7 100644 --- a/tests/robotests/src/com/android/settings/development/AdbPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/development/AdbPreferenceControllerTest.java @@ -18,12 +18,11 @@ package com.android.settings.development; import static com.google.common.truth.Truth.assertThat; -import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import android.content.ContentResolver; import android.content.Context; import android.os.UserManager; import android.provider.Settings; @@ -44,8 +43,7 @@ import org.robolectric.annotation.Config; @RunWith(SettingsRobolectricTestRunner.class) @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) public class AdbPreferenceControllerTest { - @Mock - private Context mContext; + @Mock private SwitchPreference mPreference; @Mock @@ -55,71 +53,24 @@ public class AdbPreferenceControllerTest { @Mock private DevelopmentSettingsDashboardFragment mFragment; - private ContentResolver mContentResolver; + private Context mContext; private AdbPreferenceController mController; @Before public void setup() { MockitoAnnotations.initMocks(this); - mContentResolver = RuntimeEnvironment.application.getContentResolver(); + mContext = RuntimeEnvironment.application; mController = spy(new AdbPreferenceController(mContext, mFragment)); - doNothing().when(mController).notifyStateChanged(); - when(mContext.getSystemService(UserManager.class)).thenReturn(mUserManager); - when(mContext.getContentResolver()).thenReturn(mContentResolver); + doReturn(true).when(mController).isAvailable(); when(mPreferenceScreen.findPreference(mController.getPreferenceKey())).thenReturn( mPreference); mController.displayPreference(mPreferenceScreen); } - @Test - public void isAvailable_notAdmin_shouldBeFalse() { - when(mUserManager.isAdminUser()).thenReturn(false); - - assertThat(mController.isAvailable()).isFalse(); - } - - @Test - public void isAvailable_isAdmin_shouldBeTrue() { - when(mUserManager.isAdminUser()).thenReturn(true); - - assertThat(mController.isAvailable()).isTrue(); - } - - @Test - public void onPreferenceChanged_settingDisabled_shouldTurnOffAdb() { - when(mContext.getApplicationContext()).thenReturn(RuntimeEnvironment.application); - mController.onPreferenceChange(null, false); - - final int mode = Settings.System.getInt(mContentResolver, - Settings.Global.ADB_ENABLED, -1); - - assertThat(mode).isEqualTo(AdbPreferenceController.ADB_SETTING_OFF); - } - - @Test - public void updateState_settingEnabled_preferenceShouldBeChecked() { - Settings.System.putInt(mContentResolver, Settings.Global.ADB_ENABLED, - AdbPreferenceController.ADB_SETTING_ON); - mController.updateState(mPreference); - - verify(mPreference).setChecked(true); - } - - @Test - public void updateState_settingDisabled_preferenceShouldNotBeChecked() { - Settings.System.putInt(mContentResolver, Settings.Global.ADB_ENABLED, - AdbPreferenceController.ADB_SETTING_OFF); - mController.updateState(mPreference); - - verify(mPreference).setChecked(false); - } - @Test public void onDeveloperOptionsDisabled_shouldDisablePreference() { - when(mContext.getApplicationContext()).thenReturn(RuntimeEnvironment.application); - when(mUserManager.isAdminUser()).thenReturn(true); mController.onDeveloperOptionsDisabled(); - final int mode = Settings.System.getInt(mContentResolver, + final int mode = Settings.System.getInt(mContext.getContentResolver(), Settings.Global.ADB_ENABLED, -1); assertThat(mode).isEqualTo(AdbPreferenceController.ADB_SETTING_OFF); @@ -138,7 +89,7 @@ public class AdbPreferenceControllerTest { @Test public void onAdbDialogConfirmed_shouldEnableAdbSetting() { mController.onAdbDialogConfirmed(); - final int mode = Settings.System.getInt(mContentResolver, + final int mode = Settings.System.getInt(mContext.getContentResolver(), Settings.Global.ADB_ENABLED, -1); assertThat(mode).isEqualTo(AdbPreferenceController.ADB_SETTING_ON); @@ -146,7 +97,7 @@ public class AdbPreferenceControllerTest { @Test public void onAdbDialogDismissed_preferenceShouldNotBeChecked() { - Settings.System.putInt(mContentResolver, Settings.Global.ADB_ENABLED, + Settings.System.putInt(mContext.getContentResolver(), Settings.Global.ADB_ENABLED, AdbPreferenceController.ADB_SETTING_OFF); mController.onAdbDialogDismissed(); diff --git a/tests/robotests/src/com/android/settings/development/DevelopmentSettingsDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/development/DevelopmentSettingsDashboardFragmentTest.java index ddf536544b7..ec518688177 100644 --- a/tests/robotests/src/com/android/settings/development/DevelopmentSettingsDashboardFragmentTest.java +++ b/tests/robotests/src/com/android/settings/development/DevelopmentSettingsDashboardFragmentTest.java @@ -34,6 +34,7 @@ import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.testutils.shadow.SettingsShadowResources; import com.android.settings.widget.SwitchBar; import com.android.settings.widget.ToggleSwitch; +import com.android.settingslib.development.AbstractEnableAdbPreferenceController; import com.android.settingslib.development.DevelopmentSettingsEnabler; import org.junit.After; @@ -243,7 +244,7 @@ public class DevelopmentSettingsDashboardFragmentTest { } } - @Implements(AdbPreferenceController.class) + @Implements(AbstractEnableAdbPreferenceController.class) public static class ShadowAdbPreferenceController { @Implementation public boolean isAvailable() {