Migrate SyncStateSwitchPreference to SwitchPreferenceCompat
UI not changed in this cl, this cl helps UI switch in the future.
Bug: 306658427
Test: manual - on "Account sync" page
Test: manual - on "Turn screen on" detail page
Change-Id: Icd91bb69fdce302d9b9e92f501d1b1eaf2051960
diff --git a/res/layout/preference_widget_sync_toggle.xml b/res/layout/preference_widget_sync_toggle.xml
index c12b9f6..ae1e6f3 100644
--- a/res/layout/preference_widget_sync_toggle.xml
+++ b/res/layout/preference_widget_sync_toggle.xml
@@ -38,11 +38,5 @@
android:layout_marginEnd="8dip"
android:contentDescription="@string/sync_active" />
- <Switch
- android:id="@android:id/switch_widget"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center_vertical"
- android:focusable="false"
- android:clickable="false" />
+ <include layout="@layout/preference_widget_switch_compat" />
</LinearLayout>
diff --git a/res/values/styles_preference.xml b/res/values/styles_preference.xml
index 10c7e69..ec0a747 100644
--- a/res/values/styles_preference.xml
+++ b/res/values/styles_preference.xml
@@ -49,7 +49,7 @@
<item name="iconSpaceReserved">@bool/settingslib_config_icon_space_reserved</item>
</style>
- <style name="SyncSwitchPreference" parent="@style/SettingsSwitchPreference.SettingsLib">
+ <style name="SyncSwitchPreference" parent="@style/SettingsSwitchPreferenceCompat.SettingsLib">
<item name="android:widgetLayout">@layout/preference_widget_sync_toggle</item>
</style>
diff --git a/src/com/android/settings/accounts/SyncStateSwitchPreference.java b/src/com/android/settings/accounts/SyncStateSwitchPreference.java
index 9c7f739..2f92d56 100644
--- a/src/com/android/settings/accounts/SyncStateSwitchPreference.java
+++ b/src/com/android/settings/accounts/SyncStateSwitchPreference.java
@@ -26,12 +26,12 @@
import android.widget.TextView;
import androidx.preference.PreferenceViewHolder;
-import androidx.preference.SwitchPreference;
+import androidx.preference.SwitchPreferenceCompat;
import com.android.settings.R;
import com.android.settingslib.widget.AnimatedImageView;
-public class SyncStateSwitchPreference extends SwitchPreference {
+public class SyncStateSwitchPreference extends SwitchPreferenceCompat {
private boolean mIsActive = false;
private boolean mIsPending = false;
@@ -84,7 +84,7 @@
final boolean failedVisible = mFailed && !activeVisible;
syncFailedView.setVisibility(failedVisible ? View.VISIBLE : View.GONE);
- View switchView = view.findViewById(com.android.internal.R.id.switch_widget);
+ View switchView = view.findViewById(androidx.preference.R.id.switchWidget);
if (mOneTimeSyncMode) {
switchView.setVisibility(View.GONE);
diff --git a/src/com/android/settings/widget/FilterTouchesSwitchPreference.java b/src/com/android/settings/widget/FilterTouchesSwitchPreference.java
index 1b4d681..af625b2 100644
--- a/src/com/android/settings/widget/FilterTouchesSwitchPreference.java
+++ b/src/com/android/settings/widget/FilterTouchesSwitchPreference.java
@@ -20,13 +20,13 @@
import android.view.View;
import androidx.preference.PreferenceViewHolder;
-import androidx.preference.SwitchPreference;
+import androidx.preference.SwitchPreferenceCompat;
/**
* This widget with enabled filterTouchesWhenObscured attribute use to replace
- * the {@link SwitchPreference} in the Special access app pages for security.
+ * the {@link SwitchPreferenceCompat} in the Special access app pages for security.
*/
-public class FilterTouchesSwitchPreference extends SwitchPreference {
+public class FilterTouchesSwitchPreference extends SwitchPreferenceCompat {
public FilterTouchesSwitchPreference(Context context, AttributeSet attrs, int defStyleAttr,
int defStyleRes) {
@@ -48,7 +48,7 @@
@Override
public void onBindViewHolder(PreferenceViewHolder holder) {
super.onBindViewHolder(holder);
- final View switchView = holder.findViewById(android.R.id.switch_widget);
+ final View switchView = holder.findViewById(androidx.preference.R.id.switchWidget);
if (switchView != null) {
final View rootView = switchView.getRootView();
rootView.setFilterTouchesWhenObscured(true);