summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/com/android/settings/AllInOneTetherSettings.java10
-rw-r--r--src/com/android/settings/SettingsActivity.java14
-rw-r--r--src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java4
-rw-r--r--src/com/android/settings/backup/ToggleBackupSettingFragment.java16
-rw-r--r--src/com/android/settings/bluetooth/BluetoothEnabler.java3
-rw-r--r--src/com/android/settings/connecteddevice/BluetoothDashboardFragment.java10
-rw-r--r--src/com/android/settings/dashboard/profileselector/ProfileSelectLocationFragment.java7
-rw-r--r--src/com/android/settings/datausage/DataSaverSummary.java12
-rw-r--r--src/com/android/settings/deletionhelper/AutomaticStorageManagerSettings.java8
-rw-r--r--src/com/android/settings/deletionhelper/AutomaticStorageManagerSwitchBarController.java9
-rw-r--r--src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java18
-rw-r--r--src/com/android/settings/development/DevelopmentSwitchBarController.java6
-rw-r--r--src/com/android/settings/development/WirelessDebuggingFragment.java10
-rw-r--r--src/com/android/settings/development/graphicsdriver/GraphicsDriverDashboard.java10
-rw-r--r--src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceController.java26
-rw-r--r--src/com/android/settings/inputmethod/SpellCheckersSettings.java12
-rw-r--r--src/com/android/settings/location/LocationSettings.java9
-rw-r--r--src/com/android/settings/location/LocationSwitchBarController.java18
-rw-r--r--src/com/android/settings/network/telephony/MobileNetworkSwitchController.java16
-rw-r--r--src/com/android/settings/nfc/AndroidBeam.java7
-rw-r--r--src/com/android/settings/notification/app/BlockPreferenceController.java15
-rw-r--r--src/com/android/settings/notification/history/NotificationHistoryActivity.java28
-rw-r--r--src/com/android/settings/print/PrintServiceSettingsFragment.java21
-rw-r--r--src/com/android/settings/security/ScreenPinningSettings.java10
-rw-r--r--src/com/android/settings/users/UserSettings.java11
-rw-r--r--src/com/android/settings/widget/GenericSwitchController.java2
-rw-r--r--src/com/android/settings/widget/MainSwitchBarController.java87
-rw-r--r--src/com/android/settings/widget/SettingsMainSwitchBar.java129
-rw-r--r--src/com/android/settings/widget/SettingsMainSwitchPreference.java217
-rw-r--r--src/com/android/settings/widget/SwitchBarController.java3
-rw-r--r--src/com/android/settings/widget/SwitchWidgetController.java6
-rw-r--r--src/com/android/settings/wifi/WifiSettings.java11
-rw-r--r--src/com/android/settings/wifi/tether/WifiTetherSettings.java8
-rw-r--r--src/com/android/settings/wifi/tether/WifiTetherSwitchBarController.java6
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();