diff --git a/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java b/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java index b0964677844..16cf85dfb20 100644 --- a/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java +++ b/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java @@ -44,7 +44,8 @@ import android.widget.CheckBox; import androidx.preference.Preference; import androidx.preference.PreferenceCategory; -import androidx.preference.SwitchPreference; +import androidx.preference.SwitchPreferenceCompat; +import androidx.preference.TwoStatePreference; import com.android.internal.annotations.VisibleForTesting; import com.android.settings.DialogCreatable; @@ -75,7 +76,7 @@ public class ToggleScreenMagnificationPreferenceFragment extends private static final TextUtils.SimpleStringSplitter sStringColonSplitter = new TextUtils.SimpleStringSplitter(COMPONENT_NAME_SEPARATOR); - protected SwitchPreference mFollowingTypingSwitchPreference; + protected TwoStatePreference mFollowingTypingSwitchPreference; // TODO(b/147021230): Move duplicated functions with android/internal/accessibility into util. private TouchExplorationStateChangeListener mTouchExplorationStateChangeListener; @@ -201,8 +202,7 @@ public class ToggleScreenMagnificationPreferenceFragment extends getSettingsLifecycle().addObserver(magnificationModePreferenceController); magnificationModePreferenceController.displayPreference(getPreferenceScreen()); - mFollowingTypingSwitchPreference = - new SwitchPreference(getPrefContext()); + mFollowingTypingSwitchPreference = new SwitchPreferenceCompat(getPrefContext()); mFollowingTypingSwitchPreference.setTitle( R.string.accessibility_screen_magnification_follow_typing_title); mFollowingTypingSwitchPreference.setSummary( @@ -260,7 +260,7 @@ public class ToggleScreenMagnificationPreferenceFragment extends return; } - var alwaysOnPreference = new SwitchPreference(getPrefContext()); + var alwaysOnPreference = new SwitchPreferenceCompat(getPrefContext()); alwaysOnPreference.setTitle( R.string.accessibility_screen_magnification_always_on_title); alwaysOnPreference.setSummary( @@ -285,7 +285,7 @@ public class ToggleScreenMagnificationPreferenceFragment extends return; } - SwitchPreference joystickPreference = new SwitchPreference(getPrefContext()); + TwoStatePreference joystickPreference = new SwitchPreferenceCompat(getPrefContext()); joystickPreference.setTitle( R.string.accessibility_screen_magnification_joystick_title); joystickPreference.setSummary( diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsDataSyncController.java b/src/com/android/settings/bluetooth/BluetoothDetailsDataSyncController.java index 81c5689845a..1f63993e760 100644 --- a/src/com/android/settings/bluetooth/BluetoothDetailsDataSyncController.java +++ b/src/com/android/settings/bluetooth/BluetoothDetailsDataSyncController.java @@ -25,7 +25,8 @@ import androidx.preference.Preference; import androidx.preference.PreferenceCategory; import androidx.preference.PreferenceFragmentCompat; import androidx.preference.PreferenceScreen; -import androidx.preference.SwitchPreference; +import androidx.preference.SwitchPreferenceCompat; +import androidx.preference.TwoStatePreference; import com.android.internal.annotations.VisibleForTesting; import com.android.settings.R; @@ -81,7 +82,7 @@ public class BluetoothDetailsDataSyncController extends BluetoothDetailsControll @Override public boolean onPreferenceClick(Preference preference) { - SwitchPreference switchPreference = (SwitchPreference) preference; + TwoStatePreference switchPreference = (TwoStatePreference) preference; String key = switchPreference.getKey(); if (key.equals(KEY_PERM_SYNC)) { if (switchPreference.isChecked()) { @@ -106,7 +107,7 @@ public class BluetoothDetailsDataSyncController extends BluetoothDetailsControll @Override protected void refresh() { - SwitchPreference permSyncPref = mPreferenceCategory.findPreference(KEY_PERM_SYNC); + TwoStatePreference permSyncPref = mPreferenceCategory.findPreference(KEY_PERM_SYNC); if (permSyncPref == null) { permSyncPref = createPermSyncPreference(mPreferenceCategory.getContext()); mPreferenceCategory.addPreference(permSyncPref); @@ -132,8 +133,8 @@ public class BluetoothDetailsDataSyncController extends BluetoothDetailsControll } @VisibleForTesting - SwitchPreference createPermSyncPreference(Context context) { - SwitchPreference pref = new SwitchPreference(context); + TwoStatePreference createPermSyncPreference(Context context) { + TwoStatePreference pref = new SwitchPreferenceCompat(context); pref.setKey(KEY_PERM_SYNC); pref.setTitle(context.getString(R.string.bluetooth_details_permissions_sync_title)); pref.setSummary(context.getString(R.string.bluetooth_details_permissions_sync_summary)); diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsProfilesController.java b/src/com/android/settings/bluetooth/BluetoothDetailsProfilesController.java index 61e0a75cc45..73857f2c2a7 100644 --- a/src/com/android/settings/bluetooth/BluetoothDetailsProfilesController.java +++ b/src/com/android/settings/bluetooth/BluetoothDetailsProfilesController.java @@ -32,7 +32,8 @@ import androidx.preference.Preference; import androidx.preference.PreferenceCategory; import androidx.preference.PreferenceFragmentCompat; import androidx.preference.PreferenceScreen; -import androidx.preference.SwitchPreference; +import androidx.preference.SwitchPreferenceCompat; +import androidx.preference.TwoStatePreference; import com.android.settings.R; import com.android.settings.core.SettingsUIDeviceConfig; @@ -112,14 +113,14 @@ public class BluetoothDetailsProfilesController extends BluetoothDetailsControll /** * Creates a switch preference for the particular profile. * - * @param context The context to use when creating the SwitchPreference + * @param context The context to use when creating the TwoStatePreference * @param profile The profile for which the preference controls. * @return A preference that allows the user to choose whether this profile * will be connected to. */ - private SwitchPreference createProfilePreference(Context context, + private TwoStatePreference createProfilePreference(Context context, LocalBluetoothProfile profile) { - SwitchPreference pref = new SwitchPreference(context); + TwoStatePreference pref = new SwitchPreferenceCompat(context); pref.setKey(profile.toString()); pref.setTitle(profile.getNameResource(mCachedDevice.getDevice())); pref.setOnPreferenceClickListener(this); @@ -148,9 +149,9 @@ public class BluetoothDetailsProfilesController extends BluetoothDetailsControll } /** - * Refreshes the state for an existing SwitchPreference for a profile. + * Refreshes the state for an existing TwoStatePreference for a profile. */ - private void refreshProfilePreference(SwitchPreference profilePref, + private void refreshProfilePreference(TwoStatePreference profilePref, LocalBluetoothProfile profile) { BluetoothDevice device = mCachedDevice.getDevice(); boolean isLeAudioEnabled = isLeAudioEnabled(); @@ -189,8 +190,8 @@ public class BluetoothDetailsProfilesController extends BluetoothDetailsControll if (profile instanceof A2dpProfile) { A2dpProfile a2dp = (A2dpProfile) profile; - SwitchPreference highQualityPref = (SwitchPreference) mProfilesContainer.findPreference( - HIGH_QUALITY_AUDIO_PREF_TAG); + TwoStatePreference highQualityPref = + mProfilesContainer.findPreference(HIGH_QUALITY_AUDIO_PREF_TAG); if (highQualityPref != null) { if (a2dp.isEnabled(device) && a2dp.supportsHighQualityAudio(device)) { highQualityPref.setVisible(true); @@ -275,7 +276,7 @@ public class BluetoothDetailsProfilesController extends BluetoothDetailsControll return false; } } - SwitchPreference profilePref = (SwitchPreference) preference; + TwoStatePreference profilePref = (TwoStatePreference) preference; if (profilePref.isChecked()) { enableProfile(profile); } else { @@ -454,12 +455,12 @@ public class BluetoothDetailsProfilesController extends BluetoothDetailsControll BluetoothDevice device = mCachedDevice.getDevice(); A2dpProfile a2dp = (A2dpProfile) profile; if (a2dp.isProfileReady() && a2dp.supportsHighQualityAudio(device)) { - SwitchPreference highQualityAudioPref = new SwitchPreference( + TwoStatePreference highQualityAudioPref = new SwitchPreferenceCompat( mProfilesContainer.getContext()); highQualityAudioPref.setKey(HIGH_QUALITY_AUDIO_PREF_TAG); highQualityAudioPref.setVisible(false); highQualityAudioPref.setOnPreferenceClickListener(clickedPref -> { - boolean enable = ((SwitchPreference) clickedPref).isChecked(); + boolean enable = ((TwoStatePreference) clickedPref).isChecked(); a2dp.setHighQualityAudioEnabled(mCachedDevice.getDevice(), enable); return true; }); @@ -531,8 +532,7 @@ public class BluetoothDetailsProfilesController extends BluetoothDetailsControll if (profile == null || !profile.isProfileReady()) { continue; } - SwitchPreference pref = mProfilesContainer.findPreference( - profile.toString()); + TwoStatePreference pref = mProfilesContainer.findPreference(profile.toString()); if (pref == null) { pref = createProfilePreference(mProfilesContainer.getContext(), profile); mProfilesContainer.addPreference(pref); @@ -541,8 +541,8 @@ public class BluetoothDetailsProfilesController extends BluetoothDetailsControll refreshProfilePreference(pref, profile); } for (LocalBluetoothProfile removedProfile : mCachedDevice.getRemovedProfiles()) { - final SwitchPreference pref = mProfilesContainer.findPreference( - removedProfile.toString()); + final TwoStatePreference pref = + mProfilesContainer.findPreference(removedProfile.toString()); if (pref != null) { mProfilesContainer.removePreference(pref); } diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsSpatialAudioController.java b/src/com/android/settings/bluetooth/BluetoothDetailsSpatialAudioController.java index c431ceeb0ae..0ce1b9787d9 100644 --- a/src/com/android/settings/bluetooth/BluetoothDetailsSpatialAudioController.java +++ b/src/com/android/settings/bluetooth/BluetoothDetailsSpatialAudioController.java @@ -31,7 +31,8 @@ import androidx.preference.Preference; import androidx.preference.PreferenceCategory; import androidx.preference.PreferenceFragmentCompat; import androidx.preference.PreferenceScreen; -import androidx.preference.SwitchPreference; +import androidx.preference.SwitchPreferenceCompat; +import androidx.preference.TwoStatePreference; import com.android.settings.R; import com.android.settingslib.bluetooth.CachedBluetoothDevice; @@ -72,7 +73,7 @@ public class BluetoothDetailsSpatialAudioController extends BluetoothDetailsCont @Override public boolean onPreferenceClick(Preference preference) { - SwitchPreference switchPreference = (SwitchPreference) preference; + TwoStatePreference switchPreference = (TwoStatePreference) preference; String key = switchPreference.getKey(); if (TextUtils.equals(key, KEY_SPATIAL_AUDIO)) { updateSpatializerEnabled(switchPreference.isChecked()); @@ -124,7 +125,7 @@ public class BluetoothDetailsSpatialAudioController extends BluetoothDetailsCont getAvailableDevice(); } - SwitchPreference spatialAudioPref = mProfilesContainer.findPreference(KEY_SPATIAL_AUDIO); + TwoStatePreference spatialAudioPref = mProfilesContainer.findPreference(KEY_SPATIAL_AUDIO); if (spatialAudioPref == null && mAudioDevice != null) { spatialAudioPref = createSpatialAudioPreference(mProfilesContainer.getContext()); mProfilesContainer.addPreference(spatialAudioPref); @@ -132,7 +133,7 @@ public class BluetoothDetailsSpatialAudioController extends BluetoothDetailsCont if (spatialAudioPref != null) { mProfilesContainer.removePreference(spatialAudioPref); } - final SwitchPreference headTrackingPref = + final TwoStatePreference headTrackingPref = mProfilesContainer.findPreference(KEY_HEAD_TRACKING); if (headTrackingPref != null) { mProfilesContainer.removePreference(headTrackingPref); @@ -144,12 +145,12 @@ public class BluetoothDetailsSpatialAudioController extends BluetoothDetailsCont refreshSpatialAudioEnabled(spatialAudioPref); } - private void refreshSpatialAudioEnabled(SwitchPreference spatialAudioPref) { + private void refreshSpatialAudioEnabled(TwoStatePreference spatialAudioPref) { boolean isSpatialAudioOn = mSpatializer.getCompatibleAudioDevices().contains(mAudioDevice); Log.d(TAG, "refresh() isSpatialAudioOn : " + isSpatialAudioOn); spatialAudioPref.setChecked(isSpatialAudioOn); - SwitchPreference headTrackingPref = mProfilesContainer.findPreference(KEY_HEAD_TRACKING); + TwoStatePreference headTrackingPref = mProfilesContainer.findPreference(KEY_HEAD_TRACKING); if (headTrackingPref == null) { headTrackingPref = createHeadTrackingPreference(mProfilesContainer.getContext()); mProfilesContainer.addPreference(headTrackingPref); @@ -157,8 +158,8 @@ public class BluetoothDetailsSpatialAudioController extends BluetoothDetailsCont refreshHeadTracking(spatialAudioPref, headTrackingPref); } - private void refreshHeadTracking(SwitchPreference spatialAudioPref, - SwitchPreference headTrackingPref) { + private void refreshHeadTracking(TwoStatePreference spatialAudioPref, + TwoStatePreference headTrackingPref) { boolean isHeadTrackingAvailable = spatialAudioPref.isChecked() && mSpatializer.hasHeadTracker(mAudioDevice); Log.d(TAG, "refresh() has head tracker : " + mSpatializer.hasHeadTracker(mAudioDevice)); @@ -169,8 +170,8 @@ public class BluetoothDetailsSpatialAudioController extends BluetoothDetailsCont } @VisibleForTesting - SwitchPreference createSpatialAudioPreference(Context context) { - SwitchPreference pref = new SwitchPreference(context); + TwoStatePreference createSpatialAudioPreference(Context context) { + TwoStatePreference pref = new SwitchPreferenceCompat(context); pref.setKey(KEY_SPATIAL_AUDIO); pref.setTitle(context.getString(R.string.bluetooth_details_spatial_audio_title)); pref.setSummary(context.getString(R.string.bluetooth_details_spatial_audio_summary)); @@ -179,8 +180,8 @@ public class BluetoothDetailsSpatialAudioController extends BluetoothDetailsCont } @VisibleForTesting - SwitchPreference createHeadTrackingPreference(Context context) { - SwitchPreference pref = new SwitchPreference(context); + TwoStatePreference createHeadTrackingPreference(Context context) { + TwoStatePreference pref = new SwitchPreferenceCompat(context); pref.setKey(KEY_HEAD_TRACKING); pref.setTitle(context.getString(R.string.bluetooth_details_head_tracking_title)); pref.setSummary(context.getString(R.string.bluetooth_details_head_tracking_summary)); diff --git a/src/com/android/settings/connecteddevice/stylus/StylusDevicesController.java b/src/com/android/settings/connecteddevice/stylus/StylusDevicesController.java index 985c8b713dc..64ec63f088b 100644 --- a/src/com/android/settings/connecteddevice/stylus/StylusDevicesController.java +++ b/src/com/android/settings/connecteddevice/stylus/StylusDevicesController.java @@ -40,7 +40,8 @@ import androidx.annotation.VisibleForTesting; import androidx.preference.Preference; import androidx.preference.PreferenceCategory; import androidx.preference.PreferenceScreen; -import androidx.preference.SwitchPreference; +import androidx.preference.SwitchPreferenceCompat; +import androidx.preference.TwoStatePreference; import com.android.settings.R; import com.android.settings.dashboard.profileselector.ProfileSelectDialog; @@ -157,8 +158,8 @@ public class StylusDevicesController extends AbstractPreferenceController implem return pref; } - private SwitchPreference createButtonPressPreference() { - SwitchPreference pref = new SwitchPreference(mContext); + private TwoStatePreference createButtonPressPreference() { + TwoStatePreference pref = new SwitchPreferenceCompat(mContext); pref.setKey(KEY_IGNORE_BUTTON); pref.setTitle(mContext.getString(R.string.stylus_ignore_button)); pref.setIcon(R.drawable.ic_block); @@ -198,7 +199,7 @@ public class StylusDevicesController extends AbstractPreferenceController implem case KEY_IGNORE_BUTTON: Settings.Secure.putInt(mContext.getContentResolver(), Secure.STYLUS_BUTTONS_ENABLED, - ((SwitchPreference) preference).isChecked() ? 0 : 1); + ((TwoStatePreference) preference).isChecked() ? 0 : 1); break; } return true; diff --git a/src/com/android/settings/connecteddevice/usb/UsbDetailsPowerRoleController.java b/src/com/android/settings/connecteddevice/usb/UsbDetailsPowerRoleController.java index 07bd175e455..f00435a0cab 100644 --- a/src/com/android/settings/connecteddevice/usb/UsbDetailsPowerRoleController.java +++ b/src/com/android/settings/connecteddevice/usb/UsbDetailsPowerRoleController.java @@ -26,7 +26,8 @@ import androidx.preference.Preference; import androidx.preference.Preference.OnPreferenceClickListener; import androidx.preference.PreferenceCategory; import androidx.preference.PreferenceScreen; -import androidx.preference.SwitchPreference; +import androidx.preference.SwitchPreferenceCompat; +import androidx.preference.TwoStatePreference; import com.android.settings.R; import com.android.settings.Utils; @@ -39,7 +40,7 @@ public class UsbDetailsPowerRoleController extends UsbDetailsController private static final String KEY_USB_USE_POWER_ONLY = "usb_use_power_only"; private PreferenceCategory mPreferenceCategory; - private SwitchPreference mSwitchPreference; + private TwoStatePreference mSwitchPreference; private int mNextPowerRole; @@ -60,7 +61,7 @@ public class UsbDetailsPowerRoleController extends UsbDetailsController public void displayPreference(PreferenceScreen screen) { super.displayPreference(screen); mPreferenceCategory = screen.findPreference(getPreferenceKey()); - mSwitchPreference = new SwitchPreference(mPreferenceCategory.getContext()); + mSwitchPreference = new SwitchPreferenceCompat(mPreferenceCategory.getContext()); mSwitchPreference.setTitle(R.string.usb_use_power_only); mSwitchPreference.setKey(KEY_USB_USE_POWER_ONLY); mSwitchPreference.setOnPreferenceClickListener(this); diff --git a/src/com/android/settings/connecteddevice/usb/UsbDetailsTranscodeMtpController.java b/src/com/android/settings/connecteddevice/usb/UsbDetailsTranscodeMtpController.java index 280e1d2cbab..192ae742f23 100644 --- a/src/com/android/settings/connecteddevice/usb/UsbDetailsTranscodeMtpController.java +++ b/src/com/android/settings/connecteddevice/usb/UsbDetailsTranscodeMtpController.java @@ -25,7 +25,8 @@ import android.os.SystemProperties; import androidx.preference.Preference; import androidx.preference.PreferenceCategory; import androidx.preference.PreferenceScreen; -import androidx.preference.SwitchPreference; +import androidx.preference.SwitchPreferenceCompat; +import androidx.preference.TwoStatePreference; import com.android.settings.R; import com.android.settings.Utils; @@ -41,7 +42,7 @@ public class UsbDetailsTranscodeMtpController extends UsbDetailsController private static final String KEY_USB_TRANSCODE_FILES = "usb_transcode_files"; private PreferenceCategory mPreferenceCategory; - private SwitchPreference mSwitchPreference; + private TwoStatePreference mSwitchPreference; public UsbDetailsTranscodeMtpController(Context context, UsbDetailsFragment fragment, UsbBackend backend) { @@ -53,7 +54,7 @@ public class UsbDetailsTranscodeMtpController extends UsbDetailsController public void displayPreference(PreferenceScreen screen) { super.displayPreference(screen); mPreferenceCategory = screen.findPreference(getPreferenceKey()); - mSwitchPreference = new SwitchPreference(mPreferenceCategory.getContext()); + mSwitchPreference = new SwitchPreferenceCompat(mPreferenceCategory.getContext()); mSwitchPreference.setTitle(R.string.usb_transcode_files); mSwitchPreference.setKey(KEY_USB_TRANSCODE_FILES); mSwitchPreference.setOnPreferenceClickListener(this); diff --git a/src/com/android/settings/core/InstrumentedPreferenceFragment.java b/src/com/android/settings/core/InstrumentedPreferenceFragment.java index ba92eaef4d7..4d871d4c3ff 100644 --- a/src/com/android/settings/core/InstrumentedPreferenceFragment.java +++ b/src/com/android/settings/core/InstrumentedPreferenceFragment.java @@ -27,7 +27,7 @@ import android.util.Log; import androidx.annotation.XmlRes; import androidx.preference.Preference; import androidx.preference.PreferenceScreen; -import androidx.preference.SwitchPreference; +import androidx.preference.TwoStatePreference; import androidx.recyclerview.widget.RecyclerView; import com.android.internal.jank.InteractionJankMonitor; @@ -71,9 +71,9 @@ public abstract class InstrumentedPreferenceFragment extends ObservablePreferenc super.onStart(); // Override the OnPreferenceTreeClickListener in super.onStart() to inject jank detection. getPreferenceManager().setOnPreferenceTreeClickListener((preference) -> { - if (preference instanceof SwitchPreference) { + if (preference instanceof TwoStatePreference twoStatePreference) { SettingsJankMonitor.detectSwitchPreferenceClickJank( - getListView(), (SwitchPreference) preference); + getListView(), twoStatePreference); } return onPreferenceTreeClick(preference); }); diff --git a/src/com/android/settings/dashboard/DashboardFragment.java b/src/com/android/settings/dashboard/DashboardFragment.java index 9d673b134ca..09730767d09 100644 --- a/src/com/android/settings/dashboard/DashboardFragment.java +++ b/src/com/android/settings/dashboard/DashboardFragment.java @@ -38,7 +38,7 @@ import androidx.preference.PreferenceCategory; import androidx.preference.PreferenceGroup; import androidx.preference.PreferenceManager; import androidx.preference.PreferenceScreen; -import androidx.preference.SwitchPreference; +import androidx.preference.SwitchPreferenceCompat; import com.android.settings.R; import com.android.settings.SettingsPreferenceFragment; @@ -600,7 +600,7 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment .setWidgetLayoutResource(R.layout.preference_external_action_icon); return externalActionPreference; case SWITCH: - return new SwitchPreference(getPrefContext()); + return new SwitchPreferenceCompat(getPrefContext()); case SWITCH_WITH_ACTION: return new PrimarySwitchPreference(getPrefContext()); case GROUP: diff --git a/src/com/android/settings/development/compat/PlatformCompatDashboard.java b/src/com/android/settings/development/compat/PlatformCompatDashboard.java index 3f0ffc79aca..05159c7ad20 100644 --- a/src/com/android/settings/development/compat/PlatformCompatDashboard.java +++ b/src/com/android/settings/development/compat/PlatformCompatDashboard.java @@ -33,7 +33,8 @@ import androidx.annotation.VisibleForTesting; import androidx.preference.Preference; import androidx.preference.Preference.OnPreferenceChangeListener; import androidx.preference.PreferenceCategory; -import androidx.preference.SwitchPreference; +import androidx.preference.SwitchPreferenceCompat; +import androidx.preference.TwoStatePreference; import com.android.internal.compat.CompatibilityChangeConfig; import com.android.internal.compat.CompatibilityChangeInfo; @@ -171,7 +172,7 @@ public class PlatformCompatDashboard extends DashboardFragment { Preference createPreferenceForChange(Context context, CompatibilityChangeInfo change, CompatibilityChangeConfig configMappings) { final boolean currentValue = configMappings.isChangeEnabled(change.getId()); - final SwitchPreference item = new SwitchPreference(context); + final TwoStatePreference item = new SwitchPreferenceCompat(context); final String changeName = change.getName() != null ? change.getName() : "Change_" + change.getId(); item.setSummary(changeName); diff --git a/src/com/android/settings/development/qstile/DevelopmentTilePreferenceController.java b/src/com/android/settings/development/qstile/DevelopmentTilePreferenceController.java index d713ff3c7aa..7fc9d9e5d9f 100644 --- a/src/com/android/settings/development/qstile/DevelopmentTilePreferenceController.java +++ b/src/com/android/settings/development/qstile/DevelopmentTilePreferenceController.java @@ -31,7 +31,8 @@ import android.util.Log; import androidx.annotation.VisibleForTesting; import androidx.preference.Preference; import androidx.preference.PreferenceScreen; -import androidx.preference.SwitchPreference; +import androidx.preference.SwitchPreferenceCompat; +import androidx.preference.TwoStatePreference; import com.android.internal.statusbar.IStatusBarService; import com.android.settings.core.BasePreferenceController; @@ -82,7 +83,7 @@ public class DevelopmentTilePreferenceController extends BasePreferenceControlle || ((enabledSetting == PackageManager.COMPONENT_ENABLED_STATE_DEFAULT) && sInfo.enabled); - SwitchPreference preference = new SwitchPreference(context); + TwoStatePreference preference = new SwitchPreferenceCompat(context); preference.setTitle(sInfo.loadLabel(mPackageManager)); preference.setIcon(sInfo.icon); preference.setKey(sInfo.name); diff --git a/src/com/android/settings/display/DeviceStateAutoRotateSettingController.java b/src/com/android/settings/display/DeviceStateAutoRotateSettingController.java index 69b34b0f3ff..e38f5d41bda 100644 --- a/src/com/android/settings/display/DeviceStateAutoRotateSettingController.java +++ b/src/com/android/settings/display/DeviceStateAutoRotateSettingController.java @@ -27,7 +27,8 @@ import androidx.lifecycle.Lifecycle; import androidx.lifecycle.LifecycleObserver; import androidx.lifecycle.OnLifecycleEvent; import androidx.preference.PreferenceScreen; -import androidx.preference.SwitchPreference; +import androidx.preference.SwitchPreferenceCompat; +import androidx.preference.TwoStatePreference; import com.android.settings.R; import com.android.settings.core.TogglePreferenceController; @@ -42,7 +43,7 @@ import java.util.List; public class DeviceStateAutoRotateSettingController extends TogglePreferenceController implements LifecycleObserver { - private SwitchPreference mPreference; + private TwoStatePreference mPreference; private final DeviceStateRotationLockSettingsManager mAutoRotateSettingsManager; private final int mOrder; @@ -86,7 +87,7 @@ public class DeviceStateAutoRotateSettingController extends TogglePreferenceCont @Override public void displayPreference(PreferenceScreen screen) { - mPreference = new SwitchPreference(mContext); + mPreference = new SwitchPreferenceCompat(mContext); mPreference.setTitle(mDeviceStateDescription); mPreference.setKey(getPreferenceKey()); mPreference.setOrder(mOrder); diff --git a/src/com/android/settings/inputmethod/KeyboardLayoutPickerController.java b/src/com/android/settings/inputmethod/KeyboardLayoutPickerController.java index 10cd4a27931..1f29a2b153d 100644 --- a/src/com/android/settings/inputmethod/KeyboardLayoutPickerController.java +++ b/src/com/android/settings/inputmethod/KeyboardLayoutPickerController.java @@ -25,7 +25,8 @@ import android.hardware.input.KeyboardLayout; import androidx.fragment.app.Fragment; import androidx.preference.Preference; import androidx.preference.PreferenceScreen; -import androidx.preference.SwitchPreference; +import androidx.preference.SwitchPreferenceCompat; +import androidx.preference.TwoStatePreference; import com.android.settings.core.BasePreferenceController; import com.android.settingslib.core.lifecycle.LifecycleObserver; @@ -40,7 +41,7 @@ public class KeyboardLayoutPickerController extends BasePreferenceController imp InputManager.InputDeviceListener, LifecycleObserver, OnStart, OnStop { private final InputManager mIm; - private final Map mPreferenceMap; + private final Map mPreferenceMap; private Fragment mParent; private int mInputDeviceId; @@ -95,11 +96,10 @@ public class KeyboardLayoutPickerController extends BasePreferenceController imp @Override public boolean handlePreferenceTreeClick(Preference preference) { - if (!(preference instanceof SwitchPreference)) { + if (!(preference instanceof TwoStatePreference switchPref)) { return false; } - final SwitchPreference switchPref = (SwitchPreference) preference; final KeyboardLayout layout = mPreferenceMap.get(switchPref); if (layout != null) { final boolean checked = switchPref.isChecked(); @@ -138,7 +138,7 @@ public class KeyboardLayoutPickerController extends BasePreferenceController imp mInputDeviceIdentifier); Arrays.sort(enabledKeyboardLayouts); - for (Map.Entry entry : mPreferenceMap.entrySet()) { + for (Map.Entry entry : mPreferenceMap.entrySet()) { entry.getKey().setChecked(Arrays.binarySearch(enabledKeyboardLayouts, entry.getValue().getDescriptor()) >= 0); } @@ -149,7 +149,7 @@ public class KeyboardLayoutPickerController extends BasePreferenceController imp return; } for (KeyboardLayout layout : mKeyboardLayouts) { - final SwitchPreference pref = new SwitchPreference(mScreen.getContext()); + final TwoStatePreference pref = new SwitchPreferenceCompat(mScreen.getContext()); pref.setTitle(layout.getLabel()); pref.setSummary(layout.getCollection()); // TODO: Waiting for new API to use a prefix with special number to setKey diff --git a/src/com/android/settings/users/AppRestrictionsFragment.java b/src/com/android/settings/users/AppRestrictionsFragment.java index db7612f7f10..465da39be9f 100644 --- a/src/com/android/settings/users/AppRestrictionsFragment.java +++ b/src/com/android/settings/users/AppRestrictionsFragment.java @@ -54,7 +54,8 @@ import androidx.preference.Preference.OnPreferenceChangeListener; import androidx.preference.Preference.OnPreferenceClickListener; import androidx.preference.PreferenceGroup; import androidx.preference.PreferenceViewHolder; -import androidx.preference.SwitchPreference; +import androidx.preference.SwitchPreferenceCompat; +import androidx.preference.TwoStatePreference; import com.android.settings.R; import com.android.settings.SettingsPreferenceFragment; @@ -132,7 +133,7 @@ public class AppRestrictionsFragment extends SettingsPreferenceFragment implemen } }; - static class AppRestrictionsPreference extends SwitchPreference { + static class AppRestrictionsPreference extends SwitchPreferenceCompat { private boolean hasSettings; private OnClickListener listener; private ArrayList restrictions; @@ -687,10 +688,10 @@ public class AppRestrictionsFragment extends SettingsPreferenceFragment implemen Preference p = null; switch (entry.getType()) { case RestrictionEntry.TYPE_BOOLEAN: - p = new SwitchPreference(getPrefContext()); + p = new SwitchPreferenceCompat(getPrefContext()); p.setTitle(entry.getTitle()); p.setSummary(entry.getDescription()); - ((SwitchPreference)p).setChecked(entry.getSelectedState()); + ((TwoStatePreference) p).setChecked(entry.getSelectedState()); break; case RestrictionEntry.TYPE_CHOICE: case RestrictionEntry.TYPE_CHOICE_LEVEL: diff --git a/src/com/android/settings/wfd/WifiDisplaySettings.java b/src/com/android/settings/wfd/WifiDisplaySettings.java old mode 100755 new mode 100644 index 8562e5fd68b..96f067c2fed --- a/src/com/android/settings/wfd/WifiDisplaySettings.java +++ b/src/com/android/settings/wfd/WifiDisplaySettings.java @@ -59,7 +59,8 @@ import androidx.preference.PreferenceCategory; import androidx.preference.PreferenceGroup; import androidx.preference.PreferenceScreen; import androidx.preference.PreferenceViewHolder; -import androidx.preference.SwitchPreference; +import androidx.preference.SwitchPreferenceCompat; +import androidx.preference.TwoStatePreference; import com.android.internal.app.MediaRouteDialogPresenter; import com.android.settings.R; @@ -370,7 +371,7 @@ public final class WifiDisplaySettings extends SettingsPreferenceFragment implem } // switch for Listen Mode - SwitchPreference pref = new SwitchPreference(getPrefContext()) { + TwoStatePreference pref = new SwitchPreferenceCompat(getPrefContext()) { @Override protected void onClick() { mListen = !mListen; @@ -383,7 +384,7 @@ public final class WifiDisplaySettings extends SettingsPreferenceFragment implem mCertCategory.addPreference(pref); // switch for Autonomous GO - pref = new SwitchPreference(getPrefContext()) { + pref = new SwitchPreferenceCompat(getPrefContext()) { @Override protected void onClick() { mAutoGO = !mAutoGO; diff --git a/tests/robotests/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentForSetupWizardTest.java b/tests/robotests/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentForSetupWizardTest.java index fe316ea5c54..f26e838375d 100644 --- a/tests/robotests/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentForSetupWizardTest.java +++ b/tests/robotests/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentForSetupWizardTest.java @@ -32,7 +32,7 @@ import androidx.lifecycle.LifecycleOwner; import androidx.preference.Preference; import androidx.preference.PreferenceManager; import androidx.preference.PreferenceScreen; -import androidx.preference.SwitchPreference; +import androidx.preference.SwitchPreferenceCompat; import androidx.test.core.app.ApplicationProvider; import com.android.settings.R; @@ -124,7 +124,7 @@ public class ToggleScreenMagnificationPreferenceFragmentForSetupWizardTest { mPreferenceManager.setPreferences(mPreferenceManager.createPreferenceScreen(context)); mTopIntroPreference = new TopIntroPreference(context); mSettingsPreference = new Preference(context); - mFollowingTypingSwitchPreference = new SwitchPreference(context); + mFollowingTypingSwitchPreference = new SwitchPreferenceCompat(context); } @Override diff --git a/tests/robotests/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentTest.java index f0b2fbe33f1..539c50327d2 100644 --- a/tests/robotests/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentTest.java +++ b/tests/robotests/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentTest.java @@ -43,7 +43,7 @@ import android.os.Bundle; import android.provider.Settings; import androidx.appcompat.app.AlertDialog; -import androidx.preference.SwitchPreference; +import androidx.preference.TwoStatePreference; import androidx.test.core.app.ApplicationProvider; import com.android.settings.DialogCreatable; @@ -133,7 +133,7 @@ public class ToggleScreenMagnificationPreferenceFragmentTest { mFragController.create(R.id.main_content, /* bundle= */ null).start().resume(); - final SwitchPreference switchPreference = + final TwoStatePreference switchPreference = mFragController.get().findPreference( MagnificationFollowTypingPreferenceController.PREF_KEY); assertThat(switchPreference).isNotNull(); @@ -146,7 +146,7 @@ public class ToggleScreenMagnificationPreferenceFragmentTest { mFragController.create(R.id.main_content, /* bundle= */ null).start().resume(); - final SwitchPreference switchPreference = + final TwoStatePreference switchPreference = mFragController.get().findPreference( MagnificationFollowTypingPreferenceController.PREF_KEY); assertThat(switchPreference).isNotNull(); diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsDataSyncControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsDataSyncControllerTest.java index 5d6fe319e2e..8fa3e8a39c2 100644 --- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsDataSyncControllerTest.java +++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsDataSyncControllerTest.java @@ -25,7 +25,7 @@ import android.companion.CompanionDeviceManager; import android.companion.datatransfer.PermissionSyncRequest; import androidx.preference.PreferenceCategory; -import androidx.preference.SwitchPreference; +import androidx.preference.TwoStatePreference; import com.android.settingslib.core.lifecycle.Lifecycle; @@ -56,7 +56,7 @@ public class BluetoothDetailsDataSyncControllerTest extends BluetoothDetailsCont private CompanionDeviceManager mCompanionDeviceManager; private PermissionSyncRequest mPermissionSyncRequest; - private SwitchPreference mPermSyncPreference; + private TwoStatePreference mPermSyncPreference; @Before public void setUp() { diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsSpatialAudioControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsSpatialAudioControllerTest.java index ce5631fd028..de70330b732 100644 --- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsSpatialAudioControllerTest.java +++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsSpatialAudioControllerTest.java @@ -32,7 +32,7 @@ import android.media.AudioManager; import android.media.Spatializer; import androidx.preference.PreferenceCategory; -import androidx.preference.SwitchPreference; +import androidx.preference.TwoStatePreference; import com.android.settingslib.core.lifecycle.Lifecycle; @@ -68,8 +68,8 @@ public class BluetoothDetailsSpatialAudioControllerTest extends BluetoothDetails private AudioDeviceAttributes mAvailableDevice; private BluetoothDetailsSpatialAudioController mController; - private SwitchPreference mSpatialAudioPref; - private SwitchPreference mHeadTrackingPref; + private TwoStatePreference mSpatialAudioPref; + private TwoStatePreference mHeadTrackingPref; @Before public void setUp() {