Use SettingsLib's MainSwitchBar to replace SwitchBar in Settings.
To log Settings metrics, the MainSwitch extends MainSwitchBar and replace the SwitchBar in SettingsActivity. Bug: 175181773 Test: Run robotest and apply the widget in Settings and see the ui Change-Id: I3add3702e9058ad9192b5172c7cf0e2ccfb55a70
This commit is contained in:
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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();
|
||||
}
|
||||
|
||||
|
@@ -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.
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -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);
|
||||
|
@@ -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();
|
||||
|
@@ -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);
|
||||
}
|
||||
|
@@ -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(
|
||||
|
@@ -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) {
|
||||
|
@@ -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"));
|
||||
|
@@ -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;
|
||||
|
@@ -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
|
||||
|
@@ -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();
|
||||
}
|
||||
|
||||
|
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -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();
|
||||
|
@@ -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
|
||||
|
@@ -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);
|
||||
}
|
||||
|
@@ -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() {
|
||||
|
@@ -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;
|
||||
|
@@ -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();
|
||||
|
@@ -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();
|
||||
|
@@ -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 {
|
||||
|
@@ -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);
|
||||
|
@@ -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();
|
||||
mSwitchBarController = new MultiUserSwitchBarController(activity,
|
||||
new SwitchBarController(switchBar), this /* listener */);
|
||||
getSettingsLifecycle().addObserver(mSwitchBarController);
|
||||
final SettingsMainSwitchBar switchBar = activity.getSwitchBar();
|
||||
switchBar.setTitle(getContext().getString(R.string.multiple_users_main_switch_title));
|
||||
switchBar.show();
|
||||
mSwitchBarController = new MultiUserSwitchBarController(activity,
|
||||
new MainSwitchBarController(switchBar), this /* listener */);
|
||||
getSettingsLifecycle().addObserver(mSwitchBarController);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -49,7 +49,7 @@ public class GenericSwitchController extends SwitchWidgetController implements
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateTitle(boolean isChecked) {
|
||||
public void setTitle(String title) {
|
||||
}
|
||||
|
||||
@Override
|
||||
|
87
src/com/android/settings/widget/MainSwitchBarController.java
Normal file
87
src/com/android/settings/widget/MainSwitchBarController.java
Normal file
@@ -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);
|
||||
}
|
||||
}
|
129
src/com/android/settings/widget/SettingsMainSwitchBar.java
Normal file
129
src/com/android/settings/widget/SettingsMainSwitchBar.java
Normal file
@@ -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);
|
||||
}
|
||||
}
|
@@ -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();
|
||||
}
|
||||
}
|
@@ -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
|
||||
|
@@ -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);
|
||||
}
|
||||
}
|
||||
|
@@ -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) {
|
||||
|
@@ -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();
|
||||
|
@@ -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();
|
||||
|
Reference in New Issue
Block a user