diff options
Diffstat (limited to 'src')
34 files changed, 611 insertions, 168 deletions
diff --git a/src/com/android/settings/AllInOneTetherSettings.java b/src/com/android/settings/AllInOneTetherSettings.java index 5442ed7fef..34d723f324 100644 --- a/src/com/android/settings/AllInOneTetherSettings.java +++ b/src/com/android/settings/AllInOneTetherSettings.java @@ -49,8 +49,8 @@ import com.android.settings.network.TetherEnabler; import com.android.settings.network.UsbTetherPreferenceController; import com.android.settings.network.WifiTetherDisablePreferenceController; import com.android.settings.search.BaseSearchIndexProvider; -import com.android.settings.widget.SwitchBar; -import com.android.settings.widget.SwitchBarController; +import com.android.settings.widget.MainSwitchBarController; +import com.android.settings.widget.SettingsMainSwitchBar; import com.android.settings.wifi.tether.WifiTetherApBandPreferenceController; import com.android.settings.wifi.tether.WifiTetherAutoOffPreferenceController; import com.android.settings.wifi.tether.WifiTetherBasePreferenceController; @@ -227,15 +227,15 @@ public class AllInOneTetherSettings extends RestrictedDashboardFragment adapter.getProfileProxy(activity.getApplicationContext(), mProfileServiceListener, BluetoothProfile.PAN); } - final SwitchBar switchBar = activity.getSwitchBar(); + final SettingsMainSwitchBar mainSwitch = activity.getSwitchBar(); mTetherEnabler = new TetherEnabler(activity, - new SwitchBarController(switchBar), mBluetoothPan); + new MainSwitchBarController(mainSwitch), mBluetoothPan); getSettingsLifecycle().addObserver(mTetherEnabler); use(UsbTetherPreferenceController.class).setTetherEnabler(mTetherEnabler); use(BluetoothTetherPreferenceController.class).setTetherEnabler(mTetherEnabler); use(EthernetTetherPreferenceController.class).setTetherEnabler(mTetherEnabler); use(WifiTetherDisablePreferenceController.class).setTetherEnabler(mTetherEnabler); - switchBar.show(); + mainSwitch.show(); } @Override diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java index 7f214f67e2..a574855fe8 100644 --- a/src/com/android/settings/SettingsActivity.java +++ b/src/com/android/settings/SettingsActivity.java @@ -61,7 +61,7 @@ import com.android.settings.dashboard.DashboardFeatureProvider; import com.android.settings.homepage.TopLevelSettings; import com.android.settings.overlay.FeatureFactory; import com.android.settings.wfd.WifiDisplaySettings; -import com.android.settings.widget.SwitchBar; +import com.android.settings.widget.SettingsMainSwitchBar; import com.android.settingslib.core.instrumentation.Instrumentable; import com.android.settingslib.core.instrumentation.SharedPreferencesLogger; import com.android.settingslib.development.DevelopmentSettingsEnabler; @@ -172,7 +172,7 @@ public class SettingsActivity extends SettingsBaseActivity } }; - private SwitchBar mSwitchBar; + private SettingsMainSwitchBar mMainSwitch; private Button mNextButton; @@ -181,8 +181,8 @@ public class SettingsActivity extends SettingsBaseActivity private DashboardFeatureProvider mDashboardFeatureProvider; - public SwitchBar getSwitchBar() { - return mSwitchBar; + public SettingsMainSwitchBar getSwitchBar() { + return mMainSwitch; } @Override @@ -292,9 +292,9 @@ public class SettingsActivity extends SettingsBaseActivity // If CollapsingToolbarLayout is applied, the old action bar won't show title. actionBar.setDisplayShowTitleEnabled(mCollapsingToolbarLayout == null); } - mSwitchBar = findViewById(R.id.switch_bar); - if (mSwitchBar != null) { - mSwitchBar.setMetricsTag(getMetricsTag()); + mMainSwitch = findViewById(R.id.switch_bar); + if (mMainSwitch != null) { + mMainSwitch.setMetricsTag(getMetricsTag()); } // see if we should show Back/Next buttons diff --git a/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java b/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java index 0f4b762c2e..87d07a82b9 100644 --- a/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java +++ b/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java @@ -51,7 +51,7 @@ import com.android.settings.R; import com.android.settings.SettingsActivity; import com.android.settings.SettingsPreferenceFragment; import com.android.settings.accessibility.AccessibilityUtil.UserShortcutType; -import com.android.settings.widget.SwitchBar; +import com.android.settings.widget.SettingsMainSwitchBar; import com.android.settingslib.accessibility.AccessibilityUtils; import com.android.settingslib.widget.FooterPreference; @@ -176,7 +176,7 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference super.onViewCreated(view, savedInstanceState); final SettingsActivity activity = (SettingsActivity) getActivity(); - final SwitchBar switchBar = activity.getSwitchBar(); + final SettingsMainSwitchBar switchBar = activity.getSwitchBar(); switchBar.hide(); } diff --git a/src/com/android/settings/backup/ToggleBackupSettingFragment.java b/src/com/android/settings/backup/ToggleBackupSettingFragment.java index 8b3a54a65c..8f60be9a1c 100644 --- a/src/com/android/settings/backup/ToggleBackupSettingFragment.java +++ b/src/com/android/settings/backup/ToggleBackupSettingFragment.java @@ -11,6 +11,7 @@ import android.os.ServiceManager; import android.provider.Settings; import android.util.Log; import android.view.View; +import android.widget.Switch; import android.widget.TextView; import androidx.appcompat.app.AlertDialog; @@ -21,8 +22,7 @@ import androidx.preference.PreferenceViewHolder; import com.android.settings.R; import com.android.settings.SettingsActivity; import com.android.settings.SettingsPreferenceFragment; -import com.android.settings.widget.SwitchBar; -import com.android.settings.widget.ToggleSwitch; +import com.android.settings.widget.SettingsMainSwitchBar; /** * Fragment to display a bunch of text about backup and restore, and allow the user to enable/ @@ -41,8 +41,7 @@ public class ToggleBackupSettingFragment extends SettingsPreferenceFragment private IBackupManager mBackupManager; - protected SwitchBar mSwitchBar; - protected ToggleSwitch mToggleSwitch; + protected SettingsMainSwitchBar mSwitchBar; private Preference mSummaryPreference; @@ -79,7 +78,6 @@ public class ToggleBackupSettingFragment extends SettingsPreferenceFragment SettingsActivity activity = (SettingsActivity) getActivity(); mSwitchBar = activity.getSwitchBar(); - mToggleSwitch = mSwitchBar.getSwitch(); // Set up UI. // If the user has not seen legal text for full data backup (if they OTA from L to M) then @@ -105,7 +103,7 @@ public class ToggleBackupSettingFragment extends SettingsPreferenceFragment public void onDestroyView() { super.onDestroyView(); - mToggleSwitch.setOnBeforeCheckedChangeListener(null); + mSwitchBar.setOnBeforeCheckedChangeListener(null); mSwitchBar.hide(); } @@ -115,11 +113,11 @@ public class ToggleBackupSettingFragment extends SettingsPreferenceFragment // Set up toggle listener. We need this b/c we have to intercept the toggle event in order // to pop up the dialogue. - mToggleSwitch.setOnBeforeCheckedChangeListener( - new ToggleSwitch.OnBeforeCheckedChangeListener() { + mSwitchBar.setOnBeforeCheckedChangeListener( + new SettingsMainSwitchBar.OnBeforeCheckedChangeListener() { @Override public boolean onBeforeCheckedChanged( - ToggleSwitch toggleSwitch, boolean checked) { + Switch toggleSwitch, boolean checked) { if (!checked) { // Don't change Switch status until user makes choice in dialog // so return true here. diff --git a/src/com/android/settings/bluetooth/BluetoothEnabler.java b/src/com/android/settings/bluetooth/BluetoothEnabler.java index 2da9eea431..d489198103 100644 --- a/src/com/android/settings/bluetooth/BluetoothEnabler.java +++ b/src/com/android/settings/bluetooth/BluetoothEnabler.java @@ -75,6 +75,8 @@ public final class BluetoothEnabler implements SwitchWidgetController.OnSwitchCh mMetricsFeatureProvider = metricsFeatureProvider; mSwitchController = switchController; mSwitchController.setListener(this); + mSwitchController.setTitle(context.getString(R.string.bluetooth_main_switch_title)); + mValidListener = false; mMetricsEvent = metricsEvent; @@ -191,7 +193,6 @@ public final class BluetoothEnabler implements SwitchWidgetController.OnSwitchCh if (isChecked && !status) { mSwitchController.setChecked(false); mSwitchController.setEnabled(true); - mSwitchController.updateTitle(false); triggerParentPreferenceCallback(false); return false; } diff --git a/src/com/android/settings/connecteddevice/BluetoothDashboardFragment.java b/src/com/android/settings/connecteddevice/BluetoothDashboardFragment.java index 2f61452236..4591b7f216 100644 --- a/src/com/android/settings/connecteddevice/BluetoothDashboardFragment.java +++ b/src/com/android/settings/connecteddevice/BluetoothDashboardFragment.java @@ -25,8 +25,8 @@ import com.android.settings.bluetooth.BluetoothDeviceRenamePreferenceController; import com.android.settings.bluetooth.BluetoothSwitchPreferenceController; import com.android.settings.dashboard.DashboardFragment; import com.android.settings.search.BaseSearchIndexProvider; -import com.android.settings.widget.SwitchBar; -import com.android.settings.widget.SwitchBarController; +import com.android.settings.widget.MainSwitchBarController; +import com.android.settings.widget.SettingsMainSwitchBar; import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.search.SearchIndexable; import com.android.settingslib.widget.FooterPreference; @@ -42,7 +42,7 @@ public class BluetoothDashboardFragment extends DashboardFragment { private static final String KEY_BLUETOOTH_SCREEN_FOOTER = "bluetooth_screen_footer"; private FooterPreference mFooterPreference; - private SwitchBar mSwitchBar; + private SettingsMainSwitchBar mSwitchBar; private BluetoothSwitchPreferenceController mController; @Override @@ -83,9 +83,9 @@ public class BluetoothDashboardFragment extends DashboardFragment { SettingsActivity activity = (SettingsActivity) getActivity(); mSwitchBar = activity.getSwitchBar(); - mSwitchBar.setSwitchBarText(R.string.bluetooth_setting_on, R.string.bluetooth_setting_off); + mSwitchBar.setTitle(getContext().getString(R.string.bluetooth_main_switch_title)); mController = new BluetoothSwitchPreferenceController(activity, - new SwitchBarController(mSwitchBar), mFooterPreference); + new MainSwitchBarController(mSwitchBar), mFooterPreference); Lifecycle lifecycle = getSettingsLifecycle(); if (lifecycle != null) { lifecycle.addObserver(mController); diff --git a/src/com/android/settings/dashboard/profileselector/ProfileSelectLocationFragment.java b/src/com/android/settings/dashboard/profileselector/ProfileSelectLocationFragment.java index a3f73fbc3a..e4cde8e159 100644 --- a/src/com/android/settings/dashboard/profileselector/ProfileSelectLocationFragment.java +++ b/src/com/android/settings/dashboard/profileselector/ProfileSelectLocationFragment.java @@ -25,7 +25,7 @@ import com.android.settings.SettingsActivity; import com.android.settings.location.LocationPersonalSettings; import com.android.settings.location.LocationSwitchBarController; import com.android.settings.location.LocationWorkProfileSettings; -import com.android.settings.widget.SwitchBar; +import com.android.settings.widget.SettingsMainSwitchBar; /** * Location Setting page for personal/managed profile. @@ -36,9 +36,8 @@ public class ProfileSelectLocationFragment extends ProfileSelectFragment { public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); final SettingsActivity activity = (SettingsActivity) getActivity(); - final SwitchBar switchBar = activity.getSwitchBar(); - switchBar.setSwitchBarText(R.string.location_settings_primary_switch_title, - R.string.location_settings_primary_switch_title); + final SettingsMainSwitchBar switchBar = activity.getSwitchBar(); + switchBar.setTitle(getContext().getString(R.string.location_settings_primary_switch_title)); final LocationSwitchBarController switchBarController = new LocationSwitchBarController( activity, switchBar, getSettingsLifecycle()); switchBar.show(); diff --git a/src/com/android/settings/datausage/DataSaverSummary.java b/src/com/android/settings/datausage/DataSaverSummary.java index 7017fe1823..2e52e38e58 100644 --- a/src/com/android/settings/datausage/DataSaverSummary.java +++ b/src/com/android/settings/datausage/DataSaverSummary.java @@ -29,23 +29,23 @@ import com.android.settings.SettingsPreferenceFragment; import com.android.settings.applications.AppStateBaseBridge.Callback; import com.android.settings.datausage.DataSaverBackend.Listener; import com.android.settings.search.BaseSearchIndexProvider; -import com.android.settings.widget.SwitchBar; -import com.android.settings.widget.SwitchBar.OnSwitchChangeListener; +import com.android.settings.widget.SettingsMainSwitchBar; import com.android.settingslib.applications.ApplicationsState; import com.android.settingslib.applications.ApplicationsState.AppEntry; import com.android.settingslib.applications.ApplicationsState.Callbacks; import com.android.settingslib.applications.ApplicationsState.Session; import com.android.settingslib.search.SearchIndexable; +import com.android.settingslib.widget.OnMainSwitchChangeListener; import java.util.ArrayList; @SearchIndexable public class DataSaverSummary extends SettingsPreferenceFragment - implements OnSwitchChangeListener, Listener, Callback, Callbacks { + implements OnMainSwitchChangeListener, Listener, Callback, Callbacks { private static final String KEY_UNRESTRICTED_ACCESS = "unrestricted_access"; - private SwitchBar mSwitchBar; + private SettingsMainSwitchBar mSwitchBar; private DataSaverBackend mDataSaverBackend; private Preference mUnrestrictedAccess; private ApplicationsState mApplicationsState; @@ -72,9 +72,7 @@ public class DataSaverSummary extends SettingsPreferenceFragment public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); mSwitchBar = ((SettingsActivity) getActivity()).getSwitchBar(); - mSwitchBar.setSwitchBarText( - R.string.data_saver_switch_title, - R.string.data_saver_switch_title); + mSwitchBar.setTitle(getContext().getString(R.string.data_saver_switch_title)); mSwitchBar.show(); mSwitchBar.addOnSwitchChangeListener(this); } diff --git a/src/com/android/settings/deletionhelper/AutomaticStorageManagerSettings.java b/src/com/android/settings/deletionhelper/AutomaticStorageManagerSettings.java index 495764bce9..a36d9edca5 100644 --- a/src/com/android/settings/deletionhelper/AutomaticStorageManagerSettings.java +++ b/src/com/android/settings/deletionhelper/AutomaticStorageManagerSettings.java @@ -34,7 +34,7 @@ import com.android.settings.SettingsActivity; import com.android.settings.Utils; import com.android.settings.dashboard.DashboardFragment; import com.android.settings.search.BaseSearchIndexProvider; -import com.android.settings.widget.SwitchBar; +import com.android.settings.widget.SettingsMainSwitchBar; import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.search.SearchIndexable; @@ -52,7 +52,7 @@ public class AutomaticStorageManagerSettings extends DashboardFragment private AutomaticStorageManagerSwitchBarController mSwitchController; private DropDownPreference mDaysToRetain; - private SwitchBar mSwitchBar; + private SettingsMainSwitchBar mSwitchBar; @Override public View onCreateView( @@ -83,8 +83,8 @@ public class AutomaticStorageManagerSettings extends DashboardFragment private void initializeSwitchBar() { final SettingsActivity activity = (SettingsActivity) getActivity(); mSwitchBar = activity.getSwitchBar(); - mSwitchBar.setSwitchBarText(R.string.automatic_storage_manager_primary_switch_title, - R.string.automatic_storage_manager_primary_switch_title); + mSwitchBar.setTitle( + getContext().getString(R.string.automatic_storage_manager_primary_switch_title)); mSwitchBar.show(); mSwitchController = new AutomaticStorageManagerSwitchBarController( diff --git a/src/com/android/settings/deletionhelper/AutomaticStorageManagerSwitchBarController.java b/src/com/android/settings/deletionhelper/AutomaticStorageManagerSwitchBarController.java index c54d7893a9..f46bb0d18c 100644 --- a/src/com/android/settings/deletionhelper/AutomaticStorageManagerSwitchBarController.java +++ b/src/com/android/settings/deletionhelper/AutomaticStorageManagerSwitchBarController.java @@ -26,25 +26,26 @@ import androidx.fragment.app.FragmentManager; import androidx.preference.Preference; import com.android.internal.util.Preconditions; -import com.android.settings.widget.SwitchBar; +import com.android.settings.widget.SettingsMainSwitchBar; import com.android.settingslib.Utils; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; +import com.android.settingslib.widget.OnMainSwitchChangeListener; /** Handles the logic for flipping the storage management toggle on a {@link SwitchBar}. */ public class AutomaticStorageManagerSwitchBarController - implements SwitchBar.OnSwitchChangeListener { + implements OnMainSwitchChangeListener { private static final String STORAGE_MANAGER_ENABLED_BY_DEFAULT_PROPERTY = "ro.storage_manager.enabled"; private Context mContext; - private SwitchBar mSwitchBar; + private SettingsMainSwitchBar mSwitchBar; private MetricsFeatureProvider mMetrics; private Preference mDaysToRetainPreference; private FragmentManager mFragmentManager; public AutomaticStorageManagerSwitchBarController( Context context, - SwitchBar switchBar, + SettingsMainSwitchBar switchBar, MetricsFeatureProvider metrics, Preference daysToRetainPreference, FragmentManager fragmentManager) { diff --git a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java index acd6babd6c..7b4926aca1 100644 --- a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java +++ b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java @@ -60,13 +60,14 @@ import com.android.settings.development.bluetooth.BluetoothSampleRateDialogPrefe import com.android.settings.development.qstile.DevelopmentTiles; import com.android.settings.development.storage.SharedDataPreferenceController; import com.android.settings.search.BaseSearchIndexProvider; -import com.android.settings.widget.SwitchBar; +import com.android.settings.widget.SettingsMainSwitchBar; 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; import com.android.settingslib.search.SearchIndexable; +import com.android.settingslib.widget.OnMainSwitchChangeListener; import com.google.android.setupcompat.util.WizardManagerHelper; @@ -75,7 +76,7 @@ import java.util.List; @SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC) public class DevelopmentSettingsDashboardFragment extends RestrictedDashboardFragment - implements SwitchBar.OnSwitchChangeListener, OemUnlockDialogHost, AdbDialogHost, + implements OnMainSwitchChangeListener, OemUnlockDialogHost, AdbDialogHost, AdbClearKeysDialogHost, LogPersistDialogHost, BluetoothA2dpHwOffloadRebootDialog.OnA2dpHwDialogConfirmedListener, AbstractBluetoothPreferenceController.Callback { @@ -86,7 +87,7 @@ public class DevelopmentSettingsDashboardFragment extends RestrictedDashboardFra new BluetoothA2dpConfigStore(); private boolean mIsAvailable = true; - private SwitchBar mSwitchBar; + private SettingsMainSwitchBar mSwitchBar; private DevelopmentSwitchBarController mSwitchBarController; private List<AbstractPreferenceController> mPreferenceControllers = new ArrayList<>(); private BluetoothA2dp mBluetoothA2dp; @@ -197,10 +198,13 @@ public class DevelopmentSettingsDashboardFragment extends RestrictedDashboardFra } // Set up primary switch mSwitchBar = ((SettingsActivity) getActivity()).getSwitchBar(); + mSwitchBar.setTitle(getContext().getString(R.string.developer_options_main_switch_title)); + mSwitchBar.show(); + mSwitchBar.setTranslationZ( + getActivity().findViewById(R.id.main_content).getTranslationZ() + 1); mSwitchBarController = new DevelopmentSwitchBarController( this /* DevelopmentSettings */, mSwitchBar, mIsAvailable, getSettingsLifecycle()); - mSwitchBar.show(); // Restore UI state based on whether developer options is enabled if (DevelopmentSettingsEnabler.isDevelopmentSettingsEnabled(getContext())) { @@ -231,7 +235,7 @@ public class DevelopmentSettingsDashboardFragment extends RestrictedDashboardFra if (DevelopmentTiles.WirelessDebugging.class.getName().equals( componentName.getClassName()) && getDevelopmentOptionsController( - WirelessDebuggingPreferenceController.class).isAvailable()) { + WirelessDebuggingPreferenceController.class).isAvailable()) { Log.d(TAG, "Long press from wireless debugging qstile"); new SubSettingLauncher(getContext()) .setDestination(WirelessDebuggingFragment.class.getName()) @@ -383,7 +387,7 @@ public class DevelopmentSettingsDashboardFragment extends RestrictedDashboardFra @Override protected int getPreferenceScreenResId() { - return Utils.isMonkeyRunning()? R.xml.placeholder_prefs : R.xml.development_settings; + return Utils.isMonkeyRunning() ? R.xml.placeholder_prefs : R.xml.development_settings; } @Override @@ -557,7 +561,7 @@ public class DevelopmentSettingsDashboardFragment extends RestrictedDashboardFra controllers.add(new DefaultLaunchPreferenceController(context, "quick_settings_tiles")); controllers.add(new DefaultLaunchPreferenceController(context, "feature_flags_dashboard")); controllers.add( - new DefaultLaunchPreferenceController(context, "default_usb_configuration")); + new DefaultLaunchPreferenceController(context, "default_usb_configuration")); controllers.add(new DefaultLaunchPreferenceController(context, "density")); controllers.add(new DefaultLaunchPreferenceController(context, "background_check")); controllers.add(new DefaultLaunchPreferenceController(context, "inactive_apps")); diff --git a/src/com/android/settings/development/DevelopmentSwitchBarController.java b/src/com/android/settings/development/DevelopmentSwitchBarController.java index 84b7f9f286..ac691ca600 100644 --- a/src/com/android/settings/development/DevelopmentSwitchBarController.java +++ b/src/com/android/settings/development/DevelopmentSwitchBarController.java @@ -19,7 +19,7 @@ package com.android.settings.development; import androidx.annotation.NonNull; import com.android.settings.Utils; -import com.android.settings.widget.SwitchBar; +import com.android.settings.widget.SettingsMainSwitchBar; import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnStart; @@ -28,12 +28,12 @@ import com.android.settingslib.development.DevelopmentSettingsEnabler; public class DevelopmentSwitchBarController implements LifecycleObserver, OnStart, OnStop { - private final SwitchBar mSwitchBar; + private final SettingsMainSwitchBar mSwitchBar; private final boolean mIsAvailable; private final DevelopmentSettingsDashboardFragment mSettings; public DevelopmentSwitchBarController(@NonNull DevelopmentSettingsDashboardFragment settings, - SwitchBar switchBar, boolean isAvailable, Lifecycle lifecycle) { + SettingsMainSwitchBar switchBar, boolean isAvailable, Lifecycle lifecycle) { mSwitchBar = switchBar; mIsAvailable = isAvailable && !Utils.isMonkeyRunning(); mSettings = settings; diff --git a/src/com/android/settings/development/WirelessDebuggingFragment.java b/src/com/android/settings/development/WirelessDebuggingFragment.java index 68d25e18cf..47d4e52110 100644 --- a/src/com/android/settings/development/WirelessDebuggingFragment.java +++ b/src/com/android/settings/development/WirelessDebuggingFragment.java @@ -15,6 +15,7 @@ */ package com.android.settings.development; + import android.app.Activity; import android.app.Dialog; import android.app.settings.SettingsEnums; @@ -40,7 +41,8 @@ import com.android.settings.SettingsActivity; import com.android.settings.core.SubSettingLauncher; import com.android.settings.dashboard.DashboardFragment; import com.android.settings.search.BaseSearchIndexProvider; -import com.android.settings.widget.SwitchBarController; +import com.android.settings.widget.MainSwitchBarController; +import com.android.settings.widget.SettingsMainSwitchBar; import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.development.DevelopmentSettingsEnabler; @@ -170,9 +172,11 @@ public class WirelessDebuggingFragment extends DashboardFragment public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); final SettingsActivity activity = (SettingsActivity) getActivity(); + final SettingsMainSwitchBar switchBar = activity.getSwitchBar(); + switchBar.setTitle(getContext().getString(R.string.wireless_debugging_main_switch_title)); + mWifiDebuggingEnabler = new WirelessDebuggingEnabler(activity, - new SwitchBarController(activity.getSwitchBar()), this, - getSettingsLifecycle()); + new MainSwitchBarController(switchBar), this, getSettingsLifecycle()); } @Override diff --git a/src/com/android/settings/development/graphicsdriver/GraphicsDriverDashboard.java b/src/com/android/settings/development/graphicsdriver/GraphicsDriverDashboard.java index 9275a31ae7..87678f9616 100644 --- a/src/com/android/settings/development/graphicsdriver/GraphicsDriverDashboard.java +++ b/src/com/android/settings/development/graphicsdriver/GraphicsDriverDashboard.java @@ -24,8 +24,8 @@ import com.android.settings.R; import com.android.settings.SettingsActivity; import com.android.settings.dashboard.DashboardFragment; import com.android.settings.search.BaseSearchIndexProvider; -import com.android.settings.widget.SwitchBar; -import com.android.settings.widget.SwitchBarController; +import com.android.settings.widget.MainSwitchBarController; +import com.android.settings.widget.SettingsMainSwitchBar; import com.android.settingslib.development.DevelopmentSettingsEnabler; import com.android.settingslib.search.SearchIndexable; @@ -62,11 +62,13 @@ public class GraphicsDriverDashboard extends DashboardFragment { super.onActivityCreated(savedInstanceState); final SettingsActivity activity = (SettingsActivity) getActivity(); - final SwitchBar switchBar = activity.getSwitchBar(); + final SettingsMainSwitchBar switchBar = activity.getSwitchBar(); final GraphicsDriverGlobalSwitchBarController switchBarController = new GraphicsDriverGlobalSwitchBarController( - activity, new SwitchBarController(switchBar)); + activity, new MainSwitchBarController(switchBar)); getSettingsLifecycle().addObserver(switchBarController); + switchBar.setTitle( + getContext().getString(R.string.graphics_driver_main_switch_title)); switchBar.show(); } diff --git a/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceController.java b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceController.java index a089abc8c2..257810c595 100644 --- a/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceController.java +++ b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceController.java @@ -21,28 +21,32 @@ import android.content.Context; import android.net.Uri; import android.os.PowerManager; import android.provider.SettingsSlicesContract; +import android.widget.Switch; import androidx.preference.PreferenceScreen; +import com.android.settings.R; import com.android.settings.core.TogglePreferenceController; import com.android.settings.fuelgauge.BatterySaverReceiver; -import com.android.settings.widget.TwoStateButtonPreference; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnStart; import com.android.settingslib.core.lifecycle.events.OnStop; import com.android.settingslib.fuelgauge.BatterySaverUtils; +import com.android.settingslib.widget.MainSwitchPreference; +import com.android.settingslib.widget.OnMainSwitchChangeListener; + /** * Controller to update the battery saver button */ public class BatterySaverButtonPreferenceController extends - TogglePreferenceController implements - LifecycleObserver, OnStart, OnStop, BatterySaverReceiver.BatterySaverListener { + TogglePreferenceController implements OnMainSwitchChangeListener, LifecycleObserver, + OnStart, OnStop, BatterySaverReceiver.BatterySaverListener { private final BatterySaverReceiver mBatterySaverReceiver; private final PowerManager mPowerManager; - private TwoStateButtonPreference mPreference; + private MainSwitchPreference mPreference; public BatterySaverButtonPreferenceController(Context context, String key) { super(context, key); @@ -84,7 +88,15 @@ public class BatterySaverButtonPreferenceController extends @Override public void displayPreference(PreferenceScreen screen) { super.displayPreference(screen); - mPreference = screen.findPreference(getPreferenceKey()); + mPreference = (MainSwitchPreference) screen.findPreference(getPreferenceKey()); + mPreference.setTitle(mContext.getString(R.string.battery_saver_main_switch_title)); + mPreference.addOnSwitchChangeListener(this); + mPreference.updateStatus(isChecked()); + } + + @Override + public void onSwitchChanged(Switch switchView, boolean isChecked) { + setChecked(isChecked); } @Override @@ -95,6 +107,7 @@ public class BatterySaverButtonPreferenceController extends @Override public boolean setChecked(boolean stateOn) { // This screen already shows a warning, so we don't need another warning. + mPreference.updateStatus(isChecked()); return BatterySaverUtils.setPowerSaveMode(mContext, stateOn, false /* needFirstTimeWarning */); } @@ -109,8 +122,5 @@ public class BatterySaverButtonPreferenceController extends @Override public void onBatteryChanged(boolean pluggedIn) { - if (mPreference != null) { - mPreference.setButtonEnabled(!pluggedIn); - } } } diff --git a/src/com/android/settings/inputmethod/SpellCheckersSettings.java b/src/com/android/settings/inputmethod/SpellCheckersSettings.java index dcd3703daf..99f7a4e943 100644 --- a/src/com/android/settings/inputmethod/SpellCheckersSettings.java +++ b/src/com/android/settings/inputmethod/SpellCheckersSettings.java @@ -36,11 +36,11 @@ import androidx.preference.PreferenceScreen; import com.android.settings.R; import com.android.settings.SettingsActivity; import com.android.settings.SettingsPreferenceFragment; -import com.android.settings.widget.SwitchBar; -import com.android.settings.widget.SwitchBar.OnSwitchChangeListener; +import com.android.settings.widget.SettingsMainSwitchBar; +import com.android.settingslib.widget.OnMainSwitchChangeListener; public class SpellCheckersSettings extends SettingsPreferenceFragment - implements OnSwitchChangeListener, OnPreferenceChangeListener { + implements OnMainSwitchChangeListener, OnPreferenceChangeListener { private static final String TAG = SpellCheckersSettings.class.getSimpleName(); private static final boolean DBG = false; @@ -48,7 +48,7 @@ public class SpellCheckersSettings extends SettingsPreferenceFragment private static final String KEY_DEFAULT_SPELL_CHECKER = "default_spellchecker"; private static final int ITEM_ID_USE_SYSTEM_LANGUAGE = 0; - private SwitchBar mSwitchBar; + private SettingsMainSwitchBar mSwitchBar; private Preference mSpellCheckerLanaguagePref; private AlertDialog mDialog = null; private SpellCheckerInfo mCurrentSci; @@ -92,9 +92,7 @@ public class SpellCheckersSettings extends SettingsPreferenceFragment public void onResume() { super.onResume(); mSwitchBar = ((SettingsActivity) getActivity()).getSwitchBar(); - mSwitchBar.setSwitchBarText( - R.string.spell_checker_primary_switch_title, - R.string.spell_checker_primary_switch_title); + mSwitchBar.setTitle(getContext().getString(R.string.spell_checker_primary_switch_title)); mSwitchBar.show(); mSwitchBar.addOnSwitchChangeListener(this); updatePreferenceScreen(); diff --git a/src/com/android/settings/location/LocationSettings.java b/src/com/android/settings/location/LocationSettings.java index 43918111cc..b4f0f1f1c1 100644 --- a/src/com/android/settings/location/LocationSettings.java +++ b/src/com/android/settings/location/LocationSettings.java @@ -28,7 +28,7 @@ import com.android.settings.R; import com.android.settings.SettingsActivity; import com.android.settings.dashboard.DashboardFragment; import com.android.settings.search.BaseSearchIndexProvider; -import com.android.settings.widget.SwitchBar; +import com.android.settings.widget.SettingsMainSwitchBar; import com.android.settingslib.location.RecentLocationApps; import com.android.settingslib.search.SearchIndexable; @@ -70,12 +70,11 @@ public class LocationSettings extends DashboardFragment { public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); final SettingsActivity activity = (SettingsActivity) getActivity(); - final SwitchBar switchBar = activity.getSwitchBar(); - switchBar.setSwitchBarText(R.string.location_settings_primary_switch_title, - R.string.location_settings_primary_switch_title); + final SettingsMainSwitchBar switchBar = activity.getSwitchBar(); + switchBar.setTitle(getContext().getString(R.string.location_settings_primary_switch_title)); + switchBar.show(); mSwitchBarController = new LocationSwitchBarController(activity, switchBar, getSettingsLifecycle()); - switchBar.show(); } @Override diff --git a/src/com/android/settings/location/LocationSwitchBarController.java b/src/com/android/settings/location/LocationSwitchBarController.java index e8458d1b31..c84014f04d 100644 --- a/src/com/android/settings/location/LocationSwitchBarController.java +++ b/src/com/android/settings/location/LocationSwitchBarController.java @@ -17,25 +17,27 @@ import android.content.Context; import android.os.UserHandle; import android.widget.Switch; -import com.android.settings.widget.SwitchBar; +import com.android.settings.widget.SettingsMainSwitchBar; import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnStart; import com.android.settingslib.core.lifecycle.events.OnStop; +import com.android.settingslib.widget.OnMainSwitchChangeListener; -public class LocationSwitchBarController implements SwitchBar.OnSwitchChangeListener, +/** + * The switch controller for the location. + */ +public class LocationSwitchBarController implements OnMainSwitchChangeListener, LocationEnabler.LocationModeChangeListener, LifecycleObserver, OnStart, OnStop { - private final SwitchBar mSwitchBar; - private final Switch mSwitch; + private final SettingsMainSwitchBar mSwitchBar; private final LocationEnabler mLocationEnabler; private boolean mValidListener; - public LocationSwitchBarController(Context context, SwitchBar switchBar, + public LocationSwitchBarController(Context context, SettingsMainSwitchBar switchBar, Lifecycle lifecycle) { mSwitchBar = switchBar; - mSwitch = mSwitchBar.getSwitch(); mLocationEnabler = new LocationEnabler(context, this /* listener */, lifecycle); if (lifecycle != null) { lifecycle.addObserver(this); @@ -77,12 +79,12 @@ public class LocationSwitchBarController implements SwitchBar.OnSwitchChangeList mSwitchBar.setEnabled(!restricted); } - if (enabled != mSwitch.isChecked()) { + if (enabled != mSwitchBar.isChecked()) { // set listener to null so that that code below doesn't trigger onCheckedChanged() if (mValidListener) { mSwitchBar.removeOnSwitchChangeListener(this); } - mSwitch.setChecked(enabled); + mSwitchBar.setChecked(enabled); if (mValidListener) { mSwitchBar.addOnSwitchChangeListener(this); } diff --git a/src/com/android/settings/network/telephony/MobileNetworkSwitchController.java b/src/com/android/settings/network/telephony/MobileNetworkSwitchController.java index 1fdc19109a..0be61e569c 100644 --- a/src/com/android/settings/network/telephony/MobileNetworkSwitchController.java +++ b/src/com/android/settings/network/telephony/MobileNetworkSwitchController.java @@ -32,14 +32,13 @@ import com.android.settings.R; import com.android.settings.core.BasePreferenceController; import com.android.settings.network.SubscriptionUtil; import com.android.settings.network.SubscriptionsChangeListener; -import com.android.settings.widget.SwitchBar; -import com.android.settingslib.widget.LayoutPreference; +import com.android.settings.widget.SettingsMainSwitchPreference; /** This controls a switch to allow enabling/disabling a mobile network */ public class MobileNetworkSwitchController extends BasePreferenceController implements SubscriptionsChangeListener.SubscriptionsChangeListenerClient, LifecycleObserver { private static final String TAG = "MobileNetworkSwitchCtrl"; - private SwitchBar mSwitchBar; + private SettingsMainSwitchPreference mSwitchBar; private int mSubId; private SubscriptionsChangeListener mChangeListener; private SubscriptionManager mSubscriptionManager; @@ -70,12 +69,10 @@ public class MobileNetworkSwitchController extends BasePreferenceController impl @Override public void displayPreference(PreferenceScreen screen) { super.displayPreference(screen); - final LayoutPreference pref = screen.findPreference(mPreferenceKey); - mSwitchBar = pref.findViewById(R.id.switch_bar); - mSwitchBar.setSwitchBarText(R.string.mobile_network_use_sim_on, - R.string.mobile_network_use_sim_off); + mSwitchBar = (SettingsMainSwitchPreference) screen.findPreference(mPreferenceKey); + mSwitchBar.setTitle(mContext.getString(R.string.mobile_network_use_sim_on)); - mSwitchBar.getSwitch().setOnBeforeCheckedChangeListener((toggleSwitch, isChecked) -> { + mSwitchBar.setOnBeforeCheckedChangeListener((toggleSwitch, isChecked) -> { // TODO b/135222940: re-evaluate whether to use // mSubscriptionManager#isSubscriptionEnabled if (mSubscriptionManager.isActiveSubscriptionId(mSubId) != isChecked) { @@ -118,7 +115,8 @@ public class MobileNetworkSwitchController extends BasePreferenceController impl } @Override - public void onAirplaneModeChanged(boolean airplaneModeEnabled) {} + public void onAirplaneModeChanged(boolean airplaneModeEnabled) { + } @Override public void onSubscriptionsChanged() { diff --git a/src/com/android/settings/nfc/AndroidBeam.java b/src/com/android/settings/nfc/AndroidBeam.java index 1f75a2571c..b1fcd5751f 100644 --- a/src/com/android/settings/nfc/AndroidBeam.java +++ b/src/com/android/settings/nfc/AndroidBeam.java @@ -38,15 +38,16 @@ import com.android.settings.R; import com.android.settings.SettingsActivity; import com.android.settings.core.InstrumentedFragment; import com.android.settings.enterprise.ActionDisabledByAdminDialogHelper; -import com.android.settings.widget.SwitchBar; +import com.android.settings.widget.SettingsMainSwitchBar; import com.android.settingslib.HelpUtils; import com.android.settingslib.RestrictedLockUtilsInternal; +import com.android.settingslib.widget.OnMainSwitchChangeListener; public class AndroidBeam extends InstrumentedFragment - implements SwitchBar.OnSwitchChangeListener { + implements OnMainSwitchChangeListener { private View mView; private NfcAdapter mNfcAdapter; - private SwitchBar mSwitchBar; + private SettingsMainSwitchBar mSwitchBar; private CharSequence mOldActivityTitle; private boolean mBeamDisallowedByBase; private boolean mBeamDisallowedByOnlyAdmin; diff --git a/src/com/android/settings/notification/app/BlockPreferenceController.java b/src/com/android/settings/notification/app/BlockPreferenceController.java index 27389620c8..589a03db61 100644 --- a/src/com/android/settings/notification/app/BlockPreferenceController.java +++ b/src/com/android/settings/notification/app/BlockPreferenceController.java @@ -16,7 +16,6 @@ package com.android.settings.notification.app; -import static android.app.NotificationManager.IMPORTANCE_DEFAULT; import static android.app.NotificationManager.IMPORTANCE_NONE; import static android.app.NotificationManager.IMPORTANCE_UNSPECIFIED; @@ -29,11 +28,11 @@ import androidx.preference.Preference; import com.android.settings.R; import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.notification.NotificationBackend; -import com.android.settings.widget.SwitchBar; -import com.android.settingslib.widget.LayoutPreference; +import com.android.settings.widget.SettingsMainSwitchPreference; +import com.android.settingslib.widget.OnMainSwitchChangeListener; public class BlockPreferenceController extends NotificationPreferenceController - implements PreferenceControllerMixin, SwitchBar.OnSwitchChangeListener { + implements PreferenceControllerMixin, OnMainSwitchChangeListener { private static final String KEY_BLOCK = "block"; private NotificationSettings.DependentFieldListener mDependentFieldListener; @@ -59,12 +58,10 @@ public class BlockPreferenceController extends NotificationPreferenceController } public void updateState(Preference preference) { - LayoutPreference pref = (LayoutPreference) preference; - pref.setSelectable(false); - SwitchBar bar = pref.findViewById(R.id.switch_bar); + SettingsMainSwitchPreference bar = (SettingsMainSwitchPreference) preference; if (bar != null) { String switchBarText = getSwitchBarText(); - bar.setSwitchBarText(switchBarText, switchBarText); + bar.setTitle(switchBarText); bar.show(); try { bar.addOnSwitchChangeListener(this); @@ -133,7 +130,7 @@ public class BlockPreferenceController extends NotificationPreferenceController String getSwitchBarText() { if (mChannel != null) { return mContext.getString(R.string.notification_content_block_title); - } else { + } else { CharSequence fieldContextName; if (mChannelGroup != null) { fieldContextName = mChannelGroup.getName(); diff --git a/src/com/android/settings/notification/history/NotificationHistoryActivity.java b/src/com/android/settings/notification/history/NotificationHistoryActivity.java index b1847400e9..d5745ac182 100644 --- a/src/com/android/settings/notification/history/NotificationHistoryActivity.java +++ b/src/com/android/settings/notification/history/NotificationHistoryActivity.java @@ -44,7 +44,6 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.ViewOutlineProvider; -import android.widget.ImageButton; import android.widget.ImageView; import android.widget.TextView; @@ -56,8 +55,9 @@ import com.android.internal.logging.UiEventLogger; import com.android.internal.logging.UiEventLoggerImpl; import com.android.settings.R; import com.android.settings.notification.NotificationBackend; -import com.android.settings.widget.SwitchBar; import com.android.settingslib.utils.ThreadUtils; +import com.android.settingslib.widget.MainSwitchBar; +import com.android.settingslib.widget.OnMainSwitchChangeListener; import java.util.ArrayList; import java.util.Arrays; @@ -75,7 +75,7 @@ public class NotificationHistoryActivity extends Activity { private ViewGroup mTodayView; private ViewGroup mSnoozeView; private ViewGroup mDismissView; - private SwitchBar mSwitchBar; + private MainSwitchBar mSwitchBar; private HistoryLoader mHistoryLoader; private INotificationManager mNm; @@ -117,9 +117,11 @@ public class NotificationHistoryActivity extends Activity { NOTIFICATION_HISTORY_OLDER_ITEM_DELETE(513); private int mId; + NotificationHistoryEvent(int id) { mId = id; } + @Override public int getId() { return mId; @@ -171,10 +173,9 @@ public class NotificationHistoryActivity extends Activity { ? getString(R.string.condition_expand_hide) : getString(R.string.condition_expand_show)); header.sendAccessibilityEvent(TYPE_VIEW_ACCESSIBILITY_FOCUSED); - mUiEventLogger.logWithPosition( - (container.getVisibility() == View.VISIBLE) - ? NotificationHistoryEvent.NOTIFICATION_HISTORY_PACKAGE_HISTORY_OPEN - : NotificationHistoryEvent.NOTIFICATION_HISTORY_PACKAGE_HISTORY_CLOSE, + mUiEventLogger.logWithPosition((container.getVisibility() == View.VISIBLE) + ? NotificationHistoryEvent.NOTIFICATION_HISTORY_PACKAGE_HISTORY_OPEN + : NotificationHistoryEvent.NOTIFICATION_HISTORY_PACKAGE_HISTORY_CLOSE, nhp.uid, nhp.pkgName, finalI); }); @@ -218,7 +219,7 @@ public class NotificationHistoryActivity extends Activity { mHistoryOff = findViewById(R.id.history_off); mHistoryOn = findViewById(R.id.history_on); mHistoryEmpty = findViewById(R.id.history_on_empty); - mSwitchBar = findViewById(R.id.switch_bar); + mSwitchBar = findViewById(R.id.main_switch_bar); ActionBar actionBar = getActionBar(); if (actionBar != null) { @@ -299,9 +300,8 @@ public class NotificationHistoryActivity extends Activity { private void bindSwitch() { if (mSwitchBar != null) { - mSwitchBar.setSwitchBarText(R.string.notification_history_toggle, - R.string.notification_history_toggle); mSwitchBar.show(); + mSwitchBar.setTitle(getString(R.string.notification_history_toggle)); try { mSwitchBar.addOnSwitchChangeListener(mOnSwitchClickListener); } catch (IllegalStateException e) { @@ -325,7 +325,7 @@ public class NotificationHistoryActivity extends Activity { mHistoryEmpty.setVisibility(View.GONE); } - private final SwitchBar.OnSwitchChangeListener mOnSwitchClickListener = + private final OnMainSwitchChangeListener mOnSwitchClickListener = (switchView, isChecked) -> { int oldState = 0; try { @@ -387,11 +387,11 @@ public class NotificationHistoryActivity extends Activity { mDismissedRv = mDismissView.findViewById(R.id.notification_list); LinearLayoutManager dismissLm = - new LinearLayoutManager(NotificationHistoryActivity.this); + new LinearLayoutManager(NotificationHistoryActivity.this); mDismissedRv.setLayoutManager(dismissLm); mDismissedRv.setAdapter( new NotificationSbnAdapter(NotificationHistoryActivity.this, mPm, mUm, - false , mUiEventLogger)); + false, mUiEventLogger)); mDismissedRv.setNestedScrollingEnabled(false); if (dismissed == null || dismissed.length == 0) { @@ -399,7 +399,7 @@ public class NotificationHistoryActivity extends Activity { } else { mDismissView.setVisibility(View.VISIBLE); ((NotificationSbnAdapter) mDismissedRv.getAdapter()).onRebuildComplete( - new ArrayList<>(Arrays.asList(dismissed))); + new ArrayList<>(Arrays.asList(dismissed))); } mCountdownLatch.countDown(); diff --git a/src/com/android/settings/print/PrintServiceSettingsFragment.java b/src/com/android/settings/print/PrintServiceSettingsFragment.java index 8d4017580b..eb7ab80e69 100644 --- a/src/com/android/settings/print/PrintServiceSettingsFragment.java +++ b/src/com/android/settings/print/PrintServiceSettingsFragment.java @@ -59,8 +59,8 @@ import androidx.recyclerview.widget.RecyclerView.AdapterDataObserver; import com.android.settings.R; import com.android.settings.SettingsActivity; import com.android.settings.SettingsPreferenceFragment; -import com.android.settings.widget.SwitchBar; -import com.android.settings.widget.ToggleSwitch; +import com.android.settings.widget.SettingsMainSwitchBar; +import com.android.settingslib.widget.OnMainSwitchChangeListener; import java.util.ArrayList; import java.util.LinkedHashMap; @@ -71,7 +71,7 @@ import java.util.Map; * Fragment with print service settings. */ public class PrintServiceSettingsFragment extends SettingsPreferenceFragment - implements SwitchBar.OnSwitchChangeListener, + implements OnMainSwitchChangeListener, LoaderManager.LoaderCallbacks<List<PrintServiceInfo>> { private static final String LOG_TAG = "PrintServiceSettings"; @@ -96,8 +96,7 @@ public class PrintServiceSettingsFragment extends SettingsPreferenceFragment } }; - private SwitchBar mSwitchBar; - private ToggleSwitch mToggleSwitch; + private SettingsMainSwitchBar mSwitchBar; private String mPreferenceKey; @@ -166,14 +165,14 @@ public class PrintServiceSettingsFragment extends SettingsPreferenceFragment } private void onPreferenceToggled(String preferenceKey, boolean enabled) { - ((PrintManager)getContext().getSystemService(Context.PRINT_SERVICE)) + ((PrintManager) getContext().getSystemService(Context.PRINT_SERVICE)) .setPrintServiceEnabled(mComponentName, enabled); } private void updateEmptyView() { ViewGroup contentRoot = (ViewGroup) getListView().getParent(); View emptyView = getEmptyView(); - if (!mToggleSwitch.isChecked()) { + if (!mSwitchBar.isChecked()) { if (emptyView != null) { contentRoot.removeView(emptyView); emptyView = null; @@ -235,11 +234,12 @@ public class PrintServiceSettingsFragment extends SettingsPreferenceFragment final SettingsActivity activity = (SettingsActivity) getActivity(); mSwitchBar = activity.getSwitchBar(); + mSwitchBar.setTitle( + getContext().getString(R.string.default_print_service_main_switch_title)); mSwitchBar.addOnSwitchChangeListener(this); mSwitchBar.show(); - mToggleSwitch = mSwitchBar.getSwitch(); - mToggleSwitch.setOnBeforeCheckedChangeListener((toggleSwitch, checked) -> { + mSwitchBar.setOnBeforeCheckedChangeListener((toggleSwitch, checked) -> { onPreferenceToggled(mPreferenceKey, checked); return false; }); @@ -388,6 +388,7 @@ public class PrintServiceSettingsFragment extends SettingsPreferenceFragment R.string.print_search_box_shown_utterance)); } } + @Override public void onViewDetachedFromWindow(View view) { Activity activity = getActivity(); @@ -565,7 +566,7 @@ public class PrintServiceSettingsFragment extends SettingsPreferenceFragment TypedValue value = new TypedValue(); getActivity().getTheme().resolveAttribute(android.R.attr.disabledAlpha, value, true); - icon.setAlpha((int)(value.getFloat() * 255)); + icon.setAlpha((int) (value.getFloat() * 255)); } iconView.setImageDrawable(icon); } else { diff --git a/src/com/android/settings/security/ScreenPinningSettings.java b/src/com/android/settings/security/ScreenPinningSettings.java index 1e620cf539..a8cb1c959a 100644 --- a/src/com/android/settings/security/ScreenPinningSettings.java +++ b/src/com/android/settings/security/ScreenPinningSettings.java @@ -39,26 +39,25 @@ import com.android.settings.SettingsActivity; import com.android.settings.SettingsPreferenceFragment; import com.android.settings.password.ChooseLockGeneric; import com.android.settings.search.BaseSearchIndexProvider; -import com.android.settings.widget.SwitchBar; +import com.android.settings.widget.SettingsMainSwitchBar; import com.android.settingslib.search.SearchIndexable; import com.android.settingslib.widget.FooterPreference; +import com.android.settingslib.widget.OnMainSwitchChangeListener; import java.util.Arrays; import java.util.List; - - /** * Screen pinning settings. */ @SearchIndexable public class ScreenPinningSettings extends SettingsPreferenceFragment - implements SwitchBar.OnSwitchChangeListener, DialogInterface.OnClickListener { + implements OnMainSwitchChangeListener, DialogInterface.OnClickListener { private static final String KEY_USE_SCREEN_LOCK = "use_screen_lock"; private static final String KEY_FOOTER = "screen_pinning_settings_screen_footer"; private static final int CHANGE_LOCK_METHOD_REQUEST = 43; - private SwitchBar mSwitchBar; + private SettingsMainSwitchBar mSwitchBar; private SwitchPreference mUseScreenLock; private FooterPreference mFooterPreference; private LockPatternUtils mLockPatternUtils; @@ -84,6 +83,7 @@ public class ScreenPinningSettings extends SettingsPreferenceFragment mFooterPreference = root.findPreference(KEY_FOOTER); mSwitchBar = activity.getSwitchBar(); + mSwitchBar.setTitle(getContext().getString(R.string.app_pinning_main_switch_title)); mSwitchBar.show(); mSwitchBar.setChecked(isLockToAppEnabled(getActivity())); mSwitchBar.addOnSwitchChangeListener(this); diff --git a/src/com/android/settings/users/UserSettings.java b/src/com/android/settings/users/UserSettings.java index 8ba5432414..461fd874ba 100644 --- a/src/com/android/settings/users/UserSettings.java +++ b/src/com/android/settings/users/UserSettings.java @@ -67,8 +67,8 @@ import com.android.settings.Utils; import com.android.settings.core.SubSettingLauncher; import com.android.settings.password.ChooseLockGeneric; import com.android.settings.search.BaseSearchIndexProvider; -import com.android.settings.widget.SwitchBar; -import com.android.settings.widget.SwitchBarController; +import com.android.settings.widget.MainSwitchBarController; +import com.android.settings.widget.SettingsMainSwitchBar; import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin; import com.android.settingslib.RestrictedLockUtilsInternal; import com.android.settingslib.RestrictedPreference; @@ -223,11 +223,12 @@ public class UserSettings extends SettingsPreferenceFragment // Assume we are in a SettingsActivity. This is only safe because we currently use // SettingsActivity as base for all preference fragments. final SettingsActivity activity = (SettingsActivity) getActivity(); - final SwitchBar switchBar = activity.getSwitchBar(); + final SettingsMainSwitchBar switchBar = activity.getSwitchBar(); + switchBar.setTitle(getContext().getString(R.string.multiple_users_main_switch_title)); + switchBar.show(); mSwitchBarController = new MultiUserSwitchBarController(activity, - new SwitchBarController(switchBar), this /* listener */); + new MainSwitchBarController(switchBar), this /* listener */); getSettingsLifecycle().addObserver(mSwitchBarController); - switchBar.show(); } @Override diff --git a/src/com/android/settings/widget/GenericSwitchController.java b/src/com/android/settings/widget/GenericSwitchController.java index b1b43420f5..eceabc4a02 100644 --- a/src/com/android/settings/widget/GenericSwitchController.java +++ b/src/com/android/settings/widget/GenericSwitchController.java @@ -49,7 +49,7 @@ public class GenericSwitchController extends SwitchWidgetController implements } @Override - public void updateTitle(boolean isChecked) { + public void setTitle(String title) { } @Override diff --git a/src/com/android/settings/widget/MainSwitchBarController.java b/src/com/android/settings/widget/MainSwitchBarController.java new file mode 100644 index 0000000000..8aa5c9b5db --- /dev/null +++ b/src/com/android/settings/widget/MainSwitchBarController.java @@ -0,0 +1,87 @@ +/* + * Copyright (C) 2020 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.widget; + +import android.widget.Switch; + +import com.android.settingslib.RestrictedLockUtils; +import com.android.settingslib.widget.OnMainSwitchChangeListener; + +/** + * The switch controller that is used to update the switch widget in the SettingsMainSwitchBar. + */ +public class MainSwitchBarController extends SwitchWidgetController implements + OnMainSwitchChangeListener { + + private final SettingsMainSwitchBar mMainSwitch; + + public MainSwitchBarController(SettingsMainSwitchBar mainSwitch) { + mMainSwitch = mainSwitch; + } + + @Override + public void setupView() { + mMainSwitch.show(); + } + + @Override + public void teardownView() { + mMainSwitch.hide(); + } + + @Override + public void setTitle(String title) { + mMainSwitch.setTitle(title); + } + + @Override + public void startListening() { + mMainSwitch.addOnSwitchChangeListener(this); + } + + @Override + public void stopListening() { + mMainSwitch.removeOnSwitchChangeListener(this); + } + + @Override + public void setChecked(boolean checked) { + mMainSwitch.setChecked(checked); + } + + @Override + public boolean isChecked() { + return mMainSwitch.isChecked(); + } + + @Override + public void setEnabled(boolean enabled) { + mMainSwitch.setEnabled(enabled); + } + + @Override + public void onSwitchChanged(Switch switchView, boolean isChecked) { + if (mListener != null) { + mListener.onSwitchToggled(isChecked); + } + } + + @Override + public void setDisabledByAdmin(RestrictedLockUtils.EnforcedAdmin admin) { + mMainSwitch.setDisabledByAdmin(admin); + } +} diff --git a/src/com/android/settings/widget/SettingsMainSwitchBar.java b/src/com/android/settings/widget/SettingsMainSwitchBar.java new file mode 100644 index 0000000000..d7fbd6aad1 --- /dev/null +++ b/src/com/android/settings/widget/SettingsMainSwitchBar.java @@ -0,0 +1,129 @@ +/* + * Copyright (C) 2020 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.widget; + +import android.app.settings.SettingsEnums; +import android.content.Context; +import android.util.AttributeSet; +import android.view.View; +import android.widget.Switch; + +import com.android.settings.overlay.FeatureFactory; +import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; +import com.android.settingslib.widget.MainSwitchBar; + +/** + * A {@link MainSwitchBar} with a customized Switch and provides the metrics feature. + */ +public class SettingsMainSwitchBar extends MainSwitchBar { + + /** + * Called before the checked state of the Switch has changed. + */ + public interface OnBeforeCheckedChangeListener { + + /** + * @param switchView The Switch view whose state has changed. + * @param isChecked The new checked state of switchView. + */ + boolean onBeforeCheckedChanged(Switch switchView, boolean isChecked); + } + + private final MetricsFeatureProvider mMetricsFeatureProvider; + private OnBeforeCheckedChangeListener mOnBeforeListener; + + private Switch mSwitch; + private String mMetricsTag; + + public SettingsMainSwitchBar(Context context) { + this(context, null); + } + + public SettingsMainSwitchBar(Context context, AttributeSet attrs) { + this(context, attrs, 0); + } + + public SettingsMainSwitchBar(Context context, AttributeSet attrs, int defStyleAttr) { + this(context, attrs, defStyleAttr, 0); + } + + public SettingsMainSwitchBar(Context context, AttributeSet attrs, int defStyleAttr, + int defStyleRes) { + super(context, attrs, defStyleAttr, defStyleRes); + mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider(); + + mSwitch = (Switch) findViewById(android.R.id.switch_widget); + + addOnSwitchChangeListener((switchView, isChecked) -> logMetrics(isChecked)); + } + + @Override + protected void onRestrictedIconClick() { + mMetricsFeatureProvider.action( + SettingsEnums.PAGE_UNKNOWN, + SettingsEnums.ACTION_SETTINGS_PREFERENCE_CHANGE, + SettingsEnums.PAGE_UNKNOWN, + mMetricsTag + "/switch_bar|restricted", + 1); + } + + @Override + public void setChecked(boolean checked) { + if (mOnBeforeListener != null + && mOnBeforeListener.onBeforeCheckedChanged(mSwitch, checked)) { + return; + } + super.setChecked(checked); + } + + /** + * Update the status of switch but doesn't notify the mOnBeforeListener. + */ + public void setCheckedInternal(boolean checked) { + super.setChecked(checked); + } + + /** + * Set the OnBeforeCheckedChangeListener. + */ + public void setOnBeforeCheckedChangeListener(OnBeforeCheckedChangeListener listener) { + mOnBeforeListener = listener; + } + + /** + * Returns if this view is visible. + */ + public boolean isShowing() { + return (getVisibility() == View.VISIBLE); + } + + /** + * Set the metrics tag. + */ + public void setMetricsTag(String tag) { + mMetricsTag = tag; + } + + private void logMetrics(boolean isChecked) { + mMetricsFeatureProvider.action( + SettingsEnums.PAGE_UNKNOWN, + SettingsEnums.ACTION_SETTINGS_PREFERENCE_CHANGE, + SettingsEnums.PAGE_UNKNOWN, + mMetricsTag + "/switch_bar", + isChecked ? 1 : 0); + } +} diff --git a/src/com/android/settings/widget/SettingsMainSwitchPreference.java b/src/com/android/settings/widget/SettingsMainSwitchPreference.java new file mode 100644 index 0000000000..4597842f6e --- /dev/null +++ b/src/com/android/settings/widget/SettingsMainSwitchPreference.java @@ -0,0 +1,217 @@ +/* + * Copyright (C) 2021 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.widget; + +import android.content.Context; +import android.util.AttributeSet; + +import androidx.preference.PreferenceViewHolder; +import androidx.preference.TwoStatePreference; + +import com.android.settings.R; +import com.android.settings.widget.SettingsMainSwitchBar.OnBeforeCheckedChangeListener; +import com.android.settingslib.RestrictedLockUtils; +import com.android.settingslib.widget.OnMainSwitchChangeListener; + +import java.util.ArrayList; +import java.util.List; + +/** + * SettingsMainSwitchPreference is a Preference with a customized Switch. + * This component is used as the main switch of the page + * to enable or disable the prefereces on the page. + */ +public class SettingsMainSwitchPreference extends TwoStatePreference { + private final List<OnBeforeCheckedChangeListener> mBeforeCheckedChangeListeners = + new ArrayList<>(); + private final List<OnMainSwitchChangeListener> mSwitchChangeListeners = new ArrayList<>(); + + private SettingsMainSwitchBar mMainSwitchBar; + private String mTitle; + + private RestrictedLockUtils.EnforcedAdmin mEnforcedAdmin; + + public SettingsMainSwitchPreference(Context context) { + super(context); + init(); + } + + public SettingsMainSwitchPreference(Context context, AttributeSet attrs) { + super(context, attrs); + init(); + } + + public SettingsMainSwitchPreference(Context context, AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + init(); + } + + public SettingsMainSwitchPreference(Context context, AttributeSet attrs, int defStyleAttr, + int defStyleRes) { + super(context, attrs, defStyleAttr, defStyleRes); + init(); + } + + @Override + public void onBindViewHolder(PreferenceViewHolder holder) { + super.onBindViewHolder(holder); + + holder.setDividerAllowedAbove(true); + holder.setDividerAllowedBelow(false); + + mMainSwitchBar = (SettingsMainSwitchBar) holder.findViewById(R.id.main_switch_bar); + mMainSwitchBar.show(); + updateStatus(isChecked()); + registerListenerToSwitchBar(); + } + + private void init() { + setLayoutResource(R.layout.preference_widget_main_switch); + } + + /** + * Return the SettingsMainSwitchBar + */ + public final SettingsMainSwitchBar getSwitchBar() { + return mMainSwitchBar; + } + + /** + * Set the preference title text + */ + public void setTitle(String text) { + mTitle = text; + if (mMainSwitchBar != null) { + mMainSwitchBar.setTitle(mTitle); + } + } + + /** + * Update the switch status of preference + */ + public void updateStatus(boolean checked) { + setChecked(checked); + if (mMainSwitchBar != null) { + mMainSwitchBar.setChecked(checked); + mMainSwitchBar.setTitle(mTitle); + mMainSwitchBar.setDisabledByAdmin(mEnforcedAdmin); + mMainSwitchBar.show(); + } + } + + /** + * Show the MainSwitchBar + */ + public void show() { + if (mMainSwitchBar != null) { + mMainSwitchBar.show(); + } + } + + /** + * Hide the MainSwitchBar + */ + public void hide() { + if (mMainSwitchBar != null) { + mMainSwitchBar.hide(); + } + } + + /** + * Returns if the MainSwitchBar is visible. + */ + public boolean isShowing() { + if (mMainSwitchBar != null) { + return mMainSwitchBar.isShowing(); + } + return false; + } + + /** + * Update the status of switch but doesn't notify the mOnBeforeListener. + */ + public void setCheckedInternal(boolean checked) { + if (mMainSwitchBar != null) { + mMainSwitchBar.setCheckedInternal(checked); + } + } + + /** + * Enable or disable the text and switch. + */ + public void setEnabled(boolean enabled) { + if (mMainSwitchBar != null) { + mMainSwitchBar.setEnabled(enabled); + } + } + + /** + * Set the OnBeforeCheckedChangeListener. + */ + public void setOnBeforeCheckedChangeListener(OnBeforeCheckedChangeListener listener) { + if (mMainSwitchBar == null) { + mBeforeCheckedChangeListeners.add(listener); + } else { + mMainSwitchBar.setOnBeforeCheckedChangeListener(listener); + } + } + + /** + * Adds a listener for switch changes + */ + public void addOnSwitchChangeListener(OnMainSwitchChangeListener listener) { + if (mMainSwitchBar == null) { + mSwitchChangeListeners.add(listener); + } else { + mMainSwitchBar.addOnSwitchChangeListener(listener); + } + } + + /** + * Remove a listener for switch changes + */ + public void removeOnSwitchChangeListener(OnMainSwitchChangeListener listener) { + if (mMainSwitchBar == null) { + mSwitchChangeListeners.remove(listener); + } else { + mMainSwitchBar.removeOnSwitchChangeListener(listener); + } + } + + /** + * If admin is not null, disables the text and switch but keeps the view clickable. + * Otherwise, calls setEnabled which will enables the entire view including + * the text and switch. + */ + public void setDisabledByAdmin(RestrictedLockUtils.EnforcedAdmin admin) { + mEnforcedAdmin = admin; + if (mMainSwitchBar != null) { + mMainSwitchBar.setDisabledByAdmin(mEnforcedAdmin); + } + } + + private void registerListenerToSwitchBar() { + for (OnBeforeCheckedChangeListener listener : mBeforeCheckedChangeListeners) { + mMainSwitchBar.setOnBeforeCheckedChangeListener(listener); + } + for (OnMainSwitchChangeListener listener : mSwitchChangeListeners) { + mMainSwitchBar.addOnSwitchChangeListener(listener); + } + mBeforeCheckedChangeListeners.clear(); + mSwitchChangeListeners.clear(); + } +} diff --git a/src/com/android/settings/widget/SwitchBarController.java b/src/com/android/settings/widget/SwitchBarController.java index e471c7a1b7..3a086b654b 100644 --- a/src/com/android/settings/widget/SwitchBarController.java +++ b/src/com/android/settings/widget/SwitchBarController.java @@ -43,8 +43,7 @@ public class SwitchBarController extends SwitchWidgetController implements } @Override - public void updateTitle(boolean isChecked) { - mSwitchBar.setTextViewLabelAndBackground(isChecked); + public void setTitle(String title) { } @Override diff --git a/src/com/android/settings/widget/SwitchWidgetController.java b/src/com/android/settings/widget/SwitchWidgetController.java index 6c4f40ac78..75bef059fb 100644 --- a/src/com/android/settings/widget/SwitchWidgetController.java +++ b/src/com/android/settings/widget/SwitchWidgetController.java @@ -65,9 +65,9 @@ public abstract class SwitchWidgetController { /** * Update the preference title associated with the switch. * - * @param isChecked whether the switch is currently checked + * @param title the preference title */ - public abstract void updateTitle(boolean isChecked); + public abstract void setTitle(String title); /** * Start listening to switch toggling. @@ -107,4 +107,4 @@ public abstract class SwitchWidgetController { * is {@code null}, then this preference will be enabled. Otherwise, it will be disabled. */ public abstract void setDisabledByAdmin(EnforcedAdmin admin); -}
\ No newline at end of file +} diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java index cf8242bc19..34067e993b 100644 --- a/src/com/android/settings/wifi/WifiSettings.java +++ b/src/com/android/settings/wifi/WifiSettings.java @@ -66,7 +66,7 @@ import com.android.settings.datausage.DataUsageUtils; import com.android.settings.location.ScanningSettings; import com.android.settings.overlay.FeatureFactory; import com.android.settings.search.BaseSearchIndexProvider; -import com.android.settings.widget.SwitchBarController; +import com.android.settings.widget.MainSwitchBarController; import com.android.settings.wifi.details2.WifiNetworkDetailsFragment2; import com.android.settings.wifi.dpp.WifiDppUtils; import com.android.settingslib.HelpUtils; @@ -222,9 +222,8 @@ public class WifiSettings extends RestrictedSettingsFragment .findViewById(R.id.progress_bar_animation); setProgressBarVisible(false); } - ((SettingsActivity) activity).getSwitchBar().setSwitchBarText( - R.string.wifi_settings_primary_switch_title, - R.string.wifi_settings_primary_switch_title); + ((SettingsActivity) activity).getSwitchBar().setTitle( + getContext().getString(R.string.wifi_settings_primary_switch_title)); } @Override @@ -382,7 +381,7 @@ public class WifiSettings extends RestrictedSettingsFragment */ private WifiEnabler createWifiEnabler() { final SettingsActivity activity = (SettingsActivity) getActivity(); - return new WifiEnabler(activity, new SwitchBarController(activity.getSwitchBar()), + return new WifiEnabler(activity, new MainSwitchBarController(activity.getSwitchBar()), mMetricsFeatureProvider); } @@ -1050,7 +1049,7 @@ public class WifiSettings extends RestrictedSettingsFragment Toast.makeText(getContext(), R.string.wifi_failed_connect_message, Toast.LENGTH_SHORT) .show(); } - }; + } public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = new BaseSearchIndexProvider(R.xml.wifi_settings) { diff --git a/src/com/android/settings/wifi/tether/WifiTetherSettings.java b/src/com/android/settings/wifi/tether/WifiTetherSettings.java index f260298029..0529b7a518 100644 --- a/src/com/android/settings/wifi/tether/WifiTetherSettings.java +++ b/src/com/android/settings/wifi/tether/WifiTetherSettings.java @@ -39,7 +39,7 @@ import com.android.settings.SettingsActivity; import com.android.settings.core.FeatureFlags; import com.android.settings.dashboard.RestrictedDashboardFragment; import com.android.settings.search.BaseSearchIndexProvider; -import com.android.settings.widget.SwitchBar; +import com.android.settings.widget.SettingsMainSwitchBar; import com.android.settingslib.TetherUtil; import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.search.SearchIndexable; @@ -128,10 +128,8 @@ public class WifiTetherSettings extends RestrictedDashboardFragment // Assume we are in a SettingsActivity. This is only safe because we currently use // SettingsActivity as base for all preference fragments. final SettingsActivity activity = (SettingsActivity) getActivity(); - final SwitchBar switchBar = activity.getSwitchBar(); - switchBar.setSwitchBarText( - com.android.settingslib.R.string.wifi_hotspot_switch_on_text, - com.android.settingslib.R.string.wifi_hotspot_switch_off_text); + final SettingsMainSwitchBar switchBar = activity.getSwitchBar(); + switchBar.setTitle(getContext().getString(R.string.use_wifi_hotsopt_main_switch_title)); mSwitchBarController = new WifiTetherSwitchBarController(activity, switchBar); getSettingsLifecycle().addObserver(mSwitchBarController); switchBar.show(); diff --git a/src/com/android/settings/wifi/tether/WifiTetherSwitchBarController.java b/src/com/android/settings/wifi/tether/WifiTetherSwitchBarController.java index e83eb1c0bf..3d8cd3e76c 100644 --- a/src/com/android/settings/wifi/tether/WifiTetherSwitchBarController.java +++ b/src/com/android/settings/wifi/tether/WifiTetherSwitchBarController.java @@ -32,7 +32,7 @@ import android.widget.Switch; import androidx.annotation.VisibleForTesting; import com.android.settings.datausage.DataSaverBackend; -import com.android.settings.widget.SwitchBar; +import com.android.settings.widget.SettingsMainSwitchBar; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnStart; import com.android.settingslib.core.lifecycle.events.OnStop; @@ -45,7 +45,7 @@ public class WifiTetherSwitchBarController implements private static final IntentFilter WIFI_INTENT_FILTER; private final Context mContext; - private final SwitchBar mSwitchBar; + private final SettingsMainSwitchBar mSwitchBar; private final Switch mSwitch; private final ConnectivityManager mConnectivityManager; private final WifiManager mWifiManager; @@ -67,7 +67,7 @@ public class WifiTetherSwitchBarController implements WIFI_INTENT_FILTER = new IntentFilter(WifiManager.WIFI_AP_STATE_CHANGED_ACTION); } - WifiTetherSwitchBarController(Context context, SwitchBar switchBar) { + WifiTetherSwitchBarController(Context context, SettingsMainSwitchBar switchBar) { mContext = context; mSwitchBar = switchBar; mSwitch = mSwitchBar.getSwitch(); |