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;