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
This commit is contained in:
@@ -2989,6 +2989,54 @@
|
|||||||
column="13"/>
|
column="13"/>
|
||||||
</issue>
|
</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=" <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
|
<issue
|
||||||
id="HardCodedColor"
|
id="HardCodedColor"
|
||||||
severity="Error"
|
severity="Error"
|
||||||
@@ -3517,22 +3565,6 @@
|
|||||||
column="9"/>
|
column="9"/>
|
||||||
</issue>
|
</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-rXC/strings.xml"
|
|
||||||
line="2816"
|
|
||||||
column="170"/>
|
|
||||||
</issue>
|
|
||||||
|
|
||||||
<issue
|
<issue
|
||||||
id="HardCodedColor"
|
id="HardCodedColor"
|
||||||
severity="Error"
|
severity="Error"
|
||||||
@@ -3545,7 +3577,7 @@
|
|||||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~">
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~">
|
||||||
<location
|
<location
|
||||||
file="res/values-en-rAU/strings.xml"
|
file="res/values-en-rAU/strings.xml"
|
||||||
line="2818"
|
line="2821"
|
||||||
column="64"/>
|
column="64"/>
|
||||||
</issue>
|
</issue>
|
||||||
|
|
||||||
@@ -3561,7 +3593,7 @@
|
|||||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~">
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~">
|
||||||
<location
|
<location
|
||||||
file="res/values-en-rCA/strings.xml"
|
file="res/values-en-rCA/strings.xml"
|
||||||
line="2818"
|
line="2821"
|
||||||
column="64"/>
|
column="64"/>
|
||||||
</issue>
|
</issue>
|
||||||
|
|
||||||
@@ -3577,7 +3609,7 @@
|
|||||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~">
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~">
|
||||||
<location
|
<location
|
||||||
file="res/values-en-rGB/strings.xml"
|
file="res/values-en-rGB/strings.xml"
|
||||||
line="2818"
|
line="2821"
|
||||||
column="64"/>
|
column="64"/>
|
||||||
</issue>
|
</issue>
|
||||||
|
|
||||||
@@ -3593,10 +3625,26 @@
|
|||||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~">
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~">
|
||||||
<location
|
<location
|
||||||
file="res/values-en-rIN/strings.xml"
|
file="res/values-en-rIN/strings.xml"
|
||||||
line="2818"
|
line="2821"
|
||||||
column="64"/>
|
column="64"/>
|
||||||
</issue>
|
</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-rXC/strings.xml"
|
||||||
|
line="2821"
|
||||||
|
column="170"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
<issue
|
<issue
|
||||||
id="HardCodedColor"
|
id="HardCodedColor"
|
||||||
severity="Error"
|
severity="Error"
|
||||||
@@ -3609,7 +3657,7 @@
|
|||||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~">
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~">
|
||||||
<location
|
<location
|
||||||
file="res/values/strings.xml"
|
file="res/values/strings.xml"
|
||||||
line="6537"
|
line="6543"
|
||||||
column="36"/>
|
column="36"/>
|
||||||
</issue>
|
</issue>
|
||||||
|
|
||||||
@@ -3641,7 +3689,7 @@
|
|||||||
errorLine2=" ^">
|
errorLine2=" ^">
|
||||||
<location
|
<location
|
||||||
file="res/values/styles.xml"
|
file="res/values/styles.xml"
|
||||||
line="434"
|
line="435"
|
||||||
column="44"/>
|
column="44"/>
|
||||||
</issue>
|
</issue>
|
||||||
|
|
||||||
@@ -3657,7 +3705,7 @@
|
|||||||
errorLine2=" ^">
|
errorLine2=" ^">
|
||||||
<location
|
<location
|
||||||
file="res/values/styles.xml"
|
file="res/values/styles.xml"
|
||||||
line="440"
|
line="441"
|
||||||
column="44"/>
|
column="44"/>
|
||||||
</issue>
|
</issue>
|
||||||
|
|
||||||
@@ -3673,7 +3721,7 @@
|
|||||||
errorLine2=" ^">
|
errorLine2=" ^">
|
||||||
<location
|
<location
|
||||||
file="res/values/styles.xml"
|
file="res/values/styles.xml"
|
||||||
line="441"
|
line="442"
|
||||||
column="44"/>
|
column="44"/>
|
||||||
</issue>
|
</issue>
|
||||||
|
|
||||||
@@ -3689,7 +3737,7 @@
|
|||||||
errorLine2=" ^">
|
errorLine2=" ^">
|
||||||
<location
|
<location
|
||||||
file="res/values/styles.xml"
|
file="res/values/styles.xml"
|
||||||
line="477"
|
line="478"
|
||||||
column="34"/>
|
column="34"/>
|
||||||
</issue>
|
</issue>
|
||||||
|
|
||||||
@@ -3801,7 +3849,7 @@
|
|||||||
errorLine2=" ^">
|
errorLine2=" ^">
|
||||||
<location
|
<location
|
||||||
file="res/values/themes.xml"
|
file="res/values/themes.xml"
|
||||||
line="273"
|
line="272"
|
||||||
column="42"/>
|
column="42"/>
|
||||||
</issue>
|
</issue>
|
||||||
|
|
||||||
@@ -3913,7 +3961,7 @@
|
|||||||
errorLine2=" ^">
|
errorLine2=" ^">
|
||||||
<location
|
<location
|
||||||
file="res/values/themes_suw.xml"
|
file="res/values/themes_suw.xml"
|
||||||
line="188"
|
line="196"
|
||||||
column="43"/>
|
column="43"/>
|
||||||
</issue>
|
</issue>
|
||||||
|
|
||||||
@@ -3929,7 +3977,7 @@
|
|||||||
errorLine2=" ^">
|
errorLine2=" ^">
|
||||||
<location
|
<location
|
||||||
file="res/values/themes_suw.xml"
|
file="res/values/themes_suw.xml"
|
||||||
line="189"
|
line="197"
|
||||||
column="42"/>
|
column="42"/>
|
||||||
</issue>
|
</issue>
|
||||||
|
|
||||||
@@ -3945,7 +3993,7 @@
|
|||||||
errorLine2=" ^">
|
errorLine2=" ^">
|
||||||
<location
|
<location
|
||||||
file="res/values/themes_suw.xml"
|
file="res/values/themes_suw.xml"
|
||||||
line="190"
|
line="198"
|
||||||
column="45"/>
|
column="45"/>
|
||||||
</issue>
|
</issue>
|
||||||
|
|
||||||
|
@@ -21,11 +21,11 @@
|
|||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
<com.android.settings.widget.SwitchBar
|
<com.android.settings.widget.SettingsMainSwitchBar
|
||||||
android:id="@+id/switch_bar"
|
android:id="@+id/switch_bar"
|
||||||
android:layout_height="?android:attr/actionBarSize"
|
android:title="@string/wifi_calling_main_switch_title"
|
||||||
android:layout_width="match_parent"
|
android:layout_height="wrap_content"
|
||||||
android:theme="?attr/switchBarTheme" />
|
android:layout_width="match_parent" />
|
||||||
|
|
||||||
<FrameLayout
|
<FrameLayout
|
||||||
android:id="@android:id/tabcontent"
|
android:id="@android:id/tabcontent"
|
||||||
|
@@ -12753,6 +12753,8 @@
|
|||||||
<string name="adaptive_battery_main_switch_title" translatable="false">Use adaptive battery</string>
|
<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] -->
|
<!-- 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>
|
<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]-->
|
<!-- Default preference title for showing all apps on device [CHAR_LIMIT=50]-->
|
||||||
<string name="default_see_all_apps_title">See all apps</string>
|
<string name="default_see_all_apps_title">See all apps</string>
|
||||||
|
@@ -38,7 +38,7 @@ public class InvisibleToggleAccessibilityServicePreferenceFragment extends
|
|||||||
@Override
|
@Override
|
||||||
protected void onInstallSwitchPreferenceToggleSwitch() {
|
protected void onInstallSwitchPreferenceToggleSwitch() {
|
||||||
super.onInstallSwitchPreferenceToggleSwitch();
|
super.onInstallSwitchPreferenceToggleSwitch();
|
||||||
mToggleServiceDividerSwitchPreference.setVisible(false);
|
mToggleServiceSwitchPreference.setVisible(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -36,15 +36,14 @@ import android.view.View;
|
|||||||
import android.view.accessibility.AccessibilityManager;
|
import android.view.accessibility.AccessibilityManager;
|
||||||
|
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.preference.SwitchPreference;
|
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
|
import com.android.settings.widget.SettingsMainSwitchPreference;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/** Fragment for providing open activity button. */
|
/** Fragment for providing open activity button. */
|
||||||
public class LaunchAccessibilityActivityPreferenceFragment extends
|
public class LaunchAccessibilityActivityPreferenceFragment extends ToggleFeaturePreferenceFragment {
|
||||||
ToggleFeaturePreferenceFragment {
|
|
||||||
private static final String TAG = "LaunchA11yActivity";
|
private static final String TAG = "LaunchA11yActivity";
|
||||||
private static final String EMPTY_STRING = "";
|
private static final String EMPTY_STRING = "";
|
||||||
|
|
||||||
@@ -52,7 +51,7 @@ public class LaunchAccessibilityActivityPreferenceFragment extends
|
|||||||
public void onViewCreated(View view, Bundle savedInstanceState) {
|
public void onViewCreated(View view, Bundle savedInstanceState) {
|
||||||
super.onViewCreated(view, savedInstanceState);
|
super.onViewCreated(view, savedInstanceState);
|
||||||
|
|
||||||
mToggleServiceDividerSwitchPreference.setSwitchVisibility(View.GONE);
|
mToggleServiceSwitchPreference.hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -61,16 +60,6 @@ public class LaunchAccessibilityActivityPreferenceFragment extends
|
|||||||
launchShortcutTargetActivity(getPrefContext().getDisplayId(), mComponentName);
|
launchShortcutTargetActivity(getPrefContext().getDisplayId(), mComponentName);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onInstallSwitchPreferenceToggleSwitch() {
|
|
||||||
super.onInstallSwitchPreferenceToggleSwitch();
|
|
||||||
mToggleServiceDividerSwitchPreference.setOnPreferenceClickListener((preference) -> {
|
|
||||||
final boolean checked = ((DividerSwitchPreference) preference).isChecked();
|
|
||||||
onPreferenceToggled(mPreferenceKey, checked);
|
|
||||||
return false;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onProcessArguments(Bundle arguments) {
|
protected void onProcessArguments(Bundle arguments) {
|
||||||
super.onProcessArguments(arguments);
|
super.onProcessArguments(arguments);
|
||||||
@@ -111,7 +100,7 @@ public class LaunchAccessibilityActivityPreferenceFragment extends
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void updateToggleServiceTitle(SwitchPreference switchPreference) {
|
protected void updateToggleServiceTitle(SettingsMainSwitchPreference switchPreference) {
|
||||||
final AccessibilityShortcutInfo info = getAccessibilityShortcutInfo();
|
final AccessibilityShortcutInfo info = getAccessibilityShortcutInfo();
|
||||||
final String switchBarText = (info == null) ? EMPTY_STRING : getString(
|
final String switchBarText = (info == null) ? EMPTY_STRING : getString(
|
||||||
R.string.accessibility_service_primary_open_title,
|
R.string.accessibility_service_primary_open_title,
|
||||||
|
@@ -41,14 +41,15 @@ import android.view.Menu;
|
|||||||
import android.view.MenuInflater;
|
import android.view.MenuInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.accessibility.AccessibilityManager;
|
import android.view.accessibility.AccessibilityManager;
|
||||||
|
import android.widget.Switch;
|
||||||
|
|
||||||
import androidx.preference.Preference;
|
import androidx.preference.Preference;
|
||||||
import androidx.preference.SwitchPreference;
|
|
||||||
|
|
||||||
import com.android.internal.widget.LockPatternUtils;
|
import com.android.internal.widget.LockPatternUtils;
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.accessibility.AccessibilityUtil.UserShortcutType;
|
import com.android.settings.accessibility.AccessibilityUtil.UserShortcutType;
|
||||||
import com.android.settings.password.ConfirmDeviceCredentialActivity;
|
import com.android.settings.password.ConfirmDeviceCredentialActivity;
|
||||||
|
import com.android.settings.widget.SettingsMainSwitchPreference;
|
||||||
import com.android.settingslib.accessibility.AccessibilityUtils;
|
import com.android.settingslib.accessibility.AccessibilityUtils;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -198,7 +199,7 @@ public class ToggleAccessibilityServicePreferenceFragment extends
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void updateToggleServiceTitle(SwitchPreference switchPreference) {
|
protected void updateToggleServiceTitle(SettingsMainSwitchPreference switchPreference) {
|
||||||
final AccessibilityServiceInfo info = getAccessibilityServiceInfo();
|
final AccessibilityServiceInfo info = getAccessibilityServiceInfo();
|
||||||
final String switchBarText = (info == null) ? "" :
|
final String switchBarText = (info == null) ? "" :
|
||||||
getString(R.string.accessibility_service_primary_switch_title,
|
getString(R.string.accessibility_service_primary_switch_title,
|
||||||
@@ -206,13 +207,14 @@ public class ToggleAccessibilityServicePreferenceFragment extends
|
|||||||
switchPreference.setTitle(switchBarText);
|
switchPreference.setTitle(switchBarText);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateSwitchBarToggleSwitch() {
|
@Override
|
||||||
|
protected void updateSwitchBarToggleSwitch() {
|
||||||
final boolean checked = AccessibilityUtils.getEnabledServicesFromSettings(getPrefContext())
|
final boolean checked = AccessibilityUtils.getEnabledServicesFromSettings(getPrefContext())
|
||||||
.contains(mComponentName);
|
.contains(mComponentName);
|
||||||
if (mToggleServiceDividerSwitchPreference.isChecked() == checked) {
|
if (mToggleServiceSwitchPreference.isChecked() == checked) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
mToggleServiceDividerSwitchPreference.setChecked(checked);
|
mToggleServiceSwitchPreference.setChecked(checked);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -263,7 +265,7 @@ public class ToggleAccessibilityServicePreferenceFragment extends
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void handleConfirmServiceEnabled(boolean confirmed) {
|
private void handleConfirmServiceEnabled(boolean confirmed) {
|
||||||
mToggleServiceDividerSwitchPreference.setChecked(confirmed);
|
mToggleServiceSwitchPreference.setChecked(confirmed);
|
||||||
getArguments().putBoolean(AccessibilitySettings.EXTRA_CHECKED, confirmed);
|
getArguments().putBoolean(AccessibilitySettings.EXTRA_CHECKED, confirmed);
|
||||||
onPreferenceToggled(mPreferenceKey, confirmed);
|
onPreferenceToggled(mPreferenceKey, confirmed);
|
||||||
}
|
}
|
||||||
@@ -286,9 +288,10 @@ public class ToggleAccessibilityServicePreferenceFragment extends
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onInstallSwitchPreferenceToggleSwitch() {
|
public void onSwitchChanged(Switch switchView, boolean isChecked) {
|
||||||
super.onInstallSwitchPreferenceToggleSwitch();
|
if (isChecked != mToggleServiceSwitchPreference.isChecked()) {
|
||||||
mToggleServiceDividerSwitchPreference.setOnPreferenceClickListener(this::onPreferenceClick);
|
onPreferenceClick(mToggleServiceSwitchPreference);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -296,7 +299,7 @@ public class ToggleAccessibilityServicePreferenceFragment extends
|
|||||||
final int shortcutTypes = retrieveUserShortcutType(getPrefContext(),
|
final int shortcutTypes = retrieveUserShortcutType(getPrefContext(),
|
||||||
mComponentName.flattenToString(), UserShortcutType.SOFTWARE);
|
mComponentName.flattenToString(), UserShortcutType.SOFTWARE);
|
||||||
if (preference.isChecked()) {
|
if (preference.isChecked()) {
|
||||||
if (!mToggleServiceDividerSwitchPreference.isChecked()) {
|
if (!mToggleServiceSwitchPreference.isChecked()) {
|
||||||
preference.setChecked(false);
|
preference.setChecked(false);
|
||||||
showPopupDialog(DialogEnums.ENABLE_WARNING_FROM_SHORTCUT_TOGGLE);
|
showPopupDialog(DialogEnums.ENABLE_WARNING_FROM_SHORTCUT_TOGGLE);
|
||||||
} else {
|
} else {
|
||||||
@@ -314,7 +317,7 @@ public class ToggleAccessibilityServicePreferenceFragment extends
|
|||||||
@Override
|
@Override
|
||||||
public void onSettingsClicked(ShortcutPreference preference) {
|
public void onSettingsClicked(ShortcutPreference preference) {
|
||||||
final boolean isServiceOnOrShortcutAdded = mShortcutPreference.isChecked()
|
final boolean isServiceOnOrShortcutAdded = mShortcutPreference.isChecked()
|
||||||
|| mToggleServiceDividerSwitchPreference.isChecked();
|
|| mToggleServiceSwitchPreference.isChecked();
|
||||||
showPopupDialog(isServiceOnOrShortcutAdded ? DialogEnums.EDIT_SHORTCUT
|
showPopupDialog(isServiceOnOrShortcutAdded ? DialogEnums.EDIT_SHORTCUT
|
||||||
: DialogEnums.ENABLE_WARNING_FROM_SHORTCUT);
|
: DialogEnums.ENABLE_WARNING_FROM_SHORTCUT);
|
||||||
}
|
}
|
||||||
@@ -453,9 +456,14 @@ public class ToggleAccessibilityServicePreferenceFragment extends
|
|||||||
}
|
}
|
||||||
|
|
||||||
private boolean onPreferenceClick(Preference preference) {
|
private boolean onPreferenceClick(Preference preference) {
|
||||||
boolean checked = ((DividerSwitchPreference) preference).isChecked();
|
boolean checked = ((SettingsMainSwitchPreference) preference).isChecked();
|
||||||
if (checked) {
|
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,
|
getArguments().putBoolean(AccessibilitySettings.EXTRA_CHECKED,
|
||||||
/* disableService */ false);
|
/* disableService */ false);
|
||||||
if (!mShortcutPreference.isChecked()) {
|
if (!mShortcutPreference.isChecked()) {
|
||||||
@@ -466,11 +474,6 @@ public class ToggleAccessibilityServicePreferenceFragment extends
|
|||||||
showPopupDialog(DialogEnums.LAUNCH_ACCESSIBILITY_TUTORIAL);
|
showPopupDialog(DialogEnums.LAUNCH_ACCESSIBILITY_TUTORIAL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
mToggleServiceDividerSwitchPreference.setChecked(true);
|
|
||||||
getArguments().putBoolean(AccessibilitySettings.EXTRA_CHECKED,
|
|
||||||
/* enableService */ true);
|
|
||||||
showDialog(DialogEnums.DISABLE_WARNING_FROM_TOGGLE);
|
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@@ -31,15 +31,15 @@ import android.view.LayoutInflater;
|
|||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
import androidx.preference.SwitchPreference;
|
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
|
import com.android.settings.widget.SettingsMainSwitchPreference;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/** Settings page for color inversion. */
|
/** 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 static final String ENABLED = Settings.Secure.ACCESSIBILITY_DISPLAY_INVERSION_ENABLED;
|
||||||
private final Handler mHandler = new Handler();
|
private final Handler mHandler = new Handler();
|
||||||
@@ -64,25 +64,14 @@ public class ToggleColorInversionPreferenceFragment extends ToggleFeaturePrefere
|
|||||||
@Override
|
@Override
|
||||||
protected void onRemoveSwitchPreferenceToggleSwitch() {
|
protected void onRemoveSwitchPreferenceToggleSwitch() {
|
||||||
super.onRemoveSwitchPreferenceToggleSwitch();
|
super.onRemoveSwitchPreferenceToggleSwitch();
|
||||||
mToggleServiceDividerSwitchPreference.setOnPreferenceClickListener(null);
|
mToggleServiceSwitchPreference.setOnPreferenceClickListener(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void updateToggleServiceTitle(SwitchPreference switchPreference) {
|
protected void updateToggleServiceTitle(SettingsMainSwitchPreference switchPreference) {
|
||||||
switchPreference.setTitle(R.string.accessibility_display_inversion_switch_title);
|
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
|
@Override
|
||||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||||
Bundle savedInstanceState) {
|
Bundle savedInstanceState) {
|
||||||
@@ -128,11 +117,12 @@ public class ToggleColorInversionPreferenceFragment extends ToggleFeaturePrefere
|
|||||||
mComponentName);
|
mComponentName);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateSwitchBarToggleSwitch() {
|
@Override
|
||||||
|
protected void updateSwitchBarToggleSwitch() {
|
||||||
final boolean checked = Settings.Secure.getInt(getContentResolver(), ENABLED, OFF) == ON;
|
final boolean checked = Settings.Secure.getInt(getContentResolver(), ENABLED, OFF) == ON;
|
||||||
if (mToggleServiceDividerSwitchPreference.isChecked() == checked) {
|
if (mToggleServiceSwitchPreference.isChecked() == checked) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
mToggleServiceDividerSwitchPreference.setChecked(checked);
|
mToggleServiceSwitchPreference.setChecked(checked);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -33,11 +33,10 @@ import android.view.View;
|
|||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
import androidx.preference.Preference;
|
import androidx.preference.Preference;
|
||||||
import androidx.preference.PreferenceScreen;
|
|
||||||
import androidx.preference.SwitchPreference;
|
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.search.BaseSearchIndexProvider;
|
import com.android.settings.search.BaseSearchIndexProvider;
|
||||||
|
import com.android.settings.widget.SettingsMainSwitchPreference;
|
||||||
import com.android.settingslib.core.AbstractPreferenceController;
|
import com.android.settingslib.core.AbstractPreferenceController;
|
||||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||||
import com.android.settingslib.search.SearchIndexable;
|
import com.android.settingslib.search.SearchIndexable;
|
||||||
@@ -99,34 +98,19 @@ public final class ToggleDaltonizerPreferenceFragment extends ToggleFeaturePrefe
|
|||||||
@Override
|
@Override
|
||||||
public void onViewCreated(View view, Bundle savedInstanceState) {
|
public void onViewCreated(View view, Bundle savedInstanceState) {
|
||||||
super.onViewCreated(view, savedInstanceState);
|
super.onViewCreated(view, savedInstanceState);
|
||||||
updatePreferenceOrder();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Customizes the order by preference key. */
|
/** Customizes the order by preference key. */
|
||||||
private List<String> getPreferenceOrderList() {
|
protected List<String> getPreferenceOrderList() {
|
||||||
List<String> lists = new ArrayList<>();
|
final List<String> lists = new ArrayList<>();
|
||||||
lists.add(KEY_PREVIEW);
|
|
||||||
lists.add(KEY_USE_SERVICE_PREFERENCE);
|
lists.add(KEY_USE_SERVICE_PREFERENCE);
|
||||||
|
lists.add(KEY_PREVIEW);
|
||||||
lists.add(KEY_CATEGORY_MODE);
|
lists.add(KEY_CATEGORY_MODE);
|
||||||
lists.add(KEY_GENERAL_CATEGORY);
|
lists.add(KEY_GENERAL_CATEGORY);
|
||||||
lists.add(KEY_INTRODUCTION_CATEGORY);
|
lists.add(KEY_INTRODUCTION_CATEGORY);
|
||||||
return lists;
|
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
|
@Override
|
||||||
public void onResume() {
|
public void onResume() {
|
||||||
super.onResume();
|
super.onResume();
|
||||||
@@ -175,37 +159,27 @@ public final class ToggleDaltonizerPreferenceFragment extends ToggleFeaturePrefe
|
|||||||
@Override
|
@Override
|
||||||
protected void onRemoveSwitchPreferenceToggleSwitch() {
|
protected void onRemoveSwitchPreferenceToggleSwitch() {
|
||||||
super.onRemoveSwitchPreferenceToggleSwitch();
|
super.onRemoveSwitchPreferenceToggleSwitch();
|
||||||
mToggleServiceDividerSwitchPreference.setOnPreferenceClickListener(null);
|
mToggleServiceSwitchPreference.setOnPreferenceClickListener(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void updateToggleServiceTitle(SwitchPreference switchPreference) {
|
protected void updateToggleServiceTitle(SettingsMainSwitchPreference switchPreference) {
|
||||||
switchPreference.setTitle(R.string.accessibility_daltonizer_primary_switch_title);
|
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
|
@Override
|
||||||
int getUserShortcutTypes() {
|
int getUserShortcutTypes() {
|
||||||
return AccessibilityUtil.getUserShortcutTypesFromSettings(getPrefContext(),
|
return AccessibilityUtil.getUserShortcutTypesFromSettings(getPrefContext(),
|
||||||
mComponentName);
|
mComponentName);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateSwitchBarToggleSwitch() {
|
@Override
|
||||||
|
protected void updateSwitchBarToggleSwitch() {
|
||||||
final boolean checked = Settings.Secure.getInt(getContentResolver(), ENABLED, OFF) == ON;
|
final boolean checked = Settings.Secure.getInt(getContentResolver(), ENABLED, OFF) == ON;
|
||||||
if (mToggleServiceDividerSwitchPreference.isChecked() == checked) {
|
if (mToggleServiceSwitchPreference.isChecked() == checked) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
mToggleServiceDividerSwitchPreference.setChecked(checked);
|
mToggleServiceSwitchPreference.setChecked(checked);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
|
public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
|
||||||
|
@@ -40,20 +40,22 @@ import android.view.accessibility.AccessibilityManager;
|
|||||||
import android.view.accessibility.AccessibilityManager.TouchExplorationStateChangeListener;
|
import android.view.accessibility.AccessibilityManager.TouchExplorationStateChangeListener;
|
||||||
import android.widget.CheckBox;
|
import android.widget.CheckBox;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
|
import android.widget.Switch;
|
||||||
|
|
||||||
import androidx.annotation.VisibleForTesting;
|
import androidx.annotation.VisibleForTesting;
|
||||||
import androidx.preference.Preference;
|
import androidx.preference.Preference;
|
||||||
import androidx.preference.PreferenceCategory;
|
import androidx.preference.PreferenceCategory;
|
||||||
import androidx.preference.PreferenceScreen;
|
import androidx.preference.PreferenceScreen;
|
||||||
import androidx.preference.SwitchPreference;
|
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.SettingsActivity;
|
import com.android.settings.SettingsActivity;
|
||||||
import com.android.settings.SettingsPreferenceFragment;
|
import com.android.settings.SettingsPreferenceFragment;
|
||||||
import com.android.settings.accessibility.AccessibilityUtil.UserShortcutType;
|
import com.android.settings.accessibility.AccessibilityUtil.UserShortcutType;
|
||||||
import com.android.settings.widget.SettingsMainSwitchBar;
|
import com.android.settings.widget.SettingsMainSwitchBar;
|
||||||
|
import com.android.settings.widget.SettingsMainSwitchPreference;
|
||||||
import com.android.settingslib.accessibility.AccessibilityUtils;
|
import com.android.settingslib.accessibility.AccessibilityUtils;
|
||||||
import com.android.settingslib.widget.FooterPreference;
|
import com.android.settingslib.widget.FooterPreference;
|
||||||
|
import com.android.settingslib.widget.OnMainSwitchChangeListener;
|
||||||
|
|
||||||
import java.lang.annotation.Retention;
|
import java.lang.annotation.Retention;
|
||||||
import java.lang.annotation.RetentionPolicy;
|
import java.lang.annotation.RetentionPolicy;
|
||||||
@@ -66,9 +68,9 @@ import java.util.Locale;
|
|||||||
* and dialog management.
|
* and dialog management.
|
||||||
*/
|
*/
|
||||||
public abstract class ToggleFeaturePreferenceFragment extends SettingsPreferenceFragment
|
public abstract class ToggleFeaturePreferenceFragment extends SettingsPreferenceFragment
|
||||||
implements ShortcutPreference.OnClickCallback {
|
implements ShortcutPreference.OnClickCallback, OnMainSwitchChangeListener {
|
||||||
|
|
||||||
protected DividerSwitchPreference mToggleServiceDividerSwitchPreference;
|
protected SettingsMainSwitchPreference mToggleServiceSwitchPreference;
|
||||||
protected ShortcutPreference mShortcutPreference;
|
protected ShortcutPreference mShortcutPreference;
|
||||||
protected Preference mSettingsPreference;
|
protected Preference mSettingsPreference;
|
||||||
protected String mPreferenceKey;
|
protected String mPreferenceKey;
|
||||||
@@ -88,6 +90,7 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference
|
|||||||
protected static final String KEY_INTRODUCTION_CATEGORY = "introduction_categories";
|
protected static final String KEY_INTRODUCTION_CATEGORY = "introduction_categories";
|
||||||
private static final String KEY_SHORTCUT_PREFERENCE = "shortcut_preference";
|
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_SAVED_USER_SHORTCUT_TYPE = "shortcut_type";
|
||||||
|
protected static final String KEY_ANIMATED_IMAGE = "animated_image";
|
||||||
|
|
||||||
private TouchExplorationStateChangeListener mTouchExplorationStateChangeListener;
|
private TouchExplorationStateChangeListener mTouchExplorationStateChangeListener;
|
||||||
private SettingsContentObserver mSettingsContentObserver;
|
private SettingsContentObserver mSettingsContentObserver;
|
||||||
@@ -153,7 +156,7 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference
|
|||||||
onProcessArguments(getArguments());
|
onProcessArguments(getArguments());
|
||||||
|
|
||||||
initAnimatedImagePreference();
|
initAnimatedImagePreference();
|
||||||
initToggleServiceDividerSwitchPreference();
|
initToggleServiceSwitchPreference();
|
||||||
initGeneralCategory();
|
initGeneralCategory();
|
||||||
initShortcutPreference();
|
initShortcutPreference();
|
||||||
initSettingsPreference();
|
initSettingsPreference();
|
||||||
@@ -162,7 +165,7 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference
|
|||||||
|
|
||||||
installActionBarToggleSwitch();
|
installActionBarToggleSwitch();
|
||||||
|
|
||||||
updateToggleServiceTitle(mToggleServiceDividerSwitchPreference);
|
updateToggleServiceTitle(mToggleServiceSwitchPreference);
|
||||||
|
|
||||||
mTouchExplorationStateChangeListener = isTouchExplorationEnabled -> {
|
mTouchExplorationStateChangeListener = isTouchExplorationEnabled -> {
|
||||||
removeDialog(DialogEnums.EDIT_SHORTCUT);
|
removeDialog(DialogEnums.EDIT_SHORTCUT);
|
||||||
@@ -178,6 +181,8 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference
|
|||||||
final SettingsActivity activity = (SettingsActivity) getActivity();
|
final SettingsActivity activity = (SettingsActivity) getActivity();
|
||||||
final SettingsMainSwitchBar switchBar = activity.getSwitchBar();
|
final SettingsMainSwitchBar switchBar = activity.getSwitchBar();
|
||||||
switchBar.hide();
|
switchBar.hide();
|
||||||
|
|
||||||
|
updatePreferenceOrder();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -305,12 +310,17 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference
|
|||||||
removeActionBarToggleSwitch();
|
removeActionBarToggleSwitch();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSwitchChanged(Switch switchView, boolean isChecked) {
|
||||||
|
onPreferenceToggled(mPreferenceKey, isChecked);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the shortcut type list which has been checked by user.
|
* Returns the shortcut type list which has been checked by user.
|
||||||
*/
|
*/
|
||||||
abstract int getUserShortcutTypes();
|
abstract int getUserShortcutTypes();
|
||||||
|
|
||||||
protected void updateToggleServiceTitle(SwitchPreference switchPreference) {
|
protected void updateToggleServiceTitle(SettingsMainSwitchPreference switchPreference) {
|
||||||
switchPreference.setTitle(R.string.accessibility_service_primary_switch_title);
|
switchPreference.setTitle(R.string.accessibility_service_primary_switch_title);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -318,18 +328,24 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference
|
|||||||
|
|
||||||
protected void onInstallSwitchPreferenceToggleSwitch() {
|
protected void onInstallSwitchPreferenceToggleSwitch() {
|
||||||
// Implement this to set a checked listener.
|
// Implement this to set a checked listener.
|
||||||
|
updateSwitchBarToggleSwitch();
|
||||||
|
mToggleServiceSwitchPreference.addOnSwitchChangeListener(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void onRemoveSwitchPreferenceToggleSwitch() {
|
protected void onRemoveSwitchPreferenceToggleSwitch() {
|
||||||
// Implement this to reset a checked listener.
|
// Implement this to reset a checked listener.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void updateSwitchBarToggleSwitch() {
|
||||||
|
// Implement this to update the state of switch.
|
||||||
|
}
|
||||||
|
|
||||||
private void installActionBarToggleSwitch() {
|
private void installActionBarToggleSwitch() {
|
||||||
onInstallSwitchPreferenceToggleSwitch();
|
onInstallSwitchPreferenceToggleSwitch();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void removeActionBarToggleSwitch() {
|
private void removeActionBarToggleSwitch() {
|
||||||
mToggleServiceDividerSwitchPreference.setOnPreferenceClickListener(null);
|
mToggleServiceSwitchPreference.setOnPreferenceClickListener(null);
|
||||||
onRemoveSwitchPreferenceToggleSwitch();
|
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) {
|
private Drawable getDrawableFromUri(Uri imageUri) {
|
||||||
if (mImageGetterCacheView == null) {
|
if (mImageGetterCacheView == null) {
|
||||||
mImageGetterCacheView = new ImageView(getPrefContext());
|
mImageGetterCacheView = new ImageView(getPrefContext());
|
||||||
@@ -401,19 +442,20 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference
|
|||||||
animatedImagePreference.setImageUri(mImageUri);
|
animatedImagePreference.setImageUri(mImageUri);
|
||||||
animatedImagePreference.setSelectable(false);
|
animatedImagePreference.setSelectable(false);
|
||||||
animatedImagePreference.setMaxHeight(screenHalfHeight);
|
animatedImagePreference.setMaxHeight(screenHalfHeight);
|
||||||
|
animatedImagePreference.setKey(KEY_ANIMATED_IMAGE);
|
||||||
|
|
||||||
getPreferenceScreen().addPreference(animatedImagePreference);
|
getPreferenceScreen().addPreference(animatedImagePreference);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initToggleServiceDividerSwitchPreference() {
|
private void initToggleServiceSwitchPreference() {
|
||||||
mToggleServiceDividerSwitchPreference = new DividerSwitchPreference(getPrefContext());
|
mToggleServiceSwitchPreference = new SettingsMainSwitchPreference(getPrefContext());
|
||||||
mToggleServiceDividerSwitchPreference.setKey(KEY_USE_SERVICE_PREFERENCE);
|
mToggleServiceSwitchPreference.setKey(KEY_USE_SERVICE_PREFERENCE);
|
||||||
if (getArguments().containsKey(AccessibilitySettings.EXTRA_CHECKED)) {
|
if (getArguments().containsKey(AccessibilitySettings.EXTRA_CHECKED)) {
|
||||||
final boolean enabled = getArguments().getBoolean(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() {
|
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.
|
* This method will be invoked when a button in the edit shortcut dialog is clicked.
|
||||||
*
|
*
|
||||||
* @param dialog The dialog that received the click
|
* @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) {
|
protected void callOnAlertDialogCheckboxClicked(DialogInterface dialog, int which) {
|
||||||
if (mComponentName == null) {
|
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) {
|
private static void setupDefaultShortcutIfNecessary(Context context) {
|
||||||
final String targetKey = Settings.Secure.ACCESSIBILITY_SHORTCUT_TARGET_SERVICE;
|
final String targetKey = Settings.Secure.ACCESSIBILITY_SHORTCUT_TARGET_SERVICE;
|
||||||
|
@@ -29,13 +29,10 @@ import android.view.LayoutInflater;
|
|||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
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.internal.accessibility.AccessibilityShortcutController;
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.search.BaseSearchIndexProvider;
|
import com.android.settings.search.BaseSearchIndexProvider;
|
||||||
|
import com.android.settings.widget.SettingsMainSwitchPreference;
|
||||||
import com.android.settingslib.search.SearchIndexable;
|
import com.android.settingslib.search.SearchIndexable;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -44,6 +41,7 @@ import java.util.List;
|
|||||||
/** Settings for reducing brightness. */
|
/** Settings for reducing brightness. */
|
||||||
@SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
|
@SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
|
||||||
public class ToggleReduceBrightColorsPreferenceFragment extends ToggleFeaturePreferenceFragment {
|
public class ToggleReduceBrightColorsPreferenceFragment extends ToggleFeaturePreferenceFragment {
|
||||||
|
|
||||||
private static final String REDUCE_BRIGHT_COLORS_ACTIVATED_KEY =
|
private static final String REDUCE_BRIGHT_COLORS_ACTIVATED_KEY =
|
||||||
Settings.Secure.REDUCE_BRIGHT_COLORS_ACTIVATED;
|
Settings.Secure.REDUCE_BRIGHT_COLORS_ACTIVATED;
|
||||||
private static final String KEY_INTENSITY = "rbc_intensity";
|
private static final String KEY_INTENSITY = "rbc_intensity";
|
||||||
@@ -73,7 +71,7 @@ public class ToggleReduceBrightColorsPreferenceFragment extends ToggleFeaturePre
|
|||||||
mSettingsContentObserver = new SettingsContentObserver(mHandler, enableServiceFeatureKeys) {
|
mSettingsContentObserver = new SettingsContentObserver(mHandler, enableServiceFeatureKeys) {
|
||||||
@Override
|
@Override
|
||||||
public void onChange(boolean selfChange, Uri uri) {
|
public void onChange(boolean selfChange, Uri uri) {
|
||||||
updateSwitchBarToggleSwitch();
|
updateSwitchBarToggleSwitch();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -83,11 +81,10 @@ public class ToggleReduceBrightColorsPreferenceFragment extends ToggleFeaturePre
|
|||||||
@Override
|
@Override
|
||||||
public void onViewCreated(View view, Bundle savedInstanceState) {
|
public void onViewCreated(View view, Bundle savedInstanceState) {
|
||||||
super.onViewCreated(view, savedInstanceState);
|
super.onViewCreated(view, savedInstanceState);
|
||||||
updatePreferenceOrder();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Customizes the order by preference key. */
|
/** Customizes the order by preference key. */
|
||||||
private List<String> getPreferenceOrderList() {
|
protected List<String> getPreferenceOrderList() {
|
||||||
final List<String> lists = new ArrayList<>();
|
final List<String> lists = new ArrayList<>();
|
||||||
lists.add(KEY_USE_SERVICE_PREFERENCE);
|
lists.add(KEY_USE_SERVICE_PREFERENCE);
|
||||||
lists.add(KEY_INTENSITY);
|
lists.add(KEY_INTENSITY);
|
||||||
@@ -97,20 +94,6 @@ public class ToggleReduceBrightColorsPreferenceFragment extends ToggleFeaturePre
|
|||||||
return lists;
|
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
|
@Override
|
||||||
public void onResume() {
|
public void onResume() {
|
||||||
super.onResume();
|
super.onResume();
|
||||||
@@ -151,41 +134,31 @@ public class ToggleReduceBrightColorsPreferenceFragment extends ToggleFeaturePre
|
|||||||
@Override
|
@Override
|
||||||
protected void onRemoveSwitchPreferenceToggleSwitch() {
|
protected void onRemoveSwitchPreferenceToggleSwitch() {
|
||||||
super.onRemoveSwitchPreferenceToggleSwitch();
|
super.onRemoveSwitchPreferenceToggleSwitch();
|
||||||
mToggleServiceDividerSwitchPreference.setOnPreferenceClickListener(
|
mToggleServiceSwitchPreference.setOnPreferenceClickListener(
|
||||||
/* onPreferenceClickListener= */ null);
|
/* onPreferenceClickListener= */ null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void updateToggleServiceTitle(SwitchPreference switchPreference) {
|
protected void updateToggleServiceTitle(SettingsMainSwitchPreference switchPreference) {
|
||||||
switchPreference.setTitle(R.string.reduce_bright_colors_preference_title);
|
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
|
@Override
|
||||||
int getUserShortcutTypes() {
|
int getUserShortcutTypes() {
|
||||||
return AccessibilityUtil.getUserShortcutTypesFromSettings(getPrefContext(),
|
return AccessibilityUtil.getUserShortcutTypesFromSettings(getPrefContext(),
|
||||||
mComponentName);
|
mComponentName);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateSwitchBarToggleSwitch() {
|
@Override
|
||||||
|
protected void updateSwitchBarToggleSwitch() {
|
||||||
final boolean checked = Settings.Secure.getInt(getContentResolver(),
|
final boolean checked = Settings.Secure.getInt(getContentResolver(),
|
||||||
REDUCE_BRIGHT_COLORS_ACTIVATED_KEY, OFF) == ON;
|
REDUCE_BRIGHT_COLORS_ACTIVATED_KEY, OFF) == ON;
|
||||||
mRbcIntensityPreferenceController.updateState(getPreferenceScreen()
|
mRbcIntensityPreferenceController.updateState(getPreferenceScreen()
|
||||||
.findPreference(KEY_INTENSITY));
|
.findPreference(KEY_INTENSITY));
|
||||||
mRbcPersistencePreferenceController.updateState(getPreferenceScreen()
|
mRbcPersistencePreferenceController.updateState(getPreferenceScreen()
|
||||||
.findPreference(KEY_PERSIST));
|
.findPreference(KEY_PERSIST));
|
||||||
if (mToggleServiceDividerSwitchPreference.isChecked() != checked) {
|
if (mToggleServiceSwitchPreference.isChecked() != checked) {
|
||||||
mToggleServiceDividerSwitchPreference.setChecked(checked);
|
mToggleServiceSwitchPreference.setChecked(checked);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -304,8 +304,7 @@ public class ToggleScreenMagnificationPreferenceFragment extends
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onInstallSwitchPreferenceToggleSwitch() {
|
protected void onInstallSwitchPreferenceToggleSwitch() {
|
||||||
super.onInstallSwitchPreferenceToggleSwitch();
|
mToggleServiceSwitchPreference.setVisible(false);
|
||||||
mToggleServiceDividerSwitchPreference.setVisible(false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -33,12 +33,12 @@ public class ToggleScreenMagnificationPreferenceFragmentForSetupWizard
|
|||||||
// Log the final choice in value if it's different from the previous value.
|
// Log the final choice in value if it's different from the previous value.
|
||||||
Bundle args = getArguments();
|
Bundle args = getArguments();
|
||||||
if ((args != null) && args.containsKey(AccessibilitySettings.EXTRA_CHECKED)) {
|
if ((args != null) && args.containsKey(AccessibilitySettings.EXTRA_CHECKED)) {
|
||||||
if (mToggleServiceDividerSwitchPreference.isChecked() != args.getBoolean(
|
if (mToggleServiceSwitchPreference.isChecked() != args.getBoolean(
|
||||||
AccessibilitySettings.EXTRA_CHECKED)) {
|
AccessibilitySettings.EXTRA_CHECKED)) {
|
||||||
// TODO: Distinguish between magnification modes
|
// TODO: Distinguish between magnification modes
|
||||||
mMetricsFeatureProvider.action(getContext(),
|
mMetricsFeatureProvider.action(getContext(),
|
||||||
SettingsEnums.SUW_ACCESSIBILITY_TOGGLE_SCREEN_MAGNIFICATION,
|
SettingsEnums.SUW_ACCESSIBILITY_TOGGLE_SCREEN_MAGNIFICATION,
|
||||||
mToggleServiceDividerSwitchPreference.isChecked());
|
mToggleServiceSwitchPreference.isChecked());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
super.onStop();
|
super.onStop();
|
||||||
|
@@ -28,7 +28,7 @@ public class ToggleScreenReaderPreferenceFragmentForSetupWizard
|
|||||||
@Override
|
@Override
|
||||||
public void onViewCreated(View view, Bundle savedInstanceState) {
|
public void onViewCreated(View view, Bundle savedInstanceState) {
|
||||||
super.onViewCreated(view, savedInstanceState);
|
super.onViewCreated(view, savedInstanceState);
|
||||||
mToggleSwitchWasInitiallyChecked = mToggleServiceDividerSwitchPreference.isChecked();
|
mToggleSwitchWasInitiallyChecked = mToggleServiceSwitchPreference.isChecked();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -39,10 +39,10 @@ public class ToggleScreenReaderPreferenceFragmentForSetupWizard
|
|||||||
@Override
|
@Override
|
||||||
public void onStop() {
|
public void onStop() {
|
||||||
// Log the final choice in value if it's different from the previous value.
|
// 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(),
|
mMetricsFeatureProvider.action(getContext(),
|
||||||
SettingsEnums.SUW_ACCESSIBILITY_TOGGLE_SCREEN_READER,
|
SettingsEnums.SUW_ACCESSIBILITY_TOGGLE_SCREEN_READER,
|
||||||
mToggleServiceDividerSwitchPreference.isChecked());
|
mToggleServiceSwitchPreference.isChecked());
|
||||||
}
|
}
|
||||||
super.onStop();
|
super.onStop();
|
||||||
}
|
}
|
||||||
|
@@ -28,7 +28,7 @@ public class ToggleSelectToSpeakPreferenceFragmentForSetupWizard
|
|||||||
@Override
|
@Override
|
||||||
public void onViewCreated(View view, Bundle savedInstanceState) {
|
public void onViewCreated(View view, Bundle savedInstanceState) {
|
||||||
super.onViewCreated(view, savedInstanceState);
|
super.onViewCreated(view, savedInstanceState);
|
||||||
mToggleSwitchWasInitiallyChecked = mToggleServiceDividerSwitchPreference.isChecked();
|
mToggleSwitchWasInitiallyChecked = mToggleServiceSwitchPreference.isChecked();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -39,10 +39,10 @@ public class ToggleSelectToSpeakPreferenceFragmentForSetupWizard
|
|||||||
@Override
|
@Override
|
||||||
public void onStop() {
|
public void onStop() {
|
||||||
// Log the final choice in value if it's different from the previous value.
|
// 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(),
|
mMetricsFeatureProvider.action(getContext(),
|
||||||
SettingsEnums.SUW_ACCESSIBILITY_TOGGLE_SELECT_TO_SPEAK,
|
SettingsEnums.SUW_ACCESSIBILITY_TOGGLE_SELECT_TO_SPEAK,
|
||||||
mToggleServiceDividerSwitchPreference.isChecked());
|
mToggleServiceSwitchPreference.isChecked());
|
||||||
}
|
}
|
||||||
|
|
||||||
super.onStop();
|
super.onStop();
|
||||||
|
@@ -29,7 +29,7 @@ public class VolumeShortcutToggleScreenReaderPreferenceFragmentForSetupWizard
|
|||||||
@Override
|
@Override
|
||||||
public void onViewCreated(View view, Bundle savedInstanceState) {
|
public void onViewCreated(View view, Bundle savedInstanceState) {
|
||||||
super.onViewCreated(view, savedInstanceState);
|
super.onViewCreated(view, savedInstanceState);
|
||||||
mToggleSwitchWasInitiallyChecked = mToggleServiceDividerSwitchPreference.isChecked();
|
mToggleSwitchWasInitiallyChecked = mToggleServiceSwitchPreference.isChecked();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -40,10 +40,10 @@ public class VolumeShortcutToggleScreenReaderPreferenceFragmentForSetupWizard
|
|||||||
@Override
|
@Override
|
||||||
public void onStop() {
|
public void onStop() {
|
||||||
// Log the final choice in value if it's different from the previous value.
|
// 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(),
|
mMetricsFeatureProvider.action(getContext(),
|
||||||
SettingsEnums.SUW_ACCESSIBILITY_TOGGLE_SCREEN_READER,
|
SettingsEnums.SUW_ACCESSIBILITY_TOGGLE_SCREEN_READER,
|
||||||
mToggleServiceDividerSwitchPreference.isChecked());
|
mToggleServiceSwitchPreference.isChecked());
|
||||||
}
|
}
|
||||||
|
|
||||||
super.onStop();
|
super.onStop();
|
||||||
|
@@ -29,7 +29,7 @@ public class VolumeShortcutToggleSelectToSpeakPreferenceFragmentForSetupWizard
|
|||||||
@Override
|
@Override
|
||||||
public void onViewCreated(View view, Bundle savedInstanceState) {
|
public void onViewCreated(View view, Bundle savedInstanceState) {
|
||||||
super.onViewCreated(view, savedInstanceState);
|
super.onViewCreated(view, savedInstanceState);
|
||||||
mToggleSwitchWasInitiallyChecked = mToggleServiceDividerSwitchPreference.isChecked();
|
mToggleSwitchWasInitiallyChecked = mToggleServiceSwitchPreference.isChecked();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -40,10 +40,10 @@ public class VolumeShortcutToggleSelectToSpeakPreferenceFragmentForSetupWizard
|
|||||||
@Override
|
@Override
|
||||||
public void onStop() {
|
public void onStop() {
|
||||||
// Log the final choice in value if it's different from the previous value.
|
// 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(),
|
mMetricsFeatureProvider.action(getContext(),
|
||||||
SettingsEnums.SUW_ACCESSIBILITY_TOGGLE_SELECT_TO_SPEAK,
|
SettingsEnums.SUW_ACCESSIBILITY_TOGGLE_SELECT_TO_SPEAK,
|
||||||
mToggleServiceDividerSwitchPreference.isChecked());
|
mToggleServiceSwitchPreference.isChecked());
|
||||||
}
|
}
|
||||||
|
|
||||||
super.onStop();
|
super.onStop();
|
||||||
|
@@ -44,7 +44,8 @@ public class SettingsMainSwitchPreference extends TwoStatePreference {
|
|||||||
private final List<OnMainSwitchChangeListener> mSwitchChangeListeners = new ArrayList<>();
|
private final List<OnMainSwitchChangeListener> mSwitchChangeListeners = new ArrayList<>();
|
||||||
|
|
||||||
private SettingsMainSwitchBar mMainSwitchBar;
|
private SettingsMainSwitchBar mMainSwitchBar;
|
||||||
private String mTitle;
|
private CharSequence mTitle;
|
||||||
|
private boolean mIsVisible;
|
||||||
|
|
||||||
private RestrictedLockUtils.EnforcedAdmin mEnforcedAdmin;
|
private RestrictedLockUtils.EnforcedAdmin mEnforcedAdmin;
|
||||||
|
|
||||||
@@ -77,16 +78,22 @@ public class SettingsMainSwitchPreference extends TwoStatePreference {
|
|||||||
holder.setDividerAllowedBelow(false);
|
holder.setDividerAllowedBelow(false);
|
||||||
|
|
||||||
mMainSwitchBar = (SettingsMainSwitchBar) holder.findViewById(R.id.main_switch_bar);
|
mMainSwitchBar = (SettingsMainSwitchBar) holder.findViewById(R.id.main_switch_bar);
|
||||||
|
|
||||||
mMainSwitchBar.show();
|
mMainSwitchBar.show();
|
||||||
updateStatus(isChecked());
|
updateStatus(isChecked());
|
||||||
registerListenerToSwitchBar();
|
registerListenerToSwitchBar();
|
||||||
|
|
||||||
|
if (!mIsVisible) {
|
||||||
|
mMainSwitchBar.hide();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void init(Context context, AttributeSet attrs) {
|
private void init(Context context, AttributeSet attrs) {
|
||||||
setLayoutResource(R.layout.preference_widget_main_switch);
|
setLayoutResource(R.layout.preference_widget_main_switch);
|
||||||
|
mIsVisible = true;
|
||||||
|
|
||||||
if (attrs != null) {
|
if (attrs != null) {
|
||||||
TypedArray a = context.obtainStyledAttributes(attrs,
|
final TypedArray a = context.obtainStyledAttributes(attrs,
|
||||||
androidx.preference.R.styleable.Preference, 0/*defStyleAttr*/,
|
androidx.preference.R.styleable.Preference, 0/*defStyleAttr*/,
|
||||||
0/*defStyleRes*/);
|
0/*defStyleRes*/);
|
||||||
final CharSequence title = TypedArrayUtils.getText(a,
|
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
|
* Return the SettingsMainSwitchBar
|
||||||
*/
|
*/
|
||||||
@@ -106,11 +121,9 @@ public class SettingsMainSwitchPreference extends TwoStatePreference {
|
|||||||
return mMainSwitchBar;
|
return mMainSwitchBar;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
@Override
|
||||||
* Set the preference title text
|
public void setTitle(CharSequence title) {
|
||||||
*/
|
mTitle = title;
|
||||||
public void setTitle(String text) {
|
|
||||||
mTitle = text;
|
|
||||||
if (mMainSwitchBar != null) {
|
if (mMainSwitchBar != null) {
|
||||||
mMainSwitchBar.setTitle(mTitle);
|
mMainSwitchBar.setTitle(mTitle);
|
||||||
}
|
}
|
||||||
@@ -133,6 +146,7 @@ public class SettingsMainSwitchPreference extends TwoStatePreference {
|
|||||||
* Show the MainSwitchBar
|
* Show the MainSwitchBar
|
||||||
*/
|
*/
|
||||||
public void show() {
|
public void show() {
|
||||||
|
mIsVisible = true;
|
||||||
if (mMainSwitchBar != null) {
|
if (mMainSwitchBar != null) {
|
||||||
mMainSwitchBar.show();
|
mMainSwitchBar.show();
|
||||||
}
|
}
|
||||||
@@ -142,6 +156,7 @@ public class SettingsMainSwitchPreference extends TwoStatePreference {
|
|||||||
* Hide the MainSwitchBar
|
* Hide the MainSwitchBar
|
||||||
*/
|
*/
|
||||||
public void hide() {
|
public void hide() {
|
||||||
|
mIsVisible = false;
|
||||||
if (mMainSwitchBar != null) {
|
if (mMainSwitchBar != null) {
|
||||||
mMainSwitchBar.hide();
|
mMainSwitchBar.hide();
|
||||||
}
|
}
|
||||||
|
@@ -55,14 +55,15 @@ import com.android.settings.SettingsPreferenceFragment;
|
|||||||
import com.android.settings.Utils;
|
import com.android.settings.Utils;
|
||||||
import com.android.settings.core.SubSettingLauncher;
|
import com.android.settings.core.SubSettingLauncher;
|
||||||
import com.android.settings.network.ims.WifiCallingQueryImsState;
|
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.
|
* 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.
|
* The preference screen lets you enable/disable Wi-Fi Calling and change Wi-Fi Calling mode.
|
||||||
*/
|
*/
|
||||||
public class WifiCallingSettingsForSub extends SettingsPreferenceFragment
|
public class WifiCallingSettingsForSub extends SettingsPreferenceFragment
|
||||||
implements SwitchBar.OnSwitchChangeListener,
|
implements OnMainSwitchChangeListener,
|
||||||
Preference.OnPreferenceChangeListener {
|
Preference.OnPreferenceChangeListener {
|
||||||
private static final String TAG = "WifiCallingForSub";
|
private static final String TAG = "WifiCallingForSub";
|
||||||
|
|
||||||
@@ -85,8 +86,7 @@ public class WifiCallingSettingsForSub extends SettingsPreferenceFragment
|
|||||||
public static final int LAUCH_APP_UPDATE = 1;
|
public static final int LAUCH_APP_UPDATE = 1;
|
||||||
|
|
||||||
//UI objects
|
//UI objects
|
||||||
private SwitchBar mSwitchBar;
|
private SettingsMainSwitchBar mSwitchBar;
|
||||||
private Switch mSwitch;
|
|
||||||
private ListWithEntrySummaryPreference mButtonWfcMode;
|
private ListWithEntrySummaryPreference mButtonWfcMode;
|
||||||
private ListWithEntrySummaryPreference mButtonWfcRoamingMode;
|
private ListWithEntrySummaryPreference mButtonWfcRoamingMode;
|
||||||
private Preference mUpdateAddress;
|
private Preference mUpdateAddress;
|
||||||
@@ -190,7 +190,6 @@ public class WifiCallingSettingsForSub extends SettingsPreferenceFragment
|
|||||||
|
|
||||||
mSwitchBar = getView().findViewById(R.id.switch_bar);
|
mSwitchBar = getView().findViewById(R.id.switch_bar);
|
||||||
mSwitchBar.show();
|
mSwitchBar.show();
|
||||||
mSwitch = mSwitchBar.getSwitch();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -296,7 +295,7 @@ public class WifiCallingSettingsForSub extends SettingsPreferenceFragment
|
|||||||
mButtonWfcMode = findPreference(BUTTON_WFC_MODE);
|
mButtonWfcMode = findPreference(BUTTON_WFC_MODE);
|
||||||
mButtonWfcMode.setOnPreferenceChangeListener(this);
|
mButtonWfcMode.setOnPreferenceChangeListener(this);
|
||||||
|
|
||||||
mButtonWfcRoamingMode = findPreference(BUTTON_WFC_ROAMING_MODE);
|
mButtonWfcRoamingMode = findPreference(BUTTON_WFC_ROAMING_MODE);
|
||||||
mButtonWfcRoamingMode.setOnPreferenceChangeListener(this);
|
mButtonWfcRoamingMode.setOnPreferenceChangeListener(this);
|
||||||
|
|
||||||
mUpdateAddress = findPreference(PREFERENCE_EMERGENCY_ADDRESS);
|
mUpdateAddress = findPreference(PREFERENCE_EMERGENCY_ADDRESS);
|
||||||
@@ -403,7 +402,7 @@ public class WifiCallingSettingsForSub extends SettingsPreferenceFragment
|
|||||||
final WifiCallingQueryImsState queryIms = queryImsState(mSubId);
|
final WifiCallingQueryImsState queryIms = queryImsState(mSubId);
|
||||||
final boolean wfcEnabled = queryIms.isEnabledByUser()
|
final boolean wfcEnabled = queryIms.isEnabledByUser()
|
||||||
&& queryIms.isAllowUserControl();
|
&& queryIms.isAllowUserControl();
|
||||||
mSwitch.setChecked(wfcEnabled);
|
mSwitchBar.setChecked(wfcEnabled);
|
||||||
final int wfcMode = mImsMmTelManager.getVoWiFiModeSetting();
|
final int wfcMode = mImsMmTelManager.getVoWiFiModeSetting();
|
||||||
final int wfcRoamingMode = mImsMmTelManager.getVoWiFiRoamingModeSetting();
|
final int wfcRoamingMode = mImsMmTelManager.getVoWiFiRoamingModeSetting();
|
||||||
mButtonWfcMode.setValue(Integer.toString(wfcMode));
|
mButtonWfcMode.setValue(Integer.toString(wfcMode));
|
||||||
|
@@ -27,7 +27,6 @@ import static org.mockito.Matchers.anyInt;
|
|||||||
import static org.mockito.Matchers.eq;
|
import static org.mockito.Matchers.eq;
|
||||||
import static org.mockito.Mockito.doNothing;
|
import static org.mockito.Mockito.doNothing;
|
||||||
import static org.mockito.Mockito.doReturn;
|
import static org.mockito.Mockito.doReturn;
|
||||||
import static org.mockito.Mockito.eq;
|
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
import static org.mockito.Mockito.never;
|
import static org.mockito.Mockito.never;
|
||||||
import static org.mockito.Mockito.spy;
|
import static org.mockito.Mockito.spy;
|
||||||
@@ -55,8 +54,7 @@ import com.android.settings.SettingsActivity;
|
|||||||
import com.android.settings.network.ims.MockWifiCallingQueryImsState;
|
import com.android.settings.network.ims.MockWifiCallingQueryImsState;
|
||||||
import com.android.settings.network.ims.WifiCallingQueryImsState;
|
import com.android.settings.network.ims.WifiCallingQueryImsState;
|
||||||
import com.android.settings.testutils.shadow.ShadowFragment;
|
import com.android.settings.testutils.shadow.ShadowFragment;
|
||||||
import com.android.settings.widget.SwitchBar;
|
import com.android.settings.widget.SettingsMainSwitchBar;
|
||||||
import com.android.settings.widget.ToggleSwitch;
|
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
@@ -85,19 +83,28 @@ public class WifiCallingSettingsForSubTest {
|
|||||||
private final PersistableBundle mBundle = new PersistableBundle();
|
private final PersistableBundle mBundle = new PersistableBundle();
|
||||||
|
|
||||||
private MockWifiCallingQueryImsState mQueryImsState;
|
private MockWifiCallingQueryImsState mQueryImsState;
|
||||||
|
private SettingsMainSwitchBar mSwitchBar;
|
||||||
|
|
||||||
@Mock private static CarrierConfigManager sCarrierConfigManager;
|
@Mock
|
||||||
@Mock private CarrierConfigManager mMockConfigManager;
|
private static CarrierConfigManager sCarrierConfigManager;
|
||||||
@Mock private ImsMmTelManager mImsMmTelManager;
|
@Mock
|
||||||
@Mock private TelephonyManager mTelephonyManager;
|
private CarrierConfigManager mMockConfigManager;
|
||||||
@Mock private PreferenceScreen mPreferenceScreen;
|
@Mock
|
||||||
@Mock private SettingsActivity mActivity;
|
private ImsMmTelManager mImsMmTelManager;
|
||||||
@Mock private SwitchBar mSwitchBar;
|
@Mock
|
||||||
@Mock private ToggleSwitch mToggleSwitch;
|
private TelephonyManager mTelephonyManager;
|
||||||
@Mock private View mView;
|
@Mock
|
||||||
@Mock private ListWithEntrySummaryPreference mButtonWfcMode;
|
private PreferenceScreen mPreferenceScreen;
|
||||||
@Mock private ListWithEntrySummaryPreference mButtonWfcRoamingMode;
|
@Mock
|
||||||
@Mock private Preference mUpdateAddress;
|
private SettingsActivity mActivity;
|
||||||
|
@Mock
|
||||||
|
private View mView;
|
||||||
|
@Mock
|
||||||
|
private ListWithEntrySummaryPreference mButtonWfcMode;
|
||||||
|
@Mock
|
||||||
|
private ListWithEntrySummaryPreference mButtonWfcRoamingMode;
|
||||||
|
@Mock
|
||||||
|
private Preference mUpdateAddress;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() throws Exception {
|
public void setUp() throws Exception {
|
||||||
@@ -125,7 +132,7 @@ public class WifiCallingSettingsForSubTest {
|
|||||||
mEmptyView = new TextView(mContext);
|
mEmptyView = new TextView(mContext);
|
||||||
doReturn(mEmptyView).when(mView).findViewById(android.R.id.empty);
|
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);
|
doReturn(mSwitchBar).when(mView).findViewById(R.id.switch_bar);
|
||||||
|
|
||||||
mQueryImsState = new MockWifiCallingQueryImsState(mContext, SUB_ID);
|
mQueryImsState = new MockWifiCallingQueryImsState(mContext, SUB_ID);
|
||||||
@@ -364,6 +371,7 @@ public class WifiCallingSettingsForSubTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
void showAlert(Intent intent) {}
|
void showAlert(Intent intent) {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user