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
diff --git a/color-check-baseline.xml b/color-check-baseline.xml
index 4aa67ab..b94da0d 100644
--- a/color-check-baseline.xml
+++ b/color-check-baseline.xml
@@ -2997,6 +2997,54 @@
priority="4"
summary="Using hardcoded color"
explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
+ errorLine1=" <path"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="res/drawable/ic_network_signal_blue.xml"
+ line="25"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardCodedColor"
+ severity="Error"
+ message="Avoid using hardcoded color"
+ category="Correctness"
+ priority="4"
+ summary="Using hardcoded color"
+ explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
+ errorLine1="C6.67,19.26,7.26,18.67,8,18.67z" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="res/drawable/ic_network_signal_blue.xml"
+ line="32"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="HardCodedColor"
+ severity="Error"
+ message="Avoid using hardcoded color"
+ category="Correctness"
+ priority="4"
+ summary="Using hardcoded color"
+ explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
+ errorLine1=" android:pathData="M16,12h1.33c0.74,0,1.33,0.6,1.33,1.33v12c0,0.74-0.6,1.33-1.33,1.33H16c-0.74,0-1.33-0.6-1.33-1.33v-12"
+ errorLine2="^">
+ <location
+ file="res/drawable/ic_network_signal_blue.xml"
+ line="35"
+ column="1"/>
+ </issue>
+
+ <issue
+ id="HardCodedColor"
+ severity="Error"
+ message="Avoid using hardcoded color"
+ category="Correctness"
+ priority="4"
+ summary="Using hardcoded color"
+ explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
errorLine1=" android:color="@color/notification_block_color"/>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
@@ -3525,27 +3573,11 @@
priority="4"
summary="Using hardcoded color"
explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
- errorLine1=" <string name="sync_plug" msgid="7956982719077985381">""<font fgcolor="#ffffffff">"Welcome to Google sync!"</font>" \nA Google approach to syncing data to allow access to your contacts, appointments, and more from wherever you are."</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~">
- <location
- file="res/values-en-rXC/strings.xml"
- line="2816"
- column="170"/>
- </issue>
-
- <issue
- id="HardCodedColor"
- severity="Error"
- message="Avoid using hardcoded color"
- category="Correctness"
- priority="4"
- summary="Using hardcoded color"
- explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
errorLine1=" <string name="sync_plug" msgid="7956982719077985381"><font fgcolor="#ffffffff">"Welcome to Google sync!"</font>" \nA Google approach to syncing data to allow access to your contacts, appointments and more from wherever you are."</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~">
<location
file="res/values-en-rAU/strings.xml"
- line="2818"
+ line="2821"
column="64"/>
</issue>
@@ -3561,7 +3593,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~">
<location
file="res/values-en-rCA/strings.xml"
- line="2818"
+ line="2821"
column="64"/>
</issue>
@@ -3577,7 +3609,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~">
<location
file="res/values-en-rGB/strings.xml"
- line="2818"
+ line="2821"
column="64"/>
</issue>
@@ -3593,7 +3625,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~">
<location
file="res/values-en-rIN/strings.xml"
- line="2818"
+ line="2821"
column="64"/>
</issue>
@@ -3605,11 +3637,27 @@
priority="4"
summary="Using hardcoded color"
explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
+ errorLine1=" <string name="sync_plug" msgid="7956982719077985381">""<font fgcolor="#ffffffff">"Welcome to Google sync!"</font>" \nA Google approach to syncing data to allow access to your contacts, appointments, and more from wherever you are."</string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="res/values-en-rXC/strings.xml"
+ line="2821"
+ column="170"/>
+ </issue>
+
+ <issue
+ id="HardCodedColor"
+ severity="Error"
+ message="Avoid using hardcoded color"
+ category="Correctness"
+ priority="4"
+ summary="Using hardcoded color"
+ explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
errorLine1=" <string name="sync_plug"><font fgcolor="#ffffffff">Welcome to Google sync!</font>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/strings.xml"
- line="6537"
+ line="6543"
column="36"/>
</issue>
@@ -3641,7 +3689,7 @@
errorLine2=" ^">
<location
file="res/values/styles.xml"
- line="434"
+ line="435"
column="44"/>
</issue>
@@ -3657,7 +3705,7 @@
errorLine2=" ^">
<location
file="res/values/styles.xml"
- line="440"
+ line="441"
column="44"/>
</issue>
@@ -3673,7 +3721,7 @@
errorLine2=" ^">
<location
file="res/values/styles.xml"
- line="441"
+ line="442"
column="44"/>
</issue>
@@ -3689,7 +3737,7 @@
errorLine2=" ^">
<location
file="res/values/styles.xml"
- line="477"
+ line="478"
column="34"/>
</issue>
@@ -3801,7 +3849,7 @@
errorLine2=" ^">
<location
file="res/values/themes.xml"
- line="273"
+ line="272"
column="42"/>
</issue>
@@ -3913,7 +3961,7 @@
errorLine2=" ^">
<location
file="res/values/themes_suw.xml"
- line="188"
+ line="196"
column="43"/>
</issue>
@@ -3929,7 +3977,7 @@
errorLine2=" ^">
<location
file="res/values/themes_suw.xml"
- line="189"
+ line="197"
column="42"/>
</issue>
@@ -3945,7 +3993,7 @@
errorLine2=" ^">
<location
file="res/values/themes_suw.xml"
- line="190"
+ line="198"
column="45"/>
</issue>
diff --git a/res/layout/wifi_calling_settings_preferences.xml b/res/layout/wifi_calling_settings_preferences.xml
index 7e411e1..98acd95 100644
--- a/res/layout/wifi_calling_settings_preferences.xml
+++ b/res/layout/wifi_calling_settings_preferences.xml
@@ -21,11 +21,11 @@
android:layout_height="match_parent"
android:orientation="vertical">
- <com.android.settings.widget.SwitchBar
+ <com.android.settings.widget.SettingsMainSwitchBar
android:id="@+id/switch_bar"
- android:layout_height="?android:attr/actionBarSize"
- android:layout_width="match_parent"
- android:theme="?attr/switchBarTheme" />
+ android:title="@string/wifi_calling_main_switch_title"
+ android:layout_height="wrap_content"
+ android:layout_width="match_parent" />
<FrameLayout
android:id="@android:id/tabcontent"
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 107ca38..d36467d 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -12753,6 +12753,8 @@
<string name="adaptive_battery_main_switch_title" translatable="false">Use adaptive battery</string>
<!-- Do not translate. Title for adaptive brightness main switch preferences. [CHAR LIMIT=50] -->
<string name="adaptive_brightness_main_switch_title" translatable="false">Use adaptive brightness</string>
+ <!-- Do not translate. Title for wifi calling main switch preferences. [CHAR LIMIT=50] -->
+ <string name="wifi_calling_main_switch_title" translatable="false">Use Wi-Fi calling</string>
<!-- Default preference title for showing all apps on device [CHAR_LIMIT=50]-->
<string name="default_see_all_apps_title">See all apps</string>
diff --git a/src/com/android/settings/accessibility/InvisibleToggleAccessibilityServicePreferenceFragment.java b/src/com/android/settings/accessibility/InvisibleToggleAccessibilityServicePreferenceFragment.java
index 6b44a0a..0c1876f 100644
--- a/src/com/android/settings/accessibility/InvisibleToggleAccessibilityServicePreferenceFragment.java
+++ b/src/com/android/settings/accessibility/InvisibleToggleAccessibilityServicePreferenceFragment.java
@@ -38,7 +38,7 @@
@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 b2c3c4d..4db7857 100644
--- a/src/com/android/settings/accessibility/LaunchAccessibilityActivityPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/LaunchAccessibilityActivityPreferenceFragment.java
@@ -36,15 +36,14 @@
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 void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
- mToggleServiceDividerSwitchPreference.setSwitchVisibility(View.GONE);
+ mToggleServiceSwitchPreference.hide();
}
@Override
@@ -62,16 +61,6 @@
}
@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 @@
}
@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 04491cc..02016e5 100644
--- a/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java
@@ -41,14 +41,15 @@
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 @@
}
@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 @@
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 @@
}
private void handleConfirmServiceEnabled(boolean confirmed) {
- mToggleServiceDividerSwitchPreference.setChecked(confirmed);
+ mToggleServiceSwitchPreference.setChecked(confirmed);
getArguments().putBoolean(AccessibilitySettings.EXTRA_CHECKED, confirmed);
onPreferenceToggled(mPreferenceKey, confirmed);
}
@@ -286,9 +288,10 @@
}
@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 @@
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 @@
@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 @@
}
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 @@
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 a45cd49..7fd30c6 100644
--- a/src/com/android/settings/accessibility/ToggleColorInversionPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleColorInversionPreferenceFragment.java
@@ -31,15 +31,15 @@
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 @@
@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 @@
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 3fb9b38..c12884b 100644
--- a/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragment.java
@@ -33,11 +33,10 @@
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 @@
@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 @@
@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 87d07a8..ec22a28 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.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 @@
* 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 @@
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 @@
onProcessArguments(getArguments());
initAnimatedImagePreference();
- initToggleServiceDividerSwitchPreference();
+ initToggleServiceSwitchPreference();
initGeneralCategory();
initShortcutPreference();
initSettingsPreference();
@@ -162,7 +165,7 @@
installActionBarToggleSwitch();
- updateToggleServiceTitle(mToggleServiceDividerSwitchPreference);
+ updateToggleServiceTitle(mToggleServiceSwitchPreference);
mTouchExplorationStateChangeListener = isTouchExplorationEnabled -> {
removeDialog(DialogEnums.EDIT_SHORTCUT);
@@ -178,6 +181,8 @@
final SettingsActivity activity = (SettingsActivity) getActivity();
final SettingsMainSwitchBar switchBar = activity.getSwitchBar();
switchBar.hide();
+
+ updatePreferenceOrder();
}
@Override
@@ -305,12 +310,17 @@
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 @@
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 @@
}
}
+ /** 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 @@
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 @@
* 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 @@
}
/**
- * 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 ca19681..09690d9 100644
--- a/src/com/android/settings/accessibility/ToggleReduceBrightColorsPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleReduceBrightColorsPreferenceFragment.java
@@ -29,13 +29,10 @@
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 @@
/** 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 @@
mSettingsContentObserver = new SettingsContentObserver(mHandler, enableServiceFeatureKeys) {
@Override
public void onChange(boolean selfChange, Uri uri) {
- updateSwitchBarToggleSwitch();
+ updateSwitchBarToggleSwitch();
}
};
@@ -83,11 +81,10 @@
@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 @@
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 @@
@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 8e14e5a..ff46722 100644
--- a/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java
@@ -304,8 +304,7 @@
@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 bea528a..86ead5c 100644
--- a/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentForSetupWizard.java
+++ b/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentForSetupWizard.java
@@ -33,12 +33,12 @@
// 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 4d7b653..c0d54e8 100644
--- a/src/com/android/settings/accessibility/ToggleScreenReaderPreferenceFragmentForSetupWizard.java
+++ b/src/com/android/settings/accessibility/ToggleScreenReaderPreferenceFragmentForSetupWizard.java
@@ -28,7 +28,7 @@
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
- mToggleSwitchWasInitiallyChecked = mToggleServiceDividerSwitchPreference.isChecked();
+ mToggleSwitchWasInitiallyChecked = mToggleServiceSwitchPreference.isChecked();
}
@Override
@@ -39,10 +39,10 @@
@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 87b8469..4334cd0 100644
--- a/src/com/android/settings/accessibility/ToggleSelectToSpeakPreferenceFragmentForSetupWizard.java
+++ b/src/com/android/settings/accessibility/ToggleSelectToSpeakPreferenceFragmentForSetupWizard.java
@@ -28,7 +28,7 @@
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
- mToggleSwitchWasInitiallyChecked = mToggleServiceDividerSwitchPreference.isChecked();
+ mToggleSwitchWasInitiallyChecked = mToggleServiceSwitchPreference.isChecked();
}
@Override
@@ -39,10 +39,10 @@
@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 6e4a233..4337177 100644
--- a/src/com/android/settings/accessibility/VolumeShortcutToggleScreenReaderPreferenceFragmentForSetupWizard.java
+++ b/src/com/android/settings/accessibility/VolumeShortcutToggleScreenReaderPreferenceFragmentForSetupWizard.java
@@ -29,7 +29,7 @@
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
- mToggleSwitchWasInitiallyChecked = mToggleServiceDividerSwitchPreference.isChecked();
+ mToggleSwitchWasInitiallyChecked = mToggleServiceSwitchPreference.isChecked();
}
@Override
@@ -40,10 +40,10 @@
@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 3dd648c..acdfdc9 100644
--- a/src/com/android/settings/accessibility/VolumeShortcutToggleSelectToSpeakPreferenceFragmentForSetupWizard.java
+++ b/src/com/android/settings/accessibility/VolumeShortcutToggleSelectToSpeakPreferenceFragmentForSetupWizard.java
@@ -29,7 +29,7 @@
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
- mToggleSwitchWasInitiallyChecked = mToggleServiceDividerSwitchPreference.isChecked();
+ mToggleSwitchWasInitiallyChecked = mToggleServiceSwitchPreference.isChecked();
}
@Override
@@ -40,10 +40,10 @@
@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 2a7aa73..76f9b41 100644
--- a/src/com/android/settings/widget/SettingsMainSwitchPreference.java
+++ b/src/com/android/settings/widget/SettingsMainSwitchPreference.java
@@ -44,7 +44,8 @@
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 @@
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 @@
}
}
+ @Override
+ public void setChecked(boolean checked) {
+ super.setChecked(checked);
+ if (mMainSwitchBar != null) {
+ mMainSwitchBar.setChecked(checked);
+ }
+ }
+
/**
* Return the SettingsMainSwitchBar
*/
@@ -106,11 +121,9 @@
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 @@
* Show the MainSwitchBar
*/
public void show() {
+ mIsVisible = true;
if (mMainSwitchBar != null) {
mMainSwitchBar.show();
}
@@ -142,6 +156,7 @@
* 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 735fecc..024c1c3 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.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 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 @@
mSwitchBar = getView().findViewById(R.id.switch_bar);
mSwitchBar.show();
- mSwitch = mSwitchBar.getSwitch();
}
@Override
@@ -296,7 +295,7 @@
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 @@
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));
diff --git a/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSettingsForSubTest.java b/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSettingsForSubTest.java
index 2e93faa..8ab3ad2 100644
--- a/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSettingsForSubTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSettingsForSubTest.java
@@ -27,7 +27,6 @@
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
@@ -55,8 +54,7 @@
import com.android.settings.network.ims.MockWifiCallingQueryImsState;
import com.android.settings.network.ims.WifiCallingQueryImsState;
import com.android.settings.testutils.shadow.ShadowFragment;
-import com.android.settings.widget.SwitchBar;
-import com.android.settings.widget.ToggleSwitch;
+import com.android.settings.widget.SettingsMainSwitchBar;
import org.junit.Before;
import org.junit.Test;
@@ -85,19 +83,28 @@
private final PersistableBundle mBundle = new PersistableBundle();
private MockWifiCallingQueryImsState mQueryImsState;
+ private SettingsMainSwitchBar mSwitchBar;
- @Mock private static CarrierConfigManager sCarrierConfigManager;
- @Mock private CarrierConfigManager mMockConfigManager;
- @Mock private ImsMmTelManager mImsMmTelManager;
- @Mock private TelephonyManager mTelephonyManager;
- @Mock private PreferenceScreen mPreferenceScreen;
- @Mock private SettingsActivity mActivity;
- @Mock private SwitchBar mSwitchBar;
- @Mock private ToggleSwitch mToggleSwitch;
- @Mock private View mView;
- @Mock private ListWithEntrySummaryPreference mButtonWfcMode;
- @Mock private ListWithEntrySummaryPreference mButtonWfcRoamingMode;
- @Mock private Preference mUpdateAddress;
+ @Mock
+ private static CarrierConfigManager sCarrierConfigManager;
+ @Mock
+ private CarrierConfigManager mMockConfigManager;
+ @Mock
+ private ImsMmTelManager mImsMmTelManager;
+ @Mock
+ private TelephonyManager mTelephonyManager;
+ @Mock
+ private PreferenceScreen mPreferenceScreen;
+ @Mock
+ private SettingsActivity mActivity;
+ @Mock
+ private View mView;
+ @Mock
+ private ListWithEntrySummaryPreference mButtonWfcMode;
+ @Mock
+ private ListWithEntrySummaryPreference mButtonWfcRoamingMode;
+ @Mock
+ private Preference mUpdateAddress;
@Before
public void setUp() throws Exception {
@@ -125,7 +132,7 @@
mEmptyView = new TextView(mContext);
doReturn(mEmptyView).when(mView).findViewById(android.R.id.empty);
- ReflectionHelpers.setField(mSwitchBar, "mSwitch", mToggleSwitch);
+ mSwitchBar = new SettingsMainSwitchBar(mContext);
doReturn(mSwitchBar).when(mView).findViewById(R.id.switch_bar);
mQueryImsState = new MockWifiCallingQueryImsState(mContext, SUB_ID);
@@ -364,6 +371,7 @@
}
@Override
- void showAlert(Intent intent) {}
+ void showAlert(Intent intent) {
+ }
}
}