Update settings PrimarySwitchPreference reference
To make InputMethodPreference support 2 target
reference, CL[1] move the PrimarySwitchPreference
into SettingsLib.
Change all PrimarySwitchPreference reference to
Settingslib one and remove the original one.
[1]: Idea3935d95b8d22b00ca89313e9eb3e979e4aa74
Bug: 197705032
Test: Presubmit
Change-Id: I95d111522344bb7cbdd380382e48fe60a5ebc9a2
diff --git a/res/layout/restricted_preference_widget_primary_switch.xml b/res/layout/restricted_preference_widget_primary_switch.xml
deleted file mode 100644
index 81d7291..0000000
--- a/res/layout/restricted_preference_widget_primary_switch.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright (C) 2019 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~ http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License.
- -->
-
-<merge xmlns:android="http://schemas.android.com/apk/res/android">
- <include layout="@layout/restricted_icon"/>
-
- <include layout="@layout/preference_widget_primary_switch"/>
-</merge>
\ No newline at end of file
diff --git a/res/xml/accessibility_settings.xml b/res/xml/accessibility_settings.xml
index 14879a8..61f527d 100644
--- a/res/xml/accessibility_settings.xml
+++ b/res/xml/accessibility_settings.xml
@@ -44,7 +44,7 @@
android:title="@string/accessibility_text_and_display_title"
settings:searchable="true"/>
- <com.android.settings.widget.PrimarySwitchPreference
+ <com.android.settingslib.PrimarySwitchPreference
android:fragment="com.android.settings.accessibility.ToggleReduceBrightColorsPreferenceFragment"
android:key="reduce_bright_colors_preference"
android:icon="@drawable/ic_reduce_bright_colors"
diff --git a/res/xml/development_settings.xml b/res/xml/development_settings.xml
index 115fefc..603bab3 100644
--- a/res/xml/development_settings.xml
+++ b/res/xml/development_settings.xml
@@ -137,7 +137,7 @@
<Preference android:key="clear_adb_keys"
android:title="@string/clear_adb_keys" />
- <com.android.settings.widget.PrimarySwitchPreference
+ <com.android.settingslib.PrimarySwitchPreference
android:fragment="com.android.settings.development.WirelessDebuggingFragment"
android:key="toggle_adb_wireless"
android:title="@string/enable_adb_wireless"
diff --git a/res/xml/display_settings.xml b/res/xml/display_settings.xml
index c48dcbc..328e15c 100644
--- a/res/xml/display_settings.xml
+++ b/res/xml/display_settings.xml
@@ -31,7 +31,7 @@
settings:useAdminDisabledSummary="true"
settings:userRestriction="no_config_brightness"/>
- <com.android.settings.widget.PrimarySwitchPreference
+ <com.android.settingslib.PrimarySwitchPreference
android:key="auto_brightness_entry"
android:title="@string/auto_brightness_title"
android:fragment="com.android.settings.display.AutoBrightnessSettings"
@@ -85,7 +85,7 @@
<PreferenceCategory
android:title="@string/category_name_color">
- <com.android.settings.widget.PrimarySwitchPreference
+ <com.android.settingslib.PrimarySwitchPreference
android:key="night_display"
android:title="@string/night_display_title"
android:fragment="com.android.settings.display.NightDisplaySettings"
diff --git a/res/xml/gestures.xml b/res/xml/gestures.xml
index f4e21fa..4881360 100644
--- a/res/xml/gestures.xml
+++ b/res/xml/gestures.xml
@@ -87,7 +87,7 @@
android:fragment="com.android.settings.gestures.PowerMenuSettings"
settings:controller="com.android.settings.gestures.PowerMenuPreferenceController" />
- <com.android.settings.widget.PrimarySwitchPreference
+ <com.android.settingslib.PrimarySwitchPreference
android:key="gesture_prevent_ringing_summary"
android:title="@string/gesture_prevent_ringing_screen_title"
android:fragment="com.android.settings.gestures.PreventRingingGestureSettings"
diff --git a/res/xml/network_and_internet.xml b/res/xml/network_and_internet.xml
index 7b6b67c..bf4d1da 100644
--- a/res/xml/network_and_internet.xml
+++ b/res/xml/network_and_internet.xml
@@ -28,7 +28,7 @@
android:order="-40"
settings:controller="com.android.settings.network.MultiNetworkHeaderController"/>
- <com.android.settings.widget.PrimarySwitchPreference
+ <com.android.settingslib.PrimarySwitchPreference
android:fragment="com.android.settings.wifi.WifiSettings"
android:key="main_toggle_wifi"
android:title="@string/wifi_settings"
@@ -39,7 +39,7 @@
<intent
android:action="android.settings.WIFI_SETTINGS"
android:targetClass="Settings$WifiSettingsActivity" />
- </com.android.settings.widget.PrimarySwitchPreference>
+ </com.android.settingslib.PrimarySwitchPreference>
<com.android.settings.widget.AddPreference
android:key="mobile_network_list"
@@ -79,7 +79,7 @@
settings:userRestriction="no_config_tethering"
settings:useAdminDisabledSummary="true" />
- <com.android.settings.widget.PrimarySwitchPreference
+ <com.android.settingslib.PrimarySwitchPreference
android:fragment="com.android.settings.AllInOneTetherSettings"
android:key="all_tether_settings"
android:title="@string/tether_settings_title_all"
diff --git a/res/xml/network_provider_internet.xml b/res/xml/network_provider_internet.xml
index 1a5378e..07e797a 100644
--- a/res/xml/network_provider_internet.xml
+++ b/res/xml/network_provider_internet.xml
@@ -79,7 +79,7 @@
settings:userRestriction="no_config_tethering"
settings:useAdminDisabledSummary="true" />
- <com.android.settings.widget.PrimarySwitchPreference
+ <com.android.settingslib.PrimarySwitchPreference
android:fragment="com.android.settings.AllInOneTetherSettings"
android:key="all_tether_settings"
android:title="@string/tether_settings_title_all"
diff --git a/res/xml/privacy_dashboard_settings.xml b/res/xml/privacy_dashboard_settings.xml
index f4e7062..236df5e 100644
--- a/res/xml/privacy_dashboard_settings.xml
+++ b/res/xml/privacy_dashboard_settings.xml
@@ -128,12 +128,11 @@
android:summary="@string/content_capture_summary"
settings:controller="com.android.settings.privacy.EnableContentCapturePreferenceController"/>
- <com.android.settings.widget.PrimarySwitchPreference
+ <com.android.settingslib.PrimarySwitchPreference
android:key="content_capture_custom_settings"
android:title="@string/content_capture"
android:summary="@string/content_capture_summary"
- settings:controller="com.android.settings.privacy.EnableContentCaptureWithServiceSettingsPreferenceController">
- </com.android.settings.widget.PrimarySwitchPreference>
+ settings:controller="com.android.settings.privacy.EnableContentCaptureWithServiceSettingsPreferenceController"/>
<!-- Clipboard access notifications -->
<SwitchPreference
diff --git a/res/xml/sound_settings.xml b/res/xml/sound_settings.xml
index 56632a5..0468e7f 100644
--- a/res/xml/sound_settings.xml
+++ b/res/xml/sound_settings.xml
@@ -128,7 +128,7 @@
settings:controller="com.android.settings.sound.VibrateForCallsPreferenceController"
settings:keywords="@string/keywords_vibrate_for_calls"/>
- <com.android.settings.widget.PrimarySwitchPreference
+ <com.android.settingslib.PrimarySwitchPreference
android:key="gesture_prevent_ringing_sound"
android:title="@string/gesture_prevent_ringing_sound_title"
android:order="-80"
diff --git a/res/xml/storage_dashboard_fragment.xml b/res/xml/storage_dashboard_fragment.xml
index 8edf4bf..9c0f1d1 100644
--- a/res/xml/storage_dashboard_fragment.xml
+++ b/res/xml/storage_dashboard_fragment.xml
@@ -31,7 +31,7 @@
android:selectable="false"
settings:searchable="false"
settings:controller="com.android.settings.deviceinfo.storage.StorageUsageProgressBarPreferenceController"/>
- <com.android.settings.widget.PrimarySwitchPreference
+ <com.android.settingslib.PrimarySwitchPreference
android:fragment="com.android.settings.deletionhelper.AutomaticStorageManagerSettings"
android:key="toggle_asm"
android:title="@string/automatic_storage_manager_preference_title"
diff --git a/res/xml/storage_dashboard_header_fragment.xml b/res/xml/storage_dashboard_header_fragment.xml
index 60c4c88..7445f9f 100644
--- a/res/xml/storage_dashboard_header_fragment.xml
+++ b/res/xml/storage_dashboard_header_fragment.xml
@@ -30,7 +30,7 @@
android:selectable="false"
settings:searchable="false"
settings:controller="com.android.settings.deviceinfo.storage.StorageUsageProgressBarPreferenceController"/>
- <com.android.settings.widget.PrimarySwitchPreference
+ <com.android.settingslib.PrimarySwitchPreference
android:fragment="com.android.settings.deletionhelper.AutomaticStorageManagerSettings"
android:key="toggle_asm"
android:title="@string/automatic_storage_manager_preference_title"
diff --git a/src/com/android/settings/accessibility/ReduceBrightColorsPreferenceController.java b/src/com/android/settings/accessibility/ReduceBrightColorsPreferenceController.java
index d886a59..621db6d 100644
--- a/src/com/android/settings/accessibility/ReduceBrightColorsPreferenceController.java
+++ b/src/com/android/settings/accessibility/ReduceBrightColorsPreferenceController.java
@@ -31,7 +31,7 @@
import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController;
-import com.android.settings.widget.PrimarySwitchPreference;
+import com.android.settingslib.PrimarySwitchPreference;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnStart;
import com.android.settingslib.core.lifecycle.events.OnStop;
diff --git a/src/com/android/settings/core/TogglePreferenceController.java b/src/com/android/settings/core/TogglePreferenceController.java
index c958a93..0655632 100644
--- a/src/com/android/settings/core/TogglePreferenceController.java
+++ b/src/com/android/settings/core/TogglePreferenceController.java
@@ -20,8 +20,8 @@
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.slices.SliceData;
-import com.android.settings.widget.PrimarySwitchPreference;
import com.android.settings.widget.TwoStateButtonPreference;
+import com.android.settingslib.PrimarySwitchPreference;
/**
* Abstract class that consolidates logic for updating toggle controllers.
diff --git a/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java b/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java
index a03a4f9..6915064 100644
--- a/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java
+++ b/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java
@@ -61,7 +61,7 @@
import com.android.settings.Utils;
import com.android.settings.dashboard.profileselector.ProfileSelectDialog;
import com.android.settings.overlay.FeatureFactory;
-import com.android.settings.widget.PrimarySwitchPreference;
+import com.android.settingslib.PrimarySwitchPreference;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.drawer.ActivityTile;
import com.android.settingslib.drawer.CategoryKey;
diff --git a/src/com/android/settings/dashboard/DashboardFragment.java b/src/com/android/settings/dashboard/DashboardFragment.java
index dfd931d..7ed2e3d 100644
--- a/src/com/android/settings/dashboard/DashboardFragment.java
+++ b/src/com/android/settings/dashboard/DashboardFragment.java
@@ -39,7 +39,7 @@
import com.android.settings.core.CategoryMixin.CategoryListener;
import com.android.settings.core.PreferenceControllerListHelper;
import com.android.settings.overlay.FeatureFactory;
-import com.android.settings.widget.PrimarySwitchPreference;
+import com.android.settingslib.PrimarySwitchPreference;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
diff --git a/src/com/android/settings/development/WirelessDebuggingPreferenceController.java b/src/com/android/settings/development/WirelessDebuggingPreferenceController.java
index 2d4e889..f637ae1 100644
--- a/src/com/android/settings/development/WirelessDebuggingPreferenceController.java
+++ b/src/com/android/settings/development/WirelessDebuggingPreferenceController.java
@@ -36,7 +36,7 @@
import com.android.settings.R;
import com.android.settings.core.PreferenceControllerMixin;
-import com.android.settings.widget.PrimarySwitchPreference;
+import com.android.settingslib.PrimarySwitchPreference;
import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnPause;
diff --git a/src/com/android/settings/deviceinfo/storage/AutomaticStorageManagementSwitchPreferenceController.java b/src/com/android/settings/deviceinfo/storage/AutomaticStorageManagementSwitchPreferenceController.java
index f753868..84d88e3 100644
--- a/src/com/android/settings/deviceinfo/storage/AutomaticStorageManagementSwitchPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/storage/AutomaticStorageManagementSwitchPreferenceController.java
@@ -31,8 +31,8 @@
import com.android.settings.deletionhelper.ActivationWarningFragment;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.widget.GenericSwitchController;
-import com.android.settings.widget.PrimarySwitchPreference;
import com.android.settings.widget.SwitchWidgetController;
+import com.android.settingslib.PrimarySwitchPreference;
import com.android.settingslib.Utils;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
diff --git a/src/com/android/settings/display/NightDisplayPreferenceController.java b/src/com/android/settings/display/NightDisplayPreferenceController.java
index 003373c..904d040 100644
--- a/src/com/android/settings/display/NightDisplayPreferenceController.java
+++ b/src/com/android/settings/display/NightDisplayPreferenceController.java
@@ -22,7 +22,7 @@
import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController;
-import com.android.settings.widget.PrimarySwitchPreference;
+import com.android.settingslib.PrimarySwitchPreference;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnStart;
import com.android.settingslib.core.lifecycle.events.OnStop;
diff --git a/src/com/android/settings/display/SmartAutoRotatePreference.java b/src/com/android/settings/display/SmartAutoRotatePreference.java
index 7cf6390..32b411d 100644
--- a/src/com/android/settings/display/SmartAutoRotatePreference.java
+++ b/src/com/android/settings/display/SmartAutoRotatePreference.java
@@ -20,7 +20,7 @@
import android.util.AttributeSet;
import com.android.internal.view.RotationPolicy;
-import com.android.settings.widget.PrimarySwitchPreference;
+import com.android.settingslib.PrimarySwitchPreference;
/**
* component for the display settings auto rotate toggle
diff --git a/src/com/android/settings/display/darkmode/DarkModePreference.java b/src/com/android/settings/display/darkmode/DarkModePreference.java
index c69bb01..4820667 100644
--- a/src/com/android/settings/display/darkmode/DarkModePreference.java
+++ b/src/com/android/settings/display/darkmode/DarkModePreference.java
@@ -21,7 +21,7 @@
import android.util.AttributeSet;
import com.android.settings.R;
-import com.android.settings.widget.PrimarySwitchPreference;
+import com.android.settingslib.PrimarySwitchPreference;
import java.time.LocalTime;
diff --git a/src/com/android/settings/gestures/PreventRingingParentPreferenceController.java b/src/com/android/settings/gestures/PreventRingingParentPreferenceController.java
index b3b39fb..cb2fc07 100644
--- a/src/com/android/settings/gestures/PreventRingingParentPreferenceController.java
+++ b/src/com/android/settings/gestures/PreventRingingParentPreferenceController.java
@@ -32,7 +32,7 @@
import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController;
-import com.android.settings.widget.PrimarySwitchPreference;
+import com.android.settingslib.PrimarySwitchPreference;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnStart;
import com.android.settingslib.core.lifecycle.events.OnStop;
diff --git a/src/com/android/settings/network/AllInOneTetherPreferenceController.java b/src/com/android/settings/network/AllInOneTetherPreferenceController.java
index 0f4905a..02dc440 100644
--- a/src/com/android/settings/network/AllInOneTetherPreferenceController.java
+++ b/src/com/android/settings/network/AllInOneTetherPreferenceController.java
@@ -43,7 +43,7 @@
import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.FeatureFlags;
import com.android.settings.widget.GenericSwitchController;
-import com.android.settings.widget.PrimarySwitchPreference;
+import com.android.settingslib.PrimarySwitchPreference;
import com.android.settingslib.TetherUtil;
import java.util.concurrent.atomic.AtomicReference;
diff --git a/src/com/android/settings/notification/app/AppChannelsBypassingDndPreferenceController.java b/src/com/android/settings/notification/app/AppChannelsBypassingDndPreferenceController.java
index 5e12bbd..92cd911 100644
--- a/src/com/android/settings/notification/app/AppChannelsBypassingDndPreferenceController.java
+++ b/src/com/android/settings/notification/app/AppChannelsBypassingDndPreferenceController.java
@@ -39,7 +39,7 @@
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.core.SubSettingLauncher;
import com.android.settings.notification.NotificationBackend;
-import com.android.settings.widget.PrimarySwitchPreference;
+import com.android.settingslib.PrimarySwitchPreference;
import com.android.settingslib.RestrictedSwitchPreference;
import java.util.ArrayList;
diff --git a/src/com/android/settings/notification/app/ChannelListPreferenceController.java b/src/com/android/settings/notification/app/ChannelListPreferenceController.java
index 12c15c2..8db3b21 100644
--- a/src/com/android/settings/notification/app/ChannelListPreferenceController.java
+++ b/src/com/android/settings/notification/app/ChannelListPreferenceController.java
@@ -41,7 +41,7 @@
import com.android.settings.applications.AppInfoBase;
import com.android.settings.core.SubSettingLauncher;
import com.android.settings.notification.NotificationBackend;
-import com.android.settings.widget.PrimarySwitchPreference;
+import com.android.settingslib.PrimarySwitchPreference;
import com.android.settingslib.RestrictedSwitchPreference;
import java.util.ArrayList;
diff --git a/src/com/android/settings/widget/GenericSwitchController.java b/src/com/android/settings/widget/GenericSwitchController.java
index eceabc4..819907a 100644
--- a/src/com/android/settings/widget/GenericSwitchController.java
+++ b/src/com/android/settings/widget/GenericSwitchController.java
@@ -20,6 +20,7 @@
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.PrimarySwitchPreference;
import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
import com.android.settingslib.RestrictedSwitchPreference;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
diff --git a/src/com/android/settings/widget/PrimarySwitchPreference.java b/src/com/android/settings/widget/PrimarySwitchPreference.java
deleted file mode 100644
index b70ae4e..0000000
--- a/src/com/android/settings/widget/PrimarySwitchPreference.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.widget;
-
-import android.content.Context;
-import android.util.AttributeSet;
-import android.view.MotionEvent;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.widget.Switch;
-
-import androidx.annotation.Keep;
-import androidx.annotation.Nullable;
-import androidx.preference.PreferenceViewHolder;
-
-import com.android.settings.R;
-import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
-import com.android.settingslib.RestrictedPreference;
-
-/**
- * A custom preference that provides inline switch toggle. It has a mandatory field for title, and
- * optional fields for icon and sub-text. And it can be restricted by admin state.
- */
-public class PrimarySwitchPreference extends RestrictedPreference {
-
- private Switch mSwitch;
- private boolean mChecked;
- private boolean mCheckedSet;
- private boolean mEnableSwitch = true;
-
- public PrimarySwitchPreference(Context context, AttributeSet attrs,
- int defStyleAttr, int defStyleRes) {
- super(context, attrs, defStyleAttr, defStyleRes);
- }
-
- public PrimarySwitchPreference(Context context, AttributeSet attrs, int defStyleAttr) {
- super(context, attrs, defStyleAttr);
- }
-
- public PrimarySwitchPreference(Context context, AttributeSet attrs) {
- super(context, attrs);
- }
-
- public PrimarySwitchPreference(Context context) {
- super(context);
- }
-
- @Override
- protected int getSecondTargetResId() {
- return R.layout.restricted_preference_widget_primary_switch;
- }
-
- @Override
- public void onBindViewHolder(PreferenceViewHolder holder) {
- super.onBindViewHolder(holder);
- final View switchWidget = holder.findViewById(R.id.switchWidget);
- if (switchWidget != null) {
- switchWidget.setVisibility(isDisabledByAdmin() ? View.GONE : View.VISIBLE);
- switchWidget.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- if (mSwitch != null && !mSwitch.isEnabled()) {
- return;
- }
- setChecked(!mChecked);
- if (!callChangeListener(mChecked)) {
- setChecked(!mChecked);
- } else {
- persistBoolean(mChecked);
- }
- }
- });
-
- // Consumes move events to ignore drag actions.
- switchWidget.setOnTouchListener((v, event) -> {
- return event.getActionMasked() == MotionEvent.ACTION_MOVE;
- });
- }
-
- mSwitch = (Switch) holder.findViewById(R.id.switchWidget);
- if (mSwitch != null) {
- mSwitch.setContentDescription(getTitle());
- mSwitch.setChecked(mChecked);
- mSwitch.setEnabled(mEnableSwitch);
- }
- }
-
- public boolean isChecked() {
- return mSwitch != null && mChecked;
- }
-
- /**
- * Used to validate the state of mChecked and mCheckedSet when testing, without requiring
- * that a ViewHolder be bound to the object.
- */
- @Keep
- @Nullable
- public Boolean getCheckedState() {
- return mCheckedSet ? mChecked : null;
- }
-
- /**
- * Set the checked status to be {@code checked}.
- *
- * @param checked The new checked status
- */
- public void setChecked(boolean checked) {
- // Always set checked the first time; don't assume the field's default of false.
- final boolean changed = mChecked != checked;
- if (changed || !mCheckedSet) {
- mChecked = checked;
- mCheckedSet = true;
- if (mSwitch != null) {
- mSwitch.setChecked(checked);
- }
- }
- }
-
- /**
- * Set the Switch to be the status of {@code enabled}.
- *
- * @param enabled The new enabled status
- */
- public void setSwitchEnabled(boolean enabled) {
- mEnableSwitch = enabled;
- if (mSwitch != null) {
- mSwitch.setEnabled(enabled);
- }
- }
-
- /**
- * If admin is not null, disables the switch.
- * Otherwise, keep it enabled.
- */
- public void setDisabledByAdmin(EnforcedAdmin admin) {
- super.setDisabledByAdmin(admin);
- setSwitchEnabled(admin == null);
- }
-
- public Switch getSwitch() {
- return mSwitch;
- }
-
- @Override
- protected boolean shouldHideSecondTarget() {
- return getSecondTargetResId() == 0;
- }
-}
diff --git a/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceController.java b/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceController.java
index fdc12aa..ae44b93 100644
--- a/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceController.java
+++ b/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceController.java
@@ -22,8 +22,8 @@
import com.android.settings.R;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.widget.GenericSwitchController;
-import com.android.settings.widget.PrimarySwitchPreference;
import com.android.settings.widget.SummaryUpdater;
+import com.android.settingslib.PrimarySwitchPreference;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
diff --git a/tests/legacy_unit/src/com/android/settings/notification/app/ChannelListPreferenceControllerTest.java b/tests/legacy_unit/src/com/android/settings/notification/app/ChannelListPreferenceControllerTest.java
index b54782c..015addc 100644
--- a/tests/legacy_unit/src/com/android/settings/notification/app/ChannelListPreferenceControllerTest.java
+++ b/tests/legacy_unit/src/com/android/settings/notification/app/ChannelListPreferenceControllerTest.java
@@ -43,7 +43,7 @@
import com.android.settings.notification.NotificationBackend;
import com.android.settings.notification.NotificationBackend.NotificationsSentState;
-import com.android.settings.widget.PrimarySwitchPreference;
+import com.android.settingslib.PrimarySwitchPreference;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/robotests/src/com/android/settings/dashboard/DashboardFragmentTest.java b/tests/robotests/src/com/android/settings/dashboard/DashboardFragmentTest.java
index 7116b01..fd1c8ff 100644
--- a/tests/robotests/src/com/android/settings/dashboard/DashboardFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/dashboard/DashboardFragmentTest.java
@@ -48,7 +48,7 @@
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.slices.BlockingSlicePrefController;
import com.android.settings.testutils.FakeFeatureFactory;
-import com.android.settings.widget.PrimarySwitchPreference;
+import com.android.settingslib.PrimarySwitchPreference;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.core.instrumentation.VisibilityLoggerMixin;
diff --git a/tests/robotests/src/com/android/settings/development/WirelessDebuggingPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/WirelessDebuggingPreferenceControllerTest.java
index 54bd54b..e8b0317 100644
--- a/tests/robotests/src/com/android/settings/development/WirelessDebuggingPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/WirelessDebuggingPreferenceControllerTest.java
@@ -33,7 +33,7 @@
import com.android.settings.testutils.shadow.ShadowUtils;
import com.android.settings.testutils.shadow.ShadowWirelessDebuggingPreferenceController;
-import com.android.settings.widget.PrimarySwitchPreference;
+import com.android.settingslib.PrimarySwitchPreference;
import com.android.settingslib.core.lifecycle.Lifecycle;
import org.junit.After;
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/storage/AutomaticStorageManagementSwitchPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/storage/AutomaticStorageManagementSwitchPreferenceControllerTest.java
index 384ddc3..a0f188d 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/storage/AutomaticStorageManagementSwitchPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/storage/AutomaticStorageManagementSwitchPreferenceControllerTest.java
@@ -45,7 +45,7 @@
import com.android.settings.deletionhelper.ActivationWarningFragment;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.testutils.FakeFeatureFactory;
-import com.android.settings.widget.PrimarySwitchPreference;
+import com.android.settingslib.PrimarySwitchPreference;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/robotests/src/com/android/settings/gestures/PreventRingingParentPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/PreventRingingParentPreferenceControllerTest.java
index 48a047f..04467a4 100644
--- a/tests/robotests/src/com/android/settings/gestures/PreventRingingParentPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/PreventRingingParentPreferenceControllerTest.java
@@ -38,7 +38,7 @@
import androidx.preference.PreferenceScreen;
import com.android.settings.R;
-import com.android.settings.widget.PrimarySwitchPreference;
+import com.android.settingslib.PrimarySwitchPreference;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/robotests/src/com/android/settings/network/AllInOneTetherPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/AllInOneTetherPreferenceControllerTest.java
index 7dcd6d4..c216671 100644
--- a/tests/robotests/src/com/android/settings/network/AllInOneTetherPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/network/AllInOneTetherPreferenceControllerTest.java
@@ -40,7 +40,7 @@
import androidx.test.core.app.ApplicationProvider;
import com.android.settings.R;
-import com.android.settings.widget.PrimarySwitchPreference;
+import com.android.settingslib.PrimarySwitchPreference;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/robotests/src/com/android/settings/widget/PrimarySwitchPreferenceTest.java b/tests/robotests/src/com/android/settings/widget/PrimarySwitchPreferenceTest.java
deleted file mode 100644
index c58f595..0000000
--- a/tests/robotests/src/com/android/settings/widget/PrimarySwitchPreferenceTest.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.widget;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-
-import android.content.Context;
-import android.view.LayoutInflater;
-import android.widget.LinearLayout;
-import android.widget.Switch;
-
-import androidx.preference.Preference.OnPreferenceChangeListener;
-import androidx.preference.PreferenceViewHolder;
-
-import com.android.settings.R;
-import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-
-@RunWith(RobolectricTestRunner.class)
-public class PrimarySwitchPreferenceTest {
-
- private Context mContext;
- private PrimarySwitchPreference mPreference;
- private PreferenceViewHolder mHolder;
- private LinearLayout mWidgetView;
-
- @Before
- public void setUp() {
- mContext = RuntimeEnvironment.application;
- mPreference = new PrimarySwitchPreference(mContext);
- LayoutInflater inflater = LayoutInflater.from(mContext);
- mHolder = PreferenceViewHolder.createInstanceForTests(inflater.inflate(
- com.android.settingslib.R.layout.preference_two_target, null));
- mWidgetView = mHolder.itemView.findViewById(android.R.id.widget_frame);
- inflater.inflate(R.layout.restricted_preference_widget_primary_switch, mWidgetView, true);
- }
-
- @Test
- public void createNewPreference_shouldSetLayout() {
- assertThat(mPreference.getWidgetLayoutResource())
- .isEqualTo(R.layout.restricted_preference_widget_primary_switch);
- }
-
- @Test
- public void setChecked_shouldUpdateButtonCheckedState() {
- final Switch toggle = (Switch) mHolder.findViewById(R.id.switchWidget);
- mPreference.onBindViewHolder(mHolder);
-
- mPreference.setChecked(true);
- assertThat(toggle.isChecked()).isTrue();
-
- mPreference.setChecked(false);
- assertThat(toggle.isChecked()).isFalse();
- }
-
- @Test
- public void setSwitchEnabled_shouldUpdateButtonEnabledState() {
- final Switch toggle = (Switch) mHolder.findViewById(R.id.switchWidget);
- mPreference.onBindViewHolder(mHolder);
-
- mPreference.setSwitchEnabled(true);
- assertThat(toggle.isEnabled()).isTrue();
-
- mPreference.setSwitchEnabled(false);
- assertThat(toggle.isEnabled()).isFalse();
- }
-
- @Test
- public void setSwitchEnabled_shouldUpdateButtonEnabledState_beforeViewBound() {
- final Switch toggle = (Switch) mHolder.findViewById(R.id.switchWidget);
-
- mPreference.setSwitchEnabled(false);
- mPreference.onBindViewHolder(mHolder);
- assertThat(toggle.isEnabled()).isFalse();
- }
-
- @Test
- public void clickWidgetView_shouldToggleButton() {
- assertThat(mWidgetView).isNotNull();
-
- final Switch toggle = (Switch) mHolder.findViewById(R.id.switchWidget);
- mPreference.onBindViewHolder(mHolder);
-
- toggle.performClick();
- assertThat(toggle.isChecked()).isTrue();
-
- toggle.performClick();
- assertThat(toggle.isChecked()).isFalse();
- }
-
- @Test
- public void clickWidgetView_shouldNotToggleButtonIfDisabled() {
- assertThat(mWidgetView).isNotNull();
-
- final Switch toggle = (Switch) mHolder.findViewById(R.id.switchWidget);
- mPreference.onBindViewHolder(mHolder);
- toggle.setEnabled(false);
-
- mWidgetView.performClick();
- assertThat(toggle.isChecked()).isFalse();
- }
-
- @Test
- public void clickWidgetView_shouldNotifyPreferenceChanged() {
-
- final Switch toggle = (Switch) mHolder.findViewById(R.id.switchWidget);
-
- final OnPreferenceChangeListener listener = mock(OnPreferenceChangeListener.class);
- mPreference.setOnPreferenceChangeListener(listener);
- mPreference.onBindViewHolder(mHolder);
-
- mPreference.setChecked(false);
- toggle.performClick();
- verify(listener).onPreferenceChange(mPreference, true);
-
- mPreference.setChecked(true);
- toggle.performClick();
- verify(listener).onPreferenceChange(mPreference, false);
- }
-
- @Test
- public void setDisabledByAdmin_hasEnforcedAdmin_shouldDisableButton() {
- final Switch toggle = (Switch) mHolder.findViewById(R.id.switchWidget);
- toggle.setEnabled(true);
- mPreference.onBindViewHolder(mHolder);
-
- mPreference.setDisabledByAdmin(mock(EnforcedAdmin.class));
- assertThat(toggle.isEnabled()).isFalse();
- }
-
- @Test
- public void setDisabledByAdmin_noEnforcedAdmin_shouldEnableButton() {
- final Switch toggle = (Switch) mHolder.findViewById(R.id.switchWidget);
- toggle.setEnabled(false);
- mPreference.onBindViewHolder(mHolder);
-
- mPreference.setDisabledByAdmin(null);
- assertThat(toggle.isEnabled()).isTrue();
- }
-
- @Test
- public void onBindViewHolder_toggleButtonShouldHaveContentDescription() {
- final Switch toggle = (Switch) mHolder.findViewById(R.id.switchWidget);
- final String label = "TestButton";
- mPreference.setTitle(label);
-
- mPreference.onBindViewHolder(mHolder);
-
- assertThat(toggle.getContentDescription()).isEqualTo(label);
- }
-}
diff --git a/tests/robotests/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceControllerTest.java
index b94df29..7f76950 100644
--- a/tests/robotests/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceControllerTest.java
@@ -38,7 +38,7 @@
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.shadow.ShadowRestrictedLockUtilsInternal;
-import com.android.settings.widget.PrimarySwitchPreference;
+import com.android.settingslib.PrimarySwitchPreference;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import org.junit.Before;
diff --git a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherPreferenceControllerTest.java
index 23bb0db..c3014ca 100644
--- a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherPreferenceControllerTest.java
@@ -31,7 +31,7 @@
import androidx.preference.PreferenceScreen;
import com.android.settings.testutils.FakeFeatureFactory;
-import com.android.settings.widget.PrimarySwitchPreference;
+import com.android.settingslib.PrimarySwitchPreference;
import com.android.settingslib.core.lifecycle.Lifecycle;
import org.junit.Before;