diff --git a/Android.mk b/Android.mk
index 84fc198..77d3e11 100644
--- a/Android.mk
+++ b/Android.mk
@@ -6,14 +6,12 @@
 LOCAL_SRC_FILES := $(call all-java-files-under, src)
 
 LOCAL_STATIC_ANDROID_LIBRARIES := \
-    android-support-dynamic-animation \
-    android-support-v4 \
-    android-support-v7-appcompat \
-    android-support-v7-palette \
-    android-support-v7-preference \
-    android-support-v7-recyclerview \
-    android-support-v13 \
-    android-support-v14-preference
+    androidx.appcompat_appcompat \
+    androidx.dynamicanimation_dynamicanimation \
+    androidx.legacy_legacy-support-v13 \
+    androidx.palette_palette \
+    androidx.preference_preference \
+    androidx.recyclerview_recyclerview
 
 LOCAL_STATIC_JAVA_LIBRARIES := \
     jsr305 \
diff --git a/proguard.flags b/proguard.flags
index 85e774a..fb42f1e 100644
--- a/proguard.flags
+++ b/proguard.flags
@@ -19,7 +19,7 @@
   *** onClick*(...);
 }
 
--keep public class * extends android.support.v7.preference.* {
+-keep public class * extends androidx.preference.* {
     public <init>(android.content.Context, android.util.AttributeSet);
 }
 
diff --git a/res/layout/fragment_setup_triggers.xml b/res/layout/fragment_setup_triggers.xml
index dcf0ac2..d09781a 100644
--- a/res/layout/fragment_setup_triggers.xml
+++ b/res/layout/fragment_setup_triggers.xml
@@ -24,14 +24,14 @@
         android:padding="8dp"
         android:id="@+id/instructions" />
 
-    <android.support.v4.view.ViewPager
+    <androidx.viewpager.widget.ViewPager
         android:id="@+id/view_pager"
         android:layout_weight="1"
         android:layout_width="match_parent"
         android:layout_height="0dp"
         android:background="?android:attr/colorBackgroundFloating"
         android:gravity="center">
-        <android.support.v4.view.PagerTabStrip
+        <androidx.viewpager.widget.PagerTabStrip
                 android:id="@+id/tabs"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
@@ -39,7 +39,7 @@
                 android:textAppearance="@style/TextAppearance.PagerTabs"
                 android:paddingStart="@dimen/pager_tabs_padding"
                 android:paddingEnd="@dimen/pager_tabs_padding"/>
-    </android.support.v4.view.ViewPager>
+    </androidx.viewpager.widget.ViewPager>
 
     <View style="@style/settingSeparator" />
 
diff --git a/res/layout/privacy_guard_manager_list_row.xml b/res/layout/privacy_guard_manager_list_row.xml
index bfb239a..e8a20dc 100644
--- a/res/layout/privacy_guard_manager_list_row.xml
+++ b/res/layout/privacy_guard_manager_list_row.xml
@@ -33,7 +33,7 @@
         android:paddingRight="8dp"
         android:paddingTop="4dp"
         android:paddingBottom="4dp">
-        <android.support.v7.internal.widget.PreferenceImageView
+        <androidx.preference.internal.PreferenceImageView
             android:id="@+id/app_icon"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
diff --git a/src/org/lineageos/lineageparts/BootReceiver.java b/src/org/lineageos/lineageparts/BootReceiver.java
index ff70dc0..30d75f5 100644
--- a/src/org/lineageos/lineageparts/BootReceiver.java
+++ b/src/org/lineageos/lineageparts/BootReceiver.java
@@ -20,7 +20,8 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.SharedPreferences;
-import android.support.v7.preference.PreferenceManager;
+
+import androidx.preference.PreferenceManager;
 
 import org.lineageos.lineageparts.contributors.ContributorsCloudFragment;
 import org.lineageos.lineageparts.gestures.TouchscreenGestureSettings;
diff --git a/src/org/lineageos/lineageparts/PartsActivity.java b/src/org/lineageos/lineageparts/PartsActivity.java
index 03d6f81..256ddde 100644
--- a/src/org/lineageos/lineageparts/PartsActivity.java
+++ b/src/org/lineageos/lineageparts/PartsActivity.java
@@ -24,15 +24,16 @@
 import android.nfc.NfcAdapter;
 import android.nfc.Tag;
 import android.os.Bundle;
-import android.support.v14.preference.PreferenceFragment;
-import android.support.v7.preference.Preference;
-import android.support.v7.preference.PreferenceScreen;
 import android.util.Log;
 import android.view.Menu;
 import android.view.MenuItem;
 import android.view.View;
 import android.widget.Button;
 
+import androidx.preference.PreferenceFragment;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
 import com.android.settingslib.drawer.SettingsDrawerActivity;
 
 import org.lineageos.lineageparts.profiles.NFCProfileTagCallback;
diff --git a/src/org/lineageos/lineageparts/SettingsPreferenceFragment.java b/src/org/lineageos/lineageparts/SettingsPreferenceFragment.java
index 0946f68..415e6cf 100644
--- a/src/org/lineageos/lineageparts/SettingsPreferenceFragment.java
+++ b/src/org/lineageos/lineageparts/SettingsPreferenceFragment.java
@@ -27,14 +27,6 @@
 import android.content.pm.PackageManager;
 import android.net.Uri;
 import android.os.Bundle;
-import android.support.v14.preference.PreferenceFragment;
-import android.support.v7.preference.Preference;
-import android.support.v7.preference.PreferenceGroup;
-import android.support.v7.preference.PreferenceGroupAdapter;
-import android.support.v7.preference.PreferenceScreen;
-import android.support.v7.preference.PreferenceViewHolder;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.v7.widget.RecyclerView;
 import android.text.TextUtils;
 import android.util.ArrayMap;
 import android.util.ArraySet;
@@ -45,6 +37,15 @@
 import android.widget.Button;
 import android.view.animation.*;
 
+import androidx.preference.Preference;
+import androidx.preference.PreferenceFragment;
+import androidx.preference.PreferenceGroup;
+import androidx.preference.PreferenceGroupAdapter;
+import androidx.preference.PreferenceScreen;
+import androidx.preference.PreferenceViewHolder;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
 import org.lineageos.lineageparts.widget.CustomDialogPreference;
 import org.lineageos.lineageparts.widget.DialogCreatable;
 import org.lineageos.lineageparts.widget.FloatingActionButton;
diff --git a/src/org/lineageos/lineageparts/applications/ExpandedDesktopPrefs.java b/src/org/lineageos/lineageparts/applications/ExpandedDesktopPrefs.java
index f48c555..ed41321 100644
--- a/src/org/lineageos/lineageparts/applications/ExpandedDesktopPrefs.java
+++ b/src/org/lineageos/lineageparts/applications/ExpandedDesktopPrefs.java
@@ -20,13 +20,14 @@
 import android.os.Bundle;
 import android.os.RemoteException;
 import android.provider.Settings;
-import android.support.v7.preference.ListPreference;
-import android.support.v7.preference.Preference;
-import android.support.v7.preference.PreferenceCategory;
-import android.support.v7.preference.PreferenceScreen;
 import android.view.WindowManagerGlobal;
 import android.view.WindowManagerPolicyControl;
 
+import androidx.preference.ListPreference;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceCategory;
+import androidx.preference.PreferenceScreen;
+
 import org.lineageos.lineageparts.R;
 import org.lineageos.lineageparts.SettingsPreferenceFragment;
 
diff --git a/src/org/lineageos/lineageparts/egg/octo/OctopusDrawable.java b/src/org/lineageos/lineageparts/egg/octo/OctopusDrawable.java
index fb7089c..012af77 100644
--- a/src/org/lineageos/lineageparts/egg/octo/OctopusDrawable.java
+++ b/src/org/lineageos/lineageparts/egg/octo/OctopusDrawable.java
@@ -29,12 +29,13 @@
 import android.graphics.PointF;
 import android.graphics.Rect;
 import android.graphics.drawable.Drawable;
-import android.support.animation.DynamicAnimation;
-import android.support.animation.SpringForce;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-import android.support.animation.SpringAnimation;
-import android.support.animation.FloatValueHolder;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.dynamicanimation.animation.DynamicAnimation;
+import androidx.dynamicanimation.animation.FloatValueHolder;
+import androidx.dynamicanimation.animation.SpringAnimation;
+import androidx.dynamicanimation.animation.SpringForce;
 
 import org.lineageos.lineageparts.R;
 
diff --git a/src/org/lineageos/lineageparts/gestures/TouchscreenGestureSettings.java b/src/org/lineageos/lineageparts/gestures/TouchscreenGestureSettings.java
index c74f772..3872100 100644
--- a/src/org/lineageos/lineageparts/gestures/TouchscreenGestureSettings.java
+++ b/src/org/lineageos/lineageparts/gestures/TouchscreenGestureSettings.java
@@ -22,8 +22,9 @@
 import android.content.SharedPreferences;
 import android.os.Bundle;
 import android.os.UserHandle;
-import android.support.v7.preference.ListPreference;
-import android.support.v7.preference.PreferenceManager;
+
+import androidx.preference.ListPreference;
+import androidx.preference.PreferenceManager;
 
 import lineageos.hardware.LineageHardwareManager;
 import lineageos.hardware.TouchscreenGesture;
diff --git a/src/org/lineageos/lineageparts/hardware/DisplayRotation.java b/src/org/lineageos/lineageparts/hardware/DisplayRotation.java
index 6fccdc8..e95f401 100644
--- a/src/org/lineageos/lineageparts/hardware/DisplayRotation.java
+++ b/src/org/lineageos/lineageparts/hardware/DisplayRotation.java
@@ -20,10 +20,11 @@
 import android.net.Uri;
 import android.os.Bundle;
 import android.provider.Settings;
-import android.support.v14.preference.SwitchPreference;
-import android.support.v7.preference.CheckBoxPreference;
-import android.support.v7.preference.Preference;
-import android.support.v7.preference.PreferenceScreen;
+
+import androidx.preference.CheckBoxPreference;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+import androidx.preference.SwitchPreference;
 
 import com.android.internal.view.RotationPolicy;
 
diff --git a/src/org/lineageos/lineageparts/input/ButtonBacklightBrightness.java b/src/org/lineageos/lineageparts/input/ButtonBacklightBrightness.java
index d51864f..ea4f7c3 100644
--- a/src/org/lineageos/lineageparts/input/ButtonBacklightBrightness.java
+++ b/src/org/lineageos/lineageparts/input/ButtonBacklightBrightness.java
@@ -24,7 +24,6 @@
 import android.content.res.Resources;
 import android.os.Parcel;
 import android.os.Parcelable;
-import android.support.v7.preference.PreferenceManager;
 import android.util.AttributeSet;
 import android.view.View;
 import android.view.ViewGroup;
@@ -35,6 +34,8 @@
 import android.widget.SeekBar;
 import android.widget.TextView;
 
+import androidx.preference.PreferenceManager;
+
 import org.lineageos.lineageparts.widget.CustomDialogPreference;
 import org.lineageos.lineageparts.R;
 
diff --git a/src/org/lineageos/lineageparts/input/ButtonSettings.java b/src/org/lineageos/lineageparts/input/ButtonSettings.java
index d2ef686..8b7499e 100644
--- a/src/org/lineageos/lineageparts/input/ButtonSettings.java
+++ b/src/org/lineageos/lineageparts/input/ButtonSettings.java
@@ -30,11 +30,6 @@
 import android.os.RemoteException;
 import android.os.UserHandle;
 import android.provider.Settings;
-import android.support.v14.preference.SwitchPreference;
-import android.support.v7.preference.ListPreference;
-import android.support.v7.preference.Preference;
-import android.support.v7.preference.PreferenceCategory;
-import android.support.v7.preference.PreferenceScreen;
 import android.util.Log;
 import android.view.Display;
 import android.view.DisplayInfo;
@@ -43,6 +38,12 @@
 import android.view.KeyEvent;
 import android.view.WindowManagerGlobal;
 
+import androidx.preference.ListPreference;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceCategory;
+import androidx.preference.PreferenceScreen;
+import androidx.preference.SwitchPreference;
+
 import org.lineageos.lineageparts.R;
 import org.lineageos.lineageparts.SettingsPreferenceFragment;
 import org.lineageos.lineageparts.utils.DeviceUtils;
diff --git a/src/org/lineageos/lineageparts/input/PowerMenuActions.java b/src/org/lineageos/lineageparts/input/PowerMenuActions.java
index 6882307..9643155 100644
--- a/src/org/lineageos/lineageparts/input/PowerMenuActions.java
+++ b/src/org/lineageos/lineageparts/input/PowerMenuActions.java
@@ -24,8 +24,9 @@
 import android.os.UserHandle;
 import android.os.UserManager;
 import android.provider.Settings;
-import android.support.v7.preference.CheckBoxPreference;
-import android.support.v7.preference.Preference;
+
+import androidx.preference.CheckBoxPreference;
+import androidx.preference.Preference;
 
 import org.lineageos.internal.util.PowerMenuConstants;
 import org.lineageos.lineageparts.R;
diff --git a/src/org/lineageos/lineageparts/lineagestats/PreviewData.java b/src/org/lineageos/lineageparts/lineagestats/PreviewData.java
index cc47dc8..d0c3aa2 100644
--- a/src/org/lineageos/lineageparts/lineagestats/PreviewData.java
+++ b/src/org/lineageos/lineageparts/lineagestats/PreviewData.java
@@ -19,7 +19,8 @@
 
 import android.content.Context;
 import android.os.Bundle;
-import android.support.v7.preference.PreferenceScreen;
+
+import androidx.preference.PreferenceScreen;
 
 import org.lineageos.lineageparts.R;
 import org.lineageos.lineageparts.SettingsPreferenceFragment;
diff --git a/src/org/lineageos/lineageparts/livedisplay/LiveDisplaySettings.java b/src/org/lineageos/lineageparts/livedisplay/LiveDisplaySettings.java
index ed38bbc..c656323 100644
--- a/src/org/lineageos/lineageparts/livedisplay/LiveDisplaySettings.java
+++ b/src/org/lineageos/lineageparts/livedisplay/LiveDisplaySettings.java
@@ -20,14 +20,15 @@
 import android.content.res.Resources;
 import android.net.Uri;
 import android.os.Bundle;
-import android.support.v14.preference.SwitchPreference;
-import android.support.v7.preference.ListPreference;
-import android.support.v7.preference.Preference;
-import android.support.v7.preference.PreferenceCategory;
 import android.text.TextUtils;
 import android.util.ArraySet;
 import android.util.Log;
 
+import androidx.preference.ListPreference;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceCategory;
+import androidx.preference.SwitchPreference;
+
 import com.android.internal.app.ColorDisplayController;
 import com.android.internal.util.ArrayUtils;
 
diff --git a/src/org/lineageos/lineageparts/notificationlight/ApplicationLightPreference.java b/src/org/lineageos/lineageparts/notificationlight/ApplicationLightPreference.java
index 0e7f43e..0d19d29 100644
--- a/src/org/lineageos/lineageparts/notificationlight/ApplicationLightPreference.java
+++ b/src/org/lineageos/lineageparts/notificationlight/ApplicationLightPreference.java
@@ -23,13 +23,14 @@
 import android.graphics.drawable.ShapeDrawable;
 import android.graphics.drawable.shapes.OvalShape;
 import android.os.Bundle;
-import android.support.annotation.NonNull;
-import android.support.v7.preference.PreferenceViewHolder;
 import android.util.AttributeSet;
 import android.view.View;
 import android.widget.ImageView;
 import android.widget.TextView;
 
+import androidx.annotation.NonNull;
+import androidx.preference.PreferenceViewHolder;
+
 import org.lineageos.internal.notification.LightsCapabilities;
 import org.lineageos.lineageparts.widget.CustomDialogPreference;
 import org.lineageos.lineageparts.R;
diff --git a/src/org/lineageos/lineageparts/notificationlight/BatteryLightSettings.java b/src/org/lineageos/lineageparts/notificationlight/BatteryLightSettings.java
index 90ca63a..addc2ff 100644
--- a/src/org/lineageos/lineageparts/notificationlight/BatteryLightSettings.java
+++ b/src/org/lineageos/lineageparts/notificationlight/BatteryLightSettings.java
@@ -20,13 +20,14 @@
 import android.content.Context;
 import android.content.res.Resources;
 import android.os.Bundle;
-import android.support.v7.preference.Preference;
-import android.support.v7.preference.PreferenceGroup;
-import android.support.v7.preference.PreferenceScreen;
 import android.view.Menu;
 import android.view.MenuInflater;
 import android.view.MenuItem;
 
+import androidx.preference.Preference;
+import androidx.preference.PreferenceGroup;
+import androidx.preference.PreferenceScreen;
+
 import org.lineageos.internal.notification.LightsCapabilities;
 import org.lineageos.lineageparts.R;
 import org.lineageos.lineageparts.SettingsPreferenceFragment;
diff --git a/src/org/lineageos/lineageparts/notificationlight/BrightnessPreference.java b/src/org/lineageos/lineageparts/notificationlight/BrightnessPreference.java
index 355d7fb..ff1b2fa 100644
--- a/src/org/lineageos/lineageparts/notificationlight/BrightnessPreference.java
+++ b/src/org/lineageos/lineageparts/notificationlight/BrightnessPreference.java
@@ -29,13 +29,14 @@
 import android.os.Parcel;
 import android.os.Parcelable;
 import android.os.UserHandle;
-import android.support.v7.preference.Preference;
-import android.support.v7.preference.PreferenceViewHolder;
 import android.util.AttributeSet;
 import android.view.View;
 import android.widget.SeekBar;
 import android.widget.TextView;
 
+import androidx.preference.Preference;
+import androidx.preference.PreferenceViewHolder;
+
 import lineageos.providers.LineageSettings;
 
 import org.lineageos.internal.notification.LightsCapabilities;
diff --git a/src/org/lineageos/lineageparts/notificationlight/NotificationLightSettings.java b/src/org/lineageos/lineageparts/notificationlight/NotificationLightSettings.java
index 4f48580..364a69c 100644
--- a/src/org/lineageos/lineageparts/notificationlight/NotificationLightSettings.java
+++ b/src/org/lineageos/lineageparts/notificationlight/NotificationLightSettings.java
@@ -29,9 +29,6 @@
 import android.graphics.drawable.Drawable;
 import android.os.Bundle;
 import android.provider.Settings;
-import android.support.v7.preference.Preference;
-import android.support.v7.preference.PreferenceGroup;
-import android.support.v7.preference.PreferenceScreen;
 import android.telephony.TelephonyManager;
 import android.text.TextUtils;
 import android.view.Menu;
@@ -42,6 +39,10 @@
 import android.widget.AdapterView.OnItemClickListener;
 import android.widget.ListView;
 
+import androidx.preference.Preference;
+import androidx.preference.PreferenceGroup;
+import androidx.preference.PreferenceScreen;
+
 import org.lineageos.internal.notification.LightsCapabilities;
 import org.lineageos.lineageparts.widget.PackageListAdapter;
 import org.lineageos.lineageparts.widget.PackageListAdapter.PackageItem;
diff --git a/src/org/lineageos/lineageparts/power/PerfProfileSettings.java b/src/org/lineageos/lineageparts/power/PerfProfileSettings.java
index c882996..300a24b 100644
--- a/src/org/lineageos/lineageparts/power/PerfProfileSettings.java
+++ b/src/org/lineageos/lineageparts/power/PerfProfileSettings.java
@@ -29,13 +29,14 @@
 import android.os.Bundle;
 import android.os.PowerManager;
 import android.provider.Settings.Global;
-import android.support.v14.preference.SwitchPreference;
-import android.support.v7.preference.ListPreference;
-import android.support.v7.preference.Preference;
 import android.util.TypedValue;
 import android.view.animation.AccelerateDecelerateInterpolator;
 import android.widget.Toast;
 
+import androidx.preference.ListPreference;
+import androidx.preference.Preference;
+import androidx.preference.SwitchPreference;
+
 import org.lineageos.lineageparts.PartsUpdater;
 import org.lineageos.lineageparts.R;
 import org.lineageos.lineageparts.widget.SeekBarPreference;
diff --git a/src/org/lineageos/lineageparts/profiles/AppGroupConfig.java b/src/org/lineageos/lineageparts/profiles/AppGroupConfig.java
index 46c86a3..348894f 100644
--- a/src/org/lineageos/lineageparts/profiles/AppGroupConfig.java
+++ b/src/org/lineageos/lineageparts/profiles/AppGroupConfig.java
@@ -25,9 +25,6 @@
 import android.content.pm.PackageManager.NameNotFoundException;
 import android.graphics.drawable.Drawable;
 import android.os.Bundle;
-import android.support.v7.preference.Preference;
-import android.support.v7.preference.PreferenceGroup;
-import android.support.v7.preference.PreferenceScreen;
 import android.view.ContextMenu;
 import android.view.ContextMenu.ContextMenuInfo;
 import android.view.LayoutInflater;
@@ -42,6 +39,10 @@
 import android.widget.ListView;
 import android.widget.Toast;
 
+import androidx.preference.Preference;
+import androidx.preference.PreferenceGroup;
+import androidx.preference.PreferenceScreen;
+
 import org.lineageos.lineageparts.widget.PackageListAdapter;
 import org.lineageos.lineageparts.widget.PackageListAdapter.PackageItem;
 import org.lineageos.lineageparts.R;
diff --git a/src/org/lineageos/lineageparts/profiles/AppGroupList.java b/src/org/lineageos/lineageparts/profiles/AppGroupList.java
index 77d710e..a2ab5b1 100644
--- a/src/org/lineageos/lineageparts/profiles/AppGroupList.java
+++ b/src/org/lineageos/lineageparts/profiles/AppGroupList.java
@@ -21,14 +21,15 @@
 import android.app.NotificationGroup;
 import android.content.DialogInterface;
 import android.os.Bundle;
-import android.support.v7.preference.Preference;
-import android.support.v7.preference.PreferenceScreen;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.widget.EditText;
 import android.widget.TextView;
 import android.widget.Toast;
 
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
 import org.lineageos.lineageparts.widget.FloatingActionButton;
 import org.lineageos.lineageparts.R;
 import org.lineageos.lineageparts.SettingsPreferenceFragment;
diff --git a/src/org/lineageos/lineageparts/profiles/NamePreference.java b/src/org/lineageos/lineageparts/profiles/NamePreference.java
index f4184ea..c025476 100644
--- a/src/org/lineageos/lineageparts/profiles/NamePreference.java
+++ b/src/org/lineageos/lineageparts/profiles/NamePreference.java
@@ -19,13 +19,14 @@
 import android.app.AlertDialog;
 import android.content.Context;
 import android.content.DialogInterface;
-import android.support.v7.preference.Preference;
-import android.support.v7.preference.PreferenceViewHolder;
 import android.view.View;
 import android.widget.EditText;
 import android.widget.LinearLayout;
 import android.widget.TextView;
 
+import androidx.preference.Preference;
+import androidx.preference.PreferenceViewHolder;
+
 import org.lineageos.lineageparts.R;
 
 public class NamePreference extends Preference implements
diff --git a/src/org/lineageos/lineageparts/profiles/ProfileGroupConfig.java b/src/org/lineageos/lineageparts/profiles/ProfileGroupConfig.java
index bf99bcd..14680e4 100644
--- a/src/org/lineageos/lineageparts/profiles/ProfileGroupConfig.java
+++ b/src/org/lineageos/lineageparts/profiles/ProfileGroupConfig.java
@@ -20,9 +20,9 @@
 
 import android.net.Uri;
 import android.os.Bundle;
-import android.support.v7.preference.ListPreference;
-import android.support.v7.preference.Preference;
-import android.support.v7.preference.Preference.OnPreferenceChangeListener;
+
+import androidx.preference.ListPreference;
+import androidx.preference.Preference;
 
 import lineageos.app.Profile;
 import lineageos.app.ProfileGroup;
@@ -33,7 +33,7 @@
 import org.lineageos.lineageparts.SettingsPreferenceFragment;
 
 public class ProfileGroupConfig extends SettingsPreferenceFragment implements
-        OnPreferenceChangeListener {
+        Preference.OnPreferenceChangeListener {
 
     private static final CharSequence KEY_SOUNDMODE = "sound_mode";
     private static final CharSequence KEY_VIBRATEMODE = "vibrate_mode";
diff --git a/src/org/lineageos/lineageparts/profiles/ProfilesPreference.java b/src/org/lineageos/lineageparts/profiles/ProfilesPreference.java
index 17e1bd5..f917c01 100644
--- a/src/org/lineageos/lineageparts/profiles/ProfilesPreference.java
+++ b/src/org/lineageos/lineageparts/profiles/ProfilesPreference.java
@@ -18,12 +18,13 @@
 
 import android.content.ActivityNotFoundException;
 import android.os.Bundle;
-import android.support.v7.preference.CheckBoxPreference;
-import android.support.v7.preference.PreferenceViewHolder;
 import android.view.View;
 import android.widget.ImageView;
 import android.widget.TextView;
 
+import androidx.preference.CheckBoxPreference;
+import androidx.preference.PreferenceViewHolder;
+
 import org.lineageos.lineageparts.PartsActivity;
 import org.lineageos.lineageparts.R;
 import org.lineageos.lineageparts.SettingsPreferenceFragment;
diff --git a/src/org/lineageos/lineageparts/profiles/ProfilesSettings.java b/src/org/lineageos/lineageparts/profiles/ProfilesSettings.java
index aaff296..3f4ae8d 100644
--- a/src/org/lineageos/lineageparts/profiles/ProfilesSettings.java
+++ b/src/org/lineageos/lineageparts/profiles/ProfilesSettings.java
@@ -25,8 +25,6 @@
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.os.Bundle;
-import android.support.v7.preference.Preference;
-import android.support.v7.preference.PreferenceScreen;
 import android.text.TextUtils;
 import android.view.LayoutInflater;
 import android.view.Menu;
@@ -37,6 +35,9 @@
 import android.widget.FrameLayout;
 import android.widget.TextView;
 
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
 import org.lineageos.lineageparts.widget.LineageBaseSystemSettingSwitchBar;
 import org.lineageos.lineageparts.PartsActivity;
 import org.lineageos.lineageparts.R;
diff --git a/src/org/lineageos/lineageparts/profiles/SetupTriggersFragment.java b/src/org/lineageos/lineageparts/profiles/SetupTriggersFragment.java
index ed985b4..b189ceb 100644
--- a/src/org/lineageos/lineageparts/profiles/SetupTriggersFragment.java
+++ b/src/org/lineageos/lineageparts/profiles/SetupTriggersFragment.java
@@ -22,13 +22,14 @@
 import android.content.Intent;
 import android.content.pm.PackageManager;
 import android.os.Bundle;
-import android.support.v4.view.PagerTabStrip;
-import android.support.v4.view.ViewPager;
 import android.util.TypedValue;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 
+import androidx.viewpager.widget.PagerTabStrip;
+import androidx.viewpager.widget.ViewPager;
+
 import lineageos.app.Profile;
 import lineageos.app.ProfileManager;
 
diff --git a/src/org/lineageos/lineageparts/profiles/TriggerPagerAdapter.java b/src/org/lineageos/lineageparts/profiles/TriggerPagerAdapter.java
index c952df7..f890c92 100644
--- a/src/org/lineageos/lineageparts/profiles/TriggerPagerAdapter.java
+++ b/src/org/lineageos/lineageparts/profiles/TriggerPagerAdapter.java
@@ -19,10 +19,11 @@
 import android.app.Fragment;
 import android.app.FragmentManager;
 import android.os.Bundle;
-import android.support.v13.app.FragmentPagerAdapter;
 import android.util.SparseArray;
 import android.view.ViewGroup;
 
+import androidx.legacy.app.FragmentPagerAdapter;
+
 import org.lineageos.lineageparts.R;
 import org.lineageos.lineageparts.profiles.triggers.BluetoothTriggerFragment;
 import org.lineageos.lineageparts.profiles.triggers.NfcTriggerFragment;
@@ -33,8 +34,8 @@
 import java.util.List;
 
 /**
- * A {@link android.support.v4.app.FragmentPagerAdapter} class for swiping between playlists, recent,
- * artists, albums, songs, and genre {@link android.support.v4.app.Fragment}s on phones.<br/>
+ * A {@link androidx.fragment.app.FragmentPagerAdapter} class for swiping between playlists, recent,
+ * artists, albums, songs, and genre {@link androidx.fragment.app.Fragment}s on phones.<br/>
  */
 public class TriggerPagerAdapter extends FragmentPagerAdapter {
 
@@ -50,8 +51,8 @@
     /**
      * Constructor of <code>PagerAdatper<code>
      *
-     * @param activity The {@link android.support.v4.app.FragmentActivity} of the
-     *            {@link android.support.v4.app.Fragment}.
+     * @param activity The {@link androidx.fragment.app.FragmentActivity} of the
+     *            {@link androidx.fragment.app.Fragment}.
      * @param fm the FragmentManager to use.
      */
     public TriggerPagerAdapter(Activity activity, FragmentManager fm) {
@@ -80,11 +81,11 @@
     }
 
     /**
-     * Method that returns the {@link android.support.v4.app.Fragment} in the argument
+     * Method that returns the {@link androidx.fragment.app.Fragment} in the argument
      * position.
      *
      * @param position The position of the fragment to return.
-     * @return Fragment The {@link android.support.v4.app.Fragment} in the argument position.
+     * @return Fragment The {@link androidx.fragment.app.Fragment} in the argument position.
      */
     public Fragment getFragment(final int position) {
         final WeakReference<Fragment> mWeakFragment = mFragmentArray.get(position);
diff --git a/src/org/lineageos/lineageparts/profiles/actions/item/BaseItem.java b/src/org/lineageos/lineageparts/profiles/actions/item/BaseItem.java
index de04a25..c5015c0 100644
--- a/src/org/lineageos/lineageparts/profiles/actions/item/BaseItem.java
+++ b/src/org/lineageos/lineageparts/profiles/actions/item/BaseItem.java
@@ -6,8 +6,6 @@
 import android.view.ViewGroup;
 import android.widget.TextView;
 
-import android.support.v7.preference.R;
-
 /**
  * Created by shade on 9/12/16.
  */
@@ -24,7 +22,8 @@
     public View getView(LayoutInflater inflater, View convertView, ViewGroup parent) {
         View view;
         if (convertView == null) {
-            view = inflater.inflate(R.layout.profile_action_item, parent, false);
+            view = inflater.inflate(androidx.preference.R.layout.profile_action_item,
+                    parent, false);
             // Do some initialization
         } else {
             view = convertView;
diff --git a/src/org/lineageos/lineageparts/profiles/actions/item/Header.java b/src/org/lineageos/lineageparts/profiles/actions/item/Header.java
index a69a097..72b4c9b 100644
--- a/src/org/lineageos/lineageparts/profiles/actions/item/Header.java
+++ b/src/org/lineageos/lineageparts/profiles/actions/item/Header.java
@@ -20,7 +20,6 @@
 import android.view.ViewGroup;
 import android.widget.TextView;
 
-import android.support.v14.preference.R;
 import org.lineageos.lineageparts.profiles.actions.ItemListAdapter;
 
 public class Header implements Item {
@@ -39,7 +38,8 @@
     public View getView(LayoutInflater inflater, View convertView, ViewGroup parent) {
         View view;
         if (convertView == null) {
-            view = inflater.inflate(R.layout.preference_category_material, parent, false);
+            view = inflater.inflate(androidx.preference.R.layout.preference_category_material,
+                    parent, false);
             // Do some initialization
         } else {
             view = convertView;
diff --git a/src/org/lineageos/lineageparts/sounds/ChargingSoundsSettings.java b/src/org/lineageos/lineageparts/sounds/ChargingSoundsSettings.java
index 33bc4d1..77b3f82 100644
--- a/src/org/lineageos/lineageparts/sounds/ChargingSoundsSettings.java
+++ b/src/org/lineageos/lineageparts/sounds/ChargingSoundsSettings.java
@@ -26,7 +26,8 @@
 import android.os.Bundle;
 import android.os.Vibrator;
 import android.provider.Settings;
-import android.support.v7.preference.Preference;
+
+import androidx.preference.Preference;
 
 import lineageos.providers.LineageSettings;
 
diff --git a/src/org/lineageos/lineageparts/statusbar/NetworkTrafficSettings.java b/src/org/lineageos/lineageparts/statusbar/NetworkTrafficSettings.java
index c3b37c2..3ee8cf0 100644
--- a/src/org/lineageos/lineageparts/statusbar/NetworkTrafficSettings.java
+++ b/src/org/lineageos/lineageparts/statusbar/NetworkTrafficSettings.java
@@ -18,10 +18,11 @@
 
 import android.content.ContentResolver;
 import android.os.Bundle;
-import android.support.v7.preference.DropDownPreference;
-import android.support.v7.preference.Preference;
 import android.widget.Toast;
 
+import androidx.preference.DropDownPreference;
+import androidx.preference.Preference;
+
 import lineageos.preference.LineageSecureSettingSwitchPreference;
 import lineageos.providers.LineageSettings;
 import org.lineageos.lineageparts.R;
diff --git a/src/org/lineageos/lineageparts/statusbar/StatusBarSettings.java b/src/org/lineageos/lineageparts/statusbar/StatusBarSettings.java
index 45d8e75..d547abb 100644
--- a/src/org/lineageos/lineageparts/statusbar/StatusBarSettings.java
+++ b/src/org/lineageos/lineageparts/statusbar/StatusBarSettings.java
@@ -19,15 +19,15 @@
 import android.content.Context;
 import android.os.Bundle;
 import android.provider.Settings;
-import android.support.v7.preference.Preference;
-import android.support.v7.preference.PreferenceCategory;
-import android.support.v7.preference.PreferenceScreen;
-import android.support.v7.preference.Preference.OnPreferenceChangeListener;
 import android.text.format.DateFormat;
 import android.text.TextUtils;
 import android.util.ArraySet;
 import android.view.View;
 
+import androidx.preference.Preference;
+import androidx.preference.PreferenceCategory;
+import androidx.preference.PreferenceScreen;
+
 import lineageos.preference.LineageSystemSettingListPreference;
 import lineageos.providers.LineageSettings;
 
@@ -39,7 +39,7 @@
 import java.util.Set;
 
 public class StatusBarSettings extends SettingsPreferenceFragment
-        implements OnPreferenceChangeListener, Searchable {
+        implements Preference.OnPreferenceChangeListener, Searchable {
 
     private static final String CATEGORY_BATTERY = "status_bar_battery_key";
     private static final String CATEGORY_CLOCK = "status_bar_clock_key";
diff --git a/src/org/lineageos/lineageparts/style/StylePreferences.java b/src/org/lineageos/lineageparts/style/StylePreferences.java
index b9a5596..1e33802 100644
--- a/src/org/lineageos/lineageparts/style/StylePreferences.java
+++ b/src/org/lineageos/lineageparts/style/StylePreferences.java
@@ -30,15 +30,16 @@
 import android.os.AsyncTask;
 import android.os.Bundle;
 import android.os.Handler;
-import android.support.annotation.ColorInt;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-import android.support.v7.preference.Preference;
-import android.support.v7.graphics.Palette;
 import android.text.TextUtils;
 import android.util.Log;
 import android.widget.Toast;
 
+import androidx.annotation.ColorInt;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.palette.graphics.Palette;
+import androidx.preference.Preference;
+
 import org.lineageos.lineageparts.R;
 import org.lineageos.lineageparts.SettingsPreferenceFragment;
 import org.lineageos.lineageparts.style.models.Accent;
diff --git a/src/org/lineageos/lineageparts/style/models/Accent.java b/src/org/lineageos/lineageparts/style/models/Accent.java
index e416571..c65e582 100644
--- a/src/org/lineageos/lineageparts/style/models/Accent.java
+++ b/src/org/lineageos/lineageparts/style/models/Accent.java
@@ -15,8 +15,8 @@
  */
 package org.lineageos.lineageparts.style.models;
 
-import android.support.annotation.ColorInt;
-import android.support.annotation.NonNull;
+import androidx.annotation.ColorInt;
+import androidx.annotation.NonNull;
 
 public class Accent {
     @NonNull
diff --git a/src/org/lineageos/lineageparts/style/util/AccentAdapter.java b/src/org/lineageos/lineageparts/style/util/AccentAdapter.java
index a0dfb5e..a1a6ce7 100644
--- a/src/org/lineageos/lineageparts/style/util/AccentAdapter.java
+++ b/src/org/lineageos/lineageparts/style/util/AccentAdapter.java
@@ -17,8 +17,6 @@
 
 import android.content.Context;
 import android.content.res.Resources;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -26,6 +24,9 @@
 import android.widget.ImageView;
 import android.widget.TextView;
 
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
 import org.lineageos.lineageparts.R;
 import org.lineageos.lineageparts.style.models.Accent;
 
@@ -86,4 +87,4 @@
             return argView;
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/org/lineageos/lineageparts/style/util/AccentUtils.java b/src/org/lineageos/lineageparts/style/util/AccentUtils.java
index 0e47490..ef027d4 100644
--- a/src/org/lineageos/lineageparts/style/util/AccentUtils.java
+++ b/src/org/lineageos/lineageparts/style/util/AccentUtils.java
@@ -19,12 +19,13 @@
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageManager;
 import android.graphics.Color;
-import android.support.annotation.ColorInt;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
 import android.text.TextUtils;
 import android.util.Log;
 
+import androidx.annotation.ColorInt;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
 import org.lineageos.lineageparts.R;
 import org.lineageos.lineageparts.style.models.Accent;
 import org.lineageos.lineageparts.style.models.StyleStatus;
diff --git a/src/org/lineageos/lineageparts/style/util/UIUtils.java b/src/org/lineageos/lineageparts/style/util/UIUtils.java
index bf2bba0..7d048d8 100644
--- a/src/org/lineageos/lineageparts/style/util/UIUtils.java
+++ b/src/org/lineageos/lineageparts/style/util/UIUtils.java
@@ -23,9 +23,10 @@
 import android.graphics.Rect;
 import android.graphics.RectF;
 import android.graphics.drawable.Drawable;
-import android.support.annotation.NonNull;
-import android.support.v4.graphics.ColorUtils;
-import android.support.v4.graphics.drawable.RoundedBitmapDrawableFactory;
+
+import androidx.annotation.NonNull;
+import androidx.core.graphics.ColorUtils;
+import androidx.core.graphics.drawable.RoundedBitmapDrawableFactory;
 
 public final class UIUtils {
 
diff --git a/src/org/lineageos/lineageparts/trust/TrustOnBoardingActivity.java b/src/org/lineageos/lineageparts/trust/TrustOnBoardingActivity.java
index 6678279..a63c822 100644
--- a/src/org/lineageos/lineageparts/trust/TrustOnBoardingActivity.java
+++ b/src/org/lineageos/lineageparts/trust/TrustOnBoardingActivity.java
@@ -21,7 +21,8 @@
 import android.os.Handler;
 import android.widget.Button;
 import android.widget.ImageView;
-import android.support.v7.app.AppCompatActivity;
+
+import androidx.appcompat.app.AppCompatActivity;
 
 import lineageos.providers.LineageSettings;
 import lineageos.trust.TrustInterface;
diff --git a/src/org/lineageos/lineageparts/trust/TrustPreferences.java b/src/org/lineageos/lineageparts/trust/TrustPreferences.java
index a62197f..60dc8e9 100644
--- a/src/org/lineageos/lineageparts/trust/TrustPreferences.java
+++ b/src/org/lineageos/lineageparts/trust/TrustPreferences.java
@@ -20,12 +20,13 @@
 import android.content.pm.PackageManager;
 import android.os.Bundle;
 import android.provider.Settings;
-import android.support.v7.preference.ListPreference;
-import android.support.v7.preference.Preference;
-import android.support.v7.preference.PreferenceCategory;
-import android.support.v14.preference.SwitchPreference;
 import android.util.Log;
 
+import androidx.preference.ListPreference;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceCategory;
+import androidx.preference.SwitchPreference;
+
 import org.lineageos.lineageparts.R;
 import org.lineageos.lineageparts.SettingsPreferenceFragment;
 
diff --git a/src/org/lineageos/lineageparts/weather/WeatherServiceSettings.java b/src/org/lineageos/lineageparts/weather/WeatherServiceSettings.java
index de32b9a..928af09 100644
--- a/src/org/lineageos/lineageparts/weather/WeatherServiceSettings.java
+++ b/src/org/lineageos/lineageparts/weather/WeatherServiceSettings.java
@@ -32,11 +32,6 @@
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.UserHandle;
-import android.support.v7.preference.ListPreference;
-import android.support.v7.preference.Preference;
-import android.support.v7.preference.PreferenceCategory;
-import android.support.v7.preference.PreferenceScreen;
-import android.support.v7.preference.PreferenceViewHolder;
 import android.util.AttributeSet;
 import android.util.Log;
 import android.util.Xml;
@@ -48,6 +43,12 @@
 import android.widget.TextView;
 import android.widget.Toast;
 
+import androidx.preference.ListPreference;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceCategory;
+import androidx.preference.PreferenceScreen;
+import androidx.preference.PreferenceViewHolder;
+
 import com.android.internal.content.PackageMonitor;
 import com.android.internal.os.BackgroundThread;
 
diff --git a/src/org/lineageos/lineageparts/widget/CustomDialogPreference.java b/src/org/lineageos/lineageparts/widget/CustomDialogPreference.java
index bbb14ba..c8588d4 100644
--- a/src/org/lineageos/lineageparts/widget/CustomDialogPreference.java
+++ b/src/org/lineageos/lineageparts/widget/CustomDialogPreference.java
@@ -20,12 +20,13 @@
 import android.content.Context;
 import android.content.DialogInterface;
 import android.os.Bundle;
-import android.support.annotation.NonNull;
-import android.support.v14.preference.PreferenceDialogFragment;
-import android.support.v7.preference.DialogPreference;
 import android.util.AttributeSet;
 import android.view.View;
 
+import androidx.annotation.NonNull;
+import androidx.preference.DialogPreference;
+import androidx.preference.PreferenceDialogFragment;
+
 public class CustomDialogPreference<T extends DialogInterface> extends DialogPreference {
 
     private CustomPreferenceDialogFragment mFragment;
diff --git a/src/org/lineageos/lineageparts/widget/DividerPreference.java b/src/org/lineageos/lineageparts/widget/DividerPreference.java
index fc178ef..d97f3f7 100644
--- a/src/org/lineageos/lineageparts/widget/DividerPreference.java
+++ b/src/org/lineageos/lineageparts/widget/DividerPreference.java
@@ -16,10 +16,11 @@
 
 import android.content.Context;
 import android.content.res.TypedArray;
-import android.support.v7.preference.Preference;
-import android.support.v7.preference.PreferenceViewHolder;
 import android.util.AttributeSet;
 
+import androidx.preference.Preference;
+import androidx.preference.PreferenceViewHolder;
+
 import org.lineageos.lineageparts.R;
 
 public class DividerPreference extends Preference {
diff --git a/src/org/lineageos/lineageparts/widget/LayoutPreference.java b/src/org/lineageos/lineageparts/widget/LayoutPreference.java
index 9acfa47..9be282f 100644
--- a/src/org/lineageos/lineageparts/widget/LayoutPreference.java
+++ b/src/org/lineageos/lineageparts/widget/LayoutPreference.java
@@ -19,14 +19,15 @@
 import android.content.Context;
 import android.content.res.Resources;
 import android.content.res.TypedArray;
-import android.support.v7.preference.Preference;
-import android.support.v7.preference.PreferenceViewHolder;
 import android.util.AttributeSet;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.FrameLayout;
 
+import androidx.preference.Preference;
+import androidx.preference.PreferenceViewHolder;
+
 import org.lineageos.lineageparts.R;
 
 public class LayoutPreference extends Preference {
diff --git a/src/org/lineageos/lineageparts/widget/RingtonePreference.java b/src/org/lineageos/lineageparts/widget/RingtonePreference.java
index 51e7655..027b341 100644
--- a/src/org/lineageos/lineageparts/widget/RingtonePreference.java
+++ b/src/org/lineageos/lineageparts/widget/RingtonePreference.java
@@ -23,11 +23,12 @@
 import android.media.RingtoneManager;
 import android.net.Uri;
 import android.provider.Settings.System;
-import android.support.v7.preference.Preference;
-import android.support.v7.preference.PreferenceManager;
 import android.text.TextUtils;
 import android.util.AttributeSet;
 
+import androidx.preference.Preference;
+import androidx.preference.PreferenceManager;
+
 /**
  * A {@link Preference} that allows the user to choose a ringtone from those on the device.
  * The chosen ringtone's URI will be persisted as a string.
@@ -43,7 +44,7 @@
  * @attr ref android.R.styleable#RingtonePreference_showSilent
  *
  * Based of frameworks/base/core/java/android/preference/RingtonePreference.java
- * but extends android.support.v7.preference.Preference instead.
+ * but extends androidx.preference.Preference instead.
  */
 public class RingtonePreference extends Preference {
 
diff --git a/src/org/lineageos/lineageparts/widget/SeekBarPreference.java b/src/org/lineageos/lineageparts/widget/SeekBarPreference.java
index 270b71c..2300ebb 100644
--- a/src/org/lineageos/lineageparts/widget/SeekBarPreference.java
+++ b/src/org/lineageos/lineageparts/widget/SeekBarPreference.java
@@ -22,7 +22,6 @@
 import android.graphics.drawable.Drawable;
 import android.os.Parcel;
 import android.os.Parcelable;
-import android.support.v7.preference.PreferenceViewHolder;
 import android.util.AttributeSet;
 import android.view.KeyEvent;
 import android.view.View;
@@ -30,6 +29,8 @@
 import android.widget.SeekBar;
 import android.widget.SeekBar.OnSeekBarChangeListener;
 
+import androidx.preference.PreferenceViewHolder;
+
 import com.android.settingslib.RestrictedPreference;
 
 import org.lineageos.lineageparts.R;
diff --git a/src/org/lineageos/lineageparts/widget/SwitchBar.java b/src/org/lineageos/lineageparts/widget/SwitchBar.java
index 93e8288..7686f94 100644
--- a/src/org/lineageos/lineageparts/widget/SwitchBar.java
+++ b/src/org/lineageos/lineageparts/widget/SwitchBar.java
@@ -20,8 +20,6 @@
 import android.content.res.TypedArray;
 import android.os.Parcel;
 import android.os.Parcelable;
-import android.support.annotation.ColorInt;
-import android.support.annotation.StringRes;
 import android.text.SpannableStringBuilder;
 import android.text.TextUtils;
 import android.text.style.TextAppearanceSpan;
@@ -34,6 +32,9 @@
 import android.widget.Switch;
 import android.widget.TextView;
 
+import androidx.annotation.ColorInt;
+import androidx.annotation.StringRes;
+
 import org.lineageos.lineageparts.R;
 
 import java.util.ArrayList;
diff --git a/src/org/lineageos/lineageparts/widget/WallOfTextPreference.java b/src/org/lineageos/lineageparts/widget/WallOfTextPreference.java
index 40ef2c7..0289e7f 100644
--- a/src/org/lineageos/lineageparts/widget/WallOfTextPreference.java
+++ b/src/org/lineageos/lineageparts/widget/WallOfTextPreference.java
@@ -18,10 +18,11 @@
 package org.lineageos.lineageparts.widget;
 
 import android.content.Context;
-import android.support.v7.preference.PreferenceViewHolder;
 import android.util.AttributeSet;
 import android.widget.TextView;
 
+import androidx.preference.PreferenceViewHolder;
+
 public class WallOfTextPreference extends DividerPreference {
 
     public WallOfTextPreference(Context context, AttributeSet attrs) {
