summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorStanley Wang <stanleytfwang@google.com>2021-02-03 23:40:46 +0800
committerStanley Wang <stanleytfwang@google.com>2021-02-23 16:21:52 +0800
commit86cc0579f32145f64737000ceca5e3905fb901df (patch)
treed633beb236b1a5651178185a084172e8e9d1a541 /src
parenta9f090358156c89db6ab05f5fdf313331f7b4101 (diff)
downloadpackages_apps_Settings-86cc0579f32145f64737000ceca5e3905fb901df.tar.gz
packages_apps_Settings-86cc0579f32145f64737000ceca5e3905fb901df.tar.bz2
packages_apps_Settings-86cc0579f32145f64737000ceca5e3905fb901df.zip
Replace the SwitchBar with MainSwitch.
- Update wi-fi calling switch. - Update the switches in Accessibility Fix: 178673860 Fix: 177968565 Test: Run robotest and apply the widget in Settings and see the ui Change-Id: Id10e6a110f418ea500a2eaf3c54752bef4f36507
Diffstat (limited to 'src')
-rw-r--r--src/com/android/settings/accessibility/InvisibleToggleAccessibilityServicePreferenceFragment.java2
-rw-r--r--src/com/android/settings/accessibility/LaunchAccessibilityActivityPreferenceFragment.java19
-rw-r--r--src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java39
-rw-r--r--src/com/android/settings/accessibility/ToggleColorInversionPreferenceFragment.java28
-rw-r--r--src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragment.java46
-rw-r--r--src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java70
-rw-r--r--src/com/android/settings/accessibility/ToggleReduceBrightColorsPreferenceFragment.java47
-rw-r--r--src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java3
-rw-r--r--src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentForSetupWizard.java4
-rw-r--r--src/com/android/settings/accessibility/ToggleScreenReaderPreferenceFragmentForSetupWizard.java6
-rw-r--r--src/com/android/settings/accessibility/ToggleSelectToSpeakPreferenceFragmentForSetupWizard.java6
-rw-r--r--src/com/android/settings/accessibility/VolumeShortcutToggleScreenReaderPreferenceFragmentForSetupWizard.java6
-rw-r--r--src/com/android/settings/accessibility/VolumeShortcutToggleSelectToSpeakPreferenceFragmentForSetupWizard.java6
-rw-r--r--src/com/android/settings/widget/SettingsMainSwitchPreference.java29
-rw-r--r--src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java13
15 files changed, 154 insertions, 170 deletions
diff --git a/src/com/android/settings/accessibility/InvisibleToggleAccessibilityServicePreferenceFragment.java b/src/com/android/settings/accessibility/InvisibleToggleAccessibilityServicePreferenceFragment.java
index 6b44a0a0f8..0c1876f95d 100644
--- a/src/com/android/settings/accessibility/InvisibleToggleAccessibilityServicePreferenceFragment.java
+++ b/src/com/android/settings/accessibility/InvisibleToggleAccessibilityServicePreferenceFragment.java
@@ -38,7 +38,7 @@ public class InvisibleToggleAccessibilityServicePreferenceFragment extends
@Override
protected void onInstallSwitchPreferenceToggleSwitch() {
super.onInstallSwitchPreferenceToggleSwitch();
- mToggleServiceDividerSwitchPreference.setVisible(false);
+ mToggleServiceSwitchPreference.setVisible(false);
}
/**
diff --git a/src/com/android/settings/accessibility/LaunchAccessibilityActivityPreferenceFragment.java b/src/com/android/settings/accessibility/LaunchAccessibilityActivityPreferenceFragment.java
index b2c3c4dbf8..4db7857786 100644
--- a/src/com/android/settings/accessibility/LaunchAccessibilityActivityPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/LaunchAccessibilityActivityPreferenceFragment.java
@@ -36,15 +36,14 @@ import android.view.View;
import android.view.accessibility.AccessibilityManager;
import androidx.annotation.Nullable;
-import androidx.preference.SwitchPreference;
import com.android.settings.R;
+import com.android.settings.widget.SettingsMainSwitchPreference;
import java.util.List;
/** Fragment for providing open activity button. */
-public class LaunchAccessibilityActivityPreferenceFragment extends
- ToggleFeaturePreferenceFragment {
+public class LaunchAccessibilityActivityPreferenceFragment extends ToggleFeaturePreferenceFragment {
private static final String TAG = "LaunchA11yActivity";
private static final String EMPTY_STRING = "";
@@ -52,7 +51,7 @@ public class LaunchAccessibilityActivityPreferenceFragment extends
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
- mToggleServiceDividerSwitchPreference.setSwitchVisibility(View.GONE);
+ mToggleServiceSwitchPreference.hide();
}
@Override
@@ -62,16 +61,6 @@ public class LaunchAccessibilityActivityPreferenceFragment extends
}
@Override
- protected void onInstallSwitchPreferenceToggleSwitch() {
- super.onInstallSwitchPreferenceToggleSwitch();
- mToggleServiceDividerSwitchPreference.setOnPreferenceClickListener((preference) -> {
- final boolean checked = ((DividerSwitchPreference) preference).isChecked();
- onPreferenceToggled(mPreferenceKey, checked);
- return false;
- });
- }
-
- @Override
protected void onProcessArguments(Bundle arguments) {
super.onProcessArguments(arguments);
@@ -111,7 +100,7 @@ public class LaunchAccessibilityActivityPreferenceFragment extends
}
@Override
- protected void updateToggleServiceTitle(SwitchPreference switchPreference) {
+ protected void updateToggleServiceTitle(SettingsMainSwitchPreference switchPreference) {
final AccessibilityShortcutInfo info = getAccessibilityShortcutInfo();
final String switchBarText = (info == null) ? EMPTY_STRING : getString(
R.string.accessibility_service_primary_open_title,
diff --git a/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java b/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java
index 04491cccd4..02016e5e03 100644
--- a/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java
@@ -41,14 +41,15 @@ import android.view.Menu;
import android.view.MenuInflater;
import android.view.View;
import android.view.accessibility.AccessibilityManager;
+import android.widget.Switch;
import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
import com.android.internal.widget.LockPatternUtils;
import com.android.settings.R;
import com.android.settings.accessibility.AccessibilityUtil.UserShortcutType;
import com.android.settings.password.ConfirmDeviceCredentialActivity;
+import com.android.settings.widget.SettingsMainSwitchPreference;
import com.android.settingslib.accessibility.AccessibilityUtils;
import java.util.List;
@@ -198,7 +199,7 @@ public class ToggleAccessibilityServicePreferenceFragment extends
}
@Override
- protected void updateToggleServiceTitle(SwitchPreference switchPreference) {
+ protected void updateToggleServiceTitle(SettingsMainSwitchPreference switchPreference) {
final AccessibilityServiceInfo info = getAccessibilityServiceInfo();
final String switchBarText = (info == null) ? "" :
getString(R.string.accessibility_service_primary_switch_title,
@@ -206,13 +207,14 @@ public class ToggleAccessibilityServicePreferenceFragment extends
switchPreference.setTitle(switchBarText);
}
- private void updateSwitchBarToggleSwitch() {
+ @Override
+ protected void updateSwitchBarToggleSwitch() {
final boolean checked = AccessibilityUtils.getEnabledServicesFromSettings(getPrefContext())
.contains(mComponentName);
- if (mToggleServiceDividerSwitchPreference.isChecked() == checked) {
+ if (mToggleServiceSwitchPreference.isChecked() == checked) {
return;
}
- mToggleServiceDividerSwitchPreference.setChecked(checked);
+ mToggleServiceSwitchPreference.setChecked(checked);
}
/**
@@ -263,7 +265,7 @@ public class ToggleAccessibilityServicePreferenceFragment extends
}
private void handleConfirmServiceEnabled(boolean confirmed) {
- mToggleServiceDividerSwitchPreference.setChecked(confirmed);
+ mToggleServiceSwitchPreference.setChecked(confirmed);
getArguments().putBoolean(AccessibilitySettings.EXTRA_CHECKED, confirmed);
onPreferenceToggled(mPreferenceKey, confirmed);
}
@@ -286,9 +288,10 @@ public class ToggleAccessibilityServicePreferenceFragment extends
}
@Override
- protected void onInstallSwitchPreferenceToggleSwitch() {
- super.onInstallSwitchPreferenceToggleSwitch();
- mToggleServiceDividerSwitchPreference.setOnPreferenceClickListener(this::onPreferenceClick);
+ public void onSwitchChanged(Switch switchView, boolean isChecked) {
+ if (isChecked != mToggleServiceSwitchPreference.isChecked()) {
+ onPreferenceClick(mToggleServiceSwitchPreference);
+ }
}
@Override
@@ -296,7 +299,7 @@ public class ToggleAccessibilityServicePreferenceFragment extends
final int shortcutTypes = retrieveUserShortcutType(getPrefContext(),
mComponentName.flattenToString(), UserShortcutType.SOFTWARE);
if (preference.isChecked()) {
- if (!mToggleServiceDividerSwitchPreference.isChecked()) {
+ if (!mToggleServiceSwitchPreference.isChecked()) {
preference.setChecked(false);
showPopupDialog(DialogEnums.ENABLE_WARNING_FROM_SHORTCUT_TOGGLE);
} else {
@@ -314,7 +317,7 @@ public class ToggleAccessibilityServicePreferenceFragment extends
@Override
public void onSettingsClicked(ShortcutPreference preference) {
final boolean isServiceOnOrShortcutAdded = mShortcutPreference.isChecked()
- || mToggleServiceDividerSwitchPreference.isChecked();
+ || mToggleServiceSwitchPreference.isChecked();
showPopupDialog(isServiceOnOrShortcutAdded ? DialogEnums.EDIT_SHORTCUT
: DialogEnums.ENABLE_WARNING_FROM_SHORTCUT);
}
@@ -453,9 +456,14 @@ public class ToggleAccessibilityServicePreferenceFragment extends
}
private boolean onPreferenceClick(Preference preference) {
- boolean checked = ((DividerSwitchPreference) preference).isChecked();
+ boolean checked = ((SettingsMainSwitchPreference) preference).isChecked();
if (checked) {
- mToggleServiceDividerSwitchPreference.setChecked(false);
+ mToggleServiceSwitchPreference.setChecked(true);
+ getArguments().putBoolean(AccessibilitySettings.EXTRA_CHECKED,
+ /* enableService */ true);
+ showDialog(DialogEnums.DISABLE_WARNING_FROM_TOGGLE);
+ } else {
+ mToggleServiceSwitchPreference.setChecked(false);
getArguments().putBoolean(AccessibilitySettings.EXTRA_CHECKED,
/* disableService */ false);
if (!mShortcutPreference.isChecked()) {
@@ -466,11 +474,6 @@ public class ToggleAccessibilityServicePreferenceFragment extends
showPopupDialog(DialogEnums.LAUNCH_ACCESSIBILITY_TUTORIAL);
}
}
- } else {
- mToggleServiceDividerSwitchPreference.setChecked(true);
- getArguments().putBoolean(AccessibilitySettings.EXTRA_CHECKED,
- /* enableService */ true);
- showDialog(DialogEnums.DISABLE_WARNING_FROM_TOGGLE);
}
return true;
}
diff --git a/src/com/android/settings/accessibility/ToggleColorInversionPreferenceFragment.java b/src/com/android/settings/accessibility/ToggleColorInversionPreferenceFragment.java
index a45cd49656..7fd30c6755 100644
--- a/src/com/android/settings/accessibility/ToggleColorInversionPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleColorInversionPreferenceFragment.java
@@ -31,15 +31,15 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-import androidx.preference.SwitchPreference;
-
import com.android.settings.R;
+import com.android.settings.widget.SettingsMainSwitchPreference;
import java.util.ArrayList;
import java.util.List;
/** Settings page for color inversion. */
-public class ToggleColorInversionPreferenceFragment extends ToggleFeaturePreferenceFragment {
+public class ToggleColorInversionPreferenceFragment extends
+ ToggleFeaturePreferenceFragment {
private static final String ENABLED = Settings.Secure.ACCESSIBILITY_DISPLAY_INVERSION_ENABLED;
private final Handler mHandler = new Handler();
@@ -64,26 +64,15 @@ public class ToggleColorInversionPreferenceFragment extends ToggleFeaturePrefere
@Override
protected void onRemoveSwitchPreferenceToggleSwitch() {
super.onRemoveSwitchPreferenceToggleSwitch();
- mToggleServiceDividerSwitchPreference.setOnPreferenceClickListener(null);
+ mToggleServiceSwitchPreference.setOnPreferenceClickListener(null);
}
@Override
- protected void updateToggleServiceTitle(SwitchPreference switchPreference) {
+ protected void updateToggleServiceTitle(SettingsMainSwitchPreference switchPreference) {
switchPreference.setTitle(R.string.accessibility_display_inversion_switch_title);
}
@Override
- protected void onInstallSwitchPreferenceToggleSwitch() {
- super.onInstallSwitchPreferenceToggleSwitch();
- updateSwitchBarToggleSwitch();
- mToggleServiceDividerSwitchPreference.setOnPreferenceClickListener((preference) -> {
- boolean checked = ((SwitchPreference) preference).isChecked();
- onPreferenceToggled(mPreferenceKey, checked);
- return false;
- });
- }
-
- @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
mComponentName = COLOR_INVERSION_COMPONENT_NAME;
@@ -128,11 +117,12 @@ public class ToggleColorInversionPreferenceFragment extends ToggleFeaturePrefere
mComponentName);
}
- private void updateSwitchBarToggleSwitch() {
+ @Override
+ protected void updateSwitchBarToggleSwitch() {
final boolean checked = Settings.Secure.getInt(getContentResolver(), ENABLED, OFF) == ON;
- if (mToggleServiceDividerSwitchPreference.isChecked() == checked) {
+ if (mToggleServiceSwitchPreference.isChecked() == checked) {
return;
}
- mToggleServiceDividerSwitchPreference.setChecked(checked);
+ mToggleServiceSwitchPreference.setChecked(checked);
}
}
diff --git a/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragment.java b/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragment.java
index 3fb9b38e5c..c12884b04a 100644
--- a/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragment.java
@@ -33,11 +33,10 @@ import android.view.View;
import android.view.ViewGroup;
import androidx.preference.Preference;
-import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
import com.android.settings.R;
import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settings.widget.SettingsMainSwitchPreference;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.search.SearchIndexable;
@@ -99,34 +98,19 @@ public final class ToggleDaltonizerPreferenceFragment extends ToggleFeaturePrefe
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
- updatePreferenceOrder();
}
/** Customizes the order by preference key. */
- private List<String> getPreferenceOrderList() {
- List<String> lists = new ArrayList<>();
- lists.add(KEY_PREVIEW);
+ protected List<String> getPreferenceOrderList() {
+ final List<String> lists = new ArrayList<>();
lists.add(KEY_USE_SERVICE_PREFERENCE);
+ lists.add(KEY_PREVIEW);
lists.add(KEY_CATEGORY_MODE);
lists.add(KEY_GENERAL_CATEGORY);
lists.add(KEY_INTRODUCTION_CATEGORY);
return lists;
}
- private void updatePreferenceOrder() {
- List<String> lists = getPreferenceOrderList();
- final PreferenceScreen preferenceScreen = getPreferenceScreen();
- preferenceScreen.setOrderingAsAdded(false);
-
- final int size = lists.size();
- for (int i = 0; i < size; i++) {
- final Preference preference = preferenceScreen.findPreference(lists.get(i));
- if (preference != null) {
- preference.setOrder(i);
- }
- }
- }
-
@Override
public void onResume() {
super.onResume();
@@ -175,37 +159,27 @@ public final class ToggleDaltonizerPreferenceFragment extends ToggleFeaturePrefe
@Override
protected void onRemoveSwitchPreferenceToggleSwitch() {
super.onRemoveSwitchPreferenceToggleSwitch();
- mToggleServiceDividerSwitchPreference.setOnPreferenceClickListener(null);
+ mToggleServiceSwitchPreference.setOnPreferenceClickListener(null);
}
@Override
- protected void updateToggleServiceTitle(SwitchPreference switchPreference) {
+ protected void updateToggleServiceTitle(SettingsMainSwitchPreference switchPreference) {
switchPreference.setTitle(R.string.accessibility_daltonizer_primary_switch_title);
}
@Override
- protected void onInstallSwitchPreferenceToggleSwitch() {
- super.onInstallSwitchPreferenceToggleSwitch();
- updateSwitchBarToggleSwitch();
- mToggleServiceDividerSwitchPreference.setOnPreferenceClickListener((preference) -> {
- boolean checked = ((SwitchPreference) preference).isChecked();
- onPreferenceToggled(mPreferenceKey, checked);
- return false;
- });
- }
-
- @Override
int getUserShortcutTypes() {
return AccessibilityUtil.getUserShortcutTypesFromSettings(getPrefContext(),
mComponentName);
}
- private void updateSwitchBarToggleSwitch() {
+ @Override
+ protected void updateSwitchBarToggleSwitch() {
final boolean checked = Settings.Secure.getInt(getContentResolver(), ENABLED, OFF) == ON;
- if (mToggleServiceDividerSwitchPreference.isChecked() == checked) {
+ if (mToggleServiceSwitchPreference.isChecked() == checked) {
return;
}
- mToggleServiceDividerSwitchPreference.setChecked(checked);
+ mToggleServiceSwitchPreference.setChecked(checked);
}
public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
diff --git a/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java b/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java
index 87d07a82b9..ec22a28aee 100644
--- a/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java
@@ -40,20 +40,22 @@ import android.view.accessibility.AccessibilityManager;
import android.view.accessibility.AccessibilityManager.TouchExplorationStateChangeListener;
import android.widget.CheckBox;
import android.widget.ImageView;
+import android.widget.Switch;
import androidx.annotation.VisibleForTesting;
import androidx.preference.Preference;
import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
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.SettingsMainSwitchBar;
+import com.android.settings.widget.SettingsMainSwitchPreference;
import com.android.settingslib.accessibility.AccessibilityUtils;
import com.android.settingslib.widget.FooterPreference;
+import com.android.settingslib.widget.OnMainSwitchChangeListener;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@@ -66,9 +68,9 @@ import java.util.Locale;
* and dialog management.
*/
public abstract class ToggleFeaturePreferenceFragment extends SettingsPreferenceFragment
- implements ShortcutPreference.OnClickCallback {
+ implements ShortcutPreference.OnClickCallback, OnMainSwitchChangeListener {
- protected DividerSwitchPreference mToggleServiceDividerSwitchPreference;
+ protected SettingsMainSwitchPreference mToggleServiceSwitchPreference;
protected ShortcutPreference mShortcutPreference;
protected Preference mSettingsPreference;
protected String mPreferenceKey;
@@ -88,6 +90,7 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference
protected static final String KEY_INTRODUCTION_CATEGORY = "introduction_categories";
private static final String KEY_SHORTCUT_PREFERENCE = "shortcut_preference";
protected static final String KEY_SAVED_USER_SHORTCUT_TYPE = "shortcut_type";
+ protected static final String KEY_ANIMATED_IMAGE = "animated_image";
private TouchExplorationStateChangeListener mTouchExplorationStateChangeListener;
private SettingsContentObserver mSettingsContentObserver;
@@ -153,7 +156,7 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference
onProcessArguments(getArguments());
initAnimatedImagePreference();
- initToggleServiceDividerSwitchPreference();
+ initToggleServiceSwitchPreference();
initGeneralCategory();
initShortcutPreference();
initSettingsPreference();
@@ -162,7 +165,7 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference
installActionBarToggleSwitch();
- updateToggleServiceTitle(mToggleServiceDividerSwitchPreference);
+ updateToggleServiceTitle(mToggleServiceSwitchPreference);
mTouchExplorationStateChangeListener = isTouchExplorationEnabled -> {
removeDialog(DialogEnums.EDIT_SHORTCUT);
@@ -178,6 +181,8 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference
final SettingsActivity activity = (SettingsActivity) getActivity();
final SettingsMainSwitchBar switchBar = activity.getSwitchBar();
switchBar.hide();
+
+ updatePreferenceOrder();
}
@Override
@@ -305,12 +310,17 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference
removeActionBarToggleSwitch();
}
+ @Override
+ public void onSwitchChanged(Switch switchView, boolean isChecked) {
+ onPreferenceToggled(mPreferenceKey, isChecked);
+ }
+
/**
* Returns the shortcut type list which has been checked by user.
*/
abstract int getUserShortcutTypes();
- protected void updateToggleServiceTitle(SwitchPreference switchPreference) {
+ protected void updateToggleServiceTitle(SettingsMainSwitchPreference switchPreference) {
switchPreference.setTitle(R.string.accessibility_service_primary_switch_title);
}
@@ -318,18 +328,24 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference
protected void onInstallSwitchPreferenceToggleSwitch() {
// Implement this to set a checked listener.
+ updateSwitchBarToggleSwitch();
+ mToggleServiceSwitchPreference.addOnSwitchChangeListener(this);
}
protected void onRemoveSwitchPreferenceToggleSwitch() {
// Implement this to reset a checked listener.
}
+ protected void updateSwitchBarToggleSwitch() {
+ // Implement this to update the state of switch.
+ }
+
private void installActionBarToggleSwitch() {
onInstallSwitchPreferenceToggleSwitch();
}
private void removeActionBarToggleSwitch() {
- mToggleServiceDividerSwitchPreference.setOnPreferenceClickListener(null);
+ mToggleServiceSwitchPreference.setOnPreferenceClickListener(null);
onRemoveSwitchPreferenceToggleSwitch();
}
@@ -361,6 +377,31 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference
}
}
+ /** Customizes the order by preference key. */
+ protected List<String> getPreferenceOrderList() {
+ final List<String> lists = new ArrayList<>();
+ lists.add(KEY_USE_SERVICE_PREFERENCE);
+ lists.add(KEY_ANIMATED_IMAGE);
+ lists.add(KEY_GENERAL_CATEGORY);
+ lists.add(KEY_INTRODUCTION_CATEGORY);
+ return lists;
+ }
+
+ private void updatePreferenceOrder() {
+ final List<String> lists = getPreferenceOrderList();
+
+ final PreferenceScreen preferenceScreen = getPreferenceScreen();
+ preferenceScreen.setOrderingAsAdded(false);
+
+ final int size = lists.size();
+ for (int i = 0; i < size; i++) {
+ final Preference preference = preferenceScreen.findPreference(lists.get(i));
+ if (preference != null) {
+ preference.setOrder(i);
+ }
+ }
+ }
+
private Drawable getDrawableFromUri(Uri imageUri) {
if (mImageGetterCacheView == null) {
mImageGetterCacheView = new ImageView(getPrefContext());
@@ -401,19 +442,20 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference
animatedImagePreference.setImageUri(mImageUri);
animatedImagePreference.setSelectable(false);
animatedImagePreference.setMaxHeight(screenHalfHeight);
+ animatedImagePreference.setKey(KEY_ANIMATED_IMAGE);
getPreferenceScreen().addPreference(animatedImagePreference);
}
- private void initToggleServiceDividerSwitchPreference() {
- mToggleServiceDividerSwitchPreference = new DividerSwitchPreference(getPrefContext());
- mToggleServiceDividerSwitchPreference.setKey(KEY_USE_SERVICE_PREFERENCE);
+ private void initToggleServiceSwitchPreference() {
+ mToggleServiceSwitchPreference = new SettingsMainSwitchPreference(getPrefContext());
+ mToggleServiceSwitchPreference.setKey(KEY_USE_SERVICE_PREFERENCE);
if (getArguments().containsKey(AccessibilitySettings.EXTRA_CHECKED)) {
final boolean enabled = getArguments().getBoolean(AccessibilitySettings.EXTRA_CHECKED);
- mToggleServiceDividerSwitchPreference.setChecked(enabled);
+ mToggleServiceSwitchPreference.setChecked(enabled);
}
- getPreferenceScreen().addPreference(mToggleServiceDividerSwitchPreference);
+ getPreferenceScreen().addPreference(mToggleServiceSwitchPreference);
}
private void initGeneralCategory() {
@@ -598,7 +640,7 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference
* This method will be invoked when a button in the edit shortcut dialog is clicked.
*
* @param dialog The dialog that received the click
- * @param which The button that was clicked
+ * @param which The button that was clicked
*/
protected void callOnAlertDialogCheckboxClicked(DialogInterface dialog, int which) {
if (mComponentName == null) {
@@ -676,7 +718,7 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference
}
/**
- * Setups a configurable default if the setting has never been set.
+ * Setups a configurable default if the setting has never been set.
*/
private static void setupDefaultShortcutIfNecessary(Context context) {
final String targetKey = Settings.Secure.ACCESSIBILITY_SHORTCUT_TARGET_SERVICE;
diff --git a/src/com/android/settings/accessibility/ToggleReduceBrightColorsPreferenceFragment.java b/src/com/android/settings/accessibility/ToggleReduceBrightColorsPreferenceFragment.java
index ca19681d42..09690d96ba 100644
--- a/src/com/android/settings/accessibility/ToggleReduceBrightColorsPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleReduceBrightColorsPreferenceFragment.java
@@ -29,13 +29,10 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
-
import com.android.internal.accessibility.AccessibilityShortcutController;
import com.android.settings.R;
import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settings.widget.SettingsMainSwitchPreference;
import com.android.settingslib.search.SearchIndexable;
import java.util.ArrayList;
@@ -44,6 +41,7 @@ import java.util.List;
/** Settings for reducing brightness. */
@SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
public class ToggleReduceBrightColorsPreferenceFragment extends ToggleFeaturePreferenceFragment {
+
private static final String REDUCE_BRIGHT_COLORS_ACTIVATED_KEY =
Settings.Secure.REDUCE_BRIGHT_COLORS_ACTIVATED;
private static final String KEY_INTENSITY = "rbc_intensity";
@@ -73,7 +71,7 @@ public class ToggleReduceBrightColorsPreferenceFragment extends ToggleFeaturePre
mSettingsContentObserver = new SettingsContentObserver(mHandler, enableServiceFeatureKeys) {
@Override
public void onChange(boolean selfChange, Uri uri) {
- updateSwitchBarToggleSwitch();
+ updateSwitchBarToggleSwitch();
}
};
@@ -83,11 +81,10 @@ public class ToggleReduceBrightColorsPreferenceFragment extends ToggleFeaturePre
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
- updatePreferenceOrder();
}
/** Customizes the order by preference key. */
- private List<String> getPreferenceOrderList() {
+ protected List<String> getPreferenceOrderList() {
final List<String> lists = new ArrayList<>();
lists.add(KEY_USE_SERVICE_PREFERENCE);
lists.add(KEY_INTENSITY);
@@ -97,20 +94,6 @@ public class ToggleReduceBrightColorsPreferenceFragment extends ToggleFeaturePre
return lists;
}
- private void updatePreferenceOrder() {
- final List<String> lists = getPreferenceOrderList();
- final PreferenceScreen preferenceScreen = getPreferenceScreen();
- preferenceScreen.setOrderingAsAdded(false);
-
- final int size = lists.size();
- for (int i = 0; i < size; i++) {
- final Preference preference = preferenceScreen.findPreference(lists.get(i));
- if (preference != null) {
- preference.setOrder(i);
- }
- }
- }
-
@Override
public void onResume() {
super.onResume();
@@ -151,41 +134,31 @@ public class ToggleReduceBrightColorsPreferenceFragment extends ToggleFeaturePre
@Override
protected void onRemoveSwitchPreferenceToggleSwitch() {
super.onRemoveSwitchPreferenceToggleSwitch();
- mToggleServiceDividerSwitchPreference.setOnPreferenceClickListener(
+ mToggleServiceSwitchPreference.setOnPreferenceClickListener(
/* onPreferenceClickListener= */ null);
}
@Override
- protected void updateToggleServiceTitle(SwitchPreference switchPreference) {
+ protected void updateToggleServiceTitle(SettingsMainSwitchPreference switchPreference) {
switchPreference.setTitle(R.string.reduce_bright_colors_preference_title);
}
@Override
- protected void onInstallSwitchPreferenceToggleSwitch() {
- super.onInstallSwitchPreferenceToggleSwitch();
- updateSwitchBarToggleSwitch();
- mToggleServiceDividerSwitchPreference.setOnPreferenceClickListener((preference) -> {
- boolean checked = ((SwitchPreference) preference).isChecked();
- onPreferenceToggled(mPreferenceKey, checked);
- return false;
- });
- }
-
- @Override
int getUserShortcutTypes() {
return AccessibilityUtil.getUserShortcutTypesFromSettings(getPrefContext(),
mComponentName);
}
- private void updateSwitchBarToggleSwitch() {
+ @Override
+ protected void updateSwitchBarToggleSwitch() {
final boolean checked = Settings.Secure.getInt(getContentResolver(),
REDUCE_BRIGHT_COLORS_ACTIVATED_KEY, OFF) == ON;
mRbcIntensityPreferenceController.updateState(getPreferenceScreen()
.findPreference(KEY_INTENSITY));
mRbcPersistencePreferenceController.updateState(getPreferenceScreen()
.findPreference(KEY_PERSIST));
- if (mToggleServiceDividerSwitchPreference.isChecked() != checked) {
- mToggleServiceDividerSwitchPreference.setChecked(checked);
+ if (mToggleServiceSwitchPreference.isChecked() != checked) {
+ mToggleServiceSwitchPreference.setChecked(checked);
}
}
diff --git a/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java b/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java
index 8e14e5a471..ff467226ea 100644
--- a/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java
@@ -304,8 +304,7 @@ public class ToggleScreenMagnificationPreferenceFragment extends
@Override
protected void onInstallSwitchPreferenceToggleSwitch() {
- super.onInstallSwitchPreferenceToggleSwitch();
- mToggleServiceDividerSwitchPreference.setVisible(false);
+ mToggleServiceSwitchPreference.setVisible(false);
}
@Override
diff --git a/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentForSetupWizard.java b/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentForSetupWizard.java
index bea528a788..86ead5c681 100644
--- a/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentForSetupWizard.java
+++ b/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentForSetupWizard.java
@@ -33,12 +33,12 @@ public class ToggleScreenMagnificationPreferenceFragmentForSetupWizard
// Log the final choice in value if it's different from the previous value.
Bundle args = getArguments();
if ((args != null) && args.containsKey(AccessibilitySettings.EXTRA_CHECKED)) {
- if (mToggleServiceDividerSwitchPreference.isChecked() != args.getBoolean(
+ if (mToggleServiceSwitchPreference.isChecked() != args.getBoolean(
AccessibilitySettings.EXTRA_CHECKED)) {
// TODO: Distinguish between magnification modes
mMetricsFeatureProvider.action(getContext(),
SettingsEnums.SUW_ACCESSIBILITY_TOGGLE_SCREEN_MAGNIFICATION,
- mToggleServiceDividerSwitchPreference.isChecked());
+ mToggleServiceSwitchPreference.isChecked());
}
}
super.onStop();
diff --git a/src/com/android/settings/accessibility/ToggleScreenReaderPreferenceFragmentForSetupWizard.java b/src/com/android/settings/accessibility/ToggleScreenReaderPreferenceFragmentForSetupWizard.java
index 4d7b65359b..c0d54e8eee 100644
--- a/src/com/android/settings/accessibility/ToggleScreenReaderPreferenceFragmentForSetupWizard.java
+++ b/src/com/android/settings/accessibility/ToggleScreenReaderPreferenceFragmentForSetupWizard.java
@@ -28,7 +28,7 @@ public class ToggleScreenReaderPreferenceFragmentForSetupWizard
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
- mToggleSwitchWasInitiallyChecked = mToggleServiceDividerSwitchPreference.isChecked();
+ mToggleSwitchWasInitiallyChecked = mToggleServiceSwitchPreference.isChecked();
}
@Override
@@ -39,10 +39,10 @@ public class ToggleScreenReaderPreferenceFragmentForSetupWizard
@Override
public void onStop() {
// Log the final choice in value if it's different from the previous value.
- if (mToggleServiceDividerSwitchPreference.isChecked() != mToggleSwitchWasInitiallyChecked) {
+ if (mToggleServiceSwitchPreference.isChecked() != mToggleSwitchWasInitiallyChecked) {
mMetricsFeatureProvider.action(getContext(),
SettingsEnums.SUW_ACCESSIBILITY_TOGGLE_SCREEN_READER,
- mToggleServiceDividerSwitchPreference.isChecked());
+ mToggleServiceSwitchPreference.isChecked());
}
super.onStop();
}
diff --git a/src/com/android/settings/accessibility/ToggleSelectToSpeakPreferenceFragmentForSetupWizard.java b/src/com/android/settings/accessibility/ToggleSelectToSpeakPreferenceFragmentForSetupWizard.java
index 87b846945a..4334cd0e7a 100644
--- a/src/com/android/settings/accessibility/ToggleSelectToSpeakPreferenceFragmentForSetupWizard.java
+++ b/src/com/android/settings/accessibility/ToggleSelectToSpeakPreferenceFragmentForSetupWizard.java
@@ -28,7 +28,7 @@ public class ToggleSelectToSpeakPreferenceFragmentForSetupWizard
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
- mToggleSwitchWasInitiallyChecked = mToggleServiceDividerSwitchPreference.isChecked();
+ mToggleSwitchWasInitiallyChecked = mToggleServiceSwitchPreference.isChecked();
}
@Override
@@ -39,10 +39,10 @@ public class ToggleSelectToSpeakPreferenceFragmentForSetupWizard
@Override
public void onStop() {
// Log the final choice in value if it's different from the previous value.
- if (mToggleServiceDividerSwitchPreference.isChecked() != mToggleSwitchWasInitiallyChecked) {
+ if (mToggleServiceSwitchPreference.isChecked() != mToggleSwitchWasInitiallyChecked) {
mMetricsFeatureProvider.action(getContext(),
SettingsEnums.SUW_ACCESSIBILITY_TOGGLE_SELECT_TO_SPEAK,
- mToggleServiceDividerSwitchPreference.isChecked());
+ mToggleServiceSwitchPreference.isChecked());
}
super.onStop();
diff --git a/src/com/android/settings/accessibility/VolumeShortcutToggleScreenReaderPreferenceFragmentForSetupWizard.java b/src/com/android/settings/accessibility/VolumeShortcutToggleScreenReaderPreferenceFragmentForSetupWizard.java
index 6e4a233c60..4337177449 100644
--- a/src/com/android/settings/accessibility/VolumeShortcutToggleScreenReaderPreferenceFragmentForSetupWizard.java
+++ b/src/com/android/settings/accessibility/VolumeShortcutToggleScreenReaderPreferenceFragmentForSetupWizard.java
@@ -29,7 +29,7 @@ public class VolumeShortcutToggleScreenReaderPreferenceFragmentForSetupWizard
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
- mToggleSwitchWasInitiallyChecked = mToggleServiceDividerSwitchPreference.isChecked();
+ mToggleSwitchWasInitiallyChecked = mToggleServiceSwitchPreference.isChecked();
}
@Override
@@ -40,10 +40,10 @@ public class VolumeShortcutToggleScreenReaderPreferenceFragmentForSetupWizard
@Override
public void onStop() {
// Log the final choice in value if it's different from the previous value.
- if (mToggleServiceDividerSwitchPreference.isChecked() != mToggleSwitchWasInitiallyChecked) {
+ if (mToggleServiceSwitchPreference.isChecked() != mToggleSwitchWasInitiallyChecked) {
mMetricsFeatureProvider.action(getContext(),
SettingsEnums.SUW_ACCESSIBILITY_TOGGLE_SCREEN_READER,
- mToggleServiceDividerSwitchPreference.isChecked());
+ mToggleServiceSwitchPreference.isChecked());
}
super.onStop();
diff --git a/src/com/android/settings/accessibility/VolumeShortcutToggleSelectToSpeakPreferenceFragmentForSetupWizard.java b/src/com/android/settings/accessibility/VolumeShortcutToggleSelectToSpeakPreferenceFragmentForSetupWizard.java
index 3dd648cd59..acdfdc980d 100644
--- a/src/com/android/settings/accessibility/VolumeShortcutToggleSelectToSpeakPreferenceFragmentForSetupWizard.java
+++ b/src/com/android/settings/accessibility/VolumeShortcutToggleSelectToSpeakPreferenceFragmentForSetupWizard.java
@@ -29,7 +29,7 @@ public class VolumeShortcutToggleSelectToSpeakPreferenceFragmentForSetupWizard
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
- mToggleSwitchWasInitiallyChecked = mToggleServiceDividerSwitchPreference.isChecked();
+ mToggleSwitchWasInitiallyChecked = mToggleServiceSwitchPreference.isChecked();
}
@Override
@@ -40,10 +40,10 @@ public class VolumeShortcutToggleSelectToSpeakPreferenceFragmentForSetupWizard
@Override
public void onStop() {
// Log the final choice in value if it's different from the previous value.
- if (mToggleServiceDividerSwitchPreference.isChecked() != mToggleSwitchWasInitiallyChecked) {
+ if (mToggleServiceSwitchPreference.isChecked() != mToggleSwitchWasInitiallyChecked) {
mMetricsFeatureProvider.action(getContext(),
SettingsEnums.SUW_ACCESSIBILITY_TOGGLE_SELECT_TO_SPEAK,
- mToggleServiceDividerSwitchPreference.isChecked());
+ mToggleServiceSwitchPreference.isChecked());
}
super.onStop();
diff --git a/src/com/android/settings/widget/SettingsMainSwitchPreference.java b/src/com/android/settings/widget/SettingsMainSwitchPreference.java
index 2a7aa7384a..76f9b41d80 100644
--- a/src/com/android/settings/widget/SettingsMainSwitchPreference.java
+++ b/src/com/android/settings/widget/SettingsMainSwitchPreference.java
@@ -44,7 +44,8 @@ public class SettingsMainSwitchPreference extends TwoStatePreference {
private final List<OnMainSwitchChangeListener> mSwitchChangeListeners = new ArrayList<>();
private SettingsMainSwitchBar mMainSwitchBar;
- private String mTitle;
+ private CharSequence mTitle;
+ private boolean mIsVisible;
private RestrictedLockUtils.EnforcedAdmin mEnforcedAdmin;
@@ -77,16 +78,22 @@ public class SettingsMainSwitchPreference extends TwoStatePreference {
holder.setDividerAllowedBelow(false);
mMainSwitchBar = (SettingsMainSwitchBar) holder.findViewById(R.id.main_switch_bar);
+
mMainSwitchBar.show();
updateStatus(isChecked());
registerListenerToSwitchBar();
+
+ if (!mIsVisible) {
+ mMainSwitchBar.hide();
+ }
}
private void init(Context context, AttributeSet attrs) {
setLayoutResource(R.layout.preference_widget_main_switch);
+ mIsVisible = true;
if (attrs != null) {
- TypedArray a = context.obtainStyledAttributes(attrs,
+ final TypedArray a = context.obtainStyledAttributes(attrs,
androidx.preference.R.styleable.Preference, 0/*defStyleAttr*/,
0/*defStyleRes*/);
final CharSequence title = TypedArrayUtils.getText(a,
@@ -99,6 +106,14 @@ public class SettingsMainSwitchPreference extends TwoStatePreference {
}
}
+ @Override
+ public void setChecked(boolean checked) {
+ super.setChecked(checked);
+ if (mMainSwitchBar != null) {
+ mMainSwitchBar.setChecked(checked);
+ }
+ }
+
/**
* Return the SettingsMainSwitchBar
*/
@@ -106,11 +121,9 @@ public class SettingsMainSwitchPreference extends TwoStatePreference {
return mMainSwitchBar;
}
- /**
- * Set the preference title text
- */
- public void setTitle(String text) {
- mTitle = text;
+ @Override
+ public void setTitle(CharSequence title) {
+ mTitle = title;
if (mMainSwitchBar != null) {
mMainSwitchBar.setTitle(mTitle);
}
@@ -133,6 +146,7 @@ public class SettingsMainSwitchPreference extends TwoStatePreference {
* Show the MainSwitchBar
*/
public void show() {
+ mIsVisible = true;
if (mMainSwitchBar != null) {
mMainSwitchBar.show();
}
@@ -142,6 +156,7 @@ public class SettingsMainSwitchPreference extends TwoStatePreference {
* Hide the MainSwitchBar
*/
public void hide() {
+ mIsVisible = false;
if (mMainSwitchBar != null) {
mMainSwitchBar.hide();
}
diff --git a/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java b/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java
index 735fecc9c9..024c1c3303 100644
--- a/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java
+++ b/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java
@@ -55,14 +55,15 @@ import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.Utils;
import com.android.settings.core.SubSettingLauncher;
import com.android.settings.network.ims.WifiCallingQueryImsState;
-import com.android.settings.widget.SwitchBar;
+import com.android.settings.widget.SettingsMainSwitchBar;
+import com.android.settingslib.widget.OnMainSwitchChangeListener;
/**
* This is the inner class of {@link WifiCallingSettings} fragment.
* The preference screen lets you enable/disable Wi-Fi Calling and change Wi-Fi Calling mode.
*/
public class WifiCallingSettingsForSub extends SettingsPreferenceFragment
- implements SwitchBar.OnSwitchChangeListener,
+ implements OnMainSwitchChangeListener,
Preference.OnPreferenceChangeListener {
private static final String TAG = "WifiCallingForSub";
@@ -85,8 +86,7 @@ public class WifiCallingSettingsForSub extends SettingsPreferenceFragment
public static final int LAUCH_APP_UPDATE = 1;
//UI objects
- private SwitchBar mSwitchBar;
- private Switch mSwitch;
+ private SettingsMainSwitchBar mSwitchBar;
private ListWithEntrySummaryPreference mButtonWfcMode;
private ListWithEntrySummaryPreference mButtonWfcRoamingMode;
private Preference mUpdateAddress;
@@ -190,7 +190,6 @@ public class WifiCallingSettingsForSub extends SettingsPreferenceFragment
mSwitchBar = getView().findViewById(R.id.switch_bar);
mSwitchBar.show();
- mSwitch = mSwitchBar.getSwitch();
}
@Override
@@ -296,7 +295,7 @@ public class WifiCallingSettingsForSub extends SettingsPreferenceFragment
mButtonWfcMode = findPreference(BUTTON_WFC_MODE);
mButtonWfcMode.setOnPreferenceChangeListener(this);
- mButtonWfcRoamingMode = findPreference(BUTTON_WFC_ROAMING_MODE);
+ mButtonWfcRoamingMode = findPreference(BUTTON_WFC_ROAMING_MODE);
mButtonWfcRoamingMode.setOnPreferenceChangeListener(this);
mUpdateAddress = findPreference(PREFERENCE_EMERGENCY_ADDRESS);
@@ -403,7 +402,7 @@ public class WifiCallingSettingsForSub extends SettingsPreferenceFragment
final WifiCallingQueryImsState queryIms = queryImsState(mSubId);
final boolean wfcEnabled = queryIms.isEnabledByUser()
&& queryIms.isAllowUserControl();
- mSwitch.setChecked(wfcEnabled);
+ mSwitchBar.setChecked(wfcEnabled);
final int wfcMode = mImsMmTelManager.getVoWiFiModeSetting();
final int wfcRoamingMode = mImsMmTelManager.getVoWiFiRoamingModeSetting();
mButtonWfcMode.setValue(Integer.toString(wfcMode));