Remove theme support

Change-Id: I41f1d0fa1ecc98c2872d2569534e6f2ef686a726
diff --git a/Android.mk b/Android.mk
index 636ba34..1009471 100644
--- a/Android.mk
+++ b/Android.mk
@@ -25,7 +25,7 @@
 lineage_platform_res := APPS/org.lineageos.platform-res_intermediates/src
 
 # List of packages used in lineage-api-stubs
-lineage_stub_packages := lineageos.alarmclock:lineageos.app:lineageos.content:lineageos.externalviews:lineageos.hardware:lineageos.media:lineageos.os:lineageos.preference:lineageos.profiles:lineageos.providers:lineageos.platform:lineageos.power:lineageos.themes:lineageos.util:lineageos.weather:lineageos.weatherservice
+lineage_stub_packages := lineageos.alarmclock:lineageos.app:lineageos.content:lineageos.externalviews:lineageos.hardware:lineageos.media:lineageos.os:lineageos.preference:lineageos.profiles:lineageos.providers:lineageos.platform:lineageos.power:lineageos.util:lineageos.weather:lineageos.weatherservice
 
 # The LineageOS Platform Framework Library
 # ============================================================
diff --git a/api/lineage_current.txt b/api/lineage_current.txt
index eb4dabf..2a92efe 100644
--- a/api/lineage_current.txt
+++ b/api/lineage_current.txt
@@ -404,10 +404,6 @@
     ctor public Intent();
     field public static final java.lang.String ACTION_PROTECTED = "lineageos.intent.action.PACKAGE_PROTECTED";
     field public static final java.lang.String ACTION_PROTECTED_CHANGED = "lineageos.intent.action.PROTECTED_COMPONENT_UPDATE";
-    field public static final java.lang.String ACTION_THEME_INSTALLED = "lineageos.intent.action.THEME_INSTALLED";
-    field public static final java.lang.String ACTION_THEME_REMOVED = "lineageos.intent.action.THEME_REMOVED";
-    field public static final java.lang.String ACTION_THEME_UPDATED = "lineageos.intent.action.THEME_UPDATED";
-    field public static final java.lang.String CATEGORY_THEME_PACKAGE_INSTALLED_STATE_CHANGE = "lineageos.intent.category.THEME_PACKAGE_INSTALL_STATE_CHANGE";
     field public static final java.lang.String EXTRA_PROTECTED_COMPONENTS = "lineageos.intent.extra.PACKAGE_PROTECTED_COMPONENTS";
     field public static final java.lang.String EXTRA_PROTECTED_STATE = "lineageos.intent.extra.PACKAGE_PROTECTED_STATE";
     field public static final java.lang.String URI_SCHEME_PACKAGE = "package";
@@ -710,7 +706,6 @@
   public static final class Manifest.permission {
     ctor public Manifest.permission();
     field public static final java.lang.String ACCESS_APP_SUGGESTIONS = "lineageos.permission.ACCESS_APP_SUGGESTIONS";
-    field public static final java.lang.String ACCESS_THEME_MANAGER = "lineageos.permission.ACCESS_THEME_MANAGER";
     field public static final java.lang.String ACCESS_WEATHER_MANAGER = "lineageos.permission.ACCESS_WEATHER_MANAGER";
     field public static final java.lang.String BIND_WEATHER_PROVIDER_SERVICE = "lineageos.permission.BIND_WEATHER_PROVIDER_SERVICE";
     field public static final java.lang.String HARDWARE_ABSTRACTION_ACCESS = "lineageos.permission.HARDWARE_ABSTRACTION_ACCESS";
@@ -729,14 +724,12 @@
     field public static final java.lang.String READ_ALARMS = "lineageos.permission.READ_ALARMS";
     field public static final java.lang.String READ_DATAUSAGE = "lineageos.permission.READ_DATAUSAGE";
     field public static final java.lang.String READ_MSIM_PHONE_STATE = "lineageos.permission.READ_MSIM_PHONE_STATE";
-    field public static final java.lang.String READ_THEMES = "lineageos.permission.READ_THEMES";
     field public static final java.lang.String READ_WEATHER = "lineageos.permission.READ_WEATHER";
     field public static final java.lang.String THIRD_PARTY_KEYGUARD = "lineageos.permission.THIRD_PARTY_KEYGUARD";
     field public static final java.lang.String WRITE_ALARMS = "lineageos.permission.WRITE_ALARMS";
     field public static final java.lang.String WRITE_DATAUSAGE = "lineageos.permission.WRITE_DATAUSAGE";
     field public static final java.lang.String WRITE_SECURE_SETTINGS = "lineageos.permission.WRITE_SECURE_SETTINGS";
     field public static final java.lang.String WRITE_SETTINGS = "lineageos.permission.WRITE_SETTINGS";
-    field public static final java.lang.String WRITE_THEMES = "lineageos.permission.WRITE_THEMES";
     field public static final java.lang.String WRITE_WEATHER = "lineageos.permission.WRITE_WEATHER";
   }
 
@@ -1287,146 +1280,6 @@
     field public static final java.lang.String _ID = "_id";
   }
 
-  public class ThemesContract {
-    ctor public ThemesContract();
-    field public static final java.lang.String AUTHORITY = "com.lineageos.themes";
-    field public static final android.net.Uri AUTHORITY_URI;
-  }
-
-  public static class ThemesContract.MixnMatchColumns {
-    ctor public ThemesContract.MixnMatchColumns();
-    method public static java.lang.String componentToImageColName(java.lang.String);
-    method public static java.lang.String componentToMixNMatchKey(java.lang.String);
-    method public static java.lang.String mixNMatchKeyToComponent(java.lang.String);
-    field public static final java.lang.String COL_COMPONENT_ID = "component_id";
-    field public static final java.lang.String COL_KEY = "key";
-    field public static final java.lang.String COL_PREV_VALUE = "previous_value";
-    field public static final java.lang.String COL_UPDATE_TIME = "update_time";
-    field public static final java.lang.String COL_VALUE = "value";
-    field public static final android.net.Uri CONTENT_URI;
-    field public static final java.lang.String KEY_ALARM = "mixnmatch_alarm";
-    field public static final java.lang.String KEY_BOOT_ANIM = "mixnmatch_boot_anim";
-    field public static final java.lang.String KEY_FONT = "mixnmatch_font";
-    field public static final java.lang.String KEY_HOMESCREEN = "mixnmatch_homescreen";
-    field public static final java.lang.String KEY_ICONS = "mixnmatch_icons";
-    field public static final java.lang.String KEY_LIVE_LOCK_SCREEN = "mixnmatch_live_lock_screen";
-    field public static final java.lang.String KEY_LOCKSCREEN = "mixnmatch_lockscreen";
-    field public static final java.lang.String KEY_NAVIGATION_BAR = "mixnmatch_navigation_bar";
-    field public static final java.lang.String KEY_NOTIFICATIONS = "mixnmatch_notifications";
-    field public static final java.lang.String KEY_OVERLAYS = "mixnmatch_overlays";
-    field public static final java.lang.String KEY_RINGTONE = "mixnmatch_ringtone";
-    field public static final java.lang.String KEY_STATUS_BAR = "mixnmatch_status_bar";
-    field public static final java.lang.String[] ROWS;
-  }
-
-  public static class ThemesContract.PreviewColumns {
-    ctor public ThemesContract.PreviewColumns();
-    field public static final android.net.Uri APPLIED_URI;
-    field public static final java.lang.String BOOTANIMATION_THUMBNAIL = "bootanimation_thumbnail";
-    field public static final java.lang.String COL_KEY = "key";
-    field public static final java.lang.String COL_VALUE = "value";
-    field public static final android.net.Uri COMPONENTS_URI;
-    field public static final java.lang.String COMPONENT_ID = "component_id";
-    field public static final android.net.Uri CONTENT_URI;
-    field public static final java.lang.String ICON_PREVIEW_1 = "icon_preview_1";
-    field public static final java.lang.String ICON_PREVIEW_2 = "icon_preview_2";
-    field public static final java.lang.String ICON_PREVIEW_3 = "icon_preview_3";
-    field public static final java.lang.String LIVE_LOCK_SCREEN_PREVIEW = "live_lock_screen_preview";
-    field public static final java.lang.String LIVE_LOCK_SCREEN_THUMBNAIL = "live_lock_screen_thumbnail";
-    field public static final java.lang.String LOCK_WALLPAPER_PREVIEW = "lock_wallpaper_preview";
-    field public static final java.lang.String LOCK_WALLPAPER_THUMBNAIL = "lock_wallpaper_thumbnail";
-    field public static final java.lang.String NAVBAR_BACKGROUND = "navbar_background";
-    field public static final java.lang.String NAVBAR_BACK_BUTTON = "navbar_back_button";
-    field public static final java.lang.String NAVBAR_HOME_BUTTON = "navbar_home_button";
-    field public static final java.lang.String NAVBAR_RECENT_BUTTON = "navbar_recent_button";
-    field public static final java.lang.String STATUSBAR_BACKGROUND = "statusbar_background";
-    field public static final java.lang.String STATUSBAR_BATTERY_CIRCLE = "statusbar_battery_circle";
-    field public static final java.lang.String STATUSBAR_BATTERY_LANDSCAPE = "statusbar_battery_landscape";
-    field public static final java.lang.String STATUSBAR_BATTERY_PORTRAIT = "statusbar_battery_portrait";
-    field public static final java.lang.String STATUSBAR_BLUETOOTH_ICON = "statusbar_bluetooth_icon";
-    field public static final java.lang.String STATUSBAR_CLOCK_TEXT_COLOR = "statusbar_clock_text_color";
-    field public static final java.lang.String STATUSBAR_SIGNAL_ICON = "statusbar_signal_icon";
-    field public static final java.lang.String STATUSBAR_WIFI_COMBO_MARGIN_END = "wifi_combo_margin_end";
-    field public static final java.lang.String STATUSBAR_WIFI_ICON = "statusbar_wifi_icon";
-    field public static final java.lang.String STYLE_PREVIEW = "style_preview";
-    field public static final java.lang.String STYLE_THUMBNAIL = "style_thumbnail";
-    field public static final java.lang.String THEME_ID = "theme_id";
-    field public static final java.lang.String[] VALID_KEYS;
-    field public static final java.lang.String WALLPAPER_FULL = "wallpaper_full";
-    field public static final java.lang.String WALLPAPER_PREVIEW = "wallpaper_preview";
-    field public static final java.lang.String WALLPAPER_THUMBNAIL = "wallpaper_thumbnail";
-    field public static final java.lang.String _ID = "_id";
-  }
-
-  public static class ThemesContract.ThemeMixColumns {
-    ctor public ThemesContract.ThemeMixColumns();
-    field public static final android.net.Uri CONTENT_URI;
-    field public static final android.net.Uri PREVIEWS_URI;
-    field public static final java.lang.String TITLE = "title";
-    field public static final java.lang.String _ID = "_id";
-  }
-
-  public static class ThemesContract.ThemeMixEntryColumns {
-    ctor public ThemesContract.ThemeMixEntryColumns();
-    field public static final java.lang.String COMPONENT_ID = "component_id";
-    field public static final java.lang.String COMPONENT_TYPE = "component_type";
-    field public static final android.net.Uri CONTENT_URI;
-    field public static final java.lang.String IS_INSTALLED = "installed";
-    field public static final java.lang.String PACKAGE_NAME = "package_name";
-    field public static final java.lang.String THEME_MIX_ID = "theme_mix_id";
-    field public static final java.lang.String THEME_NAME = "theme_name";
-    field public static final java.lang.String _ID = "_id";
-  }
-
-  public static class ThemesContract.ThemesColumns {
-    ctor public ThemesContract.ThemesColumns();
-    field public static final java.lang.String AUTHOR = "author";
-    field public static final java.lang.String BOOT_ANIM_URI = "bootanim_uri";
-    field public static final android.net.Uri CONTENT_URI;
-    field public static final java.lang.String DATE_CREATED = "created";
-    field public static final java.lang.String FONT_URI = "font_uri";
-    field public static final java.lang.String HOMESCREEN_URI = "homescreen_uri";
-    field public static final java.lang.String ICON_URI = "icon_uri";
-    field public static final java.lang.String INSTALL_STATE = "install_state";
-    field public static final java.lang.String INSTALL_TIME = "install_time";
-    field public static final java.lang.String IS_DEFAULT_THEME = "is_default_theme";
-    field public static final java.lang.String IS_LEGACY_ICONPACK = "is_legacy_iconpack";
-    field public static final java.lang.String IS_LEGACY_THEME = "is_legacy_theme";
-    field public static final java.lang.String LAST_UPDATE_TIME = "updateTime";
-    field public static final java.lang.String LOCKSCREEN_URI = "lockscreen_uri";
-    field public static final java.lang.String MODIFIES_ALARMS = "mods_alarms";
-    field public static final java.lang.String MODIFIES_BOOT_ANIM = "mods_bootanim";
-    field public static final java.lang.String MODIFIES_FONTS = "mods_fonts";
-    field public static final java.lang.String MODIFIES_ICONS = "mods_icons";
-    field public static final java.lang.String MODIFIES_LAUNCHER = "mods_homescreen";
-    field public static final java.lang.String MODIFIES_LIVE_LOCK_SCREEN = "mods_live_lock_screen";
-    field public static final java.lang.String MODIFIES_LOCKSCREEN = "mods_lockscreen";
-    field public static final java.lang.String MODIFIES_NAVIGATION_BAR = "mods_navigation_bar";
-    field public static final java.lang.String MODIFIES_NOTIFICATIONS = "mods_notifications";
-    field public static final java.lang.String MODIFIES_OVERLAYS = "mods_overlays";
-    field public static final java.lang.String MODIFIES_RINGTONES = "mods_ringtones";
-    field public static final java.lang.String MODIFIES_STATUS_BAR = "mods_status_bar";
-    field public static final java.lang.String OVERLAYS_URI = "overlays_uri";
-    field public static final java.lang.String PKG_NAME = "pkg_name";
-    field public static final java.lang.String PRESENT_AS_THEME = "present_as_theme";
-    field public static final java.lang.String PRIMARY_COLOR = "primary_color";
-    field public static final java.lang.String SECONDARY_COLOR = "secondary_color";
-    field public static final java.lang.String STATUSBAR_URI = "status_uri";
-    field public static final java.lang.String STYLE_URI = "style_uri";
-    field public static final java.lang.String TARGET_API = "target_api";
-    field public static final java.lang.String TITLE = "title";
-    field public static final java.lang.String WALLPAPER_URI = "wallpaper_uri";
-    field public static final java.lang.String _ID = "_id";
-  }
-
-  public static class ThemesContract.ThemesColumns.InstallState {
-    ctor public ThemesContract.ThemesColumns.InstallState();
-    field public static final int INSTALLED = 3; // 0x3
-    field public static final int INSTALLING = 1; // 0x1
-    field public static final int UNKNOWN = 0; // 0x0
-    field public static final int UPDATING = 2; // 0x2
-  }
-
   public class WeatherContract {
     ctor public WeatherContract();
     field public static final java.lang.String AUTHORITY = "org.lineageos.weather";
@@ -1518,100 +1371,6 @@
 
 }
 
-package lineageos.themes {
-
-  public final class ThemeChangeRequest implements android.os.Parcelable {
-    method public int describeContents();
-    method public java.lang.String getAlarmThemePackageName();
-    method public java.lang.String getBootanimationThemePackageName();
-    method public java.lang.String getFontThemePackageName();
-    method public java.lang.String getIconsThemePackageName();
-    method public java.lang.String getLiveLockScreenThemePackageName();
-    method public java.lang.String getLockWallpaperThemePackageName();
-    method public java.lang.String getNavBarThemePackageName();
-    method public java.lang.String getNotificationThemePackageName();
-    method public int getNumChangesRequested();
-    method public java.lang.String getOverlayThemePackageName();
-    method public final java.util.Map<java.lang.String, java.lang.String> getPerAppOverlays();
-    method public lineageos.themes.ThemeChangeRequest.RequestType getReqeustType();
-    method public java.lang.String getRingtoneThemePackageName();
-    method public java.lang.String getStatusBarThemePackageName();
-    method public final java.util.Map<java.lang.String, java.lang.String> getThemeComponentsMap();
-    method public long getWallpaperId();
-    method public java.lang.String getWallpaperThemePackageName();
-    method public void writeToParcel(android.os.Parcel, int);
-    field public static final android.os.Parcelable.Creator<lineageos.themes.ThemeChangeRequest> CREATOR;
-    field public static final int DEFAULT_WALLPAPER_ID = -1; // 0xffffffff
-  }
-
-  public static class ThemeChangeRequest.Builder {
-    ctor public ThemeChangeRequest.Builder();
-    ctor public ThemeChangeRequest.Builder(android.content.res.ThemeConfig);
-    method public lineageos.themes.ThemeChangeRequest build();
-    method public lineageos.themes.ThemeChangeRequest.Builder setAlarm(java.lang.String);
-    method public lineageos.themes.ThemeChangeRequest.Builder setAppOverlay(java.lang.String, java.lang.String);
-    method public lineageos.themes.ThemeChangeRequest.Builder setBootanimation(java.lang.String);
-    method public lineageos.themes.ThemeChangeRequest.Builder setComponent(java.lang.String, java.lang.String);
-    method public lineageos.themes.ThemeChangeRequest.Builder setFont(java.lang.String);
-    method public lineageos.themes.ThemeChangeRequest.Builder setIcons(java.lang.String);
-    method public lineageos.themes.ThemeChangeRequest.Builder setLiveLockScreen(java.lang.String);
-    method public lineageos.themes.ThemeChangeRequest.Builder setLockWallpaper(java.lang.String);
-    method public lineageos.themes.ThemeChangeRequest.Builder setNavBar(java.lang.String);
-    method public lineageos.themes.ThemeChangeRequest.Builder setNotification(java.lang.String);
-    method public lineageos.themes.ThemeChangeRequest.Builder setOverlay(java.lang.String);
-    method public lineageos.themes.ThemeChangeRequest.Builder setRequestType(lineageos.themes.ThemeChangeRequest.RequestType);
-    method public lineageos.themes.ThemeChangeRequest.Builder setRingtone(java.lang.String);
-    method public lineageos.themes.ThemeChangeRequest.Builder setStatusBar(java.lang.String);
-    method public lineageos.themes.ThemeChangeRequest.Builder setWallpaper(java.lang.String);
-    method public lineageos.themes.ThemeChangeRequest.Builder setWallpaperId(long);
-  }
-
-  public static final class ThemeChangeRequest.RequestType extends java.lang.Enum {
-    method public static lineageos.themes.ThemeChangeRequest.RequestType valueOf(java.lang.String);
-    method public static final lineageos.themes.ThemeChangeRequest.RequestType[] values();
-    enum_constant public static final lineageos.themes.ThemeChangeRequest.RequestType THEME_REMOVED;
-    enum_constant public static final lineageos.themes.ThemeChangeRequest.RequestType THEME_RESET;
-    enum_constant public static final lineageos.themes.ThemeChangeRequest.RequestType THEME_UPDATED;
-    enum_constant public static final lineageos.themes.ThemeChangeRequest.RequestType USER_REQUEST;
-    enum_constant public static final lineageos.themes.ThemeChangeRequest.RequestType USER_REQUEST_MIXNMATCH;
-  }
-
-  public class ThemeManager {
-    method public deprecated void addClient(lineageos.themes.ThemeManager.ThemeChangeListener);
-    method public void applyDefaultTheme();
-    method public static lineageos.themes.ThemeManager getInstance(android.content.Context);
-    method public lineageos.themes.ThemeChangeRequest.RequestType getLastThemeChangeRequestType();
-    method public long getLastThemeChangeTime();
-    method public int getProgress();
-    method public boolean isThemeApplying();
-    method public boolean isThemeBeingProcessed(java.lang.String);
-    method public deprecated void onClientDestroyed(lineageos.themes.ThemeManager.ThemeChangeListener);
-    method public deprecated void onClientPaused(lineageos.themes.ThemeManager.ThemeChangeListener);
-    method public deprecated void onClientResumed(lineageos.themes.ThemeManager.ThemeChangeListener);
-    method public boolean processThemeResources(java.lang.String);
-    method public void registerProcessingListener(lineageos.themes.ThemeManager.ThemeProcessingListener);
-    method public void registerThemeChangeListener(lineageos.themes.ThemeManager.ThemeChangeListener);
-    method public deprecated void removeClient(lineageos.themes.ThemeManager.ThemeChangeListener);
-    method public void requestThemeChange(java.lang.String, java.util.List<java.lang.String>);
-    method public void requestThemeChange(java.lang.String, java.util.List<java.lang.String>, boolean);
-    method public void requestThemeChange(java.util.Map<java.lang.String, java.lang.String>);
-    method public void requestThemeChange(java.util.Map<java.lang.String, java.lang.String>, boolean);
-    method public void requestThemeChange(lineageos.themes.ThemeChangeRequest, boolean);
-    method public void unregisterProcessingListener(lineageos.themes.ThemeManager.ThemeProcessingListener);
-    method public void unregisterThemeChangeListener(lineageos.themes.ThemeManager.ThemeChangeListener);
-  }
-
-  public static abstract interface ThemeManager.ThemeChangeListener {
-    method public abstract void onFinish(boolean);
-    method public abstract void onProgress(int);
-  }
-
-  public static abstract interface ThemeManager.ThemeProcessingListener {
-    method public abstract void onFinishedProcessing(java.lang.String);
-  }
-
-}
-
 package lineageos.util {
 
   public class ColorUtils {
diff --git a/host/migration/src/LineageSettings.java b/host/migration/src/LineageSettings.java
index d2b06ba..28c1896 100644
--- a/host/migration/src/LineageSettings.java
+++ b/host/migration/src/LineageSettings.java
@@ -775,24 +775,6 @@
         public static final String BUTTON_BRIGHTNESS = "button_brightness";
 
         /**
-         * A '|' delimited list of theme components to apply from the default theme on first boot.
-         * Components can be one or more of the "mods_XXXXXXX" found in
-         * {@link ThemesContract$ThemesColumns}.  Leaving this field blank assumes all components
-         * will be applied.
-         *
-         * ex: mods_icons|mods_overlays|mods_homescreen
-         *
-         * @hide
-         */
-        public static final String DEFAULT_THEME_COMPONENTS = "default_theme_components";
-
-        /**
-         * Default theme to use.  If empty, use holo.
-         * @hide
-         */
-        public static final String DEFAULT_THEME_PACKAGE = "default_theme_package";
-
-        /**
          * Developer options - Navigation Bar show switch
          * @hide
          */
@@ -806,11 +788,6 @@
         public static final String KEYBOARD_BRIGHTNESS = "keyboard_brightness";
 
         /**
-         * Default theme config name
-         */
-        public static final String NAME_THEME_CONFIG = "name_theme_config";
-
-        /**
          * Custom navring actions
          * @hide
          */
@@ -1009,17 +986,6 @@
          * @hide
          */
         public static final String ADVANCED_REBOOT = "advanced_reboot";
-
-        /**
-         * This will be set to the system's current theme API version when ThemeService starts.
-         * It is useful for when an upgrade from one version of Lineage to another occurs.
-         * For example, after a user upgrades from CM11 to CM12, the value of this field
-         * might be 19. ThemeService would then change the value to 21. This is useful
-         * when an API change breaks a theme. Themeservice can identify old themes and
-         * unapply them from the system.
-         * @hide
-         */
-        public static final String THEME_PREV_BOOT_API_LEVEL = "theme_prev_boot_api_level";
         // endregion
 
         /**
@@ -1029,8 +995,6 @@
                 LineageSettings.Secure.ADVANCED_MODE,
                 LineageSettings.Secure.BUTTON_BACKLIGHT_TIMEOUT,
                 LineageSettings.Secure.BUTTON_BRIGHTNESS,
-                LineageSettings.Secure.DEFAULT_THEME_COMPONENTS,
-                LineageSettings.Secure.DEFAULT_THEME_PACKAGE,
                 LineageSettings.Secure.DEV_FORCE_SHOW_NAVBAR,
                 LineageSettings.Secure.KEYBOARD_BRIGHTNESS,
                 LineageSettings.Secure.POWER_MENU_ACTIONS,
@@ -1050,7 +1014,6 @@
                 LineageSettings.Secure.PROTECTED_COMPONENTS,
                 LineageSettings.Secure.LIVE_DISPLAY_COLOR_MATRIX,
                 LineageSettings.Secure.ADVANCED_REBOOT,
-                LineageSettings.Secure.THEME_PREV_BOOT_API_LEVEL,
                 LineageSettings.Secure.LOCKSCREEN_TARGETS,
                 LineageSettings.Secure.RING_HOME_BUTTON_BEHAVIOR,
                 LineageSettings.Secure.PRIVACY_GUARD_DEFAULT,
diff --git a/lineage/lib/main/java/org/lineageos/platform/internal/AppsFailureReceiver.java b/lineage/lib/main/java/org/lineageos/platform/internal/AppsFailureReceiver.java
deleted file mode 100644
index 2b99440..0000000
--- a/lineage/lib/main/java/org/lineageos/platform/internal/AppsFailureReceiver.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * Copyright (C) 2010, T-Mobile USA, Inc.
- * Copyright (C) 2015-2016 The CyanogenMod 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 org.lineageos.platform.internal;
-
-import android.app.Notification;
-import android.app.NotificationManager;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.res.ThemeConfig;
-import android.os.RemoteException;
-import android.os.ServiceManager;
-import android.os.SystemClock;
-
-import org.lineageos.internal.util.ThemeUtils;
-
-import lineageos.app.LineageContextConstants;
-import lineageos.themes.IThemeService;
-import lineageos.themes.ThemeChangeRequest;
-import lineageos.themes.ThemeChangeRequest.RequestType;
-
-import static lineageos.content.Intent.ACTION_APP_FAILURE;
-
-public class AppsFailureReceiver extends BroadcastReceiver {
-
-    private static final int FAILURES_THRESHOLD = 3;
-    private static final int EXPIRATION_TIME_IN_MILLISECONDS = 30000; // 30 seconds
-
-    private int mFailuresCount = 0;
-    private long mStartTime = 0;
-
-    // This function implements the following logic.
-    // If after a theme was applied the number of application launch failures
-    // at any moment was equal to FAILURES_THRESHOLD
-    // in less than EXPIRATION_TIME_IN_MILLISECONDS
-    // the default theme is applied unconditionally.
-    @Override
-    public void onReceive(Context context, Intent intent) {
-        String action = intent.getAction();
-        final long currentTime = SystemClock.uptimeMillis();
-        if (ACTION_APP_FAILURE.equals(action)) {
-            if (currentTime - mStartTime > EXPIRATION_TIME_IN_MILLISECONDS) {
-                // reset both the count and the timer
-                mStartTime = currentTime;
-                mFailuresCount = 0;
-            }
-            if (mFailuresCount <= FAILURES_THRESHOLD) {
-                mFailuresCount++;
-                if (mFailuresCount == FAILURES_THRESHOLD) {
-                    // let the theme manager take care of getting us back on the default theme
-                    IThemeService tm = IThemeService.Stub.asInterface(ServiceManager
-                            .getService(LineageContextConstants.LINEAGE_THEME_SERVICE));
-                    final String themePkgName = ThemeConfig.SYSTEM_DEFAULT;
-                    ThemeChangeRequest.Builder builder = new ThemeChangeRequest.Builder();
-                    builder.setOverlay(themePkgName)
-                            .setStatusBar(themePkgName)
-                            .setNavBar(themePkgName)
-                            .setIcons(themePkgName)
-                            .setFont(themePkgName)
-                            .setBootanimation(themePkgName)
-                            .setWallpaper(themePkgName)
-                            .setLockWallpaper(themePkgName)
-                            .setAlarm(themePkgName)
-                            .setNotification(themePkgName)
-                            .setRingtone(themePkgName)
-                            .setRequestType(RequestType.THEME_RESET);
-                    // Since we are resetting everything to the system theme, we can have the
-                    // theme service remove all per app themes without setting them explicitly :)
-                    try {
-                        tm.requestThemeChange(builder.build(), true);
-                        postThemeResetNotification(context);
-                    } catch (RemoteException e) {
-                        /* ignore */
-                    }
-                }
-            }
-        } else if (ThemeUtils.ACTION_THEME_CHANGED.equals(action)) {
-            // reset both the count and the timer
-            mStartTime = currentTime;
-            mFailuresCount = 0;
-        }
-    }
-
-    /**
-     * Posts a notification to let the user know their theme was reset
-     * @param context
-     */
-    private void postThemeResetNotification(Context context) {
-        NotificationManager nm =
-                (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
-        String title = context.getString(R.string.theme_reset_notification_title);
-        String body = context.getString(R.string.theme_reset_notification_message);
-        Notification notice = new Notification.Builder(context)
-                .setAutoCancel(true)
-                .setOngoing(false)
-                .setContentTitle(title)
-                .setContentText(body)
-                .setStyle(new Notification.BigTextStyle().bigText(body))
-                .setSmallIcon(android.R.drawable.stat_notify_error)
-                .setWhen(System.currentTimeMillis())
-                .setCategory(Notification.CATEGORY_SYSTEM)
-                .setPriority(Notification.PRIORITY_MAX)
-                .build();
-        nm.notify(R.string.theme_reset_notification_title, notice);
-    }
-}
diff --git a/lineage/lib/main/java/org/lineageos/platform/internal/IconCacheManagerServiceBroker.java b/lineage/lib/main/java/org/lineageos/platform/internal/IconCacheManagerServiceBroker.java
deleted file mode 100644
index 388335e..0000000
--- a/lineage/lib/main/java/org/lineageos/platform/internal/IconCacheManagerServiceBroker.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * Copyright (C) 2016 The CyanogenMod 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 org.lineageos.platform.internal;
-
-import android.annotation.NonNull;
-import android.content.ComponentName;
-import android.content.Context;
-import android.graphics.Bitmap;
-import android.os.IBinder;
-import android.os.RemoteException;
-
-import lineageos.app.LineageContextConstants;
-
-import org.lineageos.internal.themes.IIconCacheManager;
-import org.lineageos.platform.internal.common.BrokeredServiceConnection;
-
-/**
- * Icon cache service broker for connecting clients to a backing icon cache manager service.
- *
- * @hide
- */
-public class IconCacheManagerServiceBroker extends BrokerableLineageSystemService<IIconCacheManager> {
-
-    private static final ComponentName SERVICE_COMPONENT =
-            new ComponentName("org.lineageos.themeservice",
-                    "org.lineageos.themeservice.IconCacheManagerService");
-
-    private final IIconCacheManager mServiceStubForFailure = new IIconCacheManager.Stub() {
-        @Override
-        public boolean cacheComposedIcon(Bitmap icon, String path) throws RemoteException {
-            return false;
-        }
-    };
-
-    private BrokeredServiceConnection mServiceConnection = new BrokeredServiceConnection() {
-        @Override
-        public void onBrokeredServiceConnected() {
-        }
-
-        @Override
-        public void onBrokeredServiceDisconnected() {
-        }
-    };
-
-    private final class BinderService extends IIconCacheManager.Stub {
-        @Override
-        public boolean cacheComposedIcon(Bitmap icon, String path) throws RemoteException {
-            return getBrokeredService().cacheComposedIcon(icon, path);
-        }
-    }
-
-    public IconCacheManagerServiceBroker(Context context) {
-        super(context);
-        setBrokeredServiceConnection(mServiceConnection);
-    }
-
-    @Override
-    public String getFeatureDeclaration() {
-        return LineageContextConstants.Features.THEMES;
-    }
-
-    @Override
-    protected IIconCacheManager getIBinderAsIInterface(@NonNull IBinder service) {
-        return IIconCacheManager.Stub.asInterface(service);
-    }
-
-    @Override
-    protected IIconCacheManager getDefaultImplementation() {
-        return mServiceStubForFailure;
-    }
-
-    @Override
-    protected ComponentName getServiceComponent() {
-        return SERVICE_COMPONENT;
-    }
-
-    @Override
-    public void onStart() {
-        publishBinderService(LineageContextConstants.LINEAGE_ICON_CACHE_SERVICE, new BinderService());
-    }
-
-    @Override
-    protected String getComponentFilteringPermission() {
-        return lineageos.platform.Manifest.permission.ACCESS_THEME_MANAGER;
-    }
-}
diff --git a/lineage/lib/main/java/org/lineageos/platform/internal/ThemeManagerServiceBroker.java b/lineage/lib/main/java/org/lineageos/platform/internal/ThemeManagerServiceBroker.java
deleted file mode 100644
index 450608d..0000000
--- a/lineage/lib/main/java/org/lineageos/platform/internal/ThemeManagerServiceBroker.java
+++ /dev/null
@@ -1,372 +0,0 @@
-/*
- * Copyright (C) 2016 The CyanogenMod 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 org.lineageos.platform.internal;
-
-import android.annotation.NonNull;
-import android.content.ComponentName;
-import android.content.Context;
-import android.os.FileUtils;
-import android.os.IBinder;
-import android.os.RemoteCallbackList;
-import android.os.RemoteException;
-import android.os.SELinux;
-import android.system.ErrnoException;
-import android.system.Os;
-import android.system.StructStat;
-import android.util.Log;
-import android.util.Slog;
-
-import lineageos.app.LineageContextConstants;
-import lineageos.platform.Manifest;
-import lineageos.themes.IThemeChangeListener;
-import lineageos.themes.IThemeProcessingListener;
-import lineageos.themes.IThemeService;
-import lineageos.themes.ThemeChangeRequest;
-
-import org.lineageos.internal.util.ThemeUtils;
-import org.lineageos.platform.internal.common.BrokeredServiceConnection;
-
-import java.io.File;
-
-import static lineageos.platform.Manifest.permission.ACCESS_THEME_MANAGER;
-
-/**
- * Theme service broker for connecting clients to a backing theme manager service.
- *
- * @hide
- */
-public class ThemeManagerServiceBroker extends BrokerableLineageSystemService<IThemeService> {
-    private static final String TAG = ThemeManagerServiceBroker.class.getSimpleName();
-    private static final boolean DEBUG = false;
-
-    private static final ComponentName SERVICE_COMPONENT =
-            new ComponentName("org.lineageos.themeservice",
-                    "org.lineageos.themeservice.ThemeManagerService");
-
-    // Cached change listeners
-    private final RemoteCallbackList<IThemeChangeListener> mChangeListeners =
-            new RemoteCallbackList<>();
-    private final RemoteCallbackList<IThemeProcessingListener> mProcessingListeners =
-            new RemoteCallbackList<>();
-
-    private Context mContext;
-
-    private final IThemeService mServiceStubForFailure = new IThemeService.Stub() {
-        @Override
-        public void requestThemeChangeUpdates(IThemeChangeListener listener) throws RemoteException {
-        }
-
-        @Override
-        public void removeUpdates(IThemeChangeListener listener) throws RemoteException {
-        }
-
-        @Override
-        public void requestThemeChange(ThemeChangeRequest request,
-                boolean removePerAppThemes) throws RemoteException {
-        }
-
-        @Override
-        public void applyDefaultTheme() throws RemoteException {
-        }
-
-        @Override
-        public boolean isThemeApplying() throws RemoteException {
-            return false;
-        }
-
-        @Override
-        public int getProgress() throws RemoteException {
-            return 0;
-        }
-
-        @Override
-        public boolean processThemeResources(String themePkgName) throws RemoteException {
-            return false;
-        }
-
-        @Override
-        public boolean isThemeBeingProcessed(String themePkgName) throws RemoteException {
-            return false;
-        }
-
-        @Override
-        public void registerThemeProcessingListener(
-                IThemeProcessingListener listener) throws RemoteException {
-        }
-
-        @Override
-        public void unregisterThemeProcessingListener(
-                IThemeProcessingListener listener) throws RemoteException {
-        }
-
-        @Override
-        public void rebuildResourceCache() throws RemoteException {
-        }
-
-        @Override
-        public long getLastThemeChangeTime() throws RemoteException {
-            return 0;
-        }
-
-        @Override
-        public int getLastThemeChangeRequestType() throws RemoteException {
-            return 0;
-        }
-    };
-
-    private final class BinderService extends IThemeService.Stub {
-
-        @Override
-        public void requestThemeChangeUpdates(IThemeChangeListener listener)
-                throws RemoteException {
-            enforcePermission();
-            getBrokeredService().requestThemeChangeUpdates(listener);
-            mChangeListeners.register(listener);
-        }
-
-        @Override
-        public void removeUpdates(IThemeChangeListener listener) throws RemoteException {
-            enforcePermission();
-            getBrokeredService().removeUpdates(listener);
-            mChangeListeners.unregister(listener);
-        }
-
-        @Override
-        public void requestThemeChange(ThemeChangeRequest request,
-                boolean removePerAppThemes) throws RemoteException {
-            enforcePermission();
-            getBrokeredService().requestThemeChange(request, removePerAppThemes);
-        }
-
-        @Override
-        public void applyDefaultTheme() throws RemoteException {
-            enforcePermission();
-            getBrokeredService().applyDefaultTheme();
-        }
-
-        @Override
-        public boolean isThemeApplying() throws RemoteException {
-            enforcePermission();
-            return getBrokeredService().isThemeApplying();
-        }
-
-        @Override
-        public int getProgress() throws RemoteException {
-            enforcePermission();
-            return getBrokeredService().getProgress();
-        }
-
-        @Override
-        public boolean processThemeResources(String themePkgName) throws RemoteException {
-            enforcePermission();
-            return getBrokeredService().processThemeResources(themePkgName);
-        }
-
-        @Override
-        public boolean isThemeBeingProcessed(String themePkgName) throws RemoteException {
-            enforcePermission();
-            return getBrokeredService().isThemeBeingProcessed(themePkgName);
-        }
-
-        @Override
-        public void registerThemeProcessingListener(
-                IThemeProcessingListener listener) throws RemoteException {
-            enforcePermission();
-            getBrokeredService().registerThemeProcessingListener(listener);
-            mProcessingListeners.register(listener);
-        }
-
-        @Override
-        public void unregisterThemeProcessingListener(
-                IThemeProcessingListener listener) throws RemoteException {
-            enforcePermission();
-            getBrokeredService().unregisterThemeProcessingListener(listener);
-            mProcessingListeners.unregister(listener);
-        }
-
-        @Override
-        public void rebuildResourceCache() throws RemoteException {
-            enforcePermission();
-            getBrokeredService().rebuildResourceCache();
-        }
-
-        @Override
-        public long getLastThemeChangeTime() throws RemoteException {
-            enforcePermission();
-            return getBrokeredService().getLastThemeChangeTime();
-        }
-
-        @Override
-        public int getLastThemeChangeRequestType() throws RemoteException {
-            enforcePermission();
-            return getBrokeredService().getLastThemeChangeRequestType();
-        }
-    }
-
-    public ThemeManagerServiceBroker(Context context) {
-        super(context);
-        mContext = context;
-        setBrokeredServiceConnection(mServiceConnection);
-    }
-
-    @Override
-    protected IThemeService getIBinderAsIInterface(@NonNull IBinder service) {
-        return IThemeService.Stub.asInterface(service);
-    }
-
-    @Override
-    protected IThemeService getDefaultImplementation() {
-        return mServiceStubForFailure;
-    }
-
-    @Override
-    protected ComponentName getServiceComponent() {
-        return SERVICE_COMPONENT;
-    }
-
-    @Override
-    public String getFeatureDeclaration() {
-        return LineageContextConstants.Features.THEMES;
-    }
-
-    @Override
-    public void onStart() {
-        if (DEBUG) Slog.d(TAG, "service started");
-        publishBinderService(LineageContextConstants.LINEAGE_THEME_SERVICE, new BinderService());
-    }
-
-    @Override
-    protected String getComponentFilteringPermission() {
-        return Manifest.permission.ACCESS_THEME_MANAGER;
-    }
-
-    @Override
-    public void onBootPhase(int phase) {
-        if (phase == PHASE_SYSTEM_SERVICES_READY) {
-            // create the main theme directory for brokered service
-            if (createDirIfNotExists(ThemeUtils.SYSTEM_THEME_PATH)) {
-                // ensure it has the correct selinux label after creation
-                SELinux.restorecon(ThemeUtils.SYSTEM_THEME_PATH);
-            }
-
-            if (shouldMigrateFilePermissions()) {
-                migrateFilePermissions();
-            }
-        } else if (phase == PHASE_ACTIVITY_MANAGER_READY) {
-            tryConnecting();
-        }
-        super.onBootPhase(phase);
-    }
-
-    private BrokeredServiceConnection mServiceConnection = new BrokeredServiceConnection() {
-        @Override
-        public void onBrokeredServiceConnected() {
-            // If any change listeners are cached, register them with the newly connected
-            // service.
-            IThemeService themeService =
-                    getBrokeredService();
-            try {
-                int N = mChangeListeners.beginBroadcast();
-                if (themeService != null && N > 0) {
-                    for (int i = 0; i < N; i++) {
-                        themeService.requestThemeChangeUpdates(
-                                mChangeListeners.getBroadcastItem(i));
-                    }
-                }
-            } catch (RemoteException e) {
-                    /* ignore */
-            } finally {
-                mChangeListeners.finishBroadcast();
-            }
-
-            try {
-                int N = mProcessingListeners.beginBroadcast();
-                if (themeService != null && N > 0) {
-                    for (int i = 0; i < N; i++) {
-                        themeService.registerThemeProcessingListener(
-                                mProcessingListeners.getBroadcastItem(i));
-                    }
-                }
-            } catch (RemoteException e) {
-                    /* ignore */
-            } finally {
-                mProcessingListeners.finishBroadcast();
-            }
-        }
-
-        @Override
-        public void onBrokeredServiceDisconnected() {
-        }
-    };
-
-    private void enforcePermission() {
-        mContext.enforceCallingOrSelfPermission(ACCESS_THEME_MANAGER, null);
-    }
-
-    /**
-     * @return True if {@link ThemeUtils#SYSTEM_THEME_ALARM_PATH} is not writable by other users
-     */
-    private boolean shouldMigrateFilePermissions() {
-        return isUserWritable(ThemeUtils.SYSTEM_THEME_ALARM_PATH);
-    }
-
-    /**
-     * Ensures other users can write files in /data/system/theme/* which is necessary for the
-     * brokered service to write theme data files.  SELinux policies will not allow random third
-     * party apps to write to this location.
-     */
-    private void migrateFilePermissions() {
-        File[] files = new File(ThemeUtils.SYSTEM_THEME_PATH).listFiles();
-        for (File file : files) {
-            setAllUsersWritable(file, true);
-        }
-    }
-
-    private void setAllUsersWritable(File file, boolean recursive) {
-        if (file.isDirectory() && recursive) {
-            File[] files = file.listFiles();
-            for (File childFile : files) {
-                setAllUsersWritable(childFile, recursive);
-            }
-        }
-        if (!isUserWritable(file.getAbsolutePath())) {
-            file.setWritable(true, false);
-        }
-    }
-
-    private boolean isUserWritable(String path) {
-        try {
-            StructStat stat = Os.stat(path);
-            return (stat.st_mode & 2) == 0;
-        } catch (ErrnoException e) {
-            Log.w(TAG, "Cannot stat " + path);
-        }
-        return false;
-    }
-
-    private static boolean createDirIfNotExists(String dirPath) {
-        final File dir = new File(dirPath);
-        if (!dir.exists()) {
-            if (dir.mkdir()) {
-                FileUtils.setPermissions(dir, FileUtils.S_IRWXU |
-                        FileUtils.S_IRWXG| FileUtils.S_IRWXO, -1, -1);
-                return true;
-            }
-        }
-        return false;
-    }
-}
diff --git a/lineage/res/AndroidManifest.xml b/lineage/res/AndroidManifest.xml
index 00466d2..c712c94 100644
--- a/lineage/res/AndroidManifest.xml
+++ b/lineage/res/AndroidManifest.xml
@@ -155,27 +155,6 @@
                 android:description="@string/permdesc_thirdPartyKeyguard"
                 android:protectionLevel="normal" />
 
-    <!-- Allows an application to use ThemeManager -->
-    <permission android:name="lineageos.permission.ACCESS_THEME_MANAGER"
-                android:label="@string/permlab_accessThemeService"
-                android:description="@string/permdesc_accessThemeService"
-                android:protectionLevel="normal" />
-
-    <!-- Allows an application to read the current theme configuration and
-         get information about the various themes currently installed -->
-    <permission android:name="lineageos.permission.READ_THEMES"
-                android:label="@string/permlab_readThemes"
-                android:description="@string/permdesc_readThemesDesc"
-                android:protectionLevel="normal" />
-
-    <!-- Allows an application to write the current theme configuration and
-         write information about the various themes currently installed.
-         Changing themes should be done through the service ACCESS_THEME_MANAGER -->
-    <permission android:name="lineageos.permission.WRITE_THEMES"
-                android:label="@string/permlab_writeThemes"
-                android:description="@string/permdesc_writeThemesDesc"
-                android:protectionLevel="normal" />
-
     <!-- Allows low-level access to performance management.
          <p>Not for use by third-party applications. -->
     <permission android:name="lineageos.permission.PERFORMANCE_ACCESS"
@@ -256,11 +235,6 @@
     <permission android:name="lineageos.permission.BIND_CORE_SERVICE"
                 android:protectionLevel="signature|privileged" />
 
-    <!-- Not meant for third parties.
-         @hide -->
-    <permission android:name="lineageos.permission.SEND_PROTECTED_THEME_BROADCAST"
-                android:protectionLevel="signature|privileged" />
-
     <application android:process="system"
                  android:persistent="true"
                  android:hasCode="false"
diff --git a/lineage/res/res/values-af/strings.xml b/lineage/res/res/values-af/strings.xml
index 18832e7..58cda46 100644
--- a/lineage/res/res/values-af/strings.xml
+++ b/lineage/res/res/values-af/strings.xml
@@ -119,25 +119,12 @@
   <string name="permlab_thirdPartyKeyguard">derde party slotskerm</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">Laat \'n toep toe om gebruik te word as \'n onveilige skermslot.</string>
-  <!-- Theme installation error notification -->
-  <string name="theme_install_error_title">Kon nie tema installeer</string>
-  <string name="theme_install_error_message"><xliff:g id="theme">%1$s</xliff:g> kon nie installeer nie</string>
-  <!-- Theme reset notification -->
-  <string name="theme_reset_notification_title">Herstel tema</string>
-  <string name="theme_reset_notification_message">Stelsel tema is herstel a. g. v. baie program foute.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_accessThemeService">toegang tot tema diens</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_accessThemeService">Laat \'n toep toe om toegang na die tema diens te verkry. Moet nooit nodig wees vir normale programme nie.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_readThemes">lees jou tema inligting</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_readThemesDesc">Laat die toep toe om jou temas te lees en 
-       bepaal watter tema jy toegepas het.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_writeThemes">verander jou temas</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_writeThemesDesc">Laat die toep toe om nuwe temas by te voeg en verander die tema wat jy toegepas het.</string>
   <!-- Performance manager permission title -->
   <string name="permlab_perfAccess">toegang na prestasie bestuurder</string>
   <!-- Performance manager permission description -->
@@ -180,9 +167,6 @@
   <!-- LineageAudioService - observe session changes permission -->
   <string name="permlab_manage_audio_sessions">bestuur oudio-sessie veranderinge</string>
   <string name="permdesc_manage_audio_sessions">Laat \'n toep toe om oudio-stroom bywerkings te stuur.</string>
-  <!-- QuickSettings: Themes tile -->
-  <string name="qs_themes_label">Temas</string>
-  <string name="qs_themes_content_description">Verpersoonlik jou tema</string>
   <!-- Privacy Guard -->
   <string name="privacy_guard_manager_title">Privaatheidswag</string>
   <!-- Permissions used by remote preferences -->
diff --git a/lineage/res/res/values-am/strings.xml b/lineage/res/res/values-am/strings.xml
index ec4d0c1..a2da064 100644
--- a/lineage/res/res/values-am/strings.xml
+++ b/lineage/res/res/values-am/strings.xml
@@ -40,8 +40,6 @@
   <!-- LiveDisplay strings -->
   <!-- Third party keyguard permission label -->
   <!-- Third party keyguard permission description -->
-  <!-- Theme installation error notification -->
-  <!-- Theme reset notification -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
@@ -64,7 +62,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-ar/strings.xml b/lineage/res/res/values-ar/strings.xml
index b4512f0..f435f42 100644
--- a/lineage/res/res/values-ar/strings.xml
+++ b/lineage/res/res/values-ar/strings.xml
@@ -114,26 +114,12 @@
   <string name="permlab_thirdPartyKeyguard">شاشة تأمين جهة أخرى</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">السماح باستخدام تطبيق كشاشة تأمين غير آمنة.</string>
-  <!-- Theme installation error notification -->
-  <string name="theme_install_error_title">فشل تثبيت السمة</string>
-  <string name="theme_install_error_message"><xliff:g id="theme">%1$s</xliff:g> فشل التثبيت</string>
-  <!-- Theme reset notification -->
-  <string name="theme_reset_notification_title">إعادة تعيين السمة</string>
-  <string name="theme_reset_notification_message">تم استرداد سمة النظام بسبب عمليات تعطيل متعددة للتطبيق.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_accessThemeService">الوصول إلى خدمة السمة</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_accessThemeService">يسمح للتطبيق بالوصول إلى خدمة السمة. ينبغي أن لا تكون ضرورية أبداً للتطبيقات العادية.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_readThemes">قراءة معلومات السمة لديك</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_readThemesDesc">يسمح للتطبيق بقراءة السمات الخاصة بك 
-وتحديد السمة التي قمت بتطبيقها.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_writeThemes">تعديل السمات الخاصة بك</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_writeThemesDesc">السماح للتطبيق بإدخال سمات جديدة
-وتعديل السمة التي قمت بتطبيقها.</string>
   <!-- Performance manager permission title -->
   <string name="permlab_perfAccess">الوصول إلى مدير الأداء</string>
   <!-- Performance manager permission description -->
@@ -174,9 +160,6 @@
   <string name="permlab_observe_audio_sessions">ملاحظة تغييرات جلسة عمل الصوت</string>
   <string name="permdesc_observe_audio_sessions">يسمح لتطبيق معين لملاحظة تدفقات الصوت الجاري إنشاؤها وتدميرها.</string>
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
-  <string name="qs_themes_label">السمات</string>
-  <string name="qs_themes_content_description">تخصيص  السمة</string>
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-as-rIN/strings.xml b/lineage/res/res/values-as-rIN/strings.xml
index 75459fe..0d45436 100644
--- a/lineage/res/res/values-as-rIN/strings.xml
+++ b/lineage/res/res/values-as-rIN/strings.xml
@@ -104,8 +104,6 @@
   <string name="permlab_thirdPartyKeyguard">তৃতীয় পক্ষৰ লক স্ক্ৰীণ</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">এটা এপ্প্‌ক অসুৰক্ষিত লক স্ক্ৰীণ হিচাপে ব্যৱহাৰ কৰিবলৈ অনুমতি দিয়ে।</string>
-  <!-- Theme installation error notification -->
-  <!-- Theme reset notification -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
@@ -128,7 +126,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-ast-rES/strings.xml b/lineage/res/res/values-ast-rES/strings.xml
index 18a7f02..b5127cf 100644
--- a/lineage/res/res/values-ast-rES/strings.xml
+++ b/lineage/res/res/values-ast-rES/strings.xml
@@ -110,24 +110,12 @@
   <string name="permlab_thirdPartyKeyguard">pantalla de bloquéu de terceros</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">Permite qu\'una aplicación s\'use como una pantalla de bloquéu insegura.</string>
-  <!-- Theme installation error notification -->
-  <string name="theme_install_error_title">Fallu al instalase\'l tema</string>
-  <string name="theme_install_error_message"><xliff:g id="theme">%1$s</xliff:g> falló al instalase</string>
-  <!-- Theme reset notification -->
-  <string name="theme_reset_notification_message">Restauróse\'l tema\'l sistema pola mor de casques múltiples d\'aplicaciones.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_accessThemeService">acceder al serviciu de temes</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_accessThemeService">Permite qu\'una aplicación acceda al serviciu de temes. Enxamás debería precisase p\'aplicaciones normales.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_readThemes">lleer la información del to tema</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_readThemesDesc">Permite que l\'aplicación llea los tos temes y
-       determine\'l que tienes aplicáu.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_writeThemes">modificar los tos temes</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_writeThemesDesc">Permite que l\'aplicación inxerte temes nuevos y modifique\'l que tienes aplicáu.</string>
   <!-- Performance manager permission title -->
   <string name="permlab_perfAccess">acceder al xestor de rindimientu</string>
   <!-- Performance manager permission description -->
@@ -157,9 +145,6 @@
   <!-- LineageAudioService - observe session changes permission -->
   <string name="permlab_manage_audio_sessions">xestionar camudancies de sesiones d\'audiu</string>
   <string name="permdesc_manage_audio_sessions">Permite qu\'una aplicación unvie anovamientos de fluxos d\'audiu.</string>
-  <!-- QuickSettings: Themes tile -->
-  <string name="qs_themes_label">Temes</string>
-  <string name="qs_themes_content_description">Personaliza\'l to tema</string>
   <!-- Privacy Guard -->
   <string name="privacy_guard_manager_title">Guardián de privacidá</string>
   <!-- Permissions used by remote preferences -->
diff --git a/lineage/res/res/values-az-rAZ/strings.xml b/lineage/res/res/values-az-rAZ/strings.xml
index 942ace9..a84fb77 100644
--- a/lineage/res/res/values-az-rAZ/strings.xml
+++ b/lineage/res/res/values-az-rAZ/strings.xml
@@ -104,8 +104,6 @@
   <string name="permlab_thirdPartyKeyguard">üçüncü tərəf kilid ekranı</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">Tətbiqetməyə şifrəsiz kilid ekranı olaraq istifadə etmə icazəsi verər.</string>
-  <!-- Theme installation error notification -->
-  <!-- Theme reset notification -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
@@ -128,7 +126,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-be-rBY/strings.xml b/lineage/res/res/values-be-rBY/strings.xml
index 7137933..4d508a1 100644
--- a/lineage/res/res/values-be-rBY/strings.xml
+++ b/lineage/res/res/values-be-rBY/strings.xml
@@ -114,25 +114,12 @@
   <string name="permlab_thirdPartyKeyguard">Іншы экран блакавання</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">Дадатак зможа працаваць у якасці небяспечнага метаду блакавання экрана.</string>
-  <!-- Theme installation error notification -->
-  <string name="theme_install_error_title">Не атрымалася ўсталяваць тэму</string>
-  <string name="theme_install_error_message">Не атрымалася ўсталяваць <xliff:g id="theme">%1$s</xliff:g></string>
-  <!-- Theme reset notification -->
-  <string name="theme_reset_notification_title">Тэма адключана</string>
-  <string name="theme_reset_notification_message">З-за збояў дадаткаў адноўлена стандартная тэма.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_accessThemeService">доступ да службы тэм</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_accessThemeService">Дадатак зможа атрымваць доступ да службы тэм. Гэты дазвол не выкарыстоўваецца звычайнымі дадаткамі.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_readThemes">чытанне інфармацыі пра тэму</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_readThemesDesc">Дадатак зможа счытваць тэмы афармлення       
- і вызначаць, якая тэма цяпер ужыта.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_writeThemes">змена тэм</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_writeThemesDesc">Дадатак зможа ўжыццяўляць усталёўку новых тэм афармлення і змяняць бягучую тэму.</string>
   <!-- Performance manager permission title -->
   <string name="permlab_perfAccess">доступ да менеджара прадукцыйнасці</string>
   <!-- Performance manager permission description -->
@@ -153,8 +140,6 @@
   <string name="permlab_manageLiveDisplay">кіраванне наладамі LiveDisplay</string>
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
-  <string name="qs_themes_label">Знешні выгляд</string>
   <!-- Privacy Guard -->
   <string name="privacy_guard_manager_title">Ахова</string>
   <!-- Permissions used by remote preferences -->
diff --git a/lineage/res/res/values-be/strings.xml b/lineage/res/res/values-be/strings.xml
index 3e12da3..3613372 100644
--- a/lineage/res/res/values-be/strings.xml
+++ b/lineage/res/res/values-be/strings.xml
@@ -117,25 +117,12 @@
   <string name="touchscreen_gesture_extras">Іншае</string>
   <string name="touchscreen_gesture_haptic_feedback">Вібраводгук</string>
   <string name="touchscreen_gesture_haptic_feedback_summary">Вібраваць пры паспяховым распазнанні жэста</string>
-  <!-- Theme installation error notification -->
-  <string name="theme_install_error_title">Не атрымалася ўсталяваць тэму</string>
-  <string name="theme_install_error_message">Не атрымалася ўсталяваць <xliff:g id="theme">%1$s</xliff:g></string>
-  <!-- Theme reset notification -->
-  <string name="theme_reset_notification_title">Тэма адключана</string>
-  <string name="theme_reset_notification_message">З-за збояў дадаткаў адноўлена стандартная тэма.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_accessThemeService">доступ да службы тэм</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_accessThemeService">Дадатак зможа атрымваць доступ да службы тэм. Гэты дазвол не выкарыстоўваецца звычайнымі дадаткамі.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_readThemes">чытанне інфармацыі пра тэму</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_readThemesDesc">Дадатак зможа счытваць тэмы афармлення       
- і вызначаць, якая тэма цяпер ужыта.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_writeThemes">змена тэм</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_writeThemesDesc">Дадатак зможа ўжыццяўляць усталёўку новых тэм афармлення і змяняць бягучую тэму.</string>
   <!-- Performance manager permission title -->
   <string name="permlab_perfAccess">доступ да менеджара прадукцыйнасці</string>
   <!-- Performance manager permission description -->
@@ -156,7 +143,5 @@
   <string name="permlab_manageLiveDisplay">кіраванне наладамі LiveDisplay</string>
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
-  <string name="qs_themes_label">Знешні выгляд</string>
   <!-- Custom booot dexopt -->
 </resources>
diff --git a/lineage/res/res/values-bg/strings.xml b/lineage/res/res/values-bg/strings.xml
index 076da17..98e832f 100644
--- a/lineage/res/res/values-bg/strings.xml
+++ b/lineage/res/res/values-bg/strings.xml
@@ -119,24 +119,12 @@
   <string name="permlab_thirdPartyKeyguard">Защитен екран от друг автор</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">Позволява приложението да бъде ползвано като незаключен защитен екран.</string>
-  <!-- Theme installation error notification -->
-  <string name="theme_install_error_title">Неуспешно инсталиране на темата</string>
-  <string name="theme_install_error_message">Инсталирането на <xliff:g id="theme">%1$s</xliff:g>е неуспешно</string>
-  <!-- Theme reset notification -->
-  <string name="theme_reset_notification_title">Нулиране на темата</string>
-  <string name="theme_reset_notification_message">Стандартната тема е възстановена поради множество грешки.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_accessThemeService">достъп до темите</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_accessThemeService">Позволява на приложението достъп до услугата за теми. Не е необходимо за нормални приложения.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_readThemes">прочетете информацията за темата</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_readThemesDesc">Разрешава на приложението да чете вашите теми и да определя коя тема сте приложили.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_writeThemes">Модифициране на темите</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_writeThemesDesc">Разрешава на приложението да добавя нови теми и да променя текущата тема.</string>
   <!-- Performance manager permission title -->
   <string name="permlab_perfAccess">Достъп до диспечера за производителност</string>
   <!-- Performance manager permission description -->
@@ -179,9 +167,6 @@
   <!-- LineageAudioService - observe session changes permission -->
   <string name="permlab_manage_audio_sessions">управление на промените в аудио сесии</string>
   <string name="permdesc_manage_audio_sessions">Разрешава на приложението да изпраща известия за аудио стрийминг актуализации.</string>
-  <!-- QuickSettings: Themes tile -->
-  <string name="qs_themes_label">Теми</string>
-  <string name="qs_themes_content_description">Персонализирайте вашата тема</string>
   <!-- Privacy Guard -->
   <string name="privacy_guard_manager_title">Защитен режим</string>
   <!-- Permissions used by remote preferences -->
diff --git a/lineage/res/res/values-bn-rBD/strings.xml b/lineage/res/res/values-bn-rBD/strings.xml
index ec4d0c1..a2da064 100644
--- a/lineage/res/res/values-bn-rBD/strings.xml
+++ b/lineage/res/res/values-bn-rBD/strings.xml
@@ -40,8 +40,6 @@
   <!-- LiveDisplay strings -->
   <!-- Third party keyguard permission label -->
   <!-- Third party keyguard permission description -->
-  <!-- Theme installation error notification -->
-  <!-- Theme reset notification -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
@@ -64,7 +62,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-br-rFR/strings.xml b/lineage/res/res/values-br-rFR/strings.xml
index ec4d0c1..a2da064 100644
--- a/lineage/res/res/values-br-rFR/strings.xml
+++ b/lineage/res/res/values-br-rFR/strings.xml
@@ -40,8 +40,6 @@
   <!-- LiveDisplay strings -->
   <!-- Third party keyguard permission label -->
   <!-- Third party keyguard permission description -->
-  <!-- Theme installation error notification -->
-  <!-- Theme reset notification -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
@@ -64,7 +62,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-bs-rBA/strings.xml b/lineage/res/res/values-bs-rBA/strings.xml
index ec4d0c1..a2da064 100644
--- a/lineage/res/res/values-bs-rBA/strings.xml
+++ b/lineage/res/res/values-bs-rBA/strings.xml
@@ -40,8 +40,6 @@
   <!-- LiveDisplay strings -->
   <!-- Third party keyguard permission label -->
   <!-- Third party keyguard permission description -->
-  <!-- Theme installation error notification -->
-  <!-- Theme reset notification -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
@@ -64,7 +62,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-ca/strings.xml b/lineage/res/res/values-ca/strings.xml
index be99184..931e90b 100644
--- a/lineage/res/res/values-ca/strings.xml
+++ b/lineage/res/res/values-ca/strings.xml
@@ -119,24 +119,12 @@
   <string name="permlab_thirdPartyKeyguard">pantalla de bloqueig de tercers</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">Permet a una aplicació ser utilitzada com a pantalla de bloqueig no segura.</string>
-  <!-- Theme installation error notification -->
-  <string name="theme_install_error_title">No ha pogut instal·lar el tema</string>
-  <string name="theme_install_error_message">No s\'ha pogut instal·lar <xliff:g id="theme">%1$s</xliff:g></string>
-  <!-- Theme reset notification -->
-  <string name="theme_reset_notification_title">Restableix el tema</string>
-  <string name="theme_reset_notification_message">El tema del sistema s\'ha restaurat degut a múltiples fallades d\'aplicacions.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_accessThemeService">accés al servei de temes</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_accessThemeService">Permet a una aplicació accedir al servei de temes. No s\'hauria de necessitar mai en les aplicacions normals.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_readThemes">llegeix la informació del teu tema</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_readThemesDesc">Permet a l\'aplicació llegir els teus temes i determinar quin tema has aplicat.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_writeThemes">modifica els teus temes</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_writeThemesDesc">Permet a l\'aplicació introduir temes nous i modificar quin tema has aplicat.</string>
   <!-- Performance manager permission title -->
   <string name="permlab_perfAccess">accés a l\'administrador de rendiment</string>
   <!-- Performance manager permission description -->
@@ -179,9 +167,6 @@
   <!-- LineageAudioService - observe session changes permission -->
   <string name="permlab_manage_audio_sessions">administra els canvis en la sessió de so</string>
   <string name="permdesc_manage_audio_sessions">Permet a una aplicació enviar actualitzacions de transmissió d\'àudio.</string>
-  <!-- QuickSettings: Themes tile -->
-  <string name="qs_themes_label">Temes</string>
-  <string name="qs_themes_content_description">Personalitza els teus temes</string>
   <!-- Privacy Guard -->
   <string name="privacy_guard_manager_title">Guarda de privacitat</string>
   <!-- Permissions used by remote preferences -->
diff --git a/lineage/res/res/values-cs/strings.xml b/lineage/res/res/values-cs/strings.xml
index 5a5dc1d..3eb64eb 100644
--- a/lineage/res/res/values-cs/strings.xml
+++ b/lineage/res/res/values-cs/strings.xml
@@ -119,24 +119,12 @@
   <string name="permlab_thirdPartyKeyguard">zámek obrazovky třetí strany</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">Umožňuje být použit jako ne zcela bezpečný zámek obrazovky.</string>
-  <!-- Theme installation error notification -->
-  <string name="theme_install_error_title">Instalace motivu selhala</string>
-  <string name="theme_install_error_message">Instalace <xliff:g id="theme">%1$s</xliff:g> selhala</string>
-  <!-- Theme reset notification -->
-  <string name="theme_reset_notification_title">Obnovit motiv</string>
-  <string name="theme_reset_notification_message">Kvůli pádům aplikací byl obnoven výchozí systémový motiv.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_accessThemeService">přístup ke službě motivu</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_accessThemeService">Umožňuje přistupovat ke službě motivu. Toto oprávnění by neměla vyžadovat žádná normální aplikace.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_readThemes">čtení informace o motivu</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_readThemesDesc">Umožňuje načíst motivy a určit, který motiv je použit.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_writeThemes">změnit motiv</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_writeThemesDesc">Umožňuje vložit nový motiv a změnit informaci o tom, který motiv je použit.</string>
   <!-- Performance manager permission title -->
   <string name="permlab_perfAccess">přístup ke správci výkonu</string>
   <!-- Performance manager permission description -->
@@ -179,9 +167,6 @@
   <!-- LineageAudioService - observe session changes permission -->
   <string name="permlab_manage_audio_sessions">upravovat změny audio relace</string>
   <string name="permdesc_manage_audio_sessions">Umožňuje aktualizovat zvukové relace.</string>
-  <!-- QuickSettings: Themes tile -->
-  <string name="qs_themes_label">Motivy</string>
-  <string name="qs_themes_content_description">Vlastní nastavení motivu</string>
   <!-- Privacy Guard -->
   <string name="privacy_guard_manager_title">Ochrana soukromí</string>
   <!-- Permissions used by remote preferences -->
diff --git a/lineage/res/res/values-csb-rPL/strings.xml b/lineage/res/res/values-csb-rPL/strings.xml
index ec4d0c1..a2da064 100644
--- a/lineage/res/res/values-csb-rPL/strings.xml
+++ b/lineage/res/res/values-csb-rPL/strings.xml
@@ -40,8 +40,6 @@
   <!-- LiveDisplay strings -->
   <!-- Third party keyguard permission label -->
   <!-- Third party keyguard permission description -->
-  <!-- Theme installation error notification -->
-  <!-- Theme reset notification -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
@@ -64,7 +62,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-cy/strings.xml b/lineage/res/res/values-cy/strings.xml
index ec4d0c1..a2da064 100644
--- a/lineage/res/res/values-cy/strings.xml
+++ b/lineage/res/res/values-cy/strings.xml
@@ -40,8 +40,6 @@
   <!-- LiveDisplay strings -->
   <!-- Third party keyguard permission label -->
   <!-- Third party keyguard permission description -->
-  <!-- Theme installation error notification -->
-  <!-- Theme reset notification -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
@@ -64,7 +62,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-da/strings.xml b/lineage/res/res/values-da/strings.xml
index 5a1a4a3..c225539 100644
--- a/lineage/res/res/values-da/strings.xml
+++ b/lineage/res/res/values-da/strings.xml
@@ -119,24 +119,12 @@
   <string name="permlab_thirdPartyKeyguard">tredjeparts skærmlås</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">Gør det muligt for en app at blive brugt som en usikker skærmlås.</string>
-  <!-- Theme installation error notification -->
-  <string name="theme_install_error_title">Det lykkedes ikke at installere temaet</string>
-  <string name="theme_install_error_message"><xliff:g id="theme">%1$s</xliff:g> kunne ikke installeres</string>
-  <!-- Theme reset notification -->
-  <string name="theme_reset_notification_title">Nulstil tema</string>
-  <string name="theme_reset_notification_message">System-tema er gendannet på grund af flere app nedbrud.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_accessThemeService">tilgå tematjenesten</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_accessThemeService">Tillader en app at tilgå tematjenesten. Bør aldrig være nødvendig for alm. apps.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_readThemes">læse din temainformation</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_readThemesDesc">Tillader appen at læse dine temaer og afgøre, hvilket tema du anvender.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_writeThemes">ændre dine temaer</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_writeThemesDesc">Tillader appen at indsætte nye temaer og ændre, hvilket tema du anvender.</string>
   <!-- Performance manager permission title -->
   <string name="permlab_perfAccess">tilgå ydelsesmanager</string>
   <!-- Performance manager permission description -->
@@ -179,9 +167,6 @@
   <!-- LineageAudioService - observe session changes permission -->
   <string name="permlab_manage_audio_sessions">administrér ændringer for lydsession</string>
   <string name="permdesc_manage_audio_sessions">Tillader en app at sende lydstream-opdateringer.</string>
-  <!-- QuickSettings: Themes tile -->
-  <string name="qs_themes_label">Temaer</string>
-  <string name="qs_themes_content_description">Tilpas dit tema</string>
   <!-- Privacy Guard -->
   <string name="privacy_guard_manager_title">Privatlivsvagt</string>
   <!-- Permissions used by remote preferences -->
diff --git a/lineage/res/res/values-de/strings.xml b/lineage/res/res/values-de/strings.xml
index 3d56af0..a95cfa5 100644
--- a/lineage/res/res/values-de/strings.xml
+++ b/lineage/res/res/values-de/strings.xml
@@ -119,24 +119,12 @@
   <string name="permlab_thirdPartyKeyguard">Sperrbildschirm eines Drittanbieters</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">Ermöglicht der App, als unsicherer Sperrbildschirm genutzt zu werden.</string>
-  <!-- Theme installation error notification -->
-  <string name="theme_install_error_title">Design konnte nicht installiert werden</string>
-  <string name="theme_install_error_message"><xliff:g id="theme">%1$s</xliff:g> konnte nicht installiert werden.</string>
-  <!-- Theme reset notification -->
-  <string name="theme_reset_notification_title">Design zurücksetzen</string>
-  <string name="theme_reset_notification_message">Aufgrund mehrerer App-Abstürze wurde das systemeigene Design wiederhergestellt.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_accessThemeService">auf Designdienst zugreifen</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_accessThemeService">Ermöglicht einer App den Zugriff auf den Designdienst. Wird für normale Apps nicht benötigt.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_readThemes">Informationen Ihres Designs lesen</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_readThemesDesc">Ermöglicht der App, auszulesen, welche Designs Sie installiert und aktiviert haben.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_writeThemes">aktive Designs ändern</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_writeThemesDesc">Ermöglicht der App, neue Designs zu installieren und das aktive Design zu wählen.</string>
   <!-- Performance manager permission title -->
   <string name="permlab_perfAccess">Zugriff auf Leistungsmanager</string>
   <!-- Performance manager permission description -->
@@ -179,9 +167,6 @@
   <!-- LineageAudioService - observe session changes permission -->
   <string name="permlab_manage_audio_sessions">Audiositzungsänderungen verwalten</string>
   <string name="permdesc_manage_audio_sessions">Ermöglicht einer App, Audiostream-Aktualisierungen zu senden.</string>
-  <!-- QuickSettings: Themes tile -->
-  <string name="qs_themes_label">Designs</string>
-  <string name="qs_themes_content_description">Passen Sie Ihr Design an</string>
   <!-- Privacy Guard -->
   <string name="privacy_guard_manager_title">Datenschutz</string>
   <!-- Permissions used by remote preferences -->
diff --git a/lineage/res/res/values-el/strings.xml b/lineage/res/res/values-el/strings.xml
index 1406ad4..2909afd 100644
--- a/lineage/res/res/values-el/strings.xml
+++ b/lineage/res/res/values-el/strings.xml
@@ -119,24 +119,12 @@
   <string name="permlab_thirdPartyKeyguard">χρήση ως οθόνη κλειδώματος</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">Επιτρέπει σε μια εφαρμογή να χρησιμοποιηθεί ως μια ανασφαλής οθόνη κλειδώματος.</string>
-  <!-- Theme installation error notification -->
-  <string name="theme_install_error_title">Αποτυχία εγκατάστασης του θέματος</string>
-  <string name="theme_install_error_message">Απέτυχε η εγκατάσταση του <xliff:g id="theme">%1$s</xliff:g></string>
-  <!-- Theme reset notification -->
-  <string name="theme_reset_notification_title">Επαναφορά θέματος</string>
-  <string name="theme_reset_notification_message">Έγινε επαναφορά του θέματος συστήματος λόγω πολλαπλών σφαλμάτων εφαρμογών.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_accessThemeService">πρόσβαση στην υπηρεσία θεμάτων</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_accessThemeService">Επιτρέπει σε μια εφαρμογή την πρόσβαση στην υπηρεσία θεμάτων. Δεν πρέπει να απαιτείται από κανονικές εφαρμογές.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_readThemes">ανάγνωση πληροφοριών του θέματος σας</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_readThemesDesc">Επιτρέπει στην εφαρμογή να διαβάζει τα θέματα σας και να προσδιορίσει ποιο θέμα έχετε εφαρμόσει.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_writeThemes">τροποποίηση των θεμάτων σας</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_writeThemesDesc">Επιτρέπει στην εφαρμογή να εισάγει νέα θέματα και να τροποποιήσει το θέμα που έχετε εφαρμόσει.</string>
   <!-- Performance manager permission title -->
   <string name="permlab_perfAccess">πρόσβαση στην υπηρεσία επιδόσεων</string>
   <!-- Performance manager permission description -->
@@ -179,9 +167,6 @@
   <!-- LineageAudioService - observe session changes permission -->
   <string name="permlab_manage_audio_sessions">διαχείριση αλλαγών στις συνεδρίες ήχου</string>
   <string name="permdesc_manage_audio_sessions">Επιτρέπει σε μια εφαρμογή να στέλνει ενημερώσεις στη ροή ήχου.</string>
-  <!-- QuickSettings: Themes tile -->
-  <string name="qs_themes_label">Θέματα</string>
-  <string name="qs_themes_content_description">Προσαρμόστε το θέμα σας</string>
   <!-- Privacy Guard -->
   <string name="privacy_guard_manager_title">Προστασία Απορρήτου</string>
   <!-- Permissions used by remote preferences -->
diff --git a/lineage/res/res/values-en-rAU/strings.xml b/lineage/res/res/values-en-rAU/strings.xml
index b2b53f4..ddaf937 100644
--- a/lineage/res/res/values-en-rAU/strings.xml
+++ b/lineage/res/res/values-en-rAU/strings.xml
@@ -119,25 +119,12 @@
   <string name="permlab_thirdPartyKeyguard">third party lock screen</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">Allows an app to be used as an insecure lock screen.</string>
-  <!-- Theme installation error notification -->
-  <string name="theme_install_error_title">Failed to install theme</string>
-  <string name="theme_install_error_message"><xliff:g id="theme">%1$s</xliff:g> failed to install</string>
-  <!-- Theme reset notification -->
-  <string name="theme_reset_notification_title">Theme reset</string>
-  <string name="theme_reset_notification_message">System theme restored due to multiple app crashes.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_accessThemeService">access theme service</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_accessThemeService">Allows an app to access the theme service. Should never be needed for normal apps.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_readThemes">read your theme info</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_readThemesDesc">Allows the app to read your themes and
-       determine which theme you have applied.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_writeThemes">modify your themes</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_writeThemesDesc">Allows the app to insert new themes and modify which theme you have applied.</string>
   <!-- Performance manager permission title -->
   <string name="permlab_perfAccess">access performance manager</string>
   <!-- Performance manager permission description -->
@@ -180,9 +167,6 @@
   <!-- LineageAudioService - observe session changes permission -->
   <string name="permlab_manage_audio_sessions">manage audio session changes</string>
   <string name="permdesc_manage_audio_sessions">Allows an app to send audio stream updates.</string>
-  <!-- QuickSettings: Themes tile -->
-  <string name="qs_themes_label">Themes</string>
-  <string name="qs_themes_content_description">Customise your theme</string>
   <!-- Privacy Guard -->
   <string name="privacy_guard_manager_title">Privacy Guard</string>
   <!-- Permissions used by remote preferences -->
diff --git a/lineage/res/res/values-en-rGB/strings.xml b/lineage/res/res/values-en-rGB/strings.xml
index 6b1fd2b..c7e789e 100644
--- a/lineage/res/res/values-en-rGB/strings.xml
+++ b/lineage/res/res/values-en-rGB/strings.xml
@@ -119,25 +119,12 @@
   <string name="permlab_thirdPartyKeyguard">third party lock screen</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">Allows an app to be used as an insecure lock screen.</string>
-  <!-- Theme installation error notification -->
-  <string name="theme_install_error_title">Failed to install theme</string>
-  <string name="theme_install_error_message"><xliff:g id="theme">%1$s</xliff:g> failed to install</string>
-  <!-- Theme reset notification -->
-  <string name="theme_reset_notification_title">Theme reset</string>
-  <string name="theme_reset_notification_message">System theme restored due to multiple app crashes.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_accessThemeService">access theme service</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_accessThemeService">Allows an app to access the theme service. Should never be needed for normal apps.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_readThemes">read your theme info</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_readThemesDesc">Allows the app to read your themes and
-       determine which theme you have applied.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_writeThemes">modify your themes</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_writeThemesDesc">Allows the app to insert new themes and modify which theme you have applied.</string>
   <!-- Performance manager permission title -->
   <string name="permlab_perfAccess">access performance manager</string>
   <!-- Performance manager permission description -->
@@ -180,9 +167,6 @@
   <!-- LineageAudioService - observe session changes permission -->
   <string name="permlab_manage_audio_sessions">manage audio session changes</string>
   <string name="permdesc_manage_audio_sessions">Allows an app to send audio stream updates.</string>
-  <!-- QuickSettings: Themes tile -->
-  <string name="qs_themes_label">Themes</string>
-  <string name="qs_themes_content_description">Customise your theme</string>
   <!-- Privacy Guard -->
   <string name="privacy_guard_manager_title">Privacy Guard</string>
   <!-- Permissions used by remote preferences -->
diff --git a/lineage/res/res/values-en-rIN/strings.xml b/lineage/res/res/values-en-rIN/strings.xml
index 77fc29b..b0118f5 100644
--- a/lineage/res/res/values-en-rIN/strings.xml
+++ b/lineage/res/res/values-en-rIN/strings.xml
@@ -119,25 +119,12 @@
   <string name="permlab_thirdPartyKeyguard">third party lock screen</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">Allows an app to be used as an insecure lock screen.</string>
-  <!-- Theme installation error notification -->
-  <string name="theme_install_error_title">Failed to install theme</string>
-  <string name="theme_install_error_message"><xliff:g id="theme">%1$s</xliff:g> failed to install</string>
-  <!-- Theme reset notification -->
-  <string name="theme_reset_notification_title">Theme reset</string>
-  <string name="theme_reset_notification_message">System theme restored due to multiple app crashes.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_accessThemeService">access theme service</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_accessThemeService">Allows an app to access the theme service. Should never be needed for normal apps.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_readThemes">read your theme info</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_readThemesDesc">Allows the app to read your themes and
-       determine which theme you have applied.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_writeThemes">modify your themes</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_writeThemesDesc">Allows the app to insert new themes and modify which theme you have applied.</string>
   <!-- Performance manager permission title -->
   <string name="permlab_perfAccess">access performance manager</string>
   <!-- Performance manager permission description -->
@@ -180,9 +167,6 @@
   <!-- LineageAudioService - observe session changes permission -->
   <string name="permlab_manage_audio_sessions">manage audio session changes</string>
   <string name="permdesc_manage_audio_sessions">Allows an app to send audio stream updates.</string>
-  <!-- QuickSettings: Themes tile -->
-  <string name="qs_themes_label">Themes</string>
-  <string name="qs_themes_content_description">Customise your theme</string>
   <!-- Privacy Guard -->
   <string name="privacy_guard_manager_title">Privacy Guard</string>
   <!-- Permissions used by remote preferences -->
diff --git a/lineage/res/res/values-en-rPT/strings.xml b/lineage/res/res/values-en-rPT/strings.xml
index ec4d0c1..a2da064 100644
--- a/lineage/res/res/values-en-rPT/strings.xml
+++ b/lineage/res/res/values-en-rPT/strings.xml
@@ -40,8 +40,6 @@
   <!-- LiveDisplay strings -->
   <!-- Third party keyguard permission label -->
   <!-- Third party keyguard permission description -->
-  <!-- Theme installation error notification -->
-  <!-- Theme reset notification -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
@@ -64,7 +62,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-eo/strings.xml b/lineage/res/res/values-eo/strings.xml
index 387cd2e..c47fa6a 100644
--- a/lineage/res/res/values-eo/strings.xml
+++ b/lineage/res/res/values-eo/strings.xml
@@ -41,8 +41,6 @@
   <string name="live_display_day">Tago</string>
   <!-- Third party keyguard permission label -->
   <!-- Third party keyguard permission description -->
-  <!-- Theme installation error notification -->
-  <!-- Theme reset notification -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
@@ -65,8 +63,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
-  <string name="qs_themes_label">Etosoj</string>
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-es-rCO/strings.xml b/lineage/res/res/values-es-rCO/strings.xml
index ec4d0c1..a2da064 100644
--- a/lineage/res/res/values-es-rCO/strings.xml
+++ b/lineage/res/res/values-es-rCO/strings.xml
@@ -40,8 +40,6 @@
   <!-- LiveDisplay strings -->
   <!-- Third party keyguard permission label -->
   <!-- Third party keyguard permission description -->
-  <!-- Theme installation error notification -->
-  <!-- Theme reset notification -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
@@ -64,7 +62,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-es-rMX/strings.xml b/lineage/res/res/values-es-rMX/strings.xml
index 32e5e5e..039eb48 100644
--- a/lineage/res/res/values-es-rMX/strings.xml
+++ b/lineage/res/res/values-es-rMX/strings.xml
@@ -61,24 +61,12 @@
   <string name="permlab_thirdPartyKeyguard">Pantalla de bloqueo con aplicación de terceros</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">Permite a una aplicación ser utilizada como pantalla de bloqueo no segura.</string>
-  <!-- Theme installation error notification -->
-  <string name="theme_install_error_title">Error al instalar el tema</string>
-  <string name="theme_install_error_message">Error al instalar <xliff:g id="theme">%1$s</xliff:g></string>
-  <!-- Theme reset notification -->
-  <string name="theme_reset_notification_title">Tema restablecido</string>
-  <string name="theme_reset_notification_message">El tema del sistema fue restablecido debido a múltiples cierres de la aplicación.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_accessThemeService">acceso al servicio de temas</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_accessThemeService">Permite que la aplicación acceda al servicio de temas. Nunca debería ser necesario para aplicaciones normales.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_readThemes">leer información de los temas</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_readThemesDesc">Permite que la aplicación lea tus temas instalados y determine cual tema aplicaste.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_writeThemes">modifica tus temas</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_writeThemesDesc">Permite que la aplicación añada temas nuevos y modifique el tema aplicado actualmente.</string>
   <!-- Performance manager permission title -->
   <string name="permlab_perfAccess">acceder al supervisor de rendimiento</string>
   <!-- Performance manager permission description -->
@@ -97,7 +85,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-es-rUS/strings.xml b/lineage/res/res/values-es-rUS/strings.xml
index 20da347..0868296 100644
--- a/lineage/res/res/values-es-rUS/strings.xml
+++ b/lineage/res/res/values-es-rUS/strings.xml
@@ -119,24 +119,12 @@
   <string name="permlab_thirdPartyKeyguard">pantalla bloqueada con aplicación de terceros</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">Permite a una aplicación ser utilizada como pantalla bloqueada no segura.</string>
-  <!-- Theme installation error notification -->
-  <string name="theme_install_error_title">No se pudo instalar el tema</string>
-  <string name="theme_install_error_message">Error al instalar <xliff:g id="theme">%1$s </xliff:g></string>
-  <!-- Theme reset notification -->
-  <string name="theme_reset_notification_title">Tema restablecido</string>
-  <string name="theme_reset_notification_message">Tema del sistema restablecido debido a varios cierres de la aplicación.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_accessThemeService">acceso al servicio de temas</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_accessThemeService">Permite que la aplicación acceda al servicio de temas. No debería ser necesario para aplicaciones normales.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_readThemes">leer información de los temas</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_readThemesDesc">Permite que la aplicación lea los temas instalados y determine cuál es el tema aplicado.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_writeThemes">modificar tus temas</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_writeThemesDesc">Permite que la aplicación añada temas nuevos y modifique el tema aplicado.</string>
   <!-- Performance manager permission title -->
   <string name="permlab_perfAccess">acceso al gestor de rendimiento</string>
   <!-- Performance manager permission description -->
@@ -179,9 +167,6 @@
   <!-- LineageAudioService - observe session changes permission -->
   <string name="permlab_manage_audio_sessions">gestionar los cambios de sesión del audio</string>
   <string name="permdesc_manage_audio_sessions">Permitir a una aplicación enviar actualizaciones de la transmisión del audio.</string>
-  <!-- QuickSettings: Themes tile -->
-  <string name="qs_themes_label">Temas</string>
-  <string name="qs_themes_content_description">Personaliza tu tema</string>
   <!-- Privacy Guard -->
   <string name="privacy_guard_manager_title">Guardián de privacidad</string>
   <!-- Permissions used by remote preferences -->
diff --git a/lineage/res/res/values-es/strings.xml b/lineage/res/res/values-es/strings.xml
index 0db151e..a9bc6f9 100644
--- a/lineage/res/res/values-es/strings.xml
+++ b/lineage/res/res/values-es/strings.xml
@@ -119,24 +119,12 @@
   <string name="permlab_thirdPartyKeyguard">pantalla de bloqueo con aplicación de terceros</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">Permite que una aplicación ser utilizada como pantalla de bloqueo no segura.</string>
-  <!-- Theme installation error notification -->
-  <string name="theme_install_error_title">Error al instalar el tema</string>
-  <string name="theme_install_error_message">Error al instalar <xliff:g id="theme">%1$s</xliff:g></string>
-  <!-- Theme reset notification -->
-  <string name="theme_reset_notification_title">Tema restablecido</string>
-  <string name="theme_reset_notification_message">Tema del sistema restablecido debido a múltiples cierres de la aplicación.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_accessThemeService">acceso al servicio de temas</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_accessThemeService">Permite que la aplicación acceda al servicio de temas. Nunca debería ser necesario para aplicaciones normales.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_readThemes">leer información del tema</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_readThemesDesc">Permite que la aplicación lea los temas instalados y determine cual es el que has aplicado.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_writeThemes">modificar los temas</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_writeThemesDesc">Permite que la aplicación añada nuevos temas y modifique el tema aplicado actualmente.</string>
   <!-- Performance manager permission title -->
   <string name="permlab_perfAccess">acceder al supervisor de rendimiento</string>
   <!-- Performance manager permission description -->
@@ -179,9 +167,6 @@
   <!-- LineageAudioService - observe session changes permission -->
   <string name="permlab_manage_audio_sessions">gestionar los cambios de la sesión de audio</string>
   <string name="permdesc_manage_audio_sessions">Permite a la aplicación enviar actualizaciones de la transmisión del audio.</string>
-  <!-- QuickSettings: Themes tile -->
-  <string name="qs_themes_label">Temas</string>
-  <string name="qs_themes_content_description">Personalizar tu tema</string>
   <!-- Privacy Guard -->
   <string name="privacy_guard_manager_title">Protección de la privacidad</string>
   <!-- Permissions used by remote preferences -->
diff --git a/lineage/res/res/values-et-rEE/strings.xml b/lineage/res/res/values-et-rEE/strings.xml
index e157ef1..a954536 100644
--- a/lineage/res/res/values-et-rEE/strings.xml
+++ b/lineage/res/res/values-et-rEE/strings.xml
@@ -67,8 +67,6 @@
   <string name="live_display_night">Öö</string>
   <!-- Third party keyguard permission label -->
   <!-- Third party keyguard permission description -->
-  <!-- Theme installation error notification -->
-  <!-- Theme reset notification -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
@@ -91,7 +89,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-eu-rES/strings.xml b/lineage/res/res/values-eu-rES/strings.xml
index 69dc26b..c7df8d6 100644
--- a/lineage/res/res/values-eu-rES/strings.xml
+++ b/lineage/res/res/values-eu-rES/strings.xml
@@ -119,24 +119,12 @@
   <string name="permlab_thirdPartyKeyguard">hirugarrengoen blokeo pantaila</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">Aplikazio bat blokeo pantaila ez seguru gisa erabiltzea ahalbidetzen du.</string>
-  <!-- Theme installation error notification -->
-  <string name="theme_install_error_title">Ezin izan da gaia instalatu</string>
-  <string name="theme_install_error_message">Ezin izan da <xliff:g id="theme">%1$s</xliff:g> instalatu</string>
-  <!-- Theme reset notification -->
-  <string name="theme_reset_notification_title">Gaia leheneratu da</string>
-  <string name="theme_reset_notification_message">Sistemaren gaia berrezarri da hainbat aplikazio kraskatu direlako.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_accessThemeService">gaien zerbitzurako sarbidea</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_accessThemeService">Gaien zerbitzura sartzea ahalbidetzen dio aplikazioari. Aplikazio arruntek ez dute hau behar.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_readThemes">zure gaiari buruzko informazioa irakurri</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_readThemesDesc">Zure gaiak irakurri eta ezarrita duzuna zein den jakitea ahalbidetzen dio aplikazioari.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_writeThemes">zure gaiak aldatu</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_writeThemesDesc">Gai berriak sartu eta ezarrita duzuna aldatzea ahalbidetzen dio aplikazioari.</string>
   <!-- Performance manager permission title -->
   <string name="permlab_perfAccess">errendimendu kudeatzailea atzitu</string>
   <!-- Performance manager permission description -->
@@ -179,9 +167,6 @@
   <!-- LineageAudioService - observe session changes permission -->
   <string name="permlab_manage_audio_sessions">audio saioen aldaketak kudeatu</string>
   <string name="permdesc_manage_audio_sessions">Audio jarioen eguneratzeak bidaltzea ahalbidetzen dio aplikazioari.</string>
-  <!-- QuickSettings: Themes tile -->
-  <string name="qs_themes_label">Gaiak</string>
-  <string name="qs_themes_content_description">Pertsonalizatu zure gaia</string>
   <!-- Privacy Guard -->
   <string name="privacy_guard_manager_title">Privacy Guard</string>
   <!-- Permissions used by remote preferences -->
diff --git a/lineage/res/res/values-fa/strings.xml b/lineage/res/res/values-fa/strings.xml
index 199198d..cb92910 100644
--- a/lineage/res/res/values-fa/strings.xml
+++ b/lineage/res/res/values-fa/strings.xml
@@ -83,8 +83,6 @@
   <string name="live_display_night">شب</string>
   <!-- Third party keyguard permission label -->
   <!-- Third party keyguard permission description -->
-  <!-- Theme installation error notification -->
-  <!-- Theme reset notification -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
@@ -107,7 +105,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-fi/strings.xml b/lineage/res/res/values-fi/strings.xml
index d4da317..c757119 100644
--- a/lineage/res/res/values-fi/strings.xml
+++ b/lineage/res/res/values-fi/strings.xml
@@ -119,24 +119,12 @@
   <string name="permlab_thirdPartyKeyguard">kolmannen osapuolen lukitusnäyttö</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">Sallii sovellusta käytettävän epäturvallisena lukitusnäyttönä.</string>
-  <!-- Theme installation error notification -->
-  <string name="theme_install_error_title">Teeman asennus epäonnistui</string>
-  <string name="theme_install_error_message">Teeman <xliff:g id="theme">%1$s</xliff:g> asennus epäonnistui</string>
-  <!-- Theme reset notification -->
-  <string name="theme_reset_notification_title">Teeman resetointi</string>
-  <string name="theme_reset_notification_message">Järjestelmän teema palautettu lukuisten sovellusvirheiden vuoksi.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_accessThemeService">pääsy teemapalveluun</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_accessThemeService">Sallii sovelluksen päästä teemapalveluun. Tavalliset sovellukset ei koskaan tarvitse tätä.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_readThemes">lue teeman tiedot</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_readThemesDesc">Sallii sovelluksen lukea teemojasi, ja tunnistaa käytössä olevan teeman.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_writeThemes">muokkaa teemoja</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_writeThemesDesc">Sallii sovelluksen asettaa uusia teemoja ja muokata käytössä olevaa teemaa.</string>
   <!-- Performance manager permission title -->
   <string name="permlab_perfAccess">pääse suorituskyvyn hallintaan</string>
   <!-- Performance manager permission description -->
@@ -179,9 +167,6 @@
   <!-- LineageAudioService - observe session changes permission -->
   <string name="permlab_manage_audio_sessions">hallitse ääni-istunnon muutoksia</string>
   <string name="permdesc_manage_audio_sessions">Sallii sovelluksen lähettää äänisyötteen päivityksiä.</string>
-  <!-- QuickSettings: Themes tile -->
-  <string name="qs_themes_label">Teemat</string>
-  <string name="qs_themes_content_description">Muokkaa teemaa</string>
   <!-- Privacy Guard -->
   <string name="privacy_guard_manager_title">Yksityisyyden suojaus</string>
   <!-- Permissions used by remote preferences -->
diff --git a/lineage/res/res/values-fil-rPH/strings.xml b/lineage/res/res/values-fil-rPH/strings.xml
index ec4d0c1..a2da064 100644
--- a/lineage/res/res/values-fil-rPH/strings.xml
+++ b/lineage/res/res/values-fil-rPH/strings.xml
@@ -40,8 +40,6 @@
   <!-- LiveDisplay strings -->
   <!-- Third party keyguard permission label -->
   <!-- Third party keyguard permission description -->
-  <!-- Theme installation error notification -->
-  <!-- Theme reset notification -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
@@ -64,7 +62,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-fr-rCA/strings.xml b/lineage/res/res/values-fr-rCA/strings.xml
index ec4d0c1..a2da064 100644
--- a/lineage/res/res/values-fr-rCA/strings.xml
+++ b/lineage/res/res/values-fr-rCA/strings.xml
@@ -40,8 +40,6 @@
   <!-- LiveDisplay strings -->
   <!-- Third party keyguard permission label -->
   <!-- Third party keyguard permission description -->
-  <!-- Theme installation error notification -->
-  <!-- Theme reset notification -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
@@ -64,7 +62,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-fr/strings.xml b/lineage/res/res/values-fr/strings.xml
index 2c9a3d9..1ac1d31 100644
--- a/lineage/res/res/values-fr/strings.xml
+++ b/lineage/res/res/values-fr/strings.xml
@@ -119,25 +119,12 @@
   <string name="permlab_thirdPartyKeyguard">écran de verrouillage alternatif</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">Permet à l\'application d\'être utilisée comme un écran de verrouillage non sécurisé.</string>
-  <!-- Theme installation error notification -->
-  <string name="theme_install_error_title">Impossible d\'installer le thème</string>
-  <string name="theme_install_error_message">L\'installation de <xliff:g id="theme">%1$s</xliff:g> a échoué</string>
-  <!-- Theme reset notification -->
-  <string name="theme_reset_notification_title">Réinitialisation du thème</string>
-  <string name="theme_reset_notification_message">Thème du système restauré en raison de multiples plantages de l\'application.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_accessThemeService">accéder au service de thèmes</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_accessThemeService">Permet à l\'application d\'accéder au service de thèmes. Une application normale ne devrait pas en avoir besoin.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_readThemes">lire les informations de votre thème</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_readThemesDesc">Permet à une application de lire vos thèmes et
-       de déterminer quel thème vous avez appliqué.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_writeThemes">modifier vos thèmes</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_writeThemesDesc">Permet à une application d\'installer de nouveaux thèmes et de modifier le thème que vous avez appliqué.</string>
   <!-- Performance manager permission title -->
   <string name="permlab_perfAccess">accéder au gestionnaire de performance</string>
   <!-- Performance manager permission description -->
@@ -180,9 +167,6 @@
   <!-- LineageAudioService - observe session changes permission -->
   <string name="permlab_manage_audio_sessions">gérer les changements de session audio</string>
   <string name="permdesc_manage_audio_sessions">Autorise une application à envoyer des mises à jour du flux audio.</string>
-  <!-- QuickSettings: Themes tile -->
-  <string name="qs_themes_label">Thèmes</string>
-  <string name="qs_themes_content_description">Personnaliser votre thème</string>
   <!-- Privacy Guard -->
   <string name="privacy_guard_manager_title">Protection des données</string>
   <!-- Permissions used by remote preferences -->
diff --git a/lineage/res/res/values-frp-rIT/strings.xml b/lineage/res/res/values-frp-rIT/strings.xml
index ec4d0c1..a2da064 100644
--- a/lineage/res/res/values-frp-rIT/strings.xml
+++ b/lineage/res/res/values-frp-rIT/strings.xml
@@ -40,8 +40,6 @@
   <!-- LiveDisplay strings -->
   <!-- Third party keyguard permission label -->
   <!-- Third party keyguard permission description -->
-  <!-- Theme installation error notification -->
-  <!-- Theme reset notification -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
@@ -64,7 +62,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-fy-rNL/strings.xml b/lineage/res/res/values-fy-rNL/strings.xml
index ec4d0c1..a2da064 100644
--- a/lineage/res/res/values-fy-rNL/strings.xml
+++ b/lineage/res/res/values-fy-rNL/strings.xml
@@ -40,8 +40,6 @@
   <!-- LiveDisplay strings -->
   <!-- Third party keyguard permission label -->
   <!-- Third party keyguard permission description -->
-  <!-- Theme installation error notification -->
-  <!-- Theme reset notification -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
@@ -64,7 +62,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-ga-rIE/strings.xml b/lineage/res/res/values-ga-rIE/strings.xml
index ec4d0c1..a2da064 100644
--- a/lineage/res/res/values-ga-rIE/strings.xml
+++ b/lineage/res/res/values-ga-rIE/strings.xml
@@ -40,8 +40,6 @@
   <!-- LiveDisplay strings -->
   <!-- Third party keyguard permission label -->
   <!-- Third party keyguard permission description -->
-  <!-- Theme installation error notification -->
-  <!-- Theme reset notification -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
@@ -64,7 +62,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-gd-rGB/strings.xml b/lineage/res/res/values-gd-rGB/strings.xml
index ec4d0c1..a2da064 100644
--- a/lineage/res/res/values-gd-rGB/strings.xml
+++ b/lineage/res/res/values-gd-rGB/strings.xml
@@ -40,8 +40,6 @@
   <!-- LiveDisplay strings -->
   <!-- Third party keyguard permission label -->
   <!-- Third party keyguard permission description -->
-  <!-- Theme installation error notification -->
-  <!-- Theme reset notification -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
@@ -64,7 +62,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-gl-rES/strings.xml b/lineage/res/res/values-gl-rES/strings.xml
index 6d0f29d..1d4cac4 100644
--- a/lineage/res/res/values-gl-rES/strings.xml
+++ b/lineage/res/res/values-gl-rES/strings.xml
@@ -119,25 +119,12 @@
   <string name="permlab_thirdPartyKeyguard">bloqueo de pantalla de terceiros</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">Permitir que unha app sexa usada como bloqueo de pantalla inseguro.</string>
-  <!-- Theme installation error notification -->
-  <string name="theme_install_error_title">Non se puido instalar o tema</string>
-  <string name="theme_install_error_message">Non se puido instalar <xliff:g id="theme">%1$s</xliff:g></string>
-  <!-- Theme reset notification -->
-  <string name="theme_reset_notification_title">Restabelecer o tema</string>
-  <string name="theme_reset_notification_message">Restableceuse o tema debido a varios fallos da aplicación.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_accessThemeService">acceso ao servizo de temas</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_accessThemeService">Permitir que unha aplicación acceda aos temas. Non debería ser necesario para aplicacións normais.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_readThemes">ler a información do seu tema</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_readThemesDesc">Permitir que a aplicación lea os seus temas e 
-       determine cal deles está en uso.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_writeThemes">modificar os seus temas</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_writeThemesDesc">Permitir que a aplicación insira novos temas e modifique o que estea en uso.</string>
   <!-- Performance manager permission title -->
   <string name="permlab_perfAccess">acceso ao xestor de rendemento</string>
   <!-- Performance manager permission description -->
@@ -180,9 +167,6 @@
   <!-- LineageAudioService - observe session changes permission -->
   <string name="permlab_manage_audio_sessions">xestionar os trocos da sesión de son</string>
   <string name="permdesc_manage_audio_sessions">Permite a unha aplicación enviar actualizacións de fluxo de son.</string>
-  <!-- QuickSettings: Themes tile -->
-  <string name="qs_themes_label">Temas</string>
-  <string name="qs_themes_content_description">Personalice o seu tema</string>
   <!-- Privacy Guard -->
   <string name="privacy_guard_manager_title">Proteción da Privacidade</string>
   <!-- Permissions used by remote preferences -->
diff --git a/lineage/res/res/values-gu-rIN/strings.xml b/lineage/res/res/values-gu-rIN/strings.xml
index 3ef3fae..0e8d044 100644
--- a/lineage/res/res/values-gu-rIN/strings.xml
+++ b/lineage/res/res/values-gu-rIN/strings.xml
@@ -104,24 +104,12 @@
   <string name="permlab_thirdPartyKeyguard">ત્રાહિત પક્ષ લૉક સ્ક્રીન</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">ઍપને અસુરક્ષિત લૉક સ્ક્રીન તરીકે ઉપયોગ કરવાની છૂટ આપે છે.</string>
-  <!-- Theme installation error notification -->
-  <string name="theme_install_error_title">થીમ ઇન્સ્ટૉલ કરવામાં નિષ્ફળતા</string>
-  <string name="theme_install_error_message"><xliff:g id="theme">%1$s</xliff:g>ઇન્સ્ટૉલ કરવામાં નિષ્ફળતા</string>
-  <!-- Theme reset notification -->
-  <string name="theme_reset_notification_title">થીમ રિસેટ</string>
-  <string name="theme_reset_notification_message">સિસ્ટમ થીમ ઘણી એપ્લિકેશન ક્રેશ થવાને કારણે પુનઃસ્થાપિત થઈ.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_accessThemeService">થીમ સેવા ઍક્સેસ કરો</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_accessThemeService">ઍપને થીમ સેવા ઍક્સેસ કરવાની છૂટ આપે છે. સામાન્ય એપ્સ માટે ક્યારેય જરૂર પડવી જોઈએ નહી.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_readThemes">તમારી થીમ માહિતી વાંચો</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_readThemesDesc">ઍપને તમારી થીમ વાંચવાની છૂટ આપે છે અને નિર્ધારિત કરે છે કે તમે કઈ થીમ લાગુ કરી છે.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_writeThemes">તમારી થીમમાં ફેરફાર કરો</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_writeThemesDesc">ઍપને નવી થીમ દાખલ કરવાની છૂટ આપે છે અને તમે લાગુ કરેલ થીમમાં ફેરફાર કરવાની છૂટ આપે છે.</string>
   <!-- Performance manager permission title -->
   <string name="permlab_perfAccess">ઍક્સેસ કામગીરી મેનેજર</string>
   <!-- Performance manager permission description -->
@@ -140,7 +128,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-hi/strings.xml b/lineage/res/res/values-hi/strings.xml
index ec4d0c1..a2da064 100644
--- a/lineage/res/res/values-hi/strings.xml
+++ b/lineage/res/res/values-hi/strings.xml
@@ -40,8 +40,6 @@
   <!-- LiveDisplay strings -->
   <!-- Third party keyguard permission label -->
   <!-- Third party keyguard permission description -->
-  <!-- Theme installation error notification -->
-  <!-- Theme reset notification -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
@@ -64,7 +62,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-hr/strings.xml b/lineage/res/res/values-hr/strings.xml
index 6206a04..69e8007 100644
--- a/lineage/res/res/values-hr/strings.xml
+++ b/lineage/res/res/values-hr/strings.xml
@@ -118,24 +118,12 @@
   <string name="permlab_thirdPartyKeyguard">zaključavanje zaslona treće strane</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">Dopušta aplikaciji da se koristi kao nesiguran zaslon zaključavanja.</string>
-  <!-- Theme installation error notification -->
-  <string name="theme_install_error_title">Instalacija teme nije uspjela</string>
-  <string name="theme_install_error_message">Nije uspjela instalacija teme <xliff:g id="theme">%1$s</xliff:g></string>
-  <!-- Theme reset notification -->
-  <string name="theme_reset_notification_title">Vraćanje početne teme</string>
-  <string name="theme_reset_notification_message">Tema sustava je vraćana na početnu zbog višestrukih rušenja aplikacija.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_accessThemeService">pristupiti servisu tema</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_accessThemeService">Dopušta aplikaciji pristup servisu tema. Za obične aplikacije nikada ne bi trebao biti potreban.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_readThemes">pročitati informacije vaše teme</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_readThemesDesc">Dopušta aplikaciji čitanje vaših tema i određivanje teme koju koristite.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_writeThemes">urediti vaše teme</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_writeThemesDesc">Dopušta aplikaciji dodavati nove teme i urediti temu koju ste primjenili.</string>
   <!-- Performance manager permission title -->
   <string name="permlab_perfAccess">pristup upravitelju performansi</string>
   <!-- Performance manager permission description -->
@@ -178,9 +166,6 @@
   <!-- LineageAudioService - observe session changes permission -->
   <string name="permlab_manage_audio_sessions">upravljaj promjenama zvučnih sesija</string>
   <string name="permdesc_manage_audio_sessions">Omogućuje aplikaciji slanje ažuriranja audio streama.</string>
-  <!-- QuickSettings: Themes tile -->
-  <string name="qs_themes_label">Teme</string>
-  <string name="qs_themes_content_description">Prilagodite svoju temu</string>
   <!-- Privacy Guard -->
   <string name="privacy_guard_manager_title">Nadzor privatnosti</string>
   <!-- Permissions used by remote preferences -->
diff --git a/lineage/res/res/values-hu/strings.xml b/lineage/res/res/values-hu/strings.xml
index 3af60a1..6c918ba 100644
--- a/lineage/res/res/values-hu/strings.xml
+++ b/lineage/res/res/values-hu/strings.xml
@@ -119,25 +119,12 @@
   <string name="permlab_thirdPartyKeyguard">harmadik fél zárképernyő</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">Lehetővé teszi az alkalmazás számára, hogy egy nem biztonságos zárképernyőként használja.</string>
-  <!-- Theme installation error notification -->
-  <string name="theme_install_error_title">Téma telepítése sikertelen</string>
-  <string name="theme_install_error_message"><xliff:g id="theme">%1$s</xliff:g> telepítése sikertelen</string>
-  <!-- Theme reset notification -->
-  <string name="theme_reset_notification_title">Téma viszaállítása</string>
-  <string name="theme_reset_notification_message">Több alkalmazás összeomlása miatt a rendszertéma visszaállításra került.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_accessThemeService">hozzáférés a témaszolgáltatáshoz</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_accessThemeService">Lehetővé teszi az alkalmazás számára, hogy hozzáférjen a témaszolgáltatáshoz. Általános alkalmazásoknak soha nem kell ilyen engedély.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_readThemes">téma információjának megtekintése</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_readThemesDesc">Lehetővé teszi az alkalmazás számára,
-       hogy megtekintse a témákat és megállapítsa, melyik téma aktív.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_writeThemes">témák módosítása</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_writeThemesDesc">Lehetővé teszi az alkalmazás számára, hogy új témákat hozzon létre és módosítsa a jelenleg aktív témát.</string>
   <!-- Performance manager permission title -->
   <string name="permlab_perfAccess">hozzáférés a teljesítmény kezelőhöz</string>
   <!-- Performance manager permission description -->
@@ -180,9 +167,6 @@
   <!-- LineageAudioService - observe session changes permission -->
   <string name="permlab_manage_audio_sessions">audió munkamenet változások kezelése</string>
   <string name="permdesc_manage_audio_sessions">Lehetővé teszi az alkalmazás számára, hogy audio stream frissítéseket küldjön.</string>
-  <!-- QuickSettings: Themes tile -->
-  <string name="qs_themes_label">Témák</string>
-  <string name="qs_themes_content_description">Téma testreszabása</string>
   <!-- Privacy Guard -->
   <string name="privacy_guard_manager_title">Adatvédelmi beállítások</string>
   <!-- Permissions used by remote preferences -->
diff --git a/lineage/res/res/values-hy-rAM/strings.xml b/lineage/res/res/values-hy-rAM/strings.xml
index ec4d0c1..a2da064 100644
--- a/lineage/res/res/values-hy-rAM/strings.xml
+++ b/lineage/res/res/values-hy-rAM/strings.xml
@@ -40,8 +40,6 @@
   <!-- LiveDisplay strings -->
   <!-- Third party keyguard permission label -->
   <!-- Third party keyguard permission description -->
-  <!-- Theme installation error notification -->
-  <!-- Theme reset notification -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
@@ -64,7 +62,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-in/strings.xml b/lineage/res/res/values-in/strings.xml
index ac0c404..ee7314d 100644
--- a/lineage/res/res/values-in/strings.xml
+++ b/lineage/res/res/values-in/strings.xml
@@ -117,24 +117,12 @@
   <string name="permlab_thirdPartyKeyguard">layar kunci pihak ketiga</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">Mengizinkan sebuah aplikasi untuk digunakan sebagai layar kunci yang tidak aman.</string>
-  <!-- Theme installation error notification -->
-  <string name="theme_install_error_title">Gagal menginstal tema</string>
-  <string name="theme_install_error_message"><xliff:g id="theme">%1$s</xliff:g> gagal diinstal</string>
-  <!-- Theme reset notification -->
-  <string name="theme_reset_notification_title">Memasang ulang Tema</string>
-  <string name="theme_reset_notification_message">Tema sistem dikembalikan karena beberapa aplikasi mogok (crash).</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_accessThemeService">akses layanan tema</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_accessThemeService">Izinkan sebuah aplikasi untuk mengakses layanan tema. Tidak dibutuhkan untuk aplikasi biasa.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_readThemes">baca info tema Anda</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_readThemesDesc">Izinkan aplikasi untuk membaca tema dan memilih tema yang telah Anda terapkan.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_writeThemes">mengubah tema Anda</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_writeThemesDesc">Izinkan aplikasi untuk memasukkan tema-tema baru dan tema yang telah Anda terapkan.</string>
   <!-- Performance manager permission title -->
   <string name="permlab_perfAccess">akses pengelola kinerja</string>
   <!-- Performance manager permission description -->
@@ -177,9 +165,6 @@
   <!-- LineageAudioService - observe session changes permission -->
   <string name="permlab_manage_audio_sessions">kelola perubahan sesi audio</string>
   <string name="permdesc_manage_audio_sessions">Memungkinkan aplikasi untuk mengirim pembaruan stream audio.</string>
-  <!-- QuickSettings: Themes tile -->
-  <string name="qs_themes_label">Tema</string>
-  <string name="qs_themes_content_description">Sesuaikan tema Anda</string>
   <!-- Privacy Guard -->
   <string name="privacy_guard_manager_title">Penjaga Privasi</string>
   <!-- Permissions used by remote preferences -->
diff --git a/lineage/res/res/values-is-rIS/strings.xml b/lineage/res/res/values-is-rIS/strings.xml
index ec4d0c1..a2da064 100644
--- a/lineage/res/res/values-is-rIS/strings.xml
+++ b/lineage/res/res/values-is-rIS/strings.xml
@@ -40,8 +40,6 @@
   <!-- LiveDisplay strings -->
   <!-- Third party keyguard permission label -->
   <!-- Third party keyguard permission description -->
-  <!-- Theme installation error notification -->
-  <!-- Theme reset notification -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
@@ -64,7 +62,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-it/strings.xml b/lineage/res/res/values-it/strings.xml
index 0e51085..3332555 100644
--- a/lineage/res/res/values-it/strings.xml
+++ b/lineage/res/res/values-it/strings.xml
@@ -119,24 +119,12 @@
   <string name="permlab_thirdPartyKeyguard">blocco schermo di terzi</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">Consenti ad un\'app di essere usata come blocco schermo non sicuro.</string>
-  <!-- Theme installation error notification -->
-  <string name="theme_install_error_title">Installazione tema fallita</string>
-  <string name="theme_install_error_message">Installazione <xliff:g id="theme">%1$s</xliff:g> fallita</string>
-  <!-- Theme reset notification -->
-  <string name="theme_reset_notification_title">Ripristino tema</string>
-  <string name="theme_reset_notification_message">Tema di sistema ripristinato a causa di molteplici crash.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_accessThemeService">accede al servizio tema</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_accessThemeService">Consente all\'app di accedere al servizio temi. Non dovrebbe mai essere necessario per le app normali.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_readThemes">leggi informazioni tema</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_readThemesDesc">Consenti all\'app di leggere i tuoi temi e determinare quale tema hai applicato.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_writeThemes">modifica i tuoi temi</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_writeThemesDesc">Consente all\'app di inserire nuovi temi e modificare il tema hai applicato.</string>
   <!-- Performance manager permission title -->
   <string name="permlab_perfAccess">accesso gestione performance</string>
   <!-- Performance manager permission description -->
@@ -179,9 +167,6 @@
   <!-- LineageAudioService - observe session changes permission -->
   <string name="permlab_manage_audio_sessions">gestisci cambiamenti di sessioni audio</string>
   <string name="permdesc_manage_audio_sessions">Consenti ad un\'app di inviare aggiornamenti del flusso audio.</string>
-  <!-- QuickSettings: Themes tile -->
-  <string name="qs_themes_label">Temi</string>
-  <string name="qs_themes_content_description">Personalizza il tuo tema</string>
   <!-- Privacy Guard -->
   <string name="privacy_guard_manager_title">Privacy Guard</string>
   <!-- Permissions used by remote preferences -->
diff --git a/lineage/res/res/values-iw/strings.xml b/lineage/res/res/values-iw/strings.xml
index 54cbcc7..573b134 100644
--- a/lineage/res/res/values-iw/strings.xml
+++ b/lineage/res/res/values-iw/strings.xml
@@ -119,24 +119,12 @@
   <string name="permlab_thirdPartyKeyguard">מסך נעילה של צד שלישי</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">מאפשר ליישום לשמש כמסך נעילה לא מאובטח.</string>
-  <!-- Theme installation error notification -->
-  <string name="theme_install_error_title">התקנת ערכת העיצוב נכשלה</string>
-  <string name="theme_install_error_message">התקנת <xliff:g id="theme">%1$s </xliff:g> נכשלה</string>
-  <!-- Theme reset notification -->
-  <string name="theme_reset_notification_title">איפוס ערכת עיצוב</string>
-  <string name="theme_reset_notification_message">ערכת העיצוב של המערכת שוחזרה עקב קריסות יישומים מרובות.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_accessThemeService">גש לשירות ערכות העיצוב</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_accessThemeService">מאפשר ליישום לגשת לשירות ערכות העיצוב. לא אמור להידרש ליישומים רגילים לעולם.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_readThemes">קרא את פרטי ערכת העיצוב שלך</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_readThemesDesc">מאפשר ליישום לקרוא את ערכות העיצוב הקיימות, ולקבוע איזו ערכה החלת.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_writeThemes">שנה את ערכות העיצוב שלך</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_writeThemesDesc">מאפשר ליישום להוסיף ערכות עיצוב חדשות ולשנות את הערכה המוחלת.</string>
   <!-- Performance manager permission title -->
   <string name="permlab_perfAccess">גש למנהל הביצועים</string>
   <!-- Performance manager permission description -->
@@ -179,9 +167,6 @@
   <!-- LineageAudioService - observe session changes permission -->
   <string name="permlab_manage_audio_sessions">נהל עדכוני פעולות במערכת השמע</string>
   <string name="permdesc_manage_audio_sessions">מאפשר ליישום לשלוח עדכוני זרימת שמע.</string>
-  <!-- QuickSettings: Themes tile -->
-  <string name="qs_themes_label">ערכות עיצוב</string>
-  <string name="qs_themes_content_description">התאם אישית את ערכת הנושא שלך</string>
   <!-- Privacy Guard -->
   <string name="privacy_guard_manager_title">שומר הפרטיות</string>
   <!-- Permissions used by remote preferences -->
diff --git a/lineage/res/res/values-ja/strings.xml b/lineage/res/res/values-ja/strings.xml
index 9d60142..7f15d85 100644
--- a/lineage/res/res/values-ja/strings.xml
+++ b/lineage/res/res/values-ja/strings.xml
@@ -119,24 +119,12 @@
   <string name="permlab_thirdPartyKeyguard">サードパーティのロック画面</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">パスワードのないロック画面として使用されることをアプリに許可します。</string>
-  <!-- Theme installation error notification -->
-  <string name="theme_install_error_title">テーマをインストールできませんでした</string>
-  <string name="theme_install_error_message"><xliff:g id="theme">%1$s</xliff:g>をインストールできませんでした</string>
-  <!-- Theme reset notification -->
-  <string name="theme_reset_notification_title">テーマのリセット</string>
-  <string name="theme_reset_notification_message">複数のアプリがクラッシュしたため、システムのテーマが復元されました。</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_accessThemeService">テーマサービスへのアクセス</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_accessThemeService">テーマサービスへのアクセスをアプリに許可します。通常のアプリで必要とされることはありません。</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_readThemes">テーマ情報の読み取り</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_readThemesDesc">テーマの読み取りや適用しているテーマの特定をアプリに許可します。</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_writeThemes">テーマの変更</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_writeThemesDesc">新しいテーマの挿入や適用しているテーマの変更をアプリに許可します。</string>
   <!-- Performance manager permission title -->
   <string name="permlab_perfAccess">パフォーマンスマネージャーへのアクセス</string>
   <!-- Performance manager permission description -->
@@ -179,9 +167,6 @@
   <!-- LineageAudioService - observe session changes permission -->
   <string name="permlab_manage_audio_sessions">オーディオセッションの変更の管理</string>
   <string name="permdesc_manage_audio_sessions">オーディオストリームの更新の送信をアプリに許可します。</string>
-  <!-- QuickSettings: Themes tile -->
-  <string name="qs_themes_label">テーマ</string>
-  <string name="qs_themes_content_description">テーマをカスタマイズする</string>
   <!-- Privacy Guard -->
   <string name="privacy_guard_manager_title">プライバシーガード</string>
   <!-- Permissions used by remote preferences -->
diff --git a/lineage/res/res/values-ka-rGE/strings.xml b/lineage/res/res/values-ka-rGE/strings.xml
index ec4d0c1..a2da064 100644
--- a/lineage/res/res/values-ka-rGE/strings.xml
+++ b/lineage/res/res/values-ka-rGE/strings.xml
@@ -40,8 +40,6 @@
   <!-- LiveDisplay strings -->
   <!-- Third party keyguard permission label -->
   <!-- Third party keyguard permission description -->
-  <!-- Theme installation error notification -->
-  <!-- Theme reset notification -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
@@ -64,7 +62,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-kk-rKZ/strings.xml b/lineage/res/res/values-kk-rKZ/strings.xml
index ec4d0c1..a2da064 100644
--- a/lineage/res/res/values-kk-rKZ/strings.xml
+++ b/lineage/res/res/values-kk-rKZ/strings.xml
@@ -40,8 +40,6 @@
   <!-- LiveDisplay strings -->
   <!-- Third party keyguard permission label -->
   <!-- Third party keyguard permission description -->
-  <!-- Theme installation error notification -->
-  <!-- Theme reset notification -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
@@ -64,7 +62,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-km-rKH/strings.xml b/lineage/res/res/values-km-rKH/strings.xml
index ec4d0c1..a2da064 100644
--- a/lineage/res/res/values-km-rKH/strings.xml
+++ b/lineage/res/res/values-km-rKH/strings.xml
@@ -40,8 +40,6 @@
   <!-- LiveDisplay strings -->
   <!-- Third party keyguard permission label -->
   <!-- Third party keyguard permission description -->
-  <!-- Theme installation error notification -->
-  <!-- Theme reset notification -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
@@ -64,7 +62,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-kn-rIN/strings.xml b/lineage/res/res/values-kn-rIN/strings.xml
index ddcbda8..c961817 100644
--- a/lineage/res/res/values-kn-rIN/strings.xml
+++ b/lineage/res/res/values-kn-rIN/strings.xml
@@ -104,8 +104,6 @@
   <string name="permlab_thirdPartyKeyguard">ಥರ್ಡ್‌ ಪಾರ್ಟಿ ಲಾಕ್ ಸ್ಕ್ರೀನ್‌</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">ಅಸುರಕ್ಷಿತ ಲಾಕ್‌ ಸ್ಕ್ರೀನ್‌ ಎಂಬುದಾಗಿ ಒಂದು ಅಪ್ಲಿ ಗಳನ್ನು ಬಳಸಲು ಒಂದು ಅಪ್ಲಿಕೇಶನ್‌ ಅನುವು ಮಾಡುತ್ತದೆ.</string>
-  <!-- Theme installation error notification -->
-  <!-- Theme reset notification -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
@@ -128,7 +126,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-ko/strings.xml b/lineage/res/res/values-ko/strings.xml
index d7be0bb..d3b51fc 100644
--- a/lineage/res/res/values-ko/strings.xml
+++ b/lineage/res/res/values-ko/strings.xml
@@ -119,24 +119,12 @@
   <string name="permlab_thirdPartyKeyguard">서드 파티 잠금 화면</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">앱을 안전하지 않은 잠금 화면으로 사용할 수 있도록 허용합니다.</string>
-  <!-- Theme installation error notification -->
-  <string name="theme_install_error_title">테마 설치 실패</string>
-  <string name="theme_install_error_message"><xliff:g id="theme">%1$s </xliff:g> 설치 실패</string>
-  <!-- Theme reset notification -->
-  <string name="theme_reset_notification_title">테마 초기화</string>
-  <string name="theme_reset_notification_message">잦은 앱 충돌로 인해 시스템 테마가 복원되었습니다.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_accessThemeService">테마 서비스에 액세스</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_accessThemeService">앱이 테마 서비스에 접근할 수 있도록 허용합니다. 일반 앱에서는 필요 없는 권한입니다.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_readThemes">테마 정보 읽기</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_readThemesDesc">앱이 설치된 테마들을 읽어들이고 현재 적용된 테마를 확인할 수 있도록 허용합니다.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_writeThemes">테마 정보 수정</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_writeThemesDesc">앱이 새로운 테마를 설치하거나 다른 테마를 적용할 수 있도록 허용합니다.</string>
   <!-- Performance manager permission title -->
   <string name="permlab_perfAccess">성능 관리자에 액세스</string>
   <!-- Performance manager permission description -->
@@ -179,9 +167,6 @@
   <!-- LineageAudioService - observe session changes permission -->
   <string name="permlab_manage_audio_sessions">오디오 세션 변경 관리</string>
   <string name="permdesc_manage_audio_sessions">앱을 통해 오디오 스트림 업데이트를 보내도록 합니다.</string>
-  <!-- QuickSettings: Themes tile -->
-  <string name="qs_themes_label">테마</string>
-  <string name="qs_themes_content_description">테마 사용자 정의</string>
   <!-- Privacy Guard -->
   <string name="privacy_guard_manager_title">프라이버시 가드</string>
   <!-- Permissions used by remote preferences -->
diff --git a/lineage/res/res/values-ku/strings.xml b/lineage/res/res/values-ku/strings.xml
index b2eb2db..3ad397c 100644
--- a/lineage/res/res/values-ku/strings.xml
+++ b/lineage/res/res/values-ku/strings.xml
@@ -43,8 +43,6 @@
   <!-- LiveDisplay strings -->
   <!-- Third party keyguard permission label -->
   <!-- Third party keyguard permission description -->
-  <!-- Theme installation error notification -->
-  <!-- Theme reset notification -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
@@ -67,7 +65,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-ky-rKG/strings.xml b/lineage/res/res/values-ky-rKG/strings.xml
index ec4d0c1..a2da064 100644
--- a/lineage/res/res/values-ky-rKG/strings.xml
+++ b/lineage/res/res/values-ky-rKG/strings.xml
@@ -40,8 +40,6 @@
   <!-- LiveDisplay strings -->
   <!-- Third party keyguard permission label -->
   <!-- Third party keyguard permission description -->
-  <!-- Theme installation error notification -->
-  <!-- Theme reset notification -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
@@ -64,7 +62,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-lb/strings.xml b/lineage/res/res/values-lb/strings.xml
index 16ce614..09753b4 100644
--- a/lineage/res/res/values-lb/strings.xml
+++ b/lineage/res/res/values-lb/strings.xml
@@ -71,23 +71,12 @@
   <string name="permlab_thirdPartyKeyguard">Spärschierm vun Drëttubidder</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">Erlaabt der App, als onséchere Spärschierm benotzt ze ginn.</string>
-  <!-- Theme installation error notification -->
-  <string name="theme_install_error_title">Design konnt net installéiert ginn</string>
-  <!-- Theme reset notification -->
-  <string name="theme_reset_notification_title">Design-Reset</string>
-  <string name="theme_reset_notification_message">De System-Design gouf wéinst App-Ofstierz recuperéiert.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_accessThemeService">op den Design-Service zougräifen</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_accessThemeService">Erlaabt der App den Accès op den Design-Service. Dat misst fir normal Appen ni gebraucht ginn.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_readThemes">Design-Info liesen</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_readThemesDesc">Erlaabt der App, d\'Designen auszeliesen an ze kucke wéi en Design applizéiert ass.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_writeThemes">aktiven Design änneren</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_writeThemesDesc">Erlaabt der App, nei Designen dobäizesetzen an den aktiven Design z\'änneren.</string>
   <!-- Performance manager permission title -->
   <!-- Performance manager permission description -->
   <!-- Access live lock screen manager service permission label -->
@@ -104,7 +93,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-lo-rLA/strings.xml b/lineage/res/res/values-lo-rLA/strings.xml
index ec4d0c1..a2da064 100644
--- a/lineage/res/res/values-lo-rLA/strings.xml
+++ b/lineage/res/res/values-lo-rLA/strings.xml
@@ -40,8 +40,6 @@
   <!-- LiveDisplay strings -->
   <!-- Third party keyguard permission label -->
   <!-- Third party keyguard permission description -->
-  <!-- Theme installation error notification -->
-  <!-- Theme reset notification -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
@@ -64,7 +62,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-lt/strings.xml b/lineage/res/res/values-lt/strings.xml
index 5e09446..5f3398d 100644
--- a/lineage/res/res/values-lt/strings.xml
+++ b/lineage/res/res/values-lt/strings.xml
@@ -83,8 +83,6 @@
   <string name="live_display_night">Naktis</string>
   <!-- Third party keyguard permission label -->
   <!-- Third party keyguard permission description -->
-  <!-- Theme installation error notification -->
-  <!-- Theme reset notification -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
@@ -107,7 +105,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-lv/strings.xml b/lineage/res/res/values-lv/strings.xml
index ec4d0c1..a2da064 100644
--- a/lineage/res/res/values-lv/strings.xml
+++ b/lineage/res/res/values-lv/strings.xml
@@ -40,8 +40,6 @@
   <!-- LiveDisplay strings -->
   <!-- Third party keyguard permission label -->
   <!-- Third party keyguard permission description -->
-  <!-- Theme installation error notification -->
-  <!-- Theme reset notification -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
@@ -64,7 +62,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-mk-rMK/strings.xml b/lineage/res/res/values-mk-rMK/strings.xml
index ec4d0c1..a2da064 100644
--- a/lineage/res/res/values-mk-rMK/strings.xml
+++ b/lineage/res/res/values-mk-rMK/strings.xml
@@ -40,8 +40,6 @@
   <!-- LiveDisplay strings -->
   <!-- Third party keyguard permission label -->
   <!-- Third party keyguard permission description -->
-  <!-- Theme installation error notification -->
-  <!-- Theme reset notification -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
@@ -64,7 +62,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-ml-rIN/strings.xml b/lineage/res/res/values-ml-rIN/strings.xml
index bdb1ea8..abed309 100644
--- a/lineage/res/res/values-ml-rIN/strings.xml
+++ b/lineage/res/res/values-ml-rIN/strings.xml
@@ -104,8 +104,6 @@
   <string name="permlab_thirdPartyKeyguard">മൂന്നാം കക്ഷി ലോക്ക് സ്ക്രീൻ</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">സുരക്ഷിതമല്ലാത്ത ലോക്ക് സ്ക്രീന്‍ ആയി ഉപയോഗിക്കുവാന്‍ ഒരു ആപ്ലിക്കേഷനെ അനുവദിക്കുന്നു.</string>
-  <!-- Theme installation error notification -->
-  <!-- Theme reset notification -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
@@ -128,7 +126,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-mn-rMN/strings.xml b/lineage/res/res/values-mn-rMN/strings.xml
index ec4d0c1..a2da064 100644
--- a/lineage/res/res/values-mn-rMN/strings.xml
+++ b/lineage/res/res/values-mn-rMN/strings.xml
@@ -40,8 +40,6 @@
   <!-- LiveDisplay strings -->
   <!-- Third party keyguard permission label -->
   <!-- Third party keyguard permission description -->
-  <!-- Theme installation error notification -->
-  <!-- Theme reset notification -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
@@ -64,7 +62,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-mr-rIN/strings.xml b/lineage/res/res/values-mr-rIN/strings.xml
index 2047667..73c01f3 100644
--- a/lineage/res/res/values-mr-rIN/strings.xml
+++ b/lineage/res/res/values-mr-rIN/strings.xml
@@ -104,24 +104,12 @@
   <string name="permlab_thirdPartyKeyguard">त्रयस्थ पक्ष लॉक स्क्रीन</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">अनुप्रयोगाला एक असुरक्षित लॉक स्क्रीन वापरू देते.</string>
-  <!-- Theme installation error notification -->
-  <string name="theme_install_error_title">थीम स्थापित करण्यात अपयशी</string>
-  <string name="theme_install_error_message"><xliff:g id="theme">%1$s</xliff:g> इंस्टॉल करण्यास अयशस्वी</string>
-  <!-- Theme reset notification -->
-  <string name="theme_reset_notification_title">थीम रीसेट</string>
-  <string name="theme_reset_notification_message">अनेक अनुप्रयोग क्रॅश झाल्यामुळे सिस्टिम थीम पुनर्स्थापित केली गेली.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_accessThemeService">थीम सेवा ऍक्सेस करा</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_accessThemeService">अॅप ला टॉर्च सेवा ऍक्सेस करण्याची परवानगी देते. सामान्य अॅपसाठी कधीही गरज भासू नये.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_readThemes">तुमची थीम माहिती वाचा</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_readThemesDesc">अॅप तुमच्या थीम्स वाचू आणि तुम्ही कोणती थीम लागू केली आहे ते ठरवू देते.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_writeThemes">तुमच्या थीम्स सुधारित करा</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_writeThemesDesc">अॅप नवीन थीम्स समाविष्ट करण्याची आणि तुम्ही कोणती थीम लागू केली आहे ती सुधारित करण्याची परवानगी देते.</string>
   <!-- Performance manager permission title -->
   <string name="permlab_perfAccess">प्रवेश कामगिरी व्यवस्थापक</string>
   <!-- Performance manager permission description -->
@@ -140,7 +128,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-ms-rMY/strings.xml b/lineage/res/res/values-ms-rMY/strings.xml
index ec4d0c1..a2da064 100644
--- a/lineage/res/res/values-ms-rMY/strings.xml
+++ b/lineage/res/res/values-ms-rMY/strings.xml
@@ -40,8 +40,6 @@
   <!-- LiveDisplay strings -->
   <!-- Third party keyguard permission label -->
   <!-- Third party keyguard permission description -->
-  <!-- Theme installation error notification -->
-  <!-- Theme reset notification -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
@@ -64,7 +62,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-my-rMM/strings.xml b/lineage/res/res/values-my-rMM/strings.xml
index ec4d0c1..a2da064 100644
--- a/lineage/res/res/values-my-rMM/strings.xml
+++ b/lineage/res/res/values-my-rMM/strings.xml
@@ -40,8 +40,6 @@
   <!-- LiveDisplay strings -->
   <!-- Third party keyguard permission label -->
   <!-- Third party keyguard permission description -->
-  <!-- Theme installation error notification -->
-  <!-- Theme reset notification -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
@@ -64,7 +62,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-nb/strings.xml b/lineage/res/res/values-nb/strings.xml
index fbfb41f..c6a6ccf 100644
--- a/lineage/res/res/values-nb/strings.xml
+++ b/lineage/res/res/values-nb/strings.xml
@@ -119,25 +119,12 @@
   <string name="permlab_thirdPartyKeyguard">tredjeparts låseskjerm</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">Tillater en app å brukes som en usikret låseskjerm.</string>
-  <!-- Theme installation error notification -->
-  <string name="theme_install_error_title">Kunne ikke installere tema</string>
-  <string name="theme_install_error_message"><xliff:g id="theme">%1$s </xliff:g> kunne ikke installere</string>
-  <!-- Theme reset notification -->
-  <string name="theme_reset_notification_title">Reset tema</string>
-  <string name="theme_reset_notification_message">System tema er gjenopprettet pga. flere app krasj.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_accessThemeService">få tilgang til tematjeneste</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_accessThemeService">Tillater en app å få tilgang til tematjenesten. Skal aldri være nødvendig for normale apper.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_readThemes">les temainformasjon</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_readThemesDesc">Tillater apper å lese av dine temaer og
-       hvilket tema du har valgt.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_writeThemes">endre temaer</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_writeThemesDesc">Lar apper installere nye temaer og endre de temaene du har valgt.</string>
   <!-- Performance manager permission title -->
   <string name="permlab_perfAccess">tilgang til ytelsesadministrereren</string>
   <!-- Performance manager permission description -->
@@ -180,9 +167,6 @@
   <!-- LineageAudioService - observe session changes permission -->
   <string name="permlab_manage_audio_sessions">administrer lyd økt endringer</string>
   <string name="permdesc_manage_audio_sessions">Gir en app tillatelse til å sende lydstrømning oppdateringer.</string>
-  <!-- QuickSettings: Themes tile -->
-  <string name="qs_themes_label">Temaer</string>
-  <string name="qs_themes_content_description">Tilpass temaet ditt</string>
   <!-- Privacy Guard -->
   <string name="privacy_guard_manager_title">Personvernvakt</string>
   <!-- Permissions used by remote preferences -->
diff --git a/lineage/res/res/values-ne-rNP/strings.xml b/lineage/res/res/values-ne-rNP/strings.xml
index ec4d0c1..a2da064 100644
--- a/lineage/res/res/values-ne-rNP/strings.xml
+++ b/lineage/res/res/values-ne-rNP/strings.xml
@@ -40,8 +40,6 @@
   <!-- LiveDisplay strings -->
   <!-- Third party keyguard permission label -->
   <!-- Third party keyguard permission description -->
-  <!-- Theme installation error notification -->
-  <!-- Theme reset notification -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
@@ -64,7 +62,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-nl/strings.xml b/lineage/res/res/values-nl/strings.xml
index 1a38a2c..3b64e4c 100644
--- a/lineage/res/res/values-nl/strings.xml
+++ b/lineage/res/res/values-nl/strings.xml
@@ -119,24 +119,12 @@
   <string name="permlab_thirdPartyKeyguard">vergrendelingsscherm van derden</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">Hiermee kan de app gebruikt worden als onbeveiligd vergrendelingsscherm.</string>
-  <!-- Theme installation error notification -->
-  <string name="theme_install_error_title">Thema installeren mislukt</string>
-  <string name="theme_install_error_message">Installatie van <xliff:g id="theme">%1$s</xliff:g> mislukt</string>
-  <!-- Theme reset notification -->
-  <string name="theme_reset_notification_title">Thema opnieuw instellen</string>
-  <string name="theme_reset_notification_message">Systeemthema hersteld als gevolg van meerdere gecrashte apps.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_accessThemeService">toegang tot themaservice</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_accessThemeService">Hiermee kan de app toegang krijgen tot de themaservice. Nooit vereist voor normale apps.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_readThemes">informatie over uw thema\'s lezen</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_readThemesDesc">Hiermee kan de app informatie lezen over uw thema\'s en bepalen welk thema u hebt toegepast.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_writeThemes">uw thema\'s aanpassen</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_writeThemesDesc">Hiermee kan de app nieuwe thema\'s invoegen en wijzigen welk thema u hebt toegepast.</string>
   <!-- Performance manager permission title -->
   <string name="permlab_perfAccess">Toegang tot prestatiebeheer</string>
   <!-- Performance manager permission description -->
@@ -179,9 +167,6 @@
   <!-- LineageAudioService - observe session changes permission -->
   <string name="permlab_manage_audio_sessions">wijzigingen in audiosessie beheren</string>
   <string name="permdesc_manage_audio_sessions">Hiermee kan de app audiostreams bijwerken.</string>
-  <!-- QuickSettings: Themes tile -->
-  <string name="qs_themes_label">Thema\'s</string>
-  <string name="qs_themes_content_description">Thema aanpassen</string>
   <!-- Privacy Guard -->
   <string name="privacy_guard_manager_title">Privacybescherming</string>
   <!-- Permissions used by remote preferences -->
diff --git a/lineage/res/res/values-oc-rFR/strings.xml b/lineage/res/res/values-oc-rFR/strings.xml
index ec4d0c1..a2da064 100644
--- a/lineage/res/res/values-oc-rFR/strings.xml
+++ b/lineage/res/res/values-oc-rFR/strings.xml
@@ -40,8 +40,6 @@
   <!-- LiveDisplay strings -->
   <!-- Third party keyguard permission label -->
   <!-- Third party keyguard permission description -->
-  <!-- Theme installation error notification -->
-  <!-- Theme reset notification -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
@@ -64,7 +62,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-or-rIN/strings.xml b/lineage/res/res/values-or-rIN/strings.xml
index 5dec0a1..af45adf 100644
--- a/lineage/res/res/values-or-rIN/strings.xml
+++ b/lineage/res/res/values-or-rIN/strings.xml
@@ -104,8 +104,6 @@
   <string name="permlab_thirdPartyKeyguard">ତୃତୀୟ ପଷ ଲକ୍‍ ସ୍କ୍ରିନ୍‍</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">ଅସୁରଷିତ ଲକ୍‍ ସ୍କ୍ରିନ୍‍ ଭାବେ ବ୍ୟବହୃତ ହେବା ପାଇଁ ଆପ୍ଲିକେସନ୍‍କୁ ଅ୍ନୁମତି ଦିଏ</string>
-  <!-- Theme installation error notification -->
-  <!-- Theme reset notification -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
@@ -128,7 +126,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-pa-rIN/strings.xml b/lineage/res/res/values-pa-rIN/strings.xml
index ec4d0c1..a2da064 100644
--- a/lineage/res/res/values-pa-rIN/strings.xml
+++ b/lineage/res/res/values-pa-rIN/strings.xml
@@ -40,8 +40,6 @@
   <!-- LiveDisplay strings -->
   <!-- Third party keyguard permission label -->
   <!-- Third party keyguard permission description -->
-  <!-- Theme installation error notification -->
-  <!-- Theme reset notification -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
@@ -64,7 +62,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-pl/strings.xml b/lineage/res/res/values-pl/strings.xml
index a168e15..a82b102 100644
--- a/lineage/res/res/values-pl/strings.xml
+++ b/lineage/res/res/values-pl/strings.xml
@@ -119,24 +119,12 @@
   <string name="permlab_thirdPartyKeyguard">blokada ekranu zewnętrznego dostawcy</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">Pozwala na wykorzystanie aplikacji jako niezabezpieczonego ekranu blokady.</string>
-  <!-- Theme installation error notification -->
-  <string name="theme_install_error_title">Nie udało się zainstalować motywu</string>
-  <string name="theme_install_error_message">Nie udało się zainstalować motywu: <xliff:g id="theme">%1$s </xliff:g></string>
-  <!-- Theme reset notification -->
-  <string name="theme_reset_notification_title">Reset motywu</string>
-  <string name="theme_reset_notification_message">Domyślny motyw przywrócony z powodu wielu awarii aplikacji.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_accessThemeService">dostęp do usługi motywów</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_accessThemeService">Umożliwia aplikacji dostęp do usługi motywów (nie powinno być wymagane przez standardowe aplikacje).</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_readThemes">odczytanie informacji o motywie</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_readThemesDesc">Zezwala aplikacji na dostęp do twoich motywów i decydowanie, który z nich ma zostać użyty.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_writeThemes">modyfikowanie Twoich motywów</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_writeThemesDesc">Zezwala aplikacji na dodawanie nowych motywów i modyfikowanie tego, którego używasz.</string>
   <!-- Performance manager permission title -->
   <string name="permlab_perfAccess">dostęp do menedżera wydajności</string>
   <!-- Performance manager permission description -->
@@ -179,9 +167,6 @@
   <!-- LineageAudioService - observe session changes permission -->
   <string name="permlab_manage_audio_sessions">zarządza zmianami sesji audio</string>
   <string name="permdesc_manage_audio_sessions">Pozwala aplikacji na wysyłanie aktualizacji strumienia audio.</string>
-  <!-- QuickSettings: Themes tile -->
-  <string name="qs_themes_label">Motywy</string>
-  <string name="qs_themes_content_description">Dostosuj swój motyw</string>
   <!-- Privacy Guard -->
   <string name="privacy_guard_manager_title">Ochrona prywatności</string>
   <!-- Permissions used by remote preferences -->
diff --git a/lineage/res/res/values-pt-rBR/strings.xml b/lineage/res/res/values-pt-rBR/strings.xml
index f332ef1..4372f09 100644
--- a/lineage/res/res/values-pt-rBR/strings.xml
+++ b/lineage/res/res/values-pt-rBR/strings.xml
@@ -119,25 +119,12 @@
   <string name="permlab_thirdPartyKeyguard">tela de bloqueio de terceiros</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">Permite que um aplicativo para ser usado como uma tela de bloqueio insegura.</string>
-  <!-- Theme installation error notification -->
-  <string name="theme_install_error_title">Falha ao instalar o tema</string>
-  <string name="theme_install_error_message">Falha ao instalar <xliff:g id="theme">%1$s</xliff:g></string>
-  <!-- Theme reset notification -->
-  <string name="theme_reset_notification_title">Redefinir tema</string>
-  <string name="theme_reset_notification_message">O tema do sistema foi restaurado devido a erros nos aplicativos.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_accessThemeService">acessar o serviço de temas</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_accessThemeService">Permite que um aplicativo acesse o serviço de temas. Nunca deve ser necessário para aplicativos normais.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_readThemes">ler informações do tema</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_readThemesDesc">Permite ao aplicativo ler os seus temas e
-       determinar qual o tema que está aplicado.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_writeThemes">modificar seus temas</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_writeThemesDesc">Permite ao aplicativo inserir novos temas e modificar o tema que está aplicado.</string>
   <!-- Performance manager permission title -->
   <string name="permlab_perfAccess">acessar o gerenciador de desempenho</string>
   <!-- Performance manager permission description -->
@@ -180,9 +167,6 @@
   <!-- LineageAudioService - observe session changes permission -->
   <string name="permlab_manage_audio_sessions">gerenciar as alterações da sessão de áudio</string>
   <string name="permdesc_manage_audio_sessions">Permite que um app envie atualizações de fluxo de áudio.</string>
-  <!-- QuickSettings: Themes tile -->
-  <string name="qs_themes_label">Temas</string>
-  <string name="qs_themes_content_description">Personalizar os seus temas</string>
   <!-- Privacy Guard -->
   <string name="privacy_guard_manager_title">Proteção à privacidade</string>
   <!-- Permissions used by remote preferences -->
diff --git a/lineage/res/res/values-pt-rPT/strings.xml b/lineage/res/res/values-pt-rPT/strings.xml
index b4770ab..7ee7016 100644
--- a/lineage/res/res/values-pt-rPT/strings.xml
+++ b/lineage/res/res/values-pt-rPT/strings.xml
@@ -119,25 +119,12 @@
   <string name="permlab_thirdPartyKeyguard">ecrã de bloqueio de terceiros</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">Permite que uma aplicação seja utilizada como ecrã de bloqueio inseguro.</string>
-  <!-- Theme installation error notification -->
-  <string name="theme_install_error_title">Falha ao instalar o tema</string>
-  <string name="theme_install_error_message">Falha ao instalar <xliff:g id="theme">%1$s</xliff:g></string>
-  <!-- Theme reset notification -->
-  <string name="theme_reset_notification_title">Repor tema</string>
-  <string name="theme_reset_notification_message">O tema do sistema foi restaurado devido a vários erros nas aplicações.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_accessThemeService">aceder ao serviço de temas</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_accessThemeService">Permite que uma aplicação aceda ao serviço de temas. Nunca deverá ser necessário para aplicações normais.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_readThemes">ler a informação do seu tema</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_readThemesDesc">Permite que a aplicação leia os seus temas e
-       determine qual o tema que tem aplicado.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_writeThemes">modificar os seus temas</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_writeThemesDesc">Permite que a aplicação insira novos temas e modifique o tema que tem aplicado.</string>
   <!-- Performance manager permission title -->
   <string name="permlab_perfAccess">aceder ao gestor de desempenho</string>
   <!-- Performance manager permission description -->
@@ -180,9 +167,6 @@
   <!-- LineageAudioService - observe session changes permission -->
   <string name="permlab_manage_audio_sessions">gerir sessões de alterações de som</string>
   <string name="permdesc_manage_audio_sessions">Permite que uma aplicação envie atualizações de fluxo de áudio.</string>
-  <!-- QuickSettings: Themes tile -->
-  <string name="qs_themes_label">Temas</string>
-  <string name="qs_themes_content_description">Personalize o seu tema</string>
   <!-- Privacy Guard -->
   <string name="privacy_guard_manager_title">Proteção da Privacidade</string>
   <!-- Permissions used by remote preferences -->
diff --git a/lineage/res/res/values-rm/strings.xml b/lineage/res/res/values-rm/strings.xml
index ec4d0c1..a2da064 100644
--- a/lineage/res/res/values-rm/strings.xml
+++ b/lineage/res/res/values-rm/strings.xml
@@ -40,8 +40,6 @@
   <!-- LiveDisplay strings -->
   <!-- Third party keyguard permission label -->
   <!-- Third party keyguard permission description -->
-  <!-- Theme installation error notification -->
-  <!-- Theme reset notification -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
@@ -64,7 +62,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-ro/strings.xml b/lineage/res/res/values-ro/strings.xml
index 34c9240..d8f17b2 100644
--- a/lineage/res/res/values-ro/strings.xml
+++ b/lineage/res/res/values-ro/strings.xml
@@ -119,25 +119,12 @@
   <string name="permlab_thirdPartyKeyguard">ecran de blocare terț</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">Permite unei aplicații să fie utilizată ca ecran de blocare nesigur.</string>
-  <!-- Theme installation error notification -->
-  <string name="theme_install_error_title">Instalarea temei a eșuat</string>
-  <string name="theme_install_error_message"><xliff:g id="theme">%1$s</xliff:g> nu s-a instalat</string>
-  <!-- Theme reset notification -->
-  <string name="theme_reset_notification_title">Resetare temă</string>
-  <string name="theme_reset_notification_message">Tema de sistem a fost restaurată datorită unor multiple crash-uri.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_accessThemeService">accesare serviciul pentru teme</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_accessThemeService">Permite unei aplicații să acceseze serviciul pentru teme. Aplicațiile normale nu ar trebui să aibă nevoie de aceasta.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_readThemes">citiți informațiile temei dvs.</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_readThemesDesc">Permite aplicației să citească temele dumneavoastră și
-       să determine pe care ați aplicat-o.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_writeThemes">modifică teme</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_writeThemesDesc">Permite aplicației să adauge teme noi și să le modifice pe cele aplicate.</string>
   <!-- Performance manager permission title -->
   <string name="permlab_perfAccess">acces la managerul de performanță</string>
   <!-- Performance manager permission description -->
@@ -180,9 +167,6 @@
   <!-- LineageAudioService - observe session changes permission -->
   <string name="permlab_manage_audio_sessions">gestionează schimbările de sesiune audio</string>
   <string name="permdesc_manage_audio_sessions">Permite unei aplicații să trimită actualizări de flux audio.</string>
-  <!-- QuickSettings: Themes tile -->
-  <string name="qs_themes_label">Teme</string>
-  <string name="qs_themes_content_description">Personalizați tema</string>
   <!-- Privacy Guard -->
   <string name="privacy_guard_manager_title">Gardian Intimitate</string>
   <!-- Permissions used by remote preferences -->
diff --git a/lineage/res/res/values-ru/strings.xml b/lineage/res/res/values-ru/strings.xml
index 9624467..0da7d69 100644
--- a/lineage/res/res/values-ru/strings.xml
+++ b/lineage/res/res/values-ru/strings.xml
@@ -119,24 +119,12 @@
   <string name="permlab_thirdPartyKeyguard">cторонний экран блокировки</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">Приложение сможет работать в качестве небезопасного метода блокировки экрана.</string>
-  <!-- Theme installation error notification -->
-  <string name="theme_install_error_title">Не удалось установить тему</string>
-  <string name="theme_install_error_message">Не удалось установить «<xliff:g id="theme">%1$s</xliff:g>»</string>
-  <!-- Theme reset notification -->
-  <string name="theme_reset_notification_title">Тема отключена</string>
-  <string name="theme_reset_notification_message">Из-за сбоев приложений восстановлена стандартная тема.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_accessThemeService">доступ к службе тем</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_accessThemeService">Приложение сможет получать доступ к службе тем. Это разрешение не используется обычными приложениями.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_readThemes">чтение информации о теме</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_readThemesDesc">Приложение сможет считывать темы оформления и определять, какая тема сейчас применена.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_writeThemes">изменение тем</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_writeThemesDesc">Приложение сможет осуществлять установку новых тем оформления и изменять текущую тему.</string>
   <!-- Performance manager permission title -->
   <string name="permlab_perfAccess">доступ к менеджеру производительности</string>
   <!-- Performance manager permission description -->
@@ -179,9 +167,6 @@
   <!-- LineageAudioService - observe session changes permission -->
   <string name="permlab_manage_audio_sessions">управление изменениями аудиосеансов</string>
   <string name="permdesc_manage_audio_sessions">Приложение сможет изменять параметры аудиопотоков.</string>
-  <!-- QuickSettings: Themes tile -->
-  <string name="qs_themes_label">Темы</string>
-  <string name="qs_themes_content_description">Настройте свою тему</string>
   <!-- Privacy Guard -->
   <string name="privacy_guard_manager_title">Защищенный режим</string>
   <!-- Permissions used by remote preferences -->
diff --git a/lineage/res/res/values-si-rLK/strings.xml b/lineage/res/res/values-si-rLK/strings.xml
index ec4d0c1..a2da064 100644
--- a/lineage/res/res/values-si-rLK/strings.xml
+++ b/lineage/res/res/values-si-rLK/strings.xml
@@ -40,8 +40,6 @@
   <!-- LiveDisplay strings -->
   <!-- Third party keyguard permission label -->
   <!-- Third party keyguard permission description -->
-  <!-- Theme installation error notification -->
-  <!-- Theme reset notification -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
@@ -64,7 +62,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-sk/strings.xml b/lineage/res/res/values-sk/strings.xml
index 368aacd..00296d5 100644
--- a/lineage/res/res/values-sk/strings.xml
+++ b/lineage/res/res/values-sk/strings.xml
@@ -119,24 +119,12 @@
   <string name="permlab_thirdPartyKeyguard">zámok obrazovky tretej strany</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">Umožňuje použiť aplikáciu ako nezabezpečený zámok obrazovky.</string>
-  <!-- Theme installation error notification -->
-  <string name="theme_install_error_title">Inštalácia témy zlyhala</string>
-  <string name="theme_install_error_message"><xliff:g id="theme">%1$s </xliff:g> sa nepodarilo nainštalovať</string>
-  <!-- Theme reset notification -->
-  <string name="theme_reset_notification_title">Obnoviť tému</string>
-  <string name="theme_reset_notification_message">Systémová téma sa obnovila z dôvodu viacerých pádov aplikácií.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_accessThemeService">prístup k službe tém</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_accessThemeService">Umožňuje aplikácii prístup k službe na správu tém. Toto povolenie nie je bežné pre štandardné aplikácie.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_readThemes">čítať informácie vašej témy</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_readThemesDesc">Umožňuje aplikácii čítať vaše témy a určiť, ktorú tému ste použili.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_writeThemes">upraviť vaše témy</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_writeThemesDesc">Umožňuje aplikácii vkladať nové témy a upraviť tému, ktorú ste použili.</string>
   <!-- Performance manager permission title -->
   <string name="permlab_perfAccess">prístup k správe výkonu</string>
   <!-- Performance manager permission description -->
@@ -179,9 +167,6 @@
   <!-- LineageAudioService - observe session changes permission -->
   <string name="permlab_manage_audio_sessions">spravovať zmeny audio relácie</string>
   <string name="permdesc_manage_audio_sessions">Umožňuje aktualizovať zvukové relácie.</string>
-  <!-- QuickSettings: Themes tile -->
-  <string name="qs_themes_label">Témy</string>
-  <string name="qs_themes_content_description">Prispôsobiť vašu tému</string>
   <!-- Privacy Guard -->
   <string name="privacy_guard_manager_title">Ochrana súkromia</string>
   <!-- Permissions used by remote preferences -->
diff --git a/lineage/res/res/values-sl/strings.xml b/lineage/res/res/values-sl/strings.xml
index 93bcf18..2d68dce 100644
--- a/lineage/res/res/values-sl/strings.xml
+++ b/lineage/res/res/values-sl/strings.xml
@@ -119,25 +119,12 @@
   <string name="permlab_thirdPartyKeyguard">zaklenjen zaslon tretjih oseb</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">Dovoli, da se aplikacija lahko uporabi kot nezanesljiv zaklenjen zaslon.</string>
-  <!-- Theme installation error notification -->
-  <string name="theme_install_error_title">Namestitev teme je spodletela</string>
-  <string name="theme_install_error_message">Namestitev <xliff:g id="theme">%1$s</xliff:g> je spodletela</string>
-  <!-- Theme reset notification -->
-  <string name="theme_reset_notification_title">Ponastavitev teme</string>
-  <string name="theme_reset_notification_message">Sistemska tema obnovljena zaradi večkratnih sesutij aplikacije.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_accessThemeService">dostop do storitve tem</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_accessThemeService">Dovoli aplikaciji dostop do storitve tem. Navadno ni potrebno za običajne aplikacije.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_readThemes">branje podatkov o temi</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_readThemesDesc">Dovoli aplikaciji branje vaših tem in
-       določanje, katero temo uporabljate.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_writeThemes">spreminjanje tem</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_writeThemesDesc">Dovoli aplikaciji vstavljanje novih tem in spreminjanje uporabljene teme.</string>
   <!-- Performance manager permission title -->
   <string name="permlab_perfAccess">dostop do upravljalnika zmogljivosti</string>
   <!-- Performance manager permission description -->
@@ -180,9 +167,6 @@
   <!-- LineageAudioService - observe session changes permission -->
   <string name="permlab_manage_audio_sessions">upravljanje sprememb zvočne seje</string>
   <string name="permdesc_manage_audio_sessions">Dovoli aplikaciji pošiljanje posodobitev zvočnih pretokov.</string>
-  <!-- QuickSettings: Themes tile -->
-  <string name="qs_themes_label">Teme</string>
-  <string name="qs_themes_content_description">Prilagodite svojo temo</string>
   <!-- Privacy Guard -->
   <string name="privacy_guard_manager_title">Zaščita zasebnosti</string>
   <!-- Permissions used by remote preferences -->
diff --git a/lineage/res/res/values-sq-rAL/strings.xml b/lineage/res/res/values-sq-rAL/strings.xml
index 06121cd..6452404 100644
--- a/lineage/res/res/values-sq-rAL/strings.xml
+++ b/lineage/res/res/values-sq-rAL/strings.xml
@@ -100,20 +100,12 @@
   <string name="permlab_thirdPartyKeyguard">ekran bllokues i mundësuar nga një palë e tretë</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">Lejon një aplikacion që të përdoret si një ekran bllokues i pasigurtë.</string>
-  <!-- Theme installation error notification -->
-  <string name="theme_install_error_title">Instalimi i temës dështoi</string>
-  <string name="theme_install_error_message"><xliff:g id="theme">%1$s</xliff:g> nuk u instalua</string>
-  <!-- Theme reset notification -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_accessThemeService">akseso shërbimin e temave</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_readThemes">lexo informacionet e temës</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_writeThemes">modifiko temat e tua</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_writeThemesDesc">Lejon aplikacionin të instalojë tema të reja dhe të modifikojë temën që ke aplikuar.</string>
   <!-- Performance manager permission title -->
   <!-- Performance manager permission description -->
   <!-- Access live lock screen manager service permission label -->
@@ -135,9 +127,6 @@
   <string name="permdesc_manageLiveDisplay">Lejon një aplikacion të konfigurojë parametra të përparuar të ekranit.</string>
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
-  <string name="qs_themes_label">Temat</string>
-  <string name="qs_themes_content_description">Personalizo temën</string>
   <!-- Privacy Guard -->
   <string name="privacy_guard_manager_title">Mbrojtësi i të Dhënave</string>
   <!-- Permissions used by remote preferences -->
diff --git a/lineage/res/res/values-sr-rCS/strings.xml b/lineage/res/res/values-sr-rCS/strings.xml
index ec4d0c1..a2da064 100644
--- a/lineage/res/res/values-sr-rCS/strings.xml
+++ b/lineage/res/res/values-sr-rCS/strings.xml
@@ -40,8 +40,6 @@
   <!-- LiveDisplay strings -->
   <!-- Third party keyguard permission label -->
   <!-- Third party keyguard permission description -->
-  <!-- Theme installation error notification -->
-  <!-- Theme reset notification -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
@@ -64,7 +62,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-sr/strings.xml b/lineage/res/res/values-sr/strings.xml
index ec37aa1..cc0557d 100644
--- a/lineage/res/res/values-sr/strings.xml
+++ b/lineage/res/res/values-sr/strings.xml
@@ -119,24 +119,12 @@
   <string name="permlab_thirdPartyKeyguard">закључани екран треће стране</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">Апликација може да функционише као небезбедан закључани екран.</string>
-  <!-- Theme installation error notification -->
-  <string name="theme_install_error_title">Грешка при инсталирању теме</string>
-  <string name="theme_install_error_message">Не могу да инсталирам „<xliff:g id="theme">%1$s</xliff:g>“.</string>
-  <!-- Theme reset notification -->
-  <string name="theme_reset_notification_title">Враћање првобитне теме</string>
-  <string name="theme_reset_notification_message">Враћена је стандардна тема због отказивања апликација.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_accessThemeService">приступ услузи тема</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_accessThemeService">Апликација може да приступа услузи тема. Ова дозвола није потребна нормалним апликацијама.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_readThemes">читање података о теми</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_readThemesDesc">Апликација може да чита теме и одреди која је тренутно активна.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_writeThemes">мењање тема</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_writeThemesDesc">Апликација може да инсталира нове теме и да промени тренутну.</string>
   <!-- Performance manager permission title -->
   <string name="permlab_perfAccess">приступ менаџеру перформанси</string>
   <!-- Performance manager permission description -->
@@ -179,9 +167,6 @@
   <!-- LineageAudioService - observe session changes permission -->
   <string name="permlab_manage_audio_sessions">управљање изменама звучних сесија</string>
   <string name="permdesc_manage_audio_sessions">Апликација може да мења параметре звучних токова.</string>
-  <!-- QuickSettings: Themes tile -->
-  <string name="qs_themes_label">Теме</string>
-  <string name="qs_themes_content_description">Прилагодите своју тему.</string>
   <!-- Privacy Guard -->
   <string name="privacy_guard_manager_title">Заштита приватности</string>
   <!-- Permissions used by remote preferences -->
diff --git a/lineage/res/res/values-sv/strings.xml b/lineage/res/res/values-sv/strings.xml
index 0e50e5a..15dd5da 100644
--- a/lineage/res/res/values-sv/strings.xml
+++ b/lineage/res/res/values-sv/strings.xml
@@ -108,24 +108,12 @@
   <string name="permlab_thirdPartyKeyguard">tredjepartslåsskärm</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">Tillåter en applikation att användas som osäker låsskärm.</string>
-  <!-- Theme installation error notification -->
-  <string name="theme_install_error_title">Kunde inte installera tema</string>
-  <string name="theme_install_error_message"><xliff:g id="theme">%1$s</xliff:g> kunde inte installeras</string>
-  <!-- Theme reset notification -->
-  <string name="theme_reset_notification_title">Återställning av tema</string>
-  <string name="theme_reset_notification_message">Systemtemat kommer återställas på grund av att appen kraschat flera gånger.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_accessThemeService">få tillgång till tematjänst</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_accessThemeService">Tillåter en app att få tillgång till tematjänsten. Ska aldrig behövas för vanliga appar.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_readThemes">läsa information om ditt tema</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_readThemesDesc">Tillåter att appen läser dina teman och avgör vilket tema du har använt.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_writeThemes">modifiera dina teman</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_writeThemesDesc">Tillåter att appen infogar nya teman och ändrar vilket tema du har använt.</string>
   <!-- Performance manager permission title -->
   <string name="permlab_perfAccess">komma åt prestandahanteraren</string>
   <!-- Performance manager permission description -->
@@ -145,8 +133,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
-  <string name="qs_themes_label">Teman</string>
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-sw/strings.xml b/lineage/res/res/values-sw/strings.xml
index ec4d0c1..a2da064 100644
--- a/lineage/res/res/values-sw/strings.xml
+++ b/lineage/res/res/values-sw/strings.xml
@@ -40,8 +40,6 @@
   <!-- LiveDisplay strings -->
   <!-- Third party keyguard permission label -->
   <!-- Third party keyguard permission description -->
-  <!-- Theme installation error notification -->
-  <!-- Theme reset notification -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
@@ -64,7 +62,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-ta-rIN/strings.xml b/lineage/res/res/values-ta-rIN/strings.xml
index 367b0a0..f070503 100644
--- a/lineage/res/res/values-ta-rIN/strings.xml
+++ b/lineage/res/res/values-ta-rIN/strings.xml
@@ -104,8 +104,6 @@
   <string name="permlab_thirdPartyKeyguard">மூன்றாம் தரப்பு பூட்டுத் திரை</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">பாதுகாப்பற்ற பூட்டுத் திரையாக பயன்படுத்தப்பட ஒரு பயன்பாட்டை அனுமதிக்கிறது.</string>
-  <!-- Theme installation error notification -->
-  <!-- Theme reset notification -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
@@ -128,7 +126,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-te-rIN/strings.xml b/lineage/res/res/values-te-rIN/strings.xml
index d0830bb..798e5f5 100644
--- a/lineage/res/res/values-te-rIN/strings.xml
+++ b/lineage/res/res/values-te-rIN/strings.xml
@@ -104,8 +104,6 @@
   <string name="permlab_thirdPartyKeyguard">మూడవ పక్షం లాక్ స్క్రీన్</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">ఒక ప్రోగ్రాం అసురక్షిత లాక్ స్క్రీనుగా ఉపయోగించబడడానికి అనుమతినిస్తుంది.</string>
-  <!-- Theme installation error notification -->
-  <!-- Theme reset notification -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
@@ -128,7 +126,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-th/strings.xml b/lineage/res/res/values-th/strings.xml
index 9d442b2..93c97e2 100644
--- a/lineage/res/res/values-th/strings.xml
+++ b/lineage/res/res/values-th/strings.xml
@@ -114,24 +114,12 @@
   <string name="permlab_thirdPartyKeyguard">หน้าจอล็อคบุคคลที่สาม</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">อนุญาตให้ใช้แอปเป็นหน้าจอล็อคแบบไม่ปลอดภัย</string>
-  <!-- Theme installation error notification -->
-  <string name="theme_install_error_title">การติดตั้งรูปแบบธีมล้มเหลว</string>
-  <string name="theme_install_error_message"><xliff:g id="theme">%1$s</xliff:g> ล้มเหลวในการติดตั้ง</string>
-  <!-- Theme reset notification -->
-  <string name="theme_reset_notification_title">รีเซ็ตรูปแบบธีม</string>
-  <string name="theme_reset_notification_message">ระบบกลับมาใช้รูปแบบธีมเดิมเนื่องจากมีหลายปัญหาที่เกิดกับแอป</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_accessThemeService">เข้าถึงรูปแบบธีม</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_accessThemeService">อนุญาตให้แอปเข้าถึงรูปแบบธีมได้ ซึ่งถือว่าไม่จำเป็นในแอปปกติ</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_readThemes">อ่านข้อมูลรูปแบบธีมของคุณ</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_readThemesDesc">อนุญาตให้แอปอ่านข้อมูลรูปแบบธีมและ       กำหนดหาว่ารูปแบบธีมใดที่คุณใช้</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_writeThemes">แก้ไขรูปแบบธีมของคุณ</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_writeThemesDesc">อณุญาตให้แอปเพิ่มรูปแบบธีมใหม่และแก้ไขรูปแบบธีมที่คุณใช้</string>
   <!-- Performance manager permission title -->
   <string name="permlab_perfAccess">ตัวจัดการประสิทธิภาพการเข้าถึง</string>
   <!-- Performance manager permission description -->
@@ -172,9 +160,6 @@
   <string name="permlab_observe_audio_sessions">สังเกตการเปลี่ยนแปลงเซสชันเสียง</string>
   <string name="permdesc_observe_audio_sessions">อนุญาตให้แอปสังเกตกระแสข้อมูลเสียงที่กำลังถูกสร้างและทำลาย</string>
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
-  <string name="qs_themes_label">รูปแบบธีม</string>
-  <string name="qs_themes_content_description">กำหนดรูปแบบธีมเอง</string>
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-tr/strings.xml b/lineage/res/res/values-tr/strings.xml
index dd8464e..2bbe15e 100644
--- a/lineage/res/res/values-tr/strings.xml
+++ b/lineage/res/res/values-tr/strings.xml
@@ -119,26 +119,12 @@
   <string name="permlab_thirdPartyKeyguard">üçüncü taraf kilit ekranı</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">Uygulamalara şifresiz kilit ekranı olarak kullanılabilme izni verir.</string>
-  <!-- Theme installation error notification -->
-  <string name="theme_install_error_title">Tema yüklenemedi</string>
-  <string name="theme_install_error_message"><xliff:g id="theme">%1$s </xliff:g> yüklenemedi</string>
-  <!-- Theme reset notification -->
-  <string name="theme_reset_notification_title">Tema sıfırlandı</string>
-  <string name="theme_reset_notification_message">Uygulama çökmelerinden dolayı sistem temasına geri dönüldü.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_accessThemeService">tema hizmetine erişim</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_accessThemeService">Bir uygulamanın tema hizmetine erişimine izin verir. Normal uygulamalar için gerekli değildir.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_readThemes">tema bilginizi okuyun</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_readThemesDesc">Uygulamanın temalarınızı okumasına ve hangi
-temayı uyguladığınızı belirlemesine izin verir.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_writeThemes">temalarınızı değiştirin</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_writeThemesDesc">Uygulamanın yeni temalar eklemesine ve
-uyguladığınız temayı değiştirmesine izin verir.</string>
   <!-- Performance manager permission title -->
   <string name="permlab_perfAccess">performans yöneticisine erişim</string>
   <!-- Performance manager permission description -->
@@ -181,9 +167,6 @@
   <!-- LineageAudioService - observe session changes permission -->
   <string name="permlab_manage_audio_sessions">sesli oturum değişikliklerini yönet</string>
   <string name="permdesc_manage_audio_sessions">Bir uygulamaya ses akış güncellemeleri gönderme izni verir.</string>
-  <!-- QuickSettings: Themes tile -->
-  <string name="qs_themes_label">Temalar</string>
-  <string name="qs_themes_content_description">Temanızı özelleştirin</string>
   <!-- Privacy Guard -->
   <string name="privacy_guard_manager_title">Gizlilik Koruması</string>
   <!-- Permissions used by remote preferences -->
diff --git a/lineage/res/res/values-ug/strings.xml b/lineage/res/res/values-ug/strings.xml
index aa10950..37b5e32 100644
--- a/lineage/res/res/values-ug/strings.xml
+++ b/lineage/res/res/values-ug/strings.xml
@@ -104,24 +104,12 @@
   <string name="permlab_thirdPartyKeyguard">ئۈچىنچى تەرەپ ئېكران قۇلۇپى</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">ئەپنىڭ تۇراقسىز ئىكران قۇلۇپى بۇلۇپ ئىشلىتىلىشىگە رۇخسەت قىلىش.</string>
-  <!-- Theme installation error notification -->
-  <string name="theme_install_error_title">ئۆرنەك ئورنىتالمىدى</string>
-  <string name="theme_install_error_message"><xliff:g id="theme">%1$s</xliff:g> ئورنىتىش مەغلۇب بولدى</string>
-  <!-- Theme reset notification -->
-  <string name="theme_reset_notification_title">باش تېمىنى قايتا بېكىتىش</string>
-  <string name="theme_reset_notification_message">كۆپلىگەن ئەپ ۋەيران بولغانلىقى ئۈچۈن باش تېما ئەسلىگە قايتتى.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_accessThemeService">باش تېما مۇلازىمىتىگە كىرىش</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_accessThemeService">بىر ئەپنىڭ باش تېما مۇلازىمىتىگە كىرىشىگە رۇخسەت قىلىش. نورمال ئەپ بۇنداق ھوقۇققا ھەرگىز ئېھتىياجلىق ئەمەس.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_readThemes">باش تېما ئۇچۇرىڭىزنى ئوقۇڭ</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_readThemesDesc">ئەپنىڭ سىزنىڭ باش تېمىڭىزنى ئوقۇشقا ۋە سىزنىڭ قايسى باش تېمىنى ئىشلەتكىڭىزنى جەزىملەشتۈرۈشكە رۇخسەت قىلىڭ.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_writeThemes">باش تېمىڭىزنى ئۆزگەرتىڭ</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_writeThemesDesc">ئەپنىڭ يېڭى باش تېما قوشۇشىغا ۋە سىزنىڭ قايسى باش تېمىنى ئىشلەتكىڭىزنى جەزىملەشتۈرۈشكە رۇخسەت قىلىڭ.</string>
   <!-- Performance manager permission title -->
   <string name="permlab_perfAccess">ئىقتىدار باشقۇرغۇچنى زىيارەت قىلىش</string>
   <!-- Performance manager permission description -->
@@ -140,7 +128,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-uk/strings.xml b/lineage/res/res/values-uk/strings.xml
index c903d84..1d522dc 100644
--- a/lineage/res/res/values-uk/strings.xml
+++ b/lineage/res/res/values-uk/strings.xml
@@ -119,25 +119,12 @@
   <string name="permlab_thirdPartyKeyguard">Нетиповий екран блокування</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">Дозволяє використати програму як незахищене блокування екрану.</string>
-  <!-- Theme installation error notification -->
-  <string name="theme_install_error_title">Не вдалося встановити тему</string>
-  <string name="theme_install_error_message"><xliff:g id="theme">%1$s </xliff:g> не вдалося встановити</string>
-  <!-- Theme reset notification -->
-  <string name="theme_reset_notification_title">Скинути тему</string>
-  <string name="theme_reset_notification_message">Через збої в роботі додатків встановлено системну тему.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_accessThemeService">доступ до служби тем</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_accessThemeService">Дозволяє додатку отримувати доступ до служби тем. Цей дозвіл не використовується звичайними додатками.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_readThemes">читати дані вашої теми</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_readThemesDesc">Дозволяє додатку читати дані про теми і
-виявляти, яку тему зараз застосовано.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_writeThemes">змінювати теми</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_writeThemesDesc">Дозволяє додатку встановлювати нові теми і змінювати поточну.</string>
   <!-- Performance manager permission title -->
   <string name="permlab_perfAccess">доступ до менеджера продуктивності</string>
   <!-- Performance manager permission description -->
@@ -180,9 +167,6 @@
   <!-- LineageAudioService - observe session changes permission -->
   <string name="permlab_manage_audio_sessions">керувати змінами аудіо сесії</string>
   <string name="permdesc_manage_audio_sessions">Дозволяє додатку змінювати параметри аудіопотоків.</string>
-  <!-- QuickSettings: Themes tile -->
-  <string name="qs_themes_label">Теми</string>
-  <string name="qs_themes_content_description">Налаштувати вашу тему</string>
   <!-- Privacy Guard -->
   <string name="privacy_guard_manager_title">Вартовий Приватності</string>
   <!-- Permissions used by remote preferences -->
diff --git a/lineage/res/res/values-ur-rPK/strings.xml b/lineage/res/res/values-ur-rPK/strings.xml
index ec4d0c1..a2da064 100644
--- a/lineage/res/res/values-ur-rPK/strings.xml
+++ b/lineage/res/res/values-ur-rPK/strings.xml
@@ -40,8 +40,6 @@
   <!-- LiveDisplay strings -->
   <!-- Third party keyguard permission label -->
   <!-- Third party keyguard permission description -->
-  <!-- Theme installation error notification -->
-  <!-- Theme reset notification -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
@@ -64,7 +62,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-uz-rUZ/strings.xml b/lineage/res/res/values-uz-rUZ/strings.xml
index ec4d0c1..a2da064 100644
--- a/lineage/res/res/values-uz-rUZ/strings.xml
+++ b/lineage/res/res/values-uz-rUZ/strings.xml
@@ -40,8 +40,6 @@
   <!-- LiveDisplay strings -->
   <!-- Third party keyguard permission label -->
   <!-- Third party keyguard permission description -->
-  <!-- Theme installation error notification -->
-  <!-- Theme reset notification -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
@@ -64,7 +62,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-vi/strings.xml b/lineage/res/res/values-vi/strings.xml
index ef79823..3d0e740 100644
--- a/lineage/res/res/values-vi/strings.xml
+++ b/lineage/res/res/values-vi/strings.xml
@@ -119,24 +119,12 @@
   <string name="permlab_thirdPartyKeyguard">màn hình khoá bên thứ ba</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">Cho phép ứng dụng được dùng làm màn hình khoá không an toàn.</string>
-  <!-- Theme installation error notification -->
-  <string name="theme_install_error_title">Không thể cài đặt chủ đề</string>
-  <string name="theme_install_error_message"><xliff:g id="theme">%1$s </xliff:g> không thể cài đặt</string>
-  <!-- Theme reset notification -->
-  <string name="theme_reset_notification_title">Đặt lại chủ đề</string>
-  <string name="theme_reset_notification_message">Đã khôi phục chủ đề hệ thống vì nhiều ứng dụng bị lỗi.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_accessThemeService">truy cập dịch vụ chủ đề</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_accessThemeService">Cho phép ứng dụng truy cập dịch vụ chủ đề. Ứng dụng bình thường không bao giờ cần quyền này.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_readThemes">đọc thông tin chủ đề của bạn</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_readThemesDesc">Cho phép ứng dụng đọc và xác định chủ đề bạn đã áp dụng.</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_writeThemes">sửa đổi chủ đề của bạn</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_writeThemesDesc">Cho phép ứng dụng chèn các chủ đề mới và sửa đổi chủ đề bạn đã áp dụng.</string>
   <!-- Performance manager permission title -->
   <string name="permlab_perfAccess">truy cập trình quản lý hiệu quả hoạt động</string>
   <!-- Performance manager permission description -->
@@ -179,9 +167,6 @@
   <!-- LineageAudioService - observe session changes permission -->
   <string name="permlab_manage_audio_sessions">quản lý thay đổi âm thanh phiên</string>
   <string name="permdesc_manage_audio_sessions">Cho phép một ứng dụng gửi thông tin các cập nhật stream âm thanh.</string>
-  <!-- QuickSettings: Themes tile -->
-  <string name="qs_themes_label">Chủ đề</string>
-  <string name="qs_themes_content_description">Tùy chỉnh chủ đề của bạn</string>
   <!-- Privacy Guard -->
   <string name="privacy_guard_manager_title">Bảo vệ quyền riêng tư</string>
   <!-- Permissions used by remote preferences -->
diff --git a/lineage/res/res/values-zh-rCN/strings.xml b/lineage/res/res/values-zh-rCN/strings.xml
index 4c614c6..4bbc072 100644
--- a/lineage/res/res/values-zh-rCN/strings.xml
+++ b/lineage/res/res/values-zh-rCN/strings.xml
@@ -119,24 +119,12 @@
   <string name="permlab_thirdPartyKeyguard">第三方锁屏</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">允许应用用作不安全锁屏。</string>
-  <!-- Theme installation error notification -->
-  <string name="theme_install_error_title">安装主题失败</string>
-  <string name="theme_install_error_message"><xliff:g id="theme">%1$s</xliff:g> 安装失败</string>
-  <!-- Theme reset notification -->
-  <string name="theme_reset_notification_title">重置主题</string>
-  <string name="theme_reset_notification_message">由于多个应用崩溃,已还原至系统主题。</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_accessThemeService">访问主题服务</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_accessThemeService">允许应用访问主题服务。正常应用不应需要此权限。</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_readThemes">读取您的主题信息</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_readThemesDesc">允许应用读取您的主题和确认您已应用的主题。</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_writeThemes">修改您的主题</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_writeThemesDesc">允许应用插入新的主题和修改您已应用的主题。</string>
   <!-- Performance manager permission title -->
   <string name="permlab_perfAccess">访问性能管理器</string>
   <!-- Performance manager permission description -->
@@ -179,9 +167,6 @@
   <!-- LineageAudioService - observe session changes permission -->
   <string name="permlab_manage_audio_sessions">管理音频会话变动</string>
   <string name="permdesc_manage_audio_sessions">允许应用发送音频流更新。</string>
-  <!-- QuickSettings: Themes tile -->
-  <string name="qs_themes_label">主题</string>
-  <string name="qs_themes_content_description">自定义您的主题</string>
   <!-- Privacy Guard -->
   <string name="privacy_guard_manager_title">隐私防护</string>
   <!-- Permissions used by remote preferences -->
diff --git a/lineage/res/res/values-zh-rHK/strings.xml b/lineage/res/res/values-zh-rHK/strings.xml
index 628ae97..66a123f 100644
--- a/lineage/res/res/values-zh-rHK/strings.xml
+++ b/lineage/res/res/values-zh-rHK/strings.xml
@@ -44,8 +44,6 @@
   <!-- LiveDisplay strings -->
   <!-- Third party keyguard permission label -->
   <!-- Third party keyguard permission description -->
-  <!-- Theme installation error notification -->
-  <!-- Theme reset notification -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
@@ -68,7 +66,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values-zh-rTW/strings.xml b/lineage/res/res/values-zh-rTW/strings.xml
index 0188893..ee9ddcc 100644
--- a/lineage/res/res/values-zh-rTW/strings.xml
+++ b/lineage/res/res/values-zh-rTW/strings.xml
@@ -119,25 +119,12 @@
   <string name="permlab_thirdPartyKeyguard">第三方鎖定畫面</string>
   <!-- Third party keyguard permission description -->
   <string name="permdesc_thirdPartyKeyguard">允許應用程式用作不安全的鎖定畫面。</string>
-  <!-- Theme installation error notification -->
-  <string name="theme_install_error_title">主題安裝失敗</string>
-  <string name="theme_install_error_message"><xliff:g id="theme">%1$s </xliff:g> 安裝失敗</string>
-  <!-- Theme reset notification -->
-  <string name="theme_reset_notification_title">重設主題</string>
-  <string name="theme_reset_notification_message">根據多個應用程式發生錯誤所以已還原至預設主題</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_accessThemeService">存取主題服務</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_accessThemeService">允許應用程式存取主題服務 。一般應用程式不需使用。</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_readThemes">閱讀您的主題資訊</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_readThemesDesc">允許應用程式讀取您的主題,
-       並確定您已套用哪個的主題。</string>
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permlab_writeThemes">修改您的主題</string>
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-  <string name="permdesc_writeThemesDesc">允許應用程式來插入新的主題和修改您已應用的主題。</string>
   <!-- Performance manager permission title -->
   <string name="permlab_perfAccess">存取效能管理員</string>
   <!-- Performance manager permission description -->
@@ -180,9 +167,6 @@
   <!-- LineageAudioService - observe session changes permission -->
   <string name="permlab_manage_audio_sessions">管理音訊會話變動</string>
   <string name="permdesc_manage_audio_sessions">允許應用程式傳送音訊串流更新。</string>
-  <!-- QuickSettings: Themes tile -->
-  <string name="qs_themes_label">主題</string>
-  <string name="qs_themes_content_description">自訂您的主題</string>
   <!-- Privacy Guard -->
   <string name="privacy_guard_manager_title">隱私守衛</string>
   <!-- Permissions used by remote preferences -->
diff --git a/lineage/res/res/values-zu/strings.xml b/lineage/res/res/values-zu/strings.xml
index ec4d0c1..a2da064 100644
--- a/lineage/res/res/values-zu/strings.xml
+++ b/lineage/res/res/values-zu/strings.xml
@@ -40,8 +40,6 @@
   <!-- LiveDisplay strings -->
   <!-- Third party keyguard permission label -->
   <!-- Third party keyguard permission description -->
-  <!-- Theme installation error notification -->
-  <!-- Theme reset notification -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
   <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
@@ -64,7 +62,6 @@
   <!-- LiveDisplay manager permission -->
   <!-- LineageAudioService - observe session changes permission -->
   <!-- LineageAudioService - observe session changes permission -->
-  <!-- QuickSettings: Themes tile -->
   <!-- Privacy Guard -->
   <!-- Permissions used by remote preferences -->
 </resources>
diff --git a/lineage/res/res/values/strings.xml b/lineage/res/res/values/strings.xml
index b3304f4..8adfec3 100644
--- a/lineage/res/res/values/strings.xml
+++ b/lineage/res/res/values/strings.xml
@@ -146,29 +146,16 @@
     <!-- Third party keyguard permission description -->
     <string name="permdesc_thirdPartyKeyguard">Allows an app to be used as an insecure lock screen.</string>
 
-    <!-- Theme installation error notification -->
-    <string name="theme_install_error_title">Failed to install theme</string>
-    <string name="theme_install_error_message"><xliff:g id="theme">%1$s</xliff:g> failed to install</string>
 
-    <!-- Theme reset notification -->
-    <string name="theme_reset_notification_title">Theme reset</string>
-    <string name="theme_reset_notification_message">System theme restored due to multiple app crashes.</string>
 
     <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-    <string name="permlab_accessThemeService">access theme service</string>
     <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-    <string name="permdesc_accessThemeService">Allows an app to access the theme service. Should never be needed for normal apps.</string>
 
     <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-    <string name="permlab_readThemes">read your theme info</string>
     <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-    <string name="permdesc_readThemesDesc">Allows the app to read your themes and
-       determine which theme you have applied.</string>
 
     <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-    <string name="permlab_writeThemes">modify your themes</string>
     <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-    <string name="permdesc_writeThemesDesc">Allows the app to insert new themes and modify which theme you have applied.</string>
 
     <!-- Performance manager permission title -->
     <string name="permlab_perfAccess">access performance manager</string>
@@ -220,9 +207,6 @@
     <string name="permlab_manage_audio_sessions">manage audio session changes</string>
     <string name="permdesc_manage_audio_sessions">Allows an app to send audio stream updates.</string>
 
-    <!-- QuickSettings: Themes tile -->
-    <string name="qs_themes_label">Themes</string>
-    <string name="qs_themes_content_description">Customize your theme</string>
 
     <!-- Privacy Guard -->
     <string name="privacy_guard_manager_title">Privacy Guard</string>
diff --git a/lineage/res/res/values/symbols.xml b/lineage/res/res/values/symbols.xml
index cd13a52..417818f 100644
--- a/lineage/res/res/values/symbols.xml
+++ b/lineage/res/res/values/symbols.xml
@@ -103,22 +103,9 @@
     <java-symbol type="string" name="config_wifiDirectName" />
     <java-symbol type="bool" name="config_wifiHotspotSecurityNone" />
 
-    <!-- Theme install failure notification -->
-    <java-symbol type="string" name="theme_install_error_title" />
-    <java-symbol type="string" name="theme_install_error_message" />
-
-    <!-- Theme reset notification -->
-    <java-symbol type="string" name="theme_reset_notification_title" />
-    <java-symbol type="string" name="theme_reset_notification_message" />
-
     <!-- External Lineage specific core services -->
     <java-symbol type="array" name="config_externalLineageServices" />
 
-    <!-- Themes tile -->
-    <java-symbol type="string" name="qs_themes_label" />
-    <java-symbol type="string" name="qs_themes_content_description" />
-    <java-symbol type="drawable" name="ic_qs_themes" />
-
     <!-- Lineage system server -->
     <java-symbol type="string" name="config_externalSystemServer" />
 
diff --git a/packages/LineageSettingsProvider/res/values/defaults.xml b/packages/LineageSettingsProvider/res/values/defaults.xml
index f9eebf9..59b4006 100644
--- a/packages/LineageSettingsProvider/res/values/defaults.xml
+++ b/packages/LineageSettingsProvider/res/values/defaults.xml
@@ -31,12 +31,6 @@
     <!-- Default for LineageSettings.Secure.ADVANCED_MODE -->
     <bool name="def_advanced_mode">true</bool>
 
-    <!-- Default for LineageSettings.Secure.DEFAULT_THEME_COMPONENTS -->
-    <string name="def_theme_components"></string>
-
-    <!-- Default for LineageSettings.Secure.DEFAULT_THEME_PACKAGE -->
-    <string name="def_theme_package"></string>
-
     <!-- Defaults for LineageSettings.Secure.DEV_FORCE_SHOW_NAVBAR -->
     <integer name="def_force_show_navbar">0</integer>
 
diff --git a/packages/LineageSettingsProvider/src/org/lineageos/lineagesettings/LineageDatabaseHelper.java b/packages/LineageSettingsProvider/src/org/lineageos/lineagesettings/LineageDatabaseHelper.java
index 52d5a5f..09d9def 100644
--- a/packages/LineageSettingsProvider/src/org/lineageos/lineagesettings/LineageDatabaseHelper.java
+++ b/packages/LineageSettingsProvider/src/org/lineageos/lineagesettings/LineageDatabaseHelper.java
@@ -365,12 +365,6 @@
             loadBooleanSetting(stmt, LineageSettings.Secure.ADVANCED_MODE,
                     R.bool.def_advanced_mode);
 
-            loadRegionLockedStringSetting(stmt,
-                    LineageSettings.Secure.DEFAULT_THEME_COMPONENTS, R.string.def_theme_components);
-
-            loadRegionLockedStringSetting(stmt,
-                    LineageSettings.Secure.DEFAULT_THEME_PACKAGE, R.string.def_theme_package);
-
             loadIntegerSetting(stmt, LineageSettings.Secure.DEV_FORCE_SHOW_NAVBAR,
                     R.integer.def_force_show_navbar);
 
diff --git a/packages/LineageSettingsProvider/tests/src/org/lineageos/lineagesettings/tests/LineageSettingsProviderDefaultsTest.java b/packages/LineageSettingsProvider/tests/src/org/lineageos/lineagesettings/tests/LineageSettingsProviderDefaultsTest.java
index ddb9c94..702a92d 100644
--- a/packages/LineageSettingsProvider/tests/src/org/lineageos/lineagesettings/tests/LineageSettingsProviderDefaultsTest.java
+++ b/packages/LineageSettingsProvider/tests/src/org/lineageos/lineagesettings/tests/LineageSettingsProviderDefaultsTest.java
@@ -99,12 +99,6 @@
                 LineageSettings.Secure.LOCKSCREEN_VISUALIZER_ENABLED,
                 "R.bool.def_lockscreen_visualizer"));
         SECURE_SETTINGS_DEFAULTS.add(new Setting(
-                LineageSettings.Secure.DEFAULT_THEME_COMPONENTS,
-                "R.string.def_theme_components"));
-        SECURE_SETTINGS_DEFAULTS.add(new Setting(
-                LineageSettings.Secure.DEFAULT_THEME_PACKAGE,
-                "R.string.def_theme_package"));
-        SECURE_SETTINGS_DEFAULTS.add(new Setting(
                 LineageSettings.Secure.PROTECTED_COMPONENT_MANAGERS,
                 "R.string.def_protected_component_managers"));
     }
diff --git a/sdk/src/java/lineageos/app/LineageContextConstants.java b/sdk/src/java/lineageos/app/LineageContextConstants.java
index e5c0df1..69f033a 100644
--- a/sdk/src/java/lineageos/app/LineageContextConstants.java
+++ b/sdk/src/java/lineageos/app/LineageContextConstants.java
@@ -101,13 +101,6 @@
     public static final String LINEAGE_PERFORMANCE_SERVICE = "lineageperformance";
 
     /**
-     * Controls changing and applying themes
-     *
-     * @hide
-     */
-    public static final String LINEAGE_THEME_SERVICE = "lineagethemes";
-
-    /**
      * Manages composed icons
      *
      * @hide
@@ -192,14 +185,6 @@
 
         /**
          * Feature for {@link PackageManager#getSystemAvailableFeatures} and
-         * {@link PackageManager#hasSystemFeature}: The device includes the lineage theme service
-         * utilized by the lineage sdk.
-         */
-        @SdkConstant(SdkConstant.SdkConstantType.FEATURE)
-        public static final String THEMES = "org.lineageos.theme";
-
-        /**
-         * Feature for {@link PackageManager#getSystemAvailableFeatures} and
          * {@link PackageManager#hasSystemFeature}: The device includes the lineage performance service
          * utilized by the lineage sdk.
          */
diff --git a/sdk/src/java/lineageos/app/ThemeComponent.java b/sdk/src/java/lineageos/app/ThemeComponent.java
deleted file mode 100644
index cc7d2f0..0000000
--- a/sdk/src/java/lineageos/app/ThemeComponent.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (C) 2015 The CyanogenMod 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 lineageos.app;
-
-/**
- * The id value here matches the framework. Unknown is given a -1 value since future
- * framework components will always be positive.
- * @hide
- */
-public enum ThemeComponent {
-    UNKNOWN(-1),
-    OVERLAY(0),
-    BOOT_ANIM(1),
-    WALLPAPER(2),
-    LOCKSCREEN(3),
-    FONT(4),
-    ICON(5),
-    SOUND(6);
-
-    public int id;
-    ThemeComponent(int id) {
-        this.id = id;
-    }
-
-}
diff --git a/sdk/src/java/lineageos/app/ThemeVersion.java b/sdk/src/java/lineageos/app/ThemeVersion.java
deleted file mode 100644
index 4dd0974..0000000
--- a/sdk/src/java/lineageos/app/ThemeVersion.java
+++ /dev/null
@@ -1,206 +0,0 @@
-/*
- * Copyright (C) 2015 The CyanogenMod 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 lineageos.app;
-
-import android.os.Build;
-
-import java.lang.reflect.Field;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * @hide
- */
-public class ThemeVersion {
-    private static final String THEME_VERSION_CLASS_NAME = "android.content.ThemeVersion";
-    private static final String THEME_VERSION_FIELD_NAME = "THEME_VERSION";
-    private static final String MIN_SUPPORTED_THEME_VERSION_FIELD_NAME =
-            "MIN_SUPPORTED_THEME_VERSION";
-    private static final int CM11 = 1;
-    private static final int CM12_PRE_VERSIONING = 2;
-
-    public static int getVersion() {
-        int version;
-        try {
-            Class<?> themeVersionClass = Class.forName(THEME_VERSION_CLASS_NAME);
-            Field themeVersionField = themeVersionClass.getField(THEME_VERSION_FIELD_NAME);
-            version = (Integer) themeVersionField.get(null);
-        } catch(Exception e) {
-            // Field doesn't exist. Fallback to SDK level
-            version = Build.VERSION.SDK_INT < 21 ? CM11 :
-                    CM12_PRE_VERSIONING;
-        }
-        return version;
-    }
-
-    public static int getMinSupportedVersion() {
-        int getMinSupportedVersion;
-        try {
-            Class<?> themeVersionClass = Class.forName(THEME_VERSION_CLASS_NAME);
-            Field themeVersionField =
-                    themeVersionClass.getField(MIN_SUPPORTED_THEME_VERSION_FIELD_NAME);
-            getMinSupportedVersion = (Integer) themeVersionField.get(null);
-        } catch(Exception e) {
-            // Field doesn't exist. Fallback to SDK level
-            getMinSupportedVersion = Build.VERSION.SDK_INT < 21 ? CM11 :
-                    CM12_PRE_VERSIONING;
-        }
-        return getMinSupportedVersion;
-    }
-
-    public static ComponentVersion getComponentVersion(ThemeComponent component) {
-        int version = getVersion();
-        if (version == 1) {
-            throw new UnsupportedOperationException();
-        } else if (version == 2) {
-            return ThemeVersionImpl2.getDeviceComponentVersion(component);
-        } else {
-            return ThemeVersionImpl3.getDeviceComponentVersion(component);
-        }
-    }
-
-    public static List<ComponentVersion> getComponentVersions() {
-        int version = getVersion();
-        if (version == 1) {
-            throw new UnsupportedOperationException();
-        } else if (version == 2) {
-            return ThemeVersionImpl2.getDeviceComponentVersions();
-        } else {
-            return ThemeVersionImpl3.getDeviceComponentVersions();
-        }
-    }
-
-    public static class ComponentVersion {
-        protected int id;
-        protected String name;
-        protected ThemeComponent component;
-        protected int minVersion;
-        protected int currentVersion;
-
-        protected ComponentVersion(int id, ThemeComponent component, int targetVersion) {
-            this(id, component, component.name(), targetVersion, targetVersion);
-        }
-
-        protected ComponentVersion(int id,
-                ThemeComponent component,
-                String name,
-                int minVersion,
-                int targetVersion) {
-            this.id = id;
-            this.component = component;
-            this.name = name;
-            this.minVersion = minVersion;
-            this.currentVersion = targetVersion;
-        }
-
-        public ComponentVersion(ComponentVersion copy) {
-            this(copy.id, copy.component, copy.name, copy.minVersion, copy.currentVersion);
-        }
-
-        public int getId() {
-            return id;
-        }
-
-        public String getName() {
-            return name;
-        }
-
-        public ThemeComponent getComponent() {
-            return component;
-        }
-
-        public int getMinVersion() {
-            return minVersion;
-        }
-
-        public int getCurrentVersion() {
-            return currentVersion;
-        }
-    }
-
-    private static class ThemeVersionImpl2 {
-        private static ArrayList<ComponentVersion> cVersions = new ArrayList<ComponentVersion>() {
-            {
-                add(new ComponentVersion(0, ThemeComponent.OVERLAY, 2));
-                add(new ComponentVersion(1, ThemeComponent.BOOT_ANIM, 1));
-                add(new ComponentVersion(2, ThemeComponent.WALLPAPER, 1));
-                add(new ComponentVersion(3, ThemeComponent.LOCKSCREEN, 1));
-                add(new ComponentVersion(4, ThemeComponent.ICON, 1));
-                add(new ComponentVersion(5, ThemeComponent.FONT, 1));
-                add(new ComponentVersion(6, ThemeComponent.SOUND, 1));
-            }
-        };
-
-        public static ComponentVersion getDeviceComponentVersion(ThemeComponent component) {
-            for(ComponentVersion compVersion : cVersions) {
-                if (compVersion.component.equals(component)) {
-                    return new ComponentVersion(compVersion);
-                }
-            }
-            return null;
-        }
-
-        public static List<ComponentVersion> getDeviceComponentVersions() {
-            ArrayList<ComponentVersion> versions = new ArrayList<ComponentVersion>();
-            versions.addAll(cVersions);
-            return versions;
-        }
-    }
-
-    private static class ThemeVersionImpl3 {
-        public static ComponentVersion getDeviceComponentVersion(ThemeComponent component) {
-            for(android.content.ThemeVersion.ComponentVersion version :
-                    android.content.ThemeVersion.ComponentVersion.values()) {
-                ComponentVersion sdkVersionInfo = fwCompVersionToSdkVersion(version);
-                if (sdkVersionInfo.component.equals(component)) {
-                    return sdkVersionInfo;
-                }
-            }
-            return null;
-        }
-
-        public static List<ComponentVersion> getDeviceComponentVersions() {
-            List<ComponentVersion> versions = new ArrayList<ComponentVersion>();
-
-            for(android.content.ThemeVersion.ComponentVersion version :
-                    android.content.ThemeVersion.ComponentVersion.values()) {
-                versions.add(fwCompVersionToSdkVersion(version));
-            }
-
-            return versions;
-        }
-
-        public static ComponentVersion fwCompVersionToSdkVersion(
-                android.content.ThemeVersion.ComponentVersion version) {
-            // Find the SDK component with the matching id
-            // If no ID matches then the FW must have a newer component that we don't
-            // know anything about. We can still return the id and name
-            ThemeComponent component = ThemeComponent.UNKNOWN;
-            for(ThemeComponent aComponent : ThemeComponent.values()) {
-                if (aComponent.id == version.id) {
-                    component = aComponent;
-                }
-            }
-
-            int id = version.id;
-            String name = version.name();
-            int minVersion = version.minSupportedVersion;
-            int targetVersion = version.currentVersion;
-
-            return new ComponentVersion(id, component, name, minVersion, targetVersion);
-        }
-    }
-}
diff --git a/sdk/src/java/lineageos/content/Intent.java b/sdk/src/java/lineageos/content/Intent.java
index fc4dbac..b245da5 100644
--- a/sdk/src/java/lineageos/content/Intent.java
+++ b/sdk/src/java/lineageos/content/Intent.java
@@ -96,45 +96,6 @@
     public static final String ACTION_APP_FAILURE = "lineageos.intent.action.APP_FAILURE";
 
     /**
-     * Used to indicate that a theme package has been installed or un-installed.
-     */
-    public static final String CATEGORY_THEME_PACKAGE_INSTALLED_STATE_CHANGE =
-            "lineageos.intent.category.THEME_PACKAGE_INSTALL_STATE_CHANGE";
-
-    /**
-     * Action sent from the provider when a theme has been fully installed.  Fully installed
-     * means that the apk was installed by PackageManager and the theme resources were
-     * processed and cached by {@link org.lineageos.platform.internal.ThemeManagerService}
-     * Requires the {@link  lineageos.platform.Manifest.permission#READ_THEMES} permission to
-     * receive this broadcast.
-     */
-    public static final String ACTION_THEME_INSTALLED =
-            "lineageos.intent.action.THEME_INSTALLED";
-
-    /**
-     * Action sent from the provider when a theme has been updated.
-     * Requires the {@link lineageos.platform.Manifest.permission#READ_THEMES} permission to
-     * receive this broadcast.
-     */
-    public static final String ACTION_THEME_UPDATED =
-            "lineageos.intent.action.THEME_UPDATED";
-
-    /**
-     * Action sent from the provider when a theme has been removed.
-     * Requires the {@link  lineageos.platform.Manifest.permission#READ_THEMES} permission to
-     * receive this broadcast.
-     */
-    public static final String ACTION_THEME_REMOVED =
-            "lineageos.intent.action.THEME_REMOVED";
-
-    /**
-     * Uri scheme used to broadcast the theme's package name when broadcasting
-     * {@link Intent#ACTION_THEME_INSTALLED} or
-     * {@link Intent#ACTION_THEME_REMOVED}
-     */
-    public static final String URI_SCHEME_PACKAGE = "package";
-
-    /**
      * Implicit action to open live lock screen settings.
      * @hide
      */
diff --git a/sdk/src/java/lineageos/providers/LineageSettings.java b/sdk/src/java/lineageos/providers/LineageSettings.java
index d9f17ba..dfd7fe0 100644
--- a/sdk/src/java/lineageos/providers/LineageSettings.java
+++ b/sdk/src/java/lineageos/providers/LineageSettings.java
@@ -2602,24 +2602,6 @@
         public static final String BUTTON_BRIGHTNESS = "button_brightness";
 
         /**
-         * A '|' delimited list of theme components to apply from the default theme on first boot.
-         * Components can be one or more of the "mods_XXXXXXX" found in
-         * {@link ThemesContract$ThemesColumns}.  Leaving this field blank assumes all components
-         * will be applied.
-         *
-         * ex: mods_icons|mods_overlays|mods_homescreen
-         *
-         * @hide
-         */
-        public static final String DEFAULT_THEME_COMPONENTS = "default_theme_components";
-
-        /**
-         * Default theme to use.  If empty, use holo.
-         * @hide
-         */
-        public static final String DEFAULT_THEME_PACKAGE = "default_theme_package";
-
-        /**
          * Developer options - Navigation Bar show switch
          * @deprecated
          * @hide
@@ -2808,17 +2790,6 @@
         public static final String ADVANCED_REBOOT = "advanced_reboot";
 
         /**
-         * This will be set to the system's current theme API version when ThemeService starts.
-         * It is useful for when an upgrade from one version of Lineage to another occurs.
-         * For example, after a user upgrades from CM11 to CM12, the value of this field
-         * might be 19. ThemeService would then change the value to 21. This is useful
-         * when an API change breaks a theme. Themeservice can identify old themes and
-         * unapply them from the system.
-         * @hide
-         */
-        public static final String THEME_PREV_BOOT_API_LEVEL = "theme_prev_boot_api_level";
-
-        /**
          * Whether detail view for the location tile is enabled
          * @hide
          */
@@ -2950,8 +2921,6 @@
                 LineageSettings.Secure.ADVANCED_MODE,
                 LineageSettings.Secure.BUTTON_BACKLIGHT_TIMEOUT,
                 LineageSettings.Secure.BUTTON_BRIGHTNESS,
-                LineageSettings.Secure.DEFAULT_THEME_COMPONENTS,
-                LineageSettings.Secure.DEFAULT_THEME_PACKAGE,
                 LineageSettings.Secure.DEV_FORCE_SHOW_NAVBAR,
                 LineageSettings.Secure.KEYBOARD_BRIGHTNESS,
                 LineageSettings.Secure.POWER_MENU_ACTIONS,
@@ -2970,7 +2939,6 @@
                 LineageSettings.Secure.PROTECTED_COMPONENTS,
                 LineageSettings.Secure.LIVE_DISPLAY_COLOR_MATRIX,
                 LineageSettings.Secure.ADVANCED_REBOOT,
-                LineageSettings.Secure.THEME_PREV_BOOT_API_LEVEL,
                 LineageSettings.Secure.LOCKSCREEN_TARGETS,
                 LineageSettings.Secure.RING_HOME_BUTTON_BEHAVIOR,
                 LineageSettings.Secure.PRIVACY_GUARD_DEFAULT,
diff --git a/sdk/src/java/lineageos/providers/ThemesContract.java b/sdk/src/java/lineageos/providers/ThemesContract.java
deleted file mode 100644
index a795f55..0000000
--- a/sdk/src/java/lineageos/providers/ThemesContract.java
+++ /dev/null
@@ -1,810 +0,0 @@
-/*
- * Copyright (C) 2016 The CyanogenMod 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 lineageos.providers;
-
-import android.net.Uri;
-
-/**
- * <p>
- * The contract between the themes provider and applications. Contains
- * definitions for the supported URIs and columns.
- * </p>
- */
-public class ThemesContract {
-    /** The authority for the themes provider */
-    public static final String AUTHORITY = "org.lineageos.themes";
-    /** A content:// style uri to the authority for the themes provider */
-    public static final Uri AUTHORITY_URI = Uri.parse("content://" + AUTHORITY);
-
-    public static class ThemesColumns {
-        public static final Uri CONTENT_URI = Uri.withAppendedPath(AUTHORITY_URI, "themes");
-
-        /**
-         * The unique ID for a row.
-         * <P>Type: INTEGER (long)</P>
-         */
-        public static final String _ID = "_id";
-
-        /**
-         * The user visible title.
-         * <P>Type: TEXT</P>
-         */
-        public static final String TITLE = "title";
-
-        /**
-         * Unique text to identify the apk pkg. ie "com.foo.bar"
-         * <P>Type: TEXT</P>
-         */
-        public static final String PKG_NAME = "pkg_name";
-
-        /**
-         * A 32 bit RRGGBB color representative of the themes color scheme
-         * <P>Type: INTEGER</P>
-         */
-        public static final String PRIMARY_COLOR = "primary_color";
-
-        /**
-         * A 2nd 32 bit RRGGBB color representative of the themes color scheme
-         * <P>Type: INTEGER</P>
-         */
-        public static final String SECONDARY_COLOR = "secondary_color";
-
-        /**
-         * Name of the author of the theme
-         * <P>Type: TEXT</P>
-         */
-        public static final String AUTHOR = "author";
-
-        /**
-         * The time that this row was created on its originating client (msecs
-         * since the epoch).
-         * <P>Type: INTEGER</P>
-         */
-        public static final String DATE_CREATED = "created";
-
-        /**
-         * URI to an image that shows the homescreen with the theme applied
-         * since the epoch).
-         * <P>Type: TEXT</P>
-         */
-        public static final String HOMESCREEN_URI = "homescreen_uri";
-
-        /**
-         * URI to an image that shows the lockscreen with theme applied
-         * <P>Type: TEXT</P>
-         */
-        public static final String LOCKSCREEN_URI = "lockscreen_uri";
-
-        /**
-         * URI to an image that shows the style (aka skin) with theme applied
-         * <P>Type: TEXT</P>
-         */
-        public static final String STYLE_URI = "style_uri";
-
-        /**
-         * TODO: Figure structure for actual animation instead of static
-         * URI to an image of the boot_anim.
-         * <P>Type: TEXT</P>
-         */
-        public static final String BOOT_ANIM_URI = "bootanim_uri";
-
-        /**
-         * URI to an image of the status bar for this theme.
-         * <P>Type: TEXT</P>
-         */
-        public static final String STATUSBAR_URI = "status_uri";
-
-        /**
-         * URI to an image of the fonts in this theme.
-         * <P>Type: TEXT</P>
-         */
-        public static final String FONT_URI = "font_uri";
-
-        /**
-         * URI to an image of the fonts in this theme.
-         * <P>Type: TEXT</P>
-         */
-        public static final String ICON_URI = "icon_uri";
-
-        /**
-         * URI to an image of the fonts in this theme.
-         * <P>Type: TEXT</P>
-         */
-        public static final String OVERLAYS_URI = "overlays_uri";
-
-        /**
-         * 1 if theme modifies the launcher/homescreen else 0
-         * <P>Type: INTEGER</P>
-         * <P>Default: 0</P>
-         */
-        public static final String MODIFIES_LAUNCHER = "mods_homescreen";
-
-        /**
-         * 1 if theme modifies the lockscreen else 0
-         * <P>Type: INTEGER</P>
-         * <P>Default: 0</P>
-         */
-        public static final String MODIFIES_LOCKSCREEN = "mods_lockscreen";
-
-        /**
-         * 1 if theme modifies icons else 0
-         * <P>Type: INTEGER</P>
-         * <P>Default: 0</P>
-         */
-        public static final String MODIFIES_ICONS = "mods_icons";
-
-        /**
-         * 1 if theme modifies fonts
-         * <P>Type: INTEGER</P>
-         * <P>Default: 0</P>
-         */
-        public static final String MODIFIES_FONTS = "mods_fonts";
-
-        /**
-         * 1 if theme modifies boot animation
-         * <P>Type: INTEGER</P>
-         * <P>Default: 0</P>
-         */
-        public static final String MODIFIES_BOOT_ANIM = "mods_bootanim";
-
-        /**
-         * 1 if theme modifies notifications
-         * <P>Type: INTEGER</P>
-         * <P>Default: 0</P>
-         */
-        public static final String MODIFIES_NOTIFICATIONS = "mods_notifications";
-
-        /**
-         * 1 if theme modifies alarm sounds
-         * <P>Type: INTEGER</P>
-         * <P>Default: 0</P>
-         */
-        public static final String MODIFIES_ALARMS = "mods_alarms";
-
-        /**
-         * 1 if theme modifies ringtones
-         * <P>Type: INTEGER</P>
-         * <P>Default: 0</P>
-         */
-        public static final String MODIFIES_RINGTONES = "mods_ringtones";
-
-        /**
-         * 1 if theme has overlays
-         * <P>Type: INTEGER</P>
-         * <P>Default: 0</P>
-         */
-        public static final String MODIFIES_OVERLAYS = "mods_overlays";
-
-        /**
-         * 1 if theme has an overlay for SystemUI/StatusBar
-         * <P>Type: INTEGER</P>
-         * <P>Default: 0</P>
-         */
-        public static final String MODIFIES_STATUS_BAR = "mods_status_bar";
-
-        /**
-         * 1 if theme has an overlay for SystemUI/NavBar
-         * <P>Type: INTEGER</P>
-         * <P>Default: 0</P>
-         */
-        public static final String MODIFIES_NAVIGATION_BAR = "mods_navigation_bar";
-
-        /**
-         * 1 if theme has a live lock screen
-         * <P>Type: INTEGER</P>
-         * <P>Default: 0</P>
-         */
-        public static final String MODIFIES_LIVE_LOCK_SCREEN = "mods_live_lock_screen";
-
-        /**
-         * URI to the theme's wallpaper. We should support multiple wallpaper
-         * but for now we will just have 1.
-         * <P>Type: TEXT</P>
-         */
-        public static final String WALLPAPER_URI = "wallpaper_uri";
-
-        /**
-         * 1 if this row should actually be presented as a theme to the user.
-         * For example if a "theme" only modifies one component (ex icons) then
-         * we do not present it to the user under the themes table.
-         * <P>Type: INTEGER</P>
-         * <P>Default: 0</P>
-         */
-        public static final String PRESENT_AS_THEME = "present_as_theme";
-
-        /**
-         * 1 if this theme is a legacy theme.
-         * <P>Type: INTEGER</P>
-         * <P>Default: 0</P>
-         */
-        public static final String IS_LEGACY_THEME = "is_legacy_theme";
-
-        /**
-         * 1 if this theme is the system default theme.
-         * <P>Type: INTEGER</P>
-         * <P>Default: 0</P>
-         */
-        public static final String IS_DEFAULT_THEME = "is_default_theme";
-
-        /**
-         * 1 if this theme is a legacy iconpack. A legacy icon pack is an APK that was written
-         * for Trebuchet or a 3rd party launcher.
-         * <P>Type: INTEGER</P>
-         * <P>Default: 0</P>
-         */
-        public static final String IS_LEGACY_ICONPACK = "is_legacy_iconpack";
-
-        /**
-         * install/update time in millisecs. When the row is inserted this column
-         * is populated by the PackageInfo. It is used for syncing to PM
-         * <P>Type: INTEGER</P>
-         * <P>Default: 0</P>
-         */
-        public static final String LAST_UPDATE_TIME = "updateTime";
-
-        /**
-         * install time in millisecs. When the row is inserted this column
-         * is populated by the PackageInfo.
-         * <P>Type: INTEGER</P>
-         * <P>Default: 0</P>
-         */
-        public static final String INSTALL_TIME = "install_time";
-
-        /**
-         * The target API this theme supports
-         * is populated by the PackageInfo.
-         * <P>Type: INTEGER</P>
-         * <P>Default: 0</P>
-         */
-        public static final String TARGET_API = "target_api";
-
-        /**
-         * The install state of the theme.
-         * Can be one of the following:
-         * {@link InstallState#UNKNOWN}
-         * {@link InstallState#INSTALLING}
-         * {@link InstallState#UPDATING}
-         * {@link InstallState#INSTALLED}
-         * <P>Type: INTEGER</P>
-         * <P>Default: 0</P>
-         */
-        public static final String INSTALL_STATE = "install_state";
-
-        public static class InstallState {
-            public static final int UNKNOWN = 0;
-            public static final int INSTALLING = 1;
-            public static final int UPDATING = 2;
-            public static final int INSTALLED = 3;
-        }
-    }
-
-    /**
-     * Key-value table which assigns a component (ex wallpaper) to a theme's package
-     */
-    public static class MixnMatchColumns {
-        public static final Uri CONTENT_URI = Uri.withAppendedPath(AUTHORITY_URI, "mixnmatch");
-
-        /**
-         * The unique key for a row. See the KEY_* constants
-         * for valid examples
-         * <P>Type: TEXT</P>
-         */
-        public static final String COL_KEY = "key";
-
-        /**
-         * The package name that corresponds to a given component.
-         * <P>Type: String</P>
-         */
-        public static final String COL_VALUE = "value";
-
-        /**
-         * The package name that corresponds to where this component was applied from previously
-         * <P>Type: String</P>
-         */
-        public static final String COL_PREV_VALUE = "previous_value";
-
-        /**
-         * Time when this entry was last updated
-         * <P>Type: INTEGER</P>
-         */
-        public static final String COL_UPDATE_TIME = "update_time";
-
-        /*
-         * The unique ID for the component within a theme.
-         * Always 0 unless multiples of a component exist.
-         * <P>Type: INTEGER (long)</P>
-         */
-        public static final String COL_COMPONENT_ID = "component_id";
-
-        /**
-         * Valid keys
-         */
-        public static final String KEY_HOMESCREEN = "mixnmatch_homescreen";
-        public static final String KEY_LOCKSCREEN = "mixnmatch_lockscreen";
-        public static final String KEY_ICONS = "mixnmatch_icons";
-        public static final String KEY_STATUS_BAR = "mixnmatch_status_bar";
-        public static final String KEY_BOOT_ANIM = "mixnmatch_boot_anim";
-        public static final String KEY_FONT = "mixnmatch_font";
-        public static final String KEY_ALARM = "mixnmatch_alarm";
-        public static final String KEY_NOTIFICATIONS = "mixnmatch_notifications";
-        public static final String KEY_RINGTONE = "mixnmatch_ringtone";
-        public static final String KEY_OVERLAYS = "mixnmatch_overlays";
-        public static final String KEY_NAVIGATION_BAR = "mixnmatch_navigation_bar";
-        public static final String KEY_LIVE_LOCK_SCREEN = "mixnmatch_live_lock_screen";
-
-        public static final String[] ROWS = { KEY_HOMESCREEN,
-            KEY_LOCKSCREEN,
-            KEY_ICONS,
-            KEY_STATUS_BAR,
-            KEY_BOOT_ANIM,
-            KEY_FONT,
-            KEY_NOTIFICATIONS,
-            KEY_RINGTONE,
-            KEY_ALARM,
-            KEY_OVERLAYS,
-            KEY_NAVIGATION_BAR,
-            KEY_LIVE_LOCK_SCREEN
-        };
-
-        /**
-         * For a given key value in the MixNMatch table, return the column
-         * associated with it in the Themes Table. This is useful for URI based
-         * elements like wallpaper where the caller wishes to determine the
-         * wallpaper URI.
-         */
-        public static String componentToImageColName(String component) {
-            if (component.equals(MixnMatchColumns.KEY_HOMESCREEN)) {
-                return ThemesColumns.HOMESCREEN_URI;
-            } else if (component.equals(MixnMatchColumns.KEY_LOCKSCREEN)) {
-                return ThemesColumns.LOCKSCREEN_URI;
-            } else if (component.equals(MixnMatchColumns.KEY_BOOT_ANIM)) {
-                return ThemesColumns.BOOT_ANIM_URI;
-            } else if (component.equals(MixnMatchColumns.KEY_FONT)) {
-                return ThemesColumns.FONT_URI;
-            } else if (component.equals(MixnMatchColumns.KEY_ICONS)) {
-                return ThemesColumns.ICON_URI;
-            } else if (component.equals(MixnMatchColumns.KEY_STATUS_BAR)) {
-                return ThemesColumns.STATUSBAR_URI;
-            } else if (component.equals(MixnMatchColumns.KEY_NOTIFICATIONS)) {
-                throw new IllegalArgumentException("Notifications mixnmatch component does not have a related column");
-            } else if (component.equals(MixnMatchColumns.KEY_RINGTONE)) {
-                throw new IllegalArgumentException("Ringtone mixnmatch component does not have a related column");
-            } else if (component.equals(MixnMatchColumns.KEY_OVERLAYS)) {
-                return ThemesColumns.OVERLAYS_URI;
-            } else if (component.equals(MixnMatchColumns.KEY_ALARM)) {
-                throw new IllegalArgumentException(
-                        "Alarm mixnmatch component does not have a related column");
-            } else if (component.equals(MixnMatchColumns.KEY_NAVIGATION_BAR)) {
-                throw new IllegalArgumentException(
-                        "Navigation bar mixnmatch component does not have a related column");
-            } else if (component.equals(MixnMatchColumns.KEY_LIVE_LOCK_SCREEN)) {
-                throw new IllegalArgumentException(
-                        "Live lock screen mixnmatch component does not have a related column");
-            }
-            return null;
-        }
-
-        /**
-         * A component in the themes table (IE "mods_wallpaper") has an
-         * equivalent key in mixnmatch table
-         */
-        public static String componentToMixNMatchKey(String component) {
-            if (component.equals(ThemesColumns.MODIFIES_LAUNCHER)) {
-                return MixnMatchColumns.KEY_HOMESCREEN;
-            } else if (component.equals(ThemesColumns.MODIFIES_ICONS)) {
-                return MixnMatchColumns.KEY_ICONS;
-            } else if (component.equals(ThemesColumns.MODIFIES_LOCKSCREEN)) {
-                return MixnMatchColumns.KEY_LOCKSCREEN;
-            } else if (component.equals(ThemesColumns.MODIFIES_FONTS)) {
-                return MixnMatchColumns.KEY_FONT;
-            } else if (component.equals(ThemesColumns.MODIFIES_BOOT_ANIM)) {
-                return MixnMatchColumns.KEY_BOOT_ANIM;
-            } else if (component.equals(ThemesColumns.MODIFIES_ALARMS)) {
-                return MixnMatchColumns.KEY_ALARM;
-            } else if (component.equals(ThemesColumns.MODIFIES_NOTIFICATIONS)) {
-                return MixnMatchColumns.KEY_NOTIFICATIONS;
-            } else if (component.equals(ThemesColumns.MODIFIES_RINGTONES)) {
-                return MixnMatchColumns.KEY_RINGTONE;
-            } else if (component.equals(ThemesColumns.MODIFIES_OVERLAYS)) {
-                return MixnMatchColumns.KEY_OVERLAYS;
-            } else if (component.equals(ThemesColumns.MODIFIES_STATUS_BAR)) {
-                return MixnMatchColumns.KEY_STATUS_BAR;
-            } else if (component.equals(ThemesColumns.MODIFIES_NAVIGATION_BAR)) {
-                return MixnMatchColumns.KEY_NAVIGATION_BAR;
-            } else if (component.equals(ThemesColumns.MODIFIES_LIVE_LOCK_SCREEN)) {
-                return MixnMatchColumns.KEY_LIVE_LOCK_SCREEN;
-            }
-            return null;
-        }
-
-        /**
-         * A mixnmatch key in has an
-         * equivalent value in the themes table
-         */
-        public static String mixNMatchKeyToComponent(String mixnmatchKey) {
-            if (mixnmatchKey.equals(MixnMatchColumns.KEY_HOMESCREEN)) {
-                return ThemesColumns.MODIFIES_LAUNCHER;
-            } else if (mixnmatchKey.equals(MixnMatchColumns.KEY_ICONS)) {
-                return ThemesColumns.MODIFIES_ICONS;
-            } else if (mixnmatchKey.equals(MixnMatchColumns.KEY_LOCKSCREEN)) {
-                return ThemesColumns.MODIFIES_LOCKSCREEN;
-            } else if (mixnmatchKey.equals(MixnMatchColumns.KEY_FONT)) {
-                return ThemesColumns.MODIFIES_FONTS;
-            } else if (mixnmatchKey.equals(MixnMatchColumns.KEY_BOOT_ANIM)) {
-                return ThemesColumns.MODIFIES_BOOT_ANIM;
-            } else if (mixnmatchKey.equals(MixnMatchColumns.KEY_ALARM)) {
-                return ThemesColumns.MODIFIES_ALARMS;
-            } else if (mixnmatchKey.equals(MixnMatchColumns.KEY_NOTIFICATIONS)) {
-                return ThemesColumns.MODIFIES_NOTIFICATIONS;
-            } else if (mixnmatchKey.equals(MixnMatchColumns.KEY_RINGTONE)) {
-                return ThemesColumns.MODIFIES_RINGTONES;
-            } else if (mixnmatchKey.equals(MixnMatchColumns.KEY_OVERLAYS)) {
-                return ThemesColumns.MODIFIES_OVERLAYS;
-            } else if (mixnmatchKey.equals(MixnMatchColumns.KEY_STATUS_BAR)) {
-                return ThemesColumns.MODIFIES_STATUS_BAR;
-            } else if (mixnmatchKey.equals(MixnMatchColumns.KEY_NAVIGATION_BAR)) {
-                return ThemesColumns.MODIFIES_NAVIGATION_BAR;
-            } else if (mixnmatchKey.equals(MixnMatchColumns.KEY_LIVE_LOCK_SCREEN)) {
-                return ThemesColumns.MODIFIES_LIVE_LOCK_SCREEN;
-            }
-            return null;
-        }
-    }
-
-    /**
-     * Table containing cached preview files for a given theme
-     */
-    public static class PreviewColumns {
-        /**
-         * Uri for retrieving the previews table.
-         * Querying the themes provider using this URI will return a cursor with a key and value
-         * columns, and a row for each component.
-         */
-        public static final Uri CONTENT_URI = Uri.withAppendedPath(AUTHORITY_URI, "previews");
-
-        /**
-         * Uri for retrieving the previews for the currently applied components.
-         * Querying the themes provider using this URI will return a cursor with a single row
-         * containing all the previews for the components that are currently applied.
-         */
-        public static final Uri APPLIED_URI = Uri.withAppendedPath(AUTHORITY_URI,
-                "applied_previews");
-
-        /**
-         * Uri for retrieving the default previews for the theme.
-         * Querying the themes provider using this URI will return a cursor with a single row
-         * containing all the previews for the default components of the current theme.
-         */
-        public static final Uri COMPONENTS_URI = Uri.withAppendedPath(AUTHORITY_URI,
-                "components_previews");
-
-        /**
-         * The unique ID for a row.
-         * <P>Type: INTEGER (long)</P>
-         */
-        public static final String _ID = "_id";
-
-        /**
-         * The unique ID for the theme these previews belong to.
-         * <P>Type: INTEGER (long)</P>
-         */
-        public static final String THEME_ID = "theme_id";
-
-        /**
-         * The unique ID for the component within a theme.
-         * <P>Type: INTEGER (long)</P>
-         */
-        public static final String COMPONENT_ID = "component_id";
-
-        /**
-         * The unique key for a row. See the Valid key constants section below
-         * for valid examples
-         * <P>Type: TEXT</P>
-         */
-        public static final String COL_KEY = "key";
-
-        /**
-         * The package name that corresponds to a given component.
-         * <P>Type: String</P>
-         */
-        public static final String COL_VALUE = "value";
-
-        /**
-         * Valid keys
-         */
-
-        /**
-         * Cached image of the themed status bar background.
-         * <P>Type: String (file path)</P>
-         */
-        public static final String STATUSBAR_BACKGROUND = "statusbar_background";
-
-        /**
-         * Cached image of the themed bluetooth status icon.
-         * <P>Type: String (file path)</P>
-         */
-        public static final String STATUSBAR_BLUETOOTH_ICON = "statusbar_bluetooth_icon";
-
-        /**
-         * Cached image of the themed wifi status icon.
-         * <P>Type: String (file path)</P>
-         */
-        public static final String STATUSBAR_WIFI_ICON = "statusbar_wifi_icon";
-
-        /**
-         * Cached image of the themed cellular signal status icon.
-         * <P>Type: String (file path)</P>
-         */
-        public static final String STATUSBAR_SIGNAL_ICON = "statusbar_signal_icon";
-
-        /**
-         * Cached image of the themed battery using portrait style.
-         * <P>Type: String (file path)</P>
-         */
-        public static final String STATUSBAR_BATTERY_PORTRAIT = "statusbar_battery_portrait";
-
-        /**
-         * Cached image of the themed battery using landscape style.
-         * <P>Type: String (file path)</P>
-         */
-        public static final String STATUSBAR_BATTERY_LANDSCAPE = "statusbar_battery_landscape";
-
-        /**
-         * Cached image of the themed battery using circle style.
-         * <P>Type: String (file path)</P>
-         */
-        public static final String STATUSBAR_BATTERY_CIRCLE = "statusbar_battery_circle";
-
-        /**
-         * The themed color used for clock text in the status bar.
-         * <P>Type: INTEGER (int)</P>
-         */
-        public static final String STATUSBAR_CLOCK_TEXT_COLOR = "statusbar_clock_text_color";
-
-        /**
-         * The themed margin value between the wifi and rssi signal icons.
-         * <P>Type: INTEGER (int)</P>
-         */
-        public static final String STATUSBAR_WIFI_COMBO_MARGIN_END = "wifi_combo_margin_end";
-
-        /**
-         * Cached image of the themed navigation bar background.
-         * <P>Type: String (file path)</P>
-         */
-        public static final String NAVBAR_BACKGROUND = "navbar_background";
-
-        /**
-         * Cached image of the themed back button.
-         * <P>Type: String (file path)</P>
-         */
-        public static final String NAVBAR_BACK_BUTTON = "navbar_back_button";
-
-        /**
-         * Cached image of the themed home button.
-         * <P>Type: String (file path)</P>
-         */
-        public static final String NAVBAR_HOME_BUTTON = "navbar_home_button";
-
-        /**
-         * Cached image of the themed recents button.
-         * <P>Type: String (file path)</P>
-         */
-        public static final String NAVBAR_RECENT_BUTTON = "navbar_recent_button";
-
-        /**
-         * Cached image of the 1/3 icons
-         * <P>Type: String (file path)</P>
-         */
-        public static final String ICON_PREVIEW_1 = "icon_preview_1";
-
-        /**
-         * Cached image of the 2/3 icons
-         * <P>Type: String (file path)</P>
-         */
-        public static final String ICON_PREVIEW_2 = "icon_preview_2";
-
-        /**
-         * Cached image of the 3/3 icons
-         * <P>Type: String (file path)</P>
-         */
-        public static final String ICON_PREVIEW_3 = "icon_preview_3";
-
-        /**
-         * Full path to the theme's wallpaper asset.
-         * <P>Type: String (file path)</P>
-         */
-        public static final String WALLPAPER_FULL = "wallpaper_full";
-
-        /**
-         * Cached preview of the theme's wallpaper which is larger than the thumbnail
-         * but smaller than the full sized wallpaper.
-         * <P>Type: String (file path)</P>
-         */
-        public static final String WALLPAPER_PREVIEW = "wallpaper_preview";
-
-        /**
-         * Cached thumbnail of the theme's wallpaper
-         * <P>Type: String (file path)</P>
-         */
-        public static final String WALLPAPER_THUMBNAIL = "wallpaper_thumbnail";
-
-        /**
-         * Cached preview of the theme's lockscreen  wallpaper which is larger than the thumbnail
-         * but smaller than the full sized lockscreen wallpaper.
-         * <P>Type: String (file path)</P>
-         */
-        public static final String LOCK_WALLPAPER_PREVIEW = "lock_wallpaper_preview";
-
-        /**
-         * Cached thumbnail of the theme's lockscreen wallpaper
-         * <P>Type: String (file path)</P>
-         */
-        public static final String LOCK_WALLPAPER_THUMBNAIL = "lock_wallpaper_thumbnail";
-
-        /**
-         * Cached preview of UI controls representing the theme's style
-         * <P>Type: String (file path)</P>
-         */
-        public static final String STYLE_PREVIEW = "style_preview";
-
-        /**
-         * Cached thumbnail preview of UI controls representing the theme's style
-         * <P>Type: String (file path)</P>
-         */
-        public static final String STYLE_THUMBNAIL = "style_thumbnail";
-
-        /**
-         * Cached thumbnail of the theme's boot animation
-         * <P>Type: String (file path)</P>
-         */
-        public static final String BOOTANIMATION_THUMBNAIL = "bootanimation_thumbnail";
-
-        /**
-         * Cached preview of live lock screen
-         * <P>Type: String (file path)</P>
-         */
-        public static final String LIVE_LOCK_SCREEN_PREVIEW = "live_lock_screen_preview";
-
-        /**
-         * Cached thumbnail preview of live lock screen
-         * <P>Type: String (file path)</P>
-         */
-        public static final String LIVE_LOCK_SCREEN_THUMBNAIL = "live_lock_screen_thumbnail";
-
-        public static final String[] VALID_KEYS = {
-            STATUSBAR_BACKGROUND,
-            STATUSBAR_BLUETOOTH_ICON,
-            STATUSBAR_WIFI_ICON,
-            STATUSBAR_SIGNAL_ICON,
-            STATUSBAR_BATTERY_PORTRAIT,
-            STATUSBAR_BATTERY_LANDSCAPE,
-            STATUSBAR_BATTERY_CIRCLE,
-            STATUSBAR_CLOCK_TEXT_COLOR,
-            STATUSBAR_WIFI_COMBO_MARGIN_END,
-            NAVBAR_BACKGROUND,
-            NAVBAR_BACK_BUTTON,
-            NAVBAR_HOME_BUTTON,
-            NAVBAR_RECENT_BUTTON,
-            ICON_PREVIEW_1,
-            ICON_PREVIEW_2,
-            ICON_PREVIEW_3,
-            WALLPAPER_FULL,
-            WALLPAPER_PREVIEW,
-            WALLPAPER_THUMBNAIL,
-            LOCK_WALLPAPER_PREVIEW,
-            LOCK_WALLPAPER_THUMBNAIL,
-            STYLE_PREVIEW,
-            STYLE_THUMBNAIL,
-            BOOTANIMATION_THUMBNAIL,
-            LIVE_LOCK_SCREEN_PREVIEW,
-            LIVE_LOCK_SCREEN_THUMBNAIL,
-        };
-    }
-
-    public static class ThemeMixColumns {
-        /**
-         * Uri for accessing theme mixes
-         */
-        public static final Uri CONTENT_URI = Uri.withAppendedPath(AUTHORITY_URI, "theme_mixes");
-
-        /**
-         * Uri for retrieving the previews for the a theme mix.
-         * Querying the themes provider using this URI will return a cursor with a single row
-         * containing all the previews for the components associated with the given theme mix.
-         */
-        public static final Uri PREVIEWS_URI = Uri.withAppendedPath(AUTHORITY_URI,
-                "theme_mix_previews");
-
-        /**
-         * The unique ID for a row.
-         * <P>Type: INTEGER (long)</P>
-         */
-        public static final String _ID = "_id";
-
-        /**
-         * The name of this mix.
-         * <P>Type: TEXT</P>
-         */
-        public static final String TITLE = "title";
-
-    }
-
-    public static class ThemeMixEntryColumns {
-        /**
-         * Uri for accessing theme mix entries.
-         * These are the individual components associated with the saved theme mixes.
-         */
-        public static final Uri CONTENT_URI =
-                Uri.withAppendedPath(AUTHORITY_URI, "theme_mix_entries");
-
-        /**
-         * The unique ID for a row.
-         * <P>Type: INTEGER (long)</P>
-         */
-        public static final String _ID = "_id";
-
-        /**
-         * The unique ID of the theme mix this entry is for
-         * <P>Type: INTEGER (long)</P>
-         */
-        public static final String THEME_MIX_ID = "theme_mix_id";
-
-        /**
-         * The component type this entry is associated with
-         * <P>Type: TEXT</P>
-         * <P>Valid types are:
-         * {@link ThemesColumns#MODIFIES_ALARMS}
-         * {@link ThemesColumns#MODIFIES_BOOT_ANIM}
-         * {@link ThemesColumns#MODIFIES_FONTS}
-         * {@link ThemesColumns#MODIFIES_ICONS}
-         * {@link ThemesColumns#MODIFIES_LAUNCHER}</P>
-         * {@link ThemesColumns#MODIFIES_LIVE_LOCK_SCREEN}
-         * {@link ThemesColumns#MODIFIES_LOCKSCREEN}
-         * {@link ThemesColumns#MODIFIES_NAVIGATION_BAR}
-         * {@link ThemesColumns#MODIFIES_NOTIFICATIONS}
-         * {@link ThemesColumns#MODIFIES_OVERLAYS}
-         * {@link ThemesColumns#MODIFIES_RINGTONES}
-         * {@link ThemesColumns#MODIFIES_STATUS_BAR}
-         */
-        public static final String COMPONENT_TYPE = "component_type";
-
-        /*
-         * The unique ID for the component within a theme.
-         * Always 0 unless multiples of a component exist.
-         * <P>Type: INTEGER (long)</P>
-         */
-        public static final String COMPONENT_ID = "component_id";
-
-        /**
-         * Unique text to identify the theme package associated with this entry.
-         * <P>Type: TEXT</P>
-         */
-        public static final String PACKAGE_NAME = "package_name";
-
-        /**
-         * The name of the theme associated with this entry.
-         * <P>Type: TEXT</P>
-         */
-        public static final String THEME_NAME = "theme_name";
-
-        /**
-         * Whether the theme associated with this entry is currently installed.
-         * <P>Type: INTEGER (0|1)</P>
-         */
-        public static final String IS_INSTALLED = "installed";
-    }
-}
diff --git a/sdk/src/java/lineageos/themes/IThemeChangeListener.aidl b/sdk/src/java/lineageos/themes/IThemeChangeListener.aidl
deleted file mode 100644
index 565bcb9..0000000
--- a/sdk/src/java/lineageos/themes/IThemeChangeListener.aidl
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Copyright (C) 2014-2016 The CyanogenMod 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 lineageos.themes;
-
-/** {@hide} */
-oneway interface IThemeChangeListener {
-    void onProgress(int progress);
-    void onFinish(boolean isSuccess);
-}
diff --git a/sdk/src/java/lineageos/themes/IThemeProcessingListener.aidl b/sdk/src/java/lineageos/themes/IThemeProcessingListener.aidl
deleted file mode 100644
index f8e79bf..0000000
--- a/sdk/src/java/lineageos/themes/IThemeProcessingListener.aidl
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Copyright (C) 2014-2016 The CyanogenMod 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 lineageos.themes;
-
-/** {@hide} */
-oneway interface IThemeProcessingListener {
-    void onFinishedProcessing(String pkgName);
-}
diff --git a/sdk/src/java/lineageos/themes/IThemeService.aidl b/sdk/src/java/lineageos/themes/IThemeService.aidl
deleted file mode 100644
index 39e1c6e..0000000
--- a/sdk/src/java/lineageos/themes/IThemeService.aidl
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (C) 2014-2016 The CyanogenMod 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 lineageos.themes;
-
-import lineageos.themes.IThemeChangeListener;
-import lineageos.themes.IThemeProcessingListener;
-import lineageos.themes.ThemeChangeRequest;
-
-import java.util.Map;
-
-/** {@hide} */
-interface IThemeService {
-    oneway void requestThemeChangeUpdates(in IThemeChangeListener listener);
-    oneway void removeUpdates(in IThemeChangeListener listener);
-
-    oneway void requestThemeChange(in ThemeChangeRequest request, boolean removePerAppThemes);
-    oneway void applyDefaultTheme();
-    boolean isThemeApplying();
-    int getProgress();
-
-    boolean processThemeResources(String themePkgName);
-    boolean isThemeBeingProcessed(String themePkgName);
-    oneway void registerThemeProcessingListener(in IThemeProcessingListener listener);
-    oneway void unregisterThemeProcessingListener(in IThemeProcessingListener listener);
-
-    oneway void rebuildResourceCache();
-
-    long getLastThemeChangeTime();
-    int getLastThemeChangeRequestType();
-}
diff --git a/sdk/src/java/lineageos/themes/ThemeChangeRequest.aidl b/sdk/src/java/lineageos/themes/ThemeChangeRequest.aidl
deleted file mode 100644
index aaa9019..0000000
--- a/sdk/src/java/lineageos/themes/ThemeChangeRequest.aidl
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * Copyright (C) 2015-2016 The CyanogenMod 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 lineageos.themes;
-
-parcelable ThemeChangeRequest;
diff --git a/sdk/src/java/lineageos/themes/ThemeChangeRequest.java b/sdk/src/java/lineageos/themes/ThemeChangeRequest.java
deleted file mode 100644
index aaba4f0..0000000
--- a/sdk/src/java/lineageos/themes/ThemeChangeRequest.java
+++ /dev/null
@@ -1,324 +0,0 @@
-/*
- * Copyright (C) 2015-2016 The CyanogenMod 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 lineageos.themes;
-
-//import android.content.pm.ThemeUtils;
-import android.content.res.ThemeConfig;
-import android.os.Parcel;
-import android.os.Parcelable;
-
-import lineageos.os.Concierge;
-import lineageos.os.Concierge.ParcelInfo;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-
-import static lineageos.providers.ThemesContract.ThemesColumns.*;
-
-public final class ThemeChangeRequest implements Parcelable {
-    public static final int DEFAULT_WALLPAPER_ID = -1;
-
-    private final Map<String, String> mThemeComponents = new HashMap<>();
-    private final Map<String, String> mPerAppOverlays = new HashMap<>();
-    private RequestType mRequestType;
-    private long mWallpaperId = -1;
-
-    public String getOverlayThemePackageName() {
-        return getThemePackageNameForComponent(MODIFIES_OVERLAYS);
-    }
-
-    public String getStatusBarThemePackageName() {
-        return getThemePackageNameForComponent(MODIFIES_STATUS_BAR);
-    }
-
-    public String getNavBarThemePackageName() {
-        return getThemePackageNameForComponent(MODIFIES_NAVIGATION_BAR);
-    }
-
-    public String getFontThemePackageName() {
-        return getThemePackageNameForComponent(MODIFIES_FONTS);
-    }
-
-    public String getIconsThemePackageName() {
-        return getThemePackageNameForComponent(MODIFIES_ICONS);
-    }
-
-    public String getBootanimationThemePackageName() {
-        return getThemePackageNameForComponent(MODIFIES_BOOT_ANIM);
-    }
-
-    public String getWallpaperThemePackageName() {
-        return getThemePackageNameForComponent(MODIFIES_LAUNCHER);
-    }
-
-    public String getLockWallpaperThemePackageName() {
-        return getThemePackageNameForComponent(MODIFIES_LOCKSCREEN);
-    }
-
-    public String getAlarmThemePackageName() {
-        return getThemePackageNameForComponent(MODIFIES_ALARMS);
-    }
-
-    public String getNotificationThemePackageName() {
-        return getThemePackageNameForComponent(MODIFIES_NOTIFICATIONS);
-    }
-
-    public String getRingtoneThemePackageName() {
-        return getThemePackageNameForComponent(MODIFIES_RINGTONES);
-    }
-
-    public String getLiveLockScreenThemePackageName() {
-        return getThemePackageNameForComponent(MODIFIES_LIVE_LOCK_SCREEN);
-    }
-
-    public final Map<String, String> getThemeComponentsMap() {
-        return Collections.unmodifiableMap(mThemeComponents);
-    }
-
-    public long getWallpaperId() {
-        return mWallpaperId;
-    }
-
-    /**
-     * Get the mapping for per app themes
-     * @return A mapping of apps and the theme to apply for each one. or null if none set.
-     */
-    public final Map<String, String> getPerAppOverlays() {
-        return Collections.unmodifiableMap(mPerAppOverlays);
-    }
-
-    public int getNumChangesRequested() {
-        return mThemeComponents.size() + mPerAppOverlays.size();
-    }
-
-    public RequestType getReqeustType() {
-        return mRequestType;
-    }
-
-    private String getThemePackageNameForComponent(String componentName) {
-        return mThemeComponents.get(componentName);
-    }
-
-    private ThemeChangeRequest(Map<String, String> components, Map<String, String> perAppThemes,
-            RequestType requestType, long wallpaperId) {
-        if (components != null) {
-            mThemeComponents.putAll(components);
-        }
-        if (perAppThemes != null) {
-            mPerAppOverlays.putAll(perAppThemes);
-        }
-        mRequestType = requestType;
-        mWallpaperId = wallpaperId;
-    }
-
-    private ThemeChangeRequest(Parcel source) {
-        // Read parcelable version via the Concierge
-        ParcelInfo parcelInfo = Concierge.receiveParcel(source);
-        int parcelableVersion = parcelInfo.getParcelVersion();
-
-        int numComponents = source.readInt();
-        for (int i = 0; i < numComponents; i++) {
-            mThemeComponents.put(source.readString(), source.readString());
-        }
-
-        numComponents = source.readInt();
-        for (int i = 0 ; i < numComponents; i++) {
-            mPerAppOverlays.put(source.readString(), source.readString());
-        }
-        mRequestType = RequestType.values()[source.readInt()];
-        mWallpaperId = source.readLong();
-
-        // Complete parcel info for the concierge
-        parcelInfo.complete();
-    }
-
-    @Override
-    public int describeContents() {
-        return 0;
-    }
-
-    @Override
-    public void writeToParcel(Parcel dest, int flags) {
-        // Tell the concierge to prepare the parcel
-        ParcelInfo parcelInfo = Concierge.prepareParcel(dest);
-
-        dest.writeInt(mThemeComponents.size());
-        for (String component : mThemeComponents.keySet()) {
-            dest.writeString(component);
-            dest.writeString(mThemeComponents.get(component));
-        }
-        dest.writeInt((mPerAppOverlays.size()));
-        for (String appPkgName : mPerAppOverlays.keySet()) {
-            dest.writeString(appPkgName);
-            dest.writeString(mPerAppOverlays.get(appPkgName));
-        }
-        dest.writeInt(mRequestType.ordinal());
-        dest.writeLong(mWallpaperId);
-
-        // Complete the parcel info for the concierge
-        parcelInfo.complete();
-    }
-
-    public static final Parcelable.Creator<ThemeChangeRequest> CREATOR =
-            new Parcelable.Creator<ThemeChangeRequest>() {
-                @Override
-                public ThemeChangeRequest createFromParcel(Parcel source) {
-                    return new ThemeChangeRequest(source);
-                }
-
-                @Override
-                public ThemeChangeRequest[] newArray(int size) {
-                    return new ThemeChangeRequest[size];
-                }
-            };
-
-    public enum RequestType {
-        USER_REQUEST,
-        USER_REQUEST_MIXNMATCH,
-        THEME_UPDATED,
-        THEME_REMOVED,
-        THEME_RESET
-    }
-
-    public static class Builder {
-        Map<String, String> mThemeComponents = new HashMap<>();
-        Map<String, String> mPerAppOverlays = new HashMap<>();
-        RequestType mRequestType = RequestType.USER_REQUEST;
-        long mWallpaperId;
-
-        public Builder() {}
-
-        public Builder(ThemeConfig themeConfig) {
-            if (themeConfig != null) {
-                buildChangeRequestFromThemeConfig(themeConfig);
-            }
-        }
-
-        public Builder setOverlay(String pkgName) {
-            return setComponent(MODIFIES_OVERLAYS, pkgName);
-        }
-
-        public Builder setStatusBar(String pkgName) {
-            return setComponent(MODIFIES_STATUS_BAR, pkgName);
-        }
-
-        public Builder setNavBar(String pkgName) {
-            return setComponent(MODIFIES_NAVIGATION_BAR, pkgName);
-        }
-
-        public Builder setFont(String pkgName) {
-            return setComponent(MODIFIES_FONTS, pkgName);
-        }
-
-        public Builder setIcons(String pkgName) {
-            return setComponent(MODIFIES_ICONS, pkgName);
-        }
-
-        public Builder setBootanimation(String pkgName) {
-            return setComponent(MODIFIES_BOOT_ANIM, pkgName);
-        }
-
-        public Builder setWallpaper(String pkgName) {
-            return setComponent(MODIFIES_LAUNCHER, pkgName);
-        }
-
-        // Used in the case that more than one wallpaper exists for a given pkg name
-        public Builder setWallpaperId(long id) {
-            mWallpaperId = id;
-            return this;
-        }
-
-        public Builder setLockWallpaper(String pkgName) {
-            return setComponent(MODIFIES_LOCKSCREEN, pkgName);
-        }
-
-        public Builder setAlarm(String pkgName) {
-            return setComponent(MODIFIES_ALARMS, pkgName);
-        }
-
-        public Builder setNotification(String pkgName) {
-            return setComponent(MODIFIES_NOTIFICATIONS, pkgName);
-        }
-
-        public Builder setRingtone(String pkgName) {
-            return setComponent(MODIFIES_RINGTONES, pkgName);
-        }
-
-        public Builder setLiveLockScreen(String pkgName) {
-            return setComponent(MODIFIES_LIVE_LOCK_SCREEN, pkgName);
-        }
-
-        public Builder setComponent(String component, String pkgName) {
-            if (pkgName != null) {
-                mThemeComponents.put(component, pkgName);
-            } else {
-                mThemeComponents.remove(component);
-            }
-            return this;
-        }
-
-        public Builder setAppOverlay(String appPkgName, String themePkgName) {
-            if (appPkgName != null) {
-                if (themePkgName != null) {
-                    mPerAppOverlays.put(appPkgName, themePkgName);
-                } else {
-                    mPerAppOverlays.remove(appPkgName);
-                }
-            }
-
-            return this;
-        }
-
-        public Builder setRequestType(RequestType requestType) {
-            mRequestType = requestType != null ? requestType : RequestType.USER_REQUEST;
-            return this;
-        }
-
-        public ThemeChangeRequest build() {
-            return new ThemeChangeRequest(mThemeComponents, mPerAppOverlays,
-                    mRequestType, mWallpaperId);
-        }
-
-        private void buildChangeRequestFromThemeConfig(ThemeConfig themeConfig) {
-            if (themeConfig.getFontPkgName() != null) {
-                this.setFont(themeConfig.getFontPkgName());
-            }
-            if (themeConfig.getIconPackPkgName() != null) {
-                this.setIcons(themeConfig.getIconPackPkgName());
-            }
-            if (themeConfig.getOverlayPkgName() != null) {
-                this.setOverlay(themeConfig.getOverlayPkgName());
-            }
-            if (themeConfig.getOverlayForStatusBar() != null) {
-                this.setStatusBar(themeConfig.getOverlayForStatusBar());
-            }
-            if (themeConfig.getOverlayForNavBar() != null) {
-                this.setNavBar(themeConfig.getOverlayForNavBar());
-            }
-
-            // Check if there are any per-app overlays using this theme
-            final Map<String, ThemeConfig.AppTheme> themes = themeConfig.getAppThemes();
-            for (String appPkgName : themes.keySet()) {
-                /*
-                if (ThemeUtils.isPerAppThemeComponent(appPkgName)) {
-                    this.setAppOverlay(appPkgName, themes.get(appPkgName).getOverlayPkgName());
-                }
-                */
-            }
-        }
-    }
-}
diff --git a/sdk/src/java/lineageos/themes/ThemeManager.java b/sdk/src/java/lineageos/themes/ThemeManager.java
deleted file mode 100644
index 5671c60..0000000
--- a/sdk/src/java/lineageos/themes/ThemeManager.java
+++ /dev/null
@@ -1,396 +0,0 @@
-/*
- * Copyright (C) 2014-2016 The CyanogenMod 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 lineageos.themes;
-
-import android.content.Context;
-import android.os.Handler;
-import android.os.IBinder;
-import android.os.Looper;
-import android.os.RemoteException;
-import android.os.ServiceManager;
-import android.util.ArraySet;
-import android.util.Log;
-
-import lineageos.app.LineageContextConstants;
-import lineageos.themes.ThemeChangeRequest.RequestType;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * Manages changing and applying of themes.
- * <p>Get an instance of this class by calling blah blah blah</p>
- */
-public class ThemeManager {
-    private static final String TAG = ThemeManager.class.getName();
-    private static IThemeService sService;
-    private static ThemeManager sInstance;
-    private static Handler mHandler;
-
-    private Set<ThemeChangeListener> mChangeListeners = new ArraySet<>();
-
-    private Set<ThemeProcessingListener> mProcessingListeners = new ArraySet<>();
-
-    private ThemeManager(Context context) {
-        sService = getService();
-        if (context.getPackageManager().hasSystemFeature(
-                LineageContextConstants.Features.THEMES) && sService == null) {
-            Log.wtf(TAG, "Unable to get ThemeManagerService. The service either" +
-                    " crashed, was not started, or the interface has been called to early in" +
-                    " SystemServer init");
-        }
-        mHandler = new Handler(Looper.getMainLooper());
-    }
-
-    public static ThemeManager getInstance(Context context) {
-        if (sInstance == null) {
-            sInstance = new ThemeManager(context);
-        }
-
-        return sInstance;
-    }
-
-    /** @hide */
-    public static IThemeService getService() {
-        if (sService != null) {
-            return sService;
-        }
-        IBinder b = ServiceManager.getService(LineageContextConstants.LINEAGE_THEME_SERVICE);
-        if (b != null) {
-            sService = IThemeService.Stub.asInterface(b);
-            return sService;
-        }
-        return null;
-    }
-
-    private final IThemeChangeListener mThemeChangeListener = new IThemeChangeListener.Stub() {
-        @Override
-        public void onProgress(final int progress) throws RemoteException {
-            mHandler.post(new Runnable() {
-                @Override
-                public void run() {
-                    synchronized (mChangeListeners) {
-                        List<ThemeChangeListener> listenersToRemove = new ArrayList<>();
-                        for (ThemeChangeListener listener : mChangeListeners) {
-                            try {
-                                listener.onProgress(progress);
-                            } catch (Throwable e) {
-                                Log.w(TAG, "Unable to update theme change progress", e);
-                                listenersToRemove.add(listener);
-                            }
-                        }
-                        if (listenersToRemove.size() > 0) {
-                            for (ThemeChangeListener listener : listenersToRemove) {
-                                mChangeListeners.remove(listener);
-                            }
-                        }
-                    }
-                }
-            });
-        }
-
-        @Override
-        public void onFinish(final boolean isSuccess) throws RemoteException {
-            mHandler.post(new Runnable() {
-                @Override
-                public void run() {
-                    synchronized (mChangeListeners) {
-                        List<ThemeChangeListener> listenersToRemove = new ArrayList<>();
-                        for (ThemeChangeListener listener : mChangeListeners) {
-                            try {
-                                listener.onFinish(isSuccess);
-                            } catch (Throwable e) {
-                                Log.w(TAG, "Unable to update theme change listener", e);
-                                listenersToRemove.add(listener);
-                            }
-                        }
-                        if (listenersToRemove.size() > 0) {
-                            for (ThemeChangeListener listener : listenersToRemove) {
-                                mChangeListeners.remove(listener);
-                            }
-                        }
-                    }
-                }
-            });
-        }
-    };
-
-    private final IThemeProcessingListener mThemeProcessingListener =
-            new IThemeProcessingListener.Stub() {
-        @Override
-        public void onFinishedProcessing(final String pkgName) throws RemoteException {
-            mHandler.post(new Runnable() {
-                @Override
-                public void run() {
-                    synchronized (mProcessingListeners) {
-                        List<ThemeProcessingListener> listenersToRemove = new ArrayList<>();
-                        for (ThemeProcessingListener listener : mProcessingListeners) {
-                            try {
-                                listener.onFinishedProcessing(pkgName);
-                            } catch (Throwable e) {
-                                Log.w(TAG, "Unable to update theme change progress", e);
-                                listenersToRemove.add(listener);
-                            }
-                        }
-                        if (listenersToRemove.size() > 0) {
-                            for (ThemeProcessingListener listener : listenersToRemove) {
-                                mProcessingListeners.remove(listener);
-                            }
-                        }
-                    }
-                }
-            });
-        }
-    };
-
-
-    /**
-     * @deprecated Use {@link ThemeManager#registerThemeChangeListener(ThemeChangeListener)} instead
-     */
-    @Deprecated
-    public void addClient(ThemeChangeListener listener) {
-        registerThemeChangeListener(listener);
-    }
-
-    /**
-     * @deprecated Use {@link ThemeManager#unregisterThemeChangeListener(ThemeChangeListener)}
-     * instead
-     */
-    @Deprecated
-    public void removeClient(ThemeChangeListener listener) {
-        unregisterThemeChangeListener(listener);
-    }
-
-    /**
-     * @deprecated Use {@link ThemeManager#unregisterThemeChangeListener(ThemeChangeListener)}
-     * instead
-     */
-    @Deprecated
-    public void onClientPaused(ThemeChangeListener listener) {
-        unregisterThemeChangeListener(listener);
-    }
-
-    /**
-     * @deprecated Use {@link ThemeManager#registerThemeChangeListener(ThemeChangeListener)} instead
-     */
-    @Deprecated
-    public void onClientResumed(ThemeChangeListener listener) {
-        registerThemeChangeListener(listener);
-    }
-
-    /**
-     * @deprecated Use {@link ThemeManager#unregisterThemeChangeListener(ThemeChangeListener)}
-     * instead
-     */
-    @Deprecated
-    public void onClientDestroyed(ThemeChangeListener listener) {
-        unregisterThemeChangeListener(listener);
-    }
-
-    /**
-     * Register a {@link ThemeChangeListener} to be notified when a theme is done being processed.
-     * @param listener {@link ThemeChangeListener} to register
-     */
-    public void registerThemeChangeListener(ThemeChangeListener listener) {
-        synchronized (mChangeListeners) {
-            if (mChangeListeners.contains(listener)) {
-                throw new IllegalArgumentException("Listener already registered");
-            }
-            if (mChangeListeners.size() == 0) {
-                try {
-                    sService.requestThemeChangeUpdates(mThemeChangeListener);
-                } catch (RemoteException e) {
-                    Log.w(TAG, "Unable to register listener", e);
-                }
-            }
-            mChangeListeners.add(listener);
-        }
-    }
-
-    /**
-     * Unregister a {@link ThemeChangeListener}
-     * @param listener {@link ThemeChangeListener} to unregister
-     */
-    public void unregisterThemeChangeListener(ThemeChangeListener listener) {
-        synchronized (mChangeListeners) {
-            mChangeListeners.remove(listener);
-            if (mChangeListeners.size() == 0) {
-                try {
-                    sService.removeUpdates(mThemeChangeListener);
-                } catch (RemoteException e) {
-                    Log.w(TAG, "Unable to unregister listener", e);
-                }
-            }
-        }
-    }
-
-    /**
-     * Register a {@link ThemeProcessingListener} to be notified when a theme is done being
-     * processed.
-     * @param listener {@link ThemeProcessingListener} to register
-     */
-    public void registerProcessingListener(ThemeProcessingListener listener) {
-        synchronized (mProcessingListeners) {
-            if (mProcessingListeners.contains(listener)) {
-                throw new IllegalArgumentException("Listener already registered");
-            }
-            if (mProcessingListeners.size() == 0) {
-                try {
-                    sService.registerThemeProcessingListener(mThemeProcessingListener);
-                } catch (RemoteException e) {
-                    Log.w(TAG, "Unable to register listener", e);
-                }
-            }
-            mProcessingListeners.add(listener);
-        }
-    }
-
-    /**
-     * Unregister a {@link ThemeProcessingListener}.
-     * @param listener {@link ThemeProcessingListener} to unregister
-     */
-    public void unregisterProcessingListener(ThemeProcessingListener listener) {
-        synchronized (mProcessingListeners) {
-            mProcessingListeners.remove(listener);
-            if (mProcessingListeners.size() == 0) {
-                try {
-                    sService.unregisterThemeProcessingListener(mThemeProcessingListener);
-                } catch (RemoteException e) {
-                    Log.w(TAG, "Unable to unregister listener", e);
-                }
-            }
-        }
-    }
-
-    public void requestThemeChange(String pkgName, List<String> components) {
-        requestThemeChange(pkgName, components, true);
-    }
-
-    public void requestThemeChange(String pkgName, List<String> components,
-            boolean removePerAppThemes) {
-        Map<String, String> componentMap = new HashMap<>(components.size());
-        for (String component : components) {
-            componentMap.put(component, pkgName);
-        }
-        requestThemeChange(componentMap, removePerAppThemes);
-    }
-
-    public void requestThemeChange(Map<String, String> componentMap) {
-        requestThemeChange(componentMap, true);
-    }
-
-    public void requestThemeChange(Map<String, String> componentMap, boolean removePerAppThemes) {
-        ThemeChangeRequest.Builder builder = new ThemeChangeRequest.Builder();
-        for (String component : componentMap.keySet()) {
-            builder.setComponent(component, componentMap.get(component));
-        }
-
-        requestThemeChange(builder.build(), removePerAppThemes);
-    }
-
-    public void requestThemeChange(ThemeChangeRequest request, boolean removePerAppThemes) {
-        try {
-            sService.requestThemeChange(request, removePerAppThemes);
-        } catch (RemoteException e) {
-            logThemeServiceException(e);
-        }
-    }
-
-    public void applyDefaultTheme() {
-        try {
-            sService.applyDefaultTheme();
-        } catch (RemoteException e) {
-            logThemeServiceException(e);
-        }
-    }
-
-    public boolean isThemeApplying() {
-        try {
-            return sService.isThemeApplying();
-        } catch (RemoteException e) {
-            logThemeServiceException(e);
-        }
-
-        return false;
-    }
-
-    public boolean isThemeBeingProcessed(String themePkgName) {
-        try {
-            return sService.isThemeBeingProcessed(themePkgName);
-        } catch (RemoteException e) {
-            logThemeServiceException(e);
-        }
-        return false;
-    }
-
-    public int getProgress() {
-        try {
-            return sService.getProgress();
-        } catch (RemoteException e) {
-            logThemeServiceException(e);
-        }
-        return -1;
-    }
-
-    public boolean processThemeResources(String themePkgName) {
-        try {
-            return sService.processThemeResources(themePkgName);
-        } catch (RemoteException e) {
-            logThemeServiceException(e);
-        }
-        return false;
-    }
-
-    public long getLastThemeChangeTime() {
-        try {
-            return sService.getLastThemeChangeTime();
-        } catch (RemoteException e) {
-            logThemeServiceException(e);
-        }
-        return 0;
-    }
-
-    public ThemeChangeRequest.RequestType getLastThemeChangeRequestType() {
-        try {
-            int type = sService.getLastThemeChangeRequestType();
-            return (type >= 0 && type < RequestType.values().length)
-                    ? RequestType.values()[type]
-                    : null;
-        } catch (RemoteException e) {
-            logThemeServiceException(e);
-        }
-
-        return null;
-    }
-
-    private void logThemeServiceException(Exception e) {
-        Log.w(TAG, "Unable to access ThemeService", e);
-    }
-
-    public interface ThemeChangeListener {
-        void onProgress(int progress);
-        void onFinish(boolean isSuccess);
-    }
-
-    public interface ThemeProcessingListener {
-        void onFinishedProcessing(String pkgName);
-    }
-}
-
diff --git a/sdk/src/java/org/lineageos/internal/themes/IIconCacheManager.aidl b/sdk/src/java/org/lineageos/internal/themes/IIconCacheManager.aidl
deleted file mode 100644
index 6898636..0000000
--- a/sdk/src/java/org/lineageos/internal/themes/IIconCacheManager.aidl
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Copyright (C) 2016 The CyanogenMod 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 org.lineageos.internal.themes;
-
-import android.graphics.Bitmap;
-
-/** @hide */
-interface IIconCacheManager {
-    boolean cacheComposedIcon(in Bitmap icon, String path);
-}
diff --git a/sdk/src/java/org/lineageos/internal/util/ImageUtils.java b/sdk/src/java/org/lineageos/internal/util/ImageUtils.java
index 8b1105f..d8b56b3 100644
--- a/sdk/src/java/org/lineageos/internal/util/ImageUtils.java
+++ b/sdk/src/java/org/lineageos/internal/util/ImageUtils.java
@@ -31,9 +31,6 @@
 import java.io.ByteArrayOutputStream;
 import java.io.InputStream;
 
-import lineageos.providers.ThemesContract.PreviewColumns;
-import lineageos.providers.ThemesContract.ThemesColumns;
-
 import libcore.io.IoUtils;
 
 public class ImageUtils {
@@ -126,207 +123,4 @@
         }
         return compressed;
     }
-
-    /**
-     * Crops the lock screen image and returns a new InputStream of the cropped area
-     *
-     * @param pkgName Name of the theme package
-     * @param context The context
-     *
-     * @return a new InputStream of the cropped image/*"
-     */
-    public static InputStream getCroppedKeyguardStream(String pkgName, Context context)
-            throws IllegalArgumentException {
-        if (TextUtils.isEmpty(pkgName)) {
-            throw new IllegalArgumentException("'pkgName' cannot be null or empty!");
-        }
-        if (context == null) {
-            throw new IllegalArgumentException("'context' cannot be null!");
-        }
-
-        InputStream cropped = null;
-        InputStream stream = null;
-        try {
-            stream = getOriginalKeyguardStream(pkgName, context);
-            if (stream == null) {
-                return null;
-            }
-            Point point = getImageDimension(stream);
-            IoUtils.closeQuietly(stream);
-            if (point == null || point.x == 0 || point.y == 0) {
-                return null;
-            }
-            WallpaperManager wm = WallpaperManager.getInstance(context);
-            int outWidth = wm.getDesiredMinimumWidth();
-            int outHeight = wm.getDesiredMinimumHeight();
-            stream = getOriginalKeyguardStream(pkgName, context);
-            if (stream == null) {
-                return null;
-            }
-            cropped = cropImage(stream, point.x, point.y, outWidth, outHeight);
-        } catch (Exception e) {
-            Log.e(TAG, "Exception " + e);
-        } finally {
-            IoUtils.closeQuietly(stream);
-        }
-        return cropped;
-    }
-
-    /**
-     * Crops the wallpaper image and returns a new InputStream of the cropped area
-     *
-     * @param pkgName Name of the theme package
-     * @param context The context
-     *
-     * @return a new InputStream of the cropped image/*"
-     */
-    public static InputStream getCroppedWallpaperStream(String pkgName, long wallpaperId,
-            Context context) {
-        if (TextUtils.isEmpty(pkgName)) {
-            throw new IllegalArgumentException("'pkgName' cannot be null or empty!");
-        }
-        if (context == null) {
-            throw new IllegalArgumentException("'context' cannot be null!");
-        }
-
-        InputStream cropped = null;
-        InputStream stream = null;
-        try {
-            stream = getOriginalWallpaperStream(pkgName, wallpaperId, context);
-            if (stream == null) {
-                return null;
-            }
-            Point point = getImageDimension(stream);
-            IoUtils.closeQuietly(stream);
-            if (point == null || point.x == 0 || point.y == 0) {
-                return null;
-            }
-            WallpaperManager wm = WallpaperManager.getInstance(context);
-            int outWidth = wm.getDesiredMinimumWidth();
-            int outHeight = wm.getDesiredMinimumHeight();
-            stream = getOriginalWallpaperStream(pkgName, wallpaperId, context);
-            if (stream == null) {
-                return null;
-            }
-            cropped = cropImage(stream, point.x, point.y, outWidth, outHeight);
-        } catch (Exception e) {
-            Log.e(TAG, "Exception " + e);
-        } finally {
-            IoUtils.closeQuietly(stream);
-        }
-        return cropped;
-    }
-
-    private static InputStream getOriginalKeyguardStream(String pkgName, Context context) {
-        if (TextUtils.isEmpty(pkgName) || context == null) {
-            return null;
-        }
-
-        InputStream inputStream = null;
-        try {
-            //Get input WP stream from the theme
-            Context themeCtx = context.createPackageContext(pkgName,
-                    Context.CONTEXT_IGNORE_SECURITY);
-            AssetManager assetManager = themeCtx.getAssets();
-            String wpPath = ThemeUtils.getLockscreenWallpaperPath(assetManager);
-            if (wpPath == null) {
-                Log.w(TAG, "Not setting lockscreen wp because wallpaper file was not found.");
-            } else {
-                inputStream = ThemeUtils.getInputStreamFromAsset(themeCtx,
-                        ASSET_URI_PREFIX + wpPath);
-            }
-        } catch (Exception e) {
-            Log.e(TAG, "There was an error setting lockscreen wp for pkg " + pkgName, e);
-        }
-        return inputStream;
-    }
-
-    private static InputStream getOriginalWallpaperStream(String pkgName, long componentId,
-            Context context) {
-        String wpPath;
-        if (TextUtils.isEmpty(pkgName) || context == null) {
-            return null;
-        }
-
-        InputStream inputStream = null;
-        String selection = ThemesColumns.PKG_NAME + "= ?";
-        String[] selectionArgs = {pkgName};
-        Cursor c = context.getContentResolver().query(ThemesColumns.CONTENT_URI,
-                null, selection,
-                selectionArgs, null);
-        if (c == null || c.getCount() < 1) {
-            if (c != null) c.close();
-            return null;
-        } else {
-            c.moveToFirst();
-        }
-
-        try {
-            Context themeContext = context.createPackageContext(pkgName,
-                    Context.CONTEXT_IGNORE_SECURITY);
-            boolean isLegacyTheme = c.getInt(
-                    c.getColumnIndex(ThemesColumns.IS_LEGACY_THEME)) == 1;
-            String wallpaper = c.getString(
-                    c.getColumnIndex(ThemesColumns.WALLPAPER_URI));
-            if (wallpaper != null) {
-                if (URLUtil.isAssetUrl(wallpaper)) {
-                    inputStream = ThemeUtils.getInputStreamFromAsset(themeContext, wallpaper);
-                } else {
-                    inputStream = context.getContentResolver().openInputStream(
-                            Uri.parse(wallpaper));
-                }
-            } else {
-                // try and get the wallpaper directly from the apk if the URI was null
-                Context themeCtx = context.createPackageContext(pkgName,
-                        Context.CONTEXT_IGNORE_SECURITY);
-                AssetManager assetManager = themeCtx.getAssets();
-                wpPath = queryWpPathFromComponentId(context, pkgName, componentId);
-                if (wpPath == null) wpPath = ThemeUtils.getWallpaperPath(assetManager);
-                if (wpPath == null) {
-                    Log.e(TAG, "Not setting wp because wallpaper file was not found.");
-                } else {
-                    inputStream = ThemeUtils.getInputStreamFromAsset(themeCtx,
-                            ASSET_URI_PREFIX + wpPath);
-                }
-            }
-        } catch (Exception e) {
-            Log.e(TAG, "getWallpaperStream: " + e);
-        } finally {
-            c.close();
-        }
-
-        return inputStream;
-    }
-
-    private static String queryWpPathFromComponentId(Context context, String pkgName,
-            long componentId) {
-        String wpPath = null;
-        String[] projection = new String[] { PreviewColumns.COL_VALUE };
-        String selection = ThemesColumns.PKG_NAME + "=? AND " +
-                PreviewColumns.COMPONENT_ID + "=? AND " +
-                PreviewColumns.COL_KEY + "=?";
-        String[] selectionArgs = new String[] {
-                pkgName,
-                Long.toString(componentId),
-                PreviewColumns.WALLPAPER_FULL
-        };
-
-        Cursor c = context.getContentResolver()
-                .query(PreviewColumns.COMPONENTS_URI,
-                        projection, selection, selectionArgs, null);
-        if (c != null) {
-            try {
-                if (c.moveToFirst()) {
-                    int valIdx = c.getColumnIndex(PreviewColumns.COL_VALUE);
-                    wpPath = c.getString(valIdx);
-                }
-            } catch(Exception e) {
-                Log.e(TAG, "Could not get wallpaper path", e);
-            } finally {
-                c.close();
-            }
-        }
-        return wpPath;
-    }
 }
-
diff --git a/sdk/src/java/org/lineageos/internal/util/QSConstants.java b/sdk/src/java/org/lineageos/internal/util/QSConstants.java
index 4505977..bad015a 100644
--- a/sdk/src/java/org/lineageos/internal/util/QSConstants.java
+++ b/sdk/src/java/org/lineageos/internal/util/QSConstants.java
@@ -60,7 +60,6 @@
     public static final String DYNAMIC_TILE_SU = "su";
     public static final String DYNAMIC_TILE_ADB = "adb";
     public static final String DYNAMIC_TILE_LIVE_DISPLAY = "live_display";
-    public static final String DYNAMIC_TILE_THEMES = "themes";
 
     protected static final ArrayList<String> STATIC_TILES_AVAILABLE = new ArrayList<String>();
     protected static final ArrayList<String> DYNAMIC_TILES_AVAILBLE = new ArrayList<String>();
@@ -108,6 +107,5 @@
         DYNAMIC_TILES_AVAILBLE.add(DYNAMIC_TILE_NEXT_ALARM);
         DYNAMIC_TILES_AVAILBLE.add(DYNAMIC_TILE_SU);
         DYNAMIC_TILES_AVAILBLE.add(DYNAMIC_TILE_LIVE_DISPLAY);
-        DYNAMIC_TILES_AVAILBLE.add(DYNAMIC_TILE_THEMES);
     }
 }
diff --git a/sdk/src/java/org/lineageos/internal/util/ThemeUtils.java b/sdk/src/java/org/lineageos/internal/util/ThemeUtils.java
deleted file mode 100644
index 784bc39..0000000
--- a/sdk/src/java/org/lineageos/internal/util/ThemeUtils.java
+++ /dev/null
@@ -1,687 +0,0 @@
-/*
- * Copyright (C) 2016 The CyanogenMod 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 org.lineageos.internal.util;
-
-import android.content.BroadcastReceiver;
-import android.content.ContentResolver;
-import android.content.ContentValues;
-import android.content.Context;
-import android.content.ContextWrapper;
-import android.content.IntentFilter;
-import android.content.pm.PackageInfo;
-import android.content.pm.PackageManager;
-import android.content.pm.PackageParser;
-import android.content.res.AssetManager;
-import android.content.res.ThemeConfig;
-import android.database.Cursor;
-import android.media.RingtoneManager;
-import android.net.Uri;
-import android.os.FileUtils;
-import android.os.SystemProperties;
-import android.provider.MediaStore;
-import android.text.TextUtils;
-import android.util.ArraySet;
-import android.util.DisplayMetrics;
-import android.util.Log;
-
-import android.view.WindowManager;
-import lineageos.providers.LineageSettings;
-import lineageos.providers.ThemesContract.ThemesColumns;
-
-import java.io.BufferedInputStream;
-import java.io.BufferedOutputStream;
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.OutputStream;
-import java.nio.ByteBuffer;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.zip.CRC32;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipInputStream;
-import java.util.zip.ZipOutputStream;
-
-import static android.content.res.ThemeConfig.SYSTEM_DEFAULT;
-
-/**
- * @hide
- */
-public class ThemeUtils {
-    private static final String TAG = ThemeUtils.class.getSimpleName();
-
-    // Package name for any app which does not have a specific theme applied
-    private static final String DEFAULT_PKG = "default";
-
-    private static final Set<String> SUPPORTED_THEME_COMPONENTS = new ArraySet<>();
-
-    static {
-        SUPPORTED_THEME_COMPONENTS.add(ThemesColumns.MODIFIES_ALARMS);
-        SUPPORTED_THEME_COMPONENTS.add(ThemesColumns.MODIFIES_BOOT_ANIM);
-        SUPPORTED_THEME_COMPONENTS.add(ThemesColumns.MODIFIES_FONTS);
-        SUPPORTED_THEME_COMPONENTS.add(ThemesColumns.MODIFIES_ICONS);
-        SUPPORTED_THEME_COMPONENTS.add(ThemesColumns.MODIFIES_LAUNCHER);
-        SUPPORTED_THEME_COMPONENTS.add(ThemesColumns.MODIFIES_LIVE_LOCK_SCREEN);
-        SUPPORTED_THEME_COMPONENTS.add(ThemesColumns.MODIFIES_LOCKSCREEN);
-        SUPPORTED_THEME_COMPONENTS.add(ThemesColumns.MODIFIES_NAVIGATION_BAR);
-        SUPPORTED_THEME_COMPONENTS.add(ThemesColumns.MODIFIES_NOTIFICATIONS);
-        SUPPORTED_THEME_COMPONENTS.add(ThemesColumns.MODIFIES_OVERLAYS);
-        SUPPORTED_THEME_COMPONENTS.add(ThemesColumns.MODIFIES_RINGTONES);
-        SUPPORTED_THEME_COMPONENTS.add(ThemesColumns.MODIFIES_STATUS_BAR);
-    }
-
-    // Constants for theme change broadcast
-    public static final String ACTION_THEME_CHANGED = "org.lineageos.intent.action.THEME_CHANGED";
-    public static final String EXTRA_COMPONENTS = "components";
-    public static final String EXTRA_REQUEST_TYPE = "request_type";
-    public static final String EXTRA_UPDATE_TIME = "update_time";
-
-    // path to asset lockscreen and wallpapers directory
-    public static final String LOCKSCREEN_WALLPAPER_PATH = "lockscreen";
-    public static final String WALLPAPER_PATH = "wallpapers";
-
-    // path to external theme resources, i.e. bootanimation.zip
-    public static final String SYSTEM_THEME_PATH = "/data/system/theme";
-    public static final String SYSTEM_THEME_FONT_PATH = SYSTEM_THEME_PATH + File.separator + "fonts";
-    public static final String SYSTEM_THEME_RINGTONE_PATH = SYSTEM_THEME_PATH
-            + File.separator + "ringtones";
-    public static final String SYSTEM_THEME_NOTIFICATION_PATH = SYSTEM_THEME_PATH
-            + File.separator + "notifications";
-    public static final String SYSTEM_THEME_ALARM_PATH = SYSTEM_THEME_PATH
-            + File.separator + "alarms";
-    public static final String SYSTEM_THEME_ICON_CACHE_DIR = SYSTEM_THEME_PATH
-            + File.separator + "icons";
-    // internal path to bootanimation.zip inside theme apk
-    public static final String THEME_BOOTANIMATION_PATH = "assets/bootanimation/bootanimation.zip";
-
-    public static final String SYSTEM_MEDIA_PATH = "/system/media/audio";
-    public static final String SYSTEM_ALARMS_PATH = SYSTEM_MEDIA_PATH + File.separator
-            + "alarms";
-    public static final String SYSTEM_RINGTONES_PATH = SYSTEM_MEDIA_PATH + File.separator
-            + "ringtones";
-    public static final String SYSTEM_NOTIFICATIONS_PATH = SYSTEM_MEDIA_PATH + File.separator
-            + "notifications";
-
-    private static final String MEDIA_CONTENT_URI = "content://media/internal/audio/media";
-
-    public static final int SYSTEM_TARGET_API = 0;
-
-    /* Path to cached theme resources */
-    public static final String RESOURCE_CACHE_DIR = "/data/resource-cache/";
-
-    /* Path inside a theme APK to the overlay folder */
-    public static final String OVERLAY_PATH = "assets/overlays/";
-    public static final String ICONS_PATH = "assets/icons/";
-    public static final String COMMON_RES_PATH = "assets/overlays/common/";
-
-    public static final String IDMAP_SUFFIX = "@idmap";
-    public static final String COMMON_RES_TARGET = "common";
-
-    public static final String ICON_HASH_FILENAME = "hash";
-
-    public static final String FONT_XML  = "fonts.xml";
-
-    public static String getDefaultThemePackageName(Context context) {
-        final String defaultThemePkg = LineageSettings.Secure.getString(context.getContentResolver(),
-                LineageSettings.Secure.DEFAULT_THEME_PACKAGE);
-        if (!TextUtils.isEmpty(defaultThemePkg)) {
-            PackageManager pm = context.getPackageManager();
-            try {
-                if (pm.getPackageInfo(defaultThemePkg, 0) != null) {
-                    return defaultThemePkg;
-                }
-            } catch (PackageManager.NameNotFoundException e) {
-                // doesn't exist so system will be default
-                Log.w(TAG, "Default theme " + defaultThemePkg + " not found", e);
-            }
-        }
-
-        return SYSTEM_DEFAULT;
-    }
-
-    /**
-     * Returns a mutable list of all theme components
-     * @return
-     */
-    public static List<String> getAllComponents() {
-        List<String> components = new ArrayList<>(SUPPORTED_THEME_COMPONENTS.size());
-        components.addAll(SUPPORTED_THEME_COMPONENTS);
-        return components;
-    }
-
-    /**
-     *  Returns a mutable list of all the theme components supported by a given package
-     *  NOTE: This queries the themes content provider. If there isn't a provider installed
-     *  or if it is too early in the boot process this method will not work.
-     */
-    public static List<String> getSupportedComponents(Context context, String pkgName) {
-        List<String> supportedComponents = new ArrayList<>();
-
-        String selection = ThemesColumns.PKG_NAME + "= ?";
-        String[] selectionArgs = new String[]{ pkgName };
-        Cursor c = context.getContentResolver().query(ThemesColumns.CONTENT_URI,
-                null, selection, selectionArgs, null);
-
-        if (c != null) {
-            if (c.moveToFirst()) {
-                List<String> allComponents = getAllComponents();
-                for (String component : allComponents) {
-                    int index = c.getColumnIndex(component);
-                    if (c.getInt(index) == 1) {
-                        supportedComponents.add(component);
-                    }
-                }
-            }
-            c.close();
-        }
-        return supportedComponents;
-    }
-
-    /**
-     * Get the components from the default theme.  If the default theme is not SYSTEM then any
-     * components that are not in the default theme will come from SYSTEM to create a complete
-     * component map.
-     * @param context
-     * @return
-     */
-    public static Map<String, String> getDefaultComponents(Context context) {
-        String defaultThemePkg = getDefaultThemePackageName(context);
-        List<String> defaultComponents = null;
-        List<String> systemComponents = getSupportedComponents(context, SYSTEM_DEFAULT);
-        if (!DEFAULT_PKG.equals(defaultThemePkg)) {
-            defaultComponents = getSupportedComponents(context, defaultThemePkg);
-        }
-
-        Map<String, String> componentMap = new HashMap<>(systemComponents.size());
-        if (defaultComponents != null) {
-            for (String component : defaultComponents) {
-                componentMap.put(component, defaultThemePkg);
-            }
-        }
-        for (String component : systemComponents) {
-            if (!componentMap.containsKey(component)) {
-                componentMap.put(component, SYSTEM_DEFAULT);
-            }
-        }
-
-        return componentMap;
-    }
-
-    /**
-     * Get the path to the icons for the given theme
-     * @param pkgName
-     * @return
-     */
-    public static String getIconPackDir(String pkgName) {
-        return getOverlayResourceCacheDir(pkgName) + File.separator + "icons";
-    }
-
-    public static String getIconHashFile(String pkgName) {
-        return getIconPackDir(pkgName) + File.separator  +  ICON_HASH_FILENAME;
-    }
-
-    public static String getIconPackApkPath(String pkgName) {
-        return getIconPackDir(pkgName) + "/resources.apk";
-    }
-
-    public static String getIconPackResPath(String pkgName) {
-        return getIconPackDir(pkgName) + "/resources.arsc";
-    }
-
-    public static String getIdmapPath(String targetPkgName, String overlayPkgName) {
-        return getTargetCacheDir(targetPkgName, overlayPkgName) + File.separator + "idmap";
-    }
-
-    public static String getOverlayPathToTarget(String targetPkgName) {
-        StringBuilder sb = new StringBuilder();
-        sb.append(OVERLAY_PATH);
-        sb.append(targetPkgName);
-        sb.append('/');
-        return sb.toString();
-    }
-
-    public static String getCommonPackageName(String themePackageName) {
-        if (TextUtils.isEmpty(themePackageName)) return null;
-
-        return COMMON_RES_TARGET;
-    }
-
-    /**
-     * Create SYSTEM_THEME_PATH directory if it does not exist
-     */
-    public static void createThemeDirIfNotExists() {
-        createDirIfNotExists(SYSTEM_THEME_PATH);
-    }
-
-    /**
-     * Create SYSTEM_FONT_PATH directory if it does not exist
-     */
-    public static void createFontDirIfNotExists() {
-        createDirIfNotExists(SYSTEM_THEME_FONT_PATH);
-    }
-
-    /**
-     * Create SYSTEM_THEME_RINGTONE_PATH directory if it does not exist
-     */
-    public static void createRingtoneDirIfNotExists() {
-        createDirIfNotExists(SYSTEM_THEME_RINGTONE_PATH);
-    }
-
-    /**
-     * Create SYSTEM_THEME_NOTIFICATION_PATH directory if it does not exist
-     */
-    public static void createNotificationDirIfNotExists() {
-        createDirIfNotExists(SYSTEM_THEME_NOTIFICATION_PATH);
-    }
-
-    /**
-     * Create SYSTEM_THEME_ALARM_PATH directory if it does not exist
-     */
-    public static void createAlarmDirIfNotExists() {
-        createDirIfNotExists(SYSTEM_THEME_ALARM_PATH);
-    }
-
-    /**
-     * Create SYSTEM_THEME_ICON_CACHE_DIR directory if it does not exist
-     */
-    public static void createIconCacheDirIfNotExists() {
-        createDirIfNotExists(SYSTEM_THEME_ICON_CACHE_DIR);
-    }
-
-    public static void createCacheDirIfNotExists() throws IOException {
-        File file = new File(RESOURCE_CACHE_DIR);
-        if (!file.exists() && !file.mkdir()) {
-            throw new IOException("Could not create dir: " + file.toString());
-        }
-        FileUtils.setPermissions(file, FileUtils.S_IRWXU
-                | FileUtils.S_IRWXG | FileUtils.S_IROTH | FileUtils.S_IXOTH, -1, -1);
-    }
-
-    public static void createResourcesDirIfNotExists(String targetPkgName, String overlayPkgName)
-            throws IOException {
-        createDirIfNotExists(getOverlayResourceCacheDir(overlayPkgName));
-        File file = new File(getTargetCacheDir(targetPkgName, overlayPkgName));
-        if (!file.exists() && !file.mkdir()) {
-            throw new IOException("Could not create dir: " + file.toString());
-        }
-        FileUtils.setPermissions(file, FileUtils.S_IRWXU
-                | FileUtils.S_IRWXG | FileUtils.S_IROTH | FileUtils.S_IXOTH, -1, -1);
-    }
-
-    public static void createIconDirIfNotExists(String pkgName) throws IOException {
-        createDirIfNotExists(getOverlayResourceCacheDir(pkgName));
-        File file = new File(getIconPackDir(pkgName));
-        if (!file.exists() && !file.mkdir()) {
-            throw new IOException("Could not create dir: " + file.toString());
-        }
-        FileUtils.setPermissions(file, FileUtils.S_IRWXU
-                | FileUtils.S_IRWXG | FileUtils.S_IROTH | FileUtils.S_IXOTH, -1, -1);
-    }
-
-    public static void clearIconCache() {
-        FileUtils.deleteContents(new File(SYSTEM_THEME_ICON_CACHE_DIR));
-    }
-
-    public static void registerThemeChangeReceiver(final Context context,
-            final BroadcastReceiver receiver) {
-        IntentFilter filter = new IntentFilter(ACTION_THEME_CHANGED);
-
-        context.registerReceiver(receiver, filter);
-    }
-
-    public static String getLockscreenWallpaperPath(AssetManager assetManager) throws IOException {
-        String[] assets = assetManager.list(LOCKSCREEN_WALLPAPER_PATH);
-        String asset = getFirstNonEmptyAsset(assets);
-        if (asset == null) return null;
-        return LOCKSCREEN_WALLPAPER_PATH + File.separator + asset;
-    }
-
-    public static String getWallpaperPath(AssetManager assetManager) throws IOException {
-        String[] assets = assetManager.list(WALLPAPER_PATH);
-        String asset = getFirstNonEmptyAsset(assets);
-        if (asset == null) return null;
-        return WALLPAPER_PATH + File.separator + asset;
-    }
-
-    public static List<String> getWallpaperPathList(AssetManager assetManager)
-            throws IOException {
-        List<String> wallpaperList = new ArrayList<String>();
-        String[] assets = assetManager.list(WALLPAPER_PATH);
-        for (String asset : assets) {
-            if (!TextUtils.isEmpty(asset)) {
-                wallpaperList.add(WALLPAPER_PATH + File.separator + asset);
-            }
-        }
-        return wallpaperList;
-    }
-
-    /**
-     * Get the root path of the resource cache for the given theme
-     * @param themePkgName
-     * @return Root resource cache path for the given theme
-     */
-    public static String getOverlayResourceCacheDir(String themePkgName) {
-        return RESOURCE_CACHE_DIR + themePkgName;
-    }
-
-    /**
-     * Get the path of the resource cache for the given target and theme
-     * @param targetPkgName
-     * @param themePkg
-     * @return Path to the resource cache for this target and theme
-     */
-    public static String getTargetCacheDir(String targetPkgName, PackageInfo themePkg) {
-        return getTargetCacheDir(targetPkgName, themePkg.packageName);
-    }
-
-    public static String getTargetCacheDir(String targetPkgName, PackageParser.Package themePkg) {
-        return getTargetCacheDir(targetPkgName, themePkg.packageName);
-    }
-
-    public static String getTargetCacheDir(String targetPkgName, String themePkgName) {
-        return getOverlayResourceCacheDir(themePkgName) + File.separator + targetPkgName;
-    }
-
-    /**
-     * Creates a theme'd context using the overlay applied to SystemUI
-     * @param context Base context
-     * @return Themed context
-     */
-    public static Context createUiContext(final Context context) {
-        try {
-            Context uiContext = context.createPackageContext("com.android.systemui",
-                    Context.CONTEXT_RESTRICTED);
-            return new ThemedUiContext(uiContext, context.getApplicationContext());
-        } catch (PackageManager.NameNotFoundException e) {
-        }
-
-        return null;
-    }
-
-    /**
-     * Scale the boot animation to better fit the device by editing the desc.txt found
-     * in the bootanimation.zip
-     * @param context Context to use for getting an instance of the WindowManager
-     * @param input InputStream of the original bootanimation.zip
-     * @param dst Path to store the newly created bootanimation.zip
-     * @throws IOException
-     */
-    public static void copyAndScaleBootAnimation(Context context, InputStream input, String dst)
-            throws IOException {
-        final OutputStream os = new FileOutputStream(dst);
-        final ZipOutputStream zos = new ZipOutputStream(new BufferedOutputStream(os));
-        final ZipInputStream bootAni = new ZipInputStream(new BufferedInputStream(input));
-        ZipEntry ze;
-
-        zos.setMethod(ZipOutputStream.STORED);
-        final byte[] bytes = new byte[4096];
-        int len;
-        while ((ze = bootAni.getNextEntry()) != null) {
-            ZipEntry entry = new ZipEntry(ze.getName());
-            entry.setMethod(ZipEntry.STORED);
-            entry.setCrc(ze.getCrc());
-            entry.setSize(ze.getSize());
-            entry.setCompressedSize(ze.getSize());
-            if (!ze.getName().equals("desc.txt")) {
-                // just copy this entry straight over into the output zip
-                zos.putNextEntry(entry);
-                while ((len = bootAni.read(bytes)) > 0) {
-                    zos.write(bytes, 0, len);
-                }
-            } else {
-                String line;
-                BufferedReader reader = new BufferedReader(new InputStreamReader(bootAni));
-                final String[] info = reader.readLine().split(" ");
-
-                int scaledWidth;
-                int scaledHeight;
-                WindowManager wm = (WindowManager)context.getSystemService(Context.WINDOW_SERVICE);
-                DisplayMetrics dm = new DisplayMetrics();
-                wm.getDefaultDisplay().getRealMetrics(dm);
-                // just in case the device is in landscape orientation we will
-                // swap the values since most (if not all) animations are portrait
-                if (dm.widthPixels > dm.heightPixels) {
-                    scaledWidth = dm.heightPixels;
-                    scaledHeight = dm.widthPixels;
-                } else {
-                    scaledWidth = dm.widthPixels;
-                    scaledHeight = dm.heightPixels;
-                }
-
-                int width = Integer.parseInt(info[0]);
-                int height = Integer.parseInt(info[1]);
-
-                if (width == height)
-                    scaledHeight = scaledWidth;
-                else {
-                    // adjust scaledHeight to retain original aspect ratio
-                    float scale = (float)scaledWidth / (float)width;
-                    int newHeight = (int)((float)height * scale);
-                    if (newHeight < scaledHeight)
-                        scaledHeight = newHeight;
-                }
-
-                CRC32 crc32 = new CRC32();
-                int size = 0;
-                ByteBuffer buffer = ByteBuffer.wrap(bytes);
-                line = String.format("%d %d %s\n", scaledWidth, scaledHeight, info[2]);
-                buffer.put(line.getBytes());
-                size += line.getBytes().length;
-                crc32.update(line.getBytes());
-                while ((line = reader.readLine()) != null) {
-                    line = String.format("%s\n", line);
-                    buffer.put(line.getBytes());
-                    size += line.getBytes().length;
-                    crc32.update(line.getBytes());
-                }
-                entry.setCrc(crc32.getValue());
-                entry.setSize(size);
-                entry.setCompressedSize(size);
-                zos.putNextEntry(entry);
-                zos.write(buffer.array(), 0, size);
-            }
-            zos.closeEntry();
-        }
-        zos.close();
-    }
-
-    public static boolean isValidAudible(String fileName) {
-        return (fileName != null &&
-                (fileName.endsWith(".mp3") || fileName.endsWith(".ogg")));
-    }
-
-    public static boolean setAudible(Context context, File ringtone, int type, String name) {
-        final String path = ringtone.getAbsolutePath();
-        final String mimeType = name.endsWith(".ogg") ? "audio/ogg" : "audio/mp3";
-        ContentValues values = new ContentValues();
-        values.put(MediaStore.MediaColumns.DATA, path);
-        values.put(MediaStore.MediaColumns.TITLE, name);
-        values.put(MediaStore.MediaColumns.MIME_TYPE, mimeType);
-        values.put(MediaStore.MediaColumns.SIZE, ringtone.length());
-        values.put(MediaStore.Audio.Media.IS_RINGTONE, type == RingtoneManager.TYPE_RINGTONE);
-        values.put(MediaStore.Audio.Media.IS_NOTIFICATION,
-                type == RingtoneManager.TYPE_NOTIFICATION);
-        values.put(MediaStore.Audio.Media.IS_ALARM, type == RingtoneManager.TYPE_ALARM);
-        values.put(MediaStore.Audio.Media.IS_MUSIC, false);
-
-        Uri uri = MediaStore.Audio.Media.getContentUriForPath(path);
-        Uri newUri = null;
-        Cursor c = context.getContentResolver().query(uri,
-                new String[] {MediaStore.MediaColumns._ID},
-                MediaStore.MediaColumns.DATA + "='" + path + "'",
-                null, null);
-        if (c != null && c.getCount() > 0) {
-            c.moveToFirst();
-            long id = c.getLong(0);
-            c.close();
-            newUri = Uri.withAppendedPath(Uri.parse(MEDIA_CONTENT_URI), "" + id);
-            context.getContentResolver().update(uri, values,
-                    MediaStore.MediaColumns._ID + "=" + id, null);
-        }
-        if (newUri == null)
-            newUri = context.getContentResolver().insert(uri, values);
-        try {
-            RingtoneManager.setActualDefaultRingtoneUri(context, type, newUri);
-        } catch (Exception e) {
-            return false;
-        }
-        return true;
-    }
-
-    public static boolean setDefaultAudible(Context context, int type) {
-        final String audiblePath = getDefaultAudiblePath(type);
-        if (audiblePath != null) {
-            Uri uri = MediaStore.Audio.Media.getContentUriForPath(audiblePath);
-            Cursor c = context.getContentResolver().query(uri,
-                    new String[] {MediaStore.MediaColumns._ID},
-                    MediaStore.MediaColumns.DATA + "='" + audiblePath + "'",
-                    null, null);
-            if (c != null && c.getCount() > 0) {
-                c.moveToFirst();
-                long id = c.getLong(0);
-                c.close();
-                uri = Uri.withAppendedPath(
-                        Uri.parse(MEDIA_CONTENT_URI), "" + id);
-            }
-            if (uri != null)
-                RingtoneManager.setActualDefaultRingtoneUri(context, type, uri);
-        } else {
-            return false;
-        }
-        return true;
-    }
-
-    public static String getDefaultAudiblePath(int type) {
-        final String name;
-        final String path;
-        switch (type) {
-            case RingtoneManager.TYPE_ALARM:
-                name = SystemProperties.get("ro.config.alarm_alert", null);
-                path = name != null ? SYSTEM_ALARMS_PATH + File.separator + name : null;
-                break;
-            case RingtoneManager.TYPE_NOTIFICATION:
-                name = SystemProperties.get("ro.config.notification_sound", null);
-                path = name != null ? SYSTEM_NOTIFICATIONS_PATH + File.separator + name : null;
-                break;
-            case RingtoneManager.TYPE_RINGTONE:
-                name = SystemProperties.get("ro.config.ringtone", null);
-                path = name != null ? SYSTEM_RINGTONES_PATH + File.separator + name : null;
-                break;
-            default:
-                path = null;
-                break;
-        }
-        return path;
-    }
-
-    public static void clearAudibles(Context context, String audiblePath) {
-        final File audibleDir = new File(audiblePath);
-        if (audibleDir.exists()) {
-            String[] files = audibleDir.list();
-            final ContentResolver resolver = context.getContentResolver();
-            for (String s : files) {
-                final String filePath = audiblePath + File.separator + s;
-                Uri uri = MediaStore.Audio.Media.getContentUriForPath(filePath);
-                resolver.delete(uri, MediaStore.MediaColumns.DATA + "=\""
-                        + filePath + "\"", null);
-                (new File(filePath)).delete();
-            }
-        }
-    }
-
-    public static InputStream getInputStreamFromAsset(Context ctx, String path) throws IOException {
-        if (ctx == null || path == null) return null;
-
-        InputStream is;
-        String ASSET_BASE = "file:///android_asset/";
-        path = path.substring(ASSET_BASE.length());
-        AssetManager assets = ctx.getAssets();
-        is = assets.open(path);
-        return is;
-    }
-
-    /**
-     * Convenience method to determine if a theme component is a per app theme and not a standard
-     * component.
-     * @param component
-     * @return
-     */
-    public static boolean isPerAppThemeComponent(String component) {
-        return !(DEFAULT_PKG.equals(component)
-                || ThemeConfig.SYSTEMUI_STATUS_BAR_PKG.equals(component)
-                || ThemeConfig.SYSTEMUI_NAVBAR_PKG.equals(component));
-    }
-
-    /**
-     * Returns the first non-empty asset name. Empty assets can occur if the APK is built
-     * with folders included as zip entries in the APK. Searching for files inside "folderName" via
-     * assetManager.list("folderName") can cause these entries to be included as empty strings.
-     * @param assets
-     * @return
-     */
-    private static String getFirstNonEmptyAsset(String[] assets) {
-        if (assets == null) return null;
-        String filename = null;
-        for(String asset : assets) {
-            if (!TextUtils.isEmpty(asset)) {
-                filename = asset;
-                break;
-            }
-        }
-        return filename;
-    }
-
-    private static boolean dirExists(String dirPath) {
-        final File dir = new File(dirPath);
-        return dir.exists() && dir.isDirectory();
-    }
-
-    private static void createDirIfNotExists(String dirPath) {
-        if (!dirExists(dirPath)) {
-            File dir = new File(dirPath);
-            if (dir.mkdir()) {
-                FileUtils.setPermissions(dir, FileUtils.S_IRWXU |
-                        FileUtils.S_IRWXG| FileUtils.S_IROTH | FileUtils.S_IXOTH, -1, -1);
-            }
-        }
-    }
-
-    private static class ThemedUiContext extends ContextWrapper {
-        private Context mAppContext;
-
-        public ThemedUiContext(Context context, Context appContext) {
-            super(context);
-            mAppContext = appContext;
-        }
-
-        @Override
-        public Context getApplicationContext() {
-            return mAppContext;
-        }
-
-        @Override
-        public String getPackageName() {
-            return mAppContext.getPackageName();
-        }
-    }
-}
diff --git a/tests/AndroidManifest.xml b/tests/AndroidManifest.xml
index d589293..a6aeec6 100644
--- a/tests/AndroidManifest.xml
+++ b/tests/AndroidManifest.xml
@@ -25,9 +25,6 @@
     <uses-permission android:name="lineageos.permission.MODIFY_PROFILES" />
     <uses-permission android:name="lineageos.permission.MANAGE_PERSISTENT_STORAGE" />
     <uses-permission android:name="lineageos.permission.PERFORMANCE_ACCESS" />
-    <uses-permission android:name="lineageos.permission.READ_THEMES" />
-    <uses-permission android:name="lineageos.permission.WRITE_THEMES" />
-    <uses-permission android:name="lineageos.permission.ACCESS_THEME_MANAGER" />
     <uses-permission android:name="lineageos.permission.MANAGE_LIVEDISPLAY" />
     <uses-permission android:name="lineageos.permission.OBSERVE_AUDIO_SESSIONS" />
     <uses-permission android:name="lineageos.permission.ACCESS_WEATHER_MANAGER" />
diff --git a/tests/src/org/lineageos/tests/themes/unit/ThemeChangeRequestBuilderTest.java b/tests/src/org/lineageos/tests/themes/unit/ThemeChangeRequestBuilderTest.java
deleted file mode 100644
index 1c972ef..0000000
--- a/tests/src/org/lineageos/tests/themes/unit/ThemeChangeRequestBuilderTest.java
+++ /dev/null
@@ -1,304 +0,0 @@
-/**
- * Copyright (C) 2016 The CyanogenMod 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 org.lineageos.tests.themes.unit;
-
-import android.content.res.ThemeConfig;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-
-import lineageos.themes.ThemeChangeRequest;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * Exercise both the ThemeChangeRequest object and the builder.
- */
-public class ThemeChangeRequestBuilderTest extends AndroidTestCase {
-
-    @SmallTest
-    public void testConstructor() {
-        ThemeChangeRequest themeChangeRequest = new ThemeChangeRequest.Builder().build();
-        assertNotNull(themeChangeRequest);
-    }
-
-    @SmallTest
-    public void testThemeConfigConstructor() {
-        Map<String, ThemeConfig.AppTheme> dummyMap = new HashMap<>();
-        ThemeConfig config = new ThemeConfig(dummyMap);
-        ThemeChangeRequest themeChangeRequest = new ThemeChangeRequest.Builder(config).build();
-        assertNotNull(themeChangeRequest);
-    }
-
-    @SmallTest
-    public void testGetAlarmThemePackageName() {
-        String expectedAlarmPackage = "dummy";
-
-        ThemeChangeRequest request = new ThemeChangeRequest.Builder()
-                .setAlarm(expectedAlarmPackage)
-                .build();
-
-        assertNotNull(request);
-        assertEquals(expectedAlarmPackage, request.getAlarmThemePackageName());
-    }
-
-    @SmallTest
-    public void testGetBootanimationThemePackageName() {
-        String expectedBootAnimationThemePackageName = "dummy";
-
-        ThemeChangeRequest request = new ThemeChangeRequest.Builder()
-                .setBootanimation(expectedBootAnimationThemePackageName)
-                .build();
-
-        assertNotNull(request);
-        assertEquals(expectedBootAnimationThemePackageName,
-                request.getBootanimationThemePackageName());
-    }
-
-    @SmallTest
-    public void testGetFontThemePackageName() {
-        String expectedFontThemePackageName = "dummy";
-
-        ThemeChangeRequest request = new ThemeChangeRequest.Builder()
-                .setFont(expectedFontThemePackageName)
-                .build();
-
-        assertNotNull(request);
-        assertEquals(expectedFontThemePackageName,
-                request.getFontThemePackageName());
-    }
-
-    @SmallTest
-    public void testGetIconsThemePackageName() {
-        String expectedIconThemePackageName = "dummy";
-
-        ThemeChangeRequest request = new ThemeChangeRequest.Builder()
-                .setIcons(expectedIconThemePackageName)
-                .build();
-
-        assertNotNull(request);
-        assertEquals(expectedIconThemePackageName,
-                request.getIconsThemePackageName());
-    }
-
-    @SmallTest
-    public void testGetLiveLockScreenThemePackageName() {
-        String expectedLiveLockscreenThemePN = "dummy";
-
-        ThemeChangeRequest request = new ThemeChangeRequest.Builder()
-                .setLiveLockScreen(expectedLiveLockscreenThemePN)
-                .build();
-
-        assertNotNull(request);
-        assertEquals(expectedLiveLockscreenThemePN,
-                request.getLiveLockScreenThemePackageName());
-    }
-
-    @SmallTest
-    public void testGetLockWallpaperThemePackageName() {
-        String expectedLockWallpaperThemePN = "dummy";
-
-        ThemeChangeRequest request = new ThemeChangeRequest.Builder()
-                .setLockWallpaper(expectedLockWallpaperThemePN)
-                .build();
-
-        assertNotNull(request);
-        assertEquals(expectedLockWallpaperThemePN,
-                request.getLockWallpaperThemePackageName());
-    }
-
-    @SmallTest
-    public void testGetNavBarThemePackageName() {
-        String expectedNavBarThemePackageName = "dummy";
-
-        ThemeChangeRequest request = new ThemeChangeRequest.Builder()
-                .setNavBar(expectedNavBarThemePackageName)
-                .build();
-
-        assertNotNull(request);
-        assertEquals(expectedNavBarThemePackageName,
-                request.getNavBarThemePackageName());
-    }
-
-    @SmallTest
-    public void testGetNotificationThemePackageName() {
-        String expectedNotificationThemePackageName = "dummy";
-
-        ThemeChangeRequest request = new ThemeChangeRequest.Builder()
-                .setNotification(expectedNotificationThemePackageName)
-                .build();
-
-        assertNotNull(request);
-        assertEquals(expectedNotificationThemePackageName,
-                request.getNotificationThemePackageName());
-    }
-
-    @SmallTest
-    public void testGetNumChangesRequested() {
-        int expectedNumChangesRequested = 5;
-        String dummyData = "dummy";
-
-        ThemeChangeRequest request = new ThemeChangeRequest.Builder()
-                .setAlarm(dummyData)
-                .setNavBar(dummyData)
-                .setBootanimation(dummyData)
-                .setLockWallpaper(dummyData)
-                .setLiveLockScreen(dummyData)
-                .build();
-
-        assertNotNull(request);
-        assertEquals(expectedNumChangesRequested,
-                request.getNumChangesRequested());
-    }
-
-    @SmallTest
-    public void testGetOverlayThemePackageName() {
-        String expectedOverlayPN = "dummy";
-
-        ThemeChangeRequest request = new ThemeChangeRequest.Builder()
-                .setOverlay(expectedOverlayPN)
-                .build();
-
-        assertNotNull(request);
-        assertEquals(expectedOverlayPN,
-                request.getOverlayThemePackageName());
-    }
-
-    @SmallTest
-    public void testGetPerAppOverlays() {
-        Map<String, String> expectedAppOverlayMap = new HashMap<>();
-
-        String appkey1 = "app1";
-        String appkey2 = "app2";
-        String appkey3 = "app3";
-        String appvalue1 = "dummy1";
-        String appvalue2 = "dummy2";
-        String appvalue3 = "dummy3";
-
-        expectedAppOverlayMap.put(appkey1, appvalue1);
-        expectedAppOverlayMap.put(appkey2, appvalue2);
-        expectedAppOverlayMap.put(appkey3, appvalue3);
-
-        ThemeChangeRequest request = new ThemeChangeRequest.Builder()
-                .setAppOverlay(appkey1, appvalue1)
-                .setAppOverlay(appkey2, appvalue2)
-                .setAppOverlay(appkey3, appvalue3)
-                .build();
-
-        assertNotNull(request);
-        Map<String, String> actualAppOverlayMap = request.getPerAppOverlays();
-        for (String key : actualAppOverlayMap.keySet()) {
-            assertNotNull(expectedAppOverlayMap.get(key));
-            assertEquals(expectedAppOverlayMap.get(key), actualAppOverlayMap.get(key));
-        }
-    }
-
-    @SmallTest
-    public void testGetReqeustType() {
-        ThemeChangeRequest.RequestType expectedRequestType =
-                ThemeChangeRequest.RequestType.USER_REQUEST;
-
-        ThemeChangeRequest request = new ThemeChangeRequest.Builder()
-                .setRequestType(expectedRequestType)
-                .build();
-
-        assertNotNull(request);
-        assertEquals(expectedRequestType,
-                request.getReqeustType());
-    }
-
-    @SmallTest
-    public void testGetRingtoneThemePackageName() {
-        String expectedRingtoneThemePN = "dummy";
-
-        ThemeChangeRequest request = new ThemeChangeRequest.Builder()
-                .setRingtone(expectedRingtoneThemePN)
-                .build();
-
-        assertNotNull(request);
-        assertEquals(expectedRingtoneThemePN,
-                request.getRingtoneThemePackageName());
-    }
-
-    @SmallTest
-    public void testGetStatusBarThemePackageName() {
-        String expectedStatusBarThemePN = "dummy";
-
-        ThemeChangeRequest request = new ThemeChangeRequest.Builder()
-                .setStatusBar(expectedStatusBarThemePN)
-                .build();
-
-        assertNotNull(request);
-        assertEquals(expectedStatusBarThemePN,
-                request.getStatusBarThemePackageName());
-    }
-
-    @SmallTest
-    public void testGetThemeComponentsMap() {
-        Map<String, String> expectedAppOverlayMap = new HashMap<>();
-
-        String appkey1 = "app1";
-        String appkey2 = "app2";
-        String appkey3 = "app3";
-        String appvalue1 = "dummy1";
-        String appvalue2 = "dummy2";
-        String appvalue3 = "dummy3";
-
-        expectedAppOverlayMap.put(appkey1, appvalue1);
-        expectedAppOverlayMap.put(appkey2, appvalue2);
-        expectedAppOverlayMap.put(appkey3, appvalue3);
-
-        ThemeChangeRequest request = new ThemeChangeRequest.Builder()
-                .setComponent(appkey1, appvalue1)
-                .setComponent(appkey2, appvalue2)
-                .setComponent(appkey3, appvalue3)
-                .build();
-
-        assertNotNull(request);
-        Map<String, String> actualAppOverlayMap = request.getThemeComponentsMap();
-        for (String key : actualAppOverlayMap.keySet()) {
-            assertNotNull(expectedAppOverlayMap.get(key));
-            assertEquals(expectedAppOverlayMap.get(key), actualAppOverlayMap.get(key));
-        }
-    }
-
-    @SmallTest
-    public void testGetWallpaperId() {
-        long expectedWallpaperId = 123971231L;
-
-        ThemeChangeRequest request = new ThemeChangeRequest.Builder()
-                .setWallpaperId(expectedWallpaperId)
-                .build();
-
-        assertNotNull(request);
-        assertEquals(expectedWallpaperId,
-                request.getWallpaperId());
-    }
-
-    @SmallTest
-    public void testGetWallpaperThemePackageName() {
-        String expectedWallpaperThemePN = "dummy";
-
-        ThemeChangeRequest request = new ThemeChangeRequest.Builder()
-                .setWallpaper(expectedWallpaperThemePN)
-                .build();
-
-        assertNotNull(request);
-        assertEquals(expectedWallpaperThemePN,
-                request.getWallpaperThemePackageName());
-    }
-}
diff --git a/tests/src/org/lineageos/tests/themes/unit/ThemeChangeRequestTest.java b/tests/src/org/lineageos/tests/themes/unit/ThemeChangeRequestTest.java
deleted file mode 100644
index 3355ca8..0000000
--- a/tests/src/org/lineageos/tests/themes/unit/ThemeChangeRequestTest.java
+++ /dev/null
@@ -1,461 +0,0 @@
-/**
- * Copyright (C) 2016 The CyanogenMod 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 org.lineageos.tests.themes.unit;
-
-import android.os.Parcel;
-import android.test.AndroidTestCase;
-
-import android.test.suitebuilder.annotation.SmallTest;
-
-import lineageos.themes.ThemeChangeRequest;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * Excercise the parceling of the ThemeChangeRequest object and builder.
- */
-public class ThemeChangeRequestTest extends AndroidTestCase {
-
-    @SmallTest
-    public void testGetAlarmThemePackageNameUnravelFromParcel() {
-        String expectedAlarmPackage = "dummy";
-
-        ThemeChangeRequest request = new ThemeChangeRequest.Builder()
-                .setAlarm(expectedAlarmPackage)
-                .build();
-
-        // Write to parcel
-        Parcel parcel = Parcel.obtain();
-        request.writeToParcel(parcel, 0);
-
-        // Rewind
-        parcel.setDataPosition(0);
-
-        // Verify data when unraveling
-        ThemeChangeRequest fromParcel = ThemeChangeRequest.CREATOR.createFromParcel(parcel);
-
-        assertNotNull(fromParcel);
-        assertEquals(expectedAlarmPackage, fromParcel.getAlarmThemePackageName());
-    }
-
-    @SmallTest
-    public void testGetBootanimationThemePackageNameUnravelFromParcel() {
-        String expectedBootAnimationThemePackageName = "dummy";
-
-        ThemeChangeRequest request = new ThemeChangeRequest.Builder()
-                .setBootanimation(expectedBootAnimationThemePackageName)
-                .build();
-
-        // Write to parcel
-        Parcel parcel = Parcel.obtain();
-        request.writeToParcel(parcel, 0);
-
-        // Rewind
-        parcel.setDataPosition(0);
-
-        // Verify data when unraveling
-        ThemeChangeRequest fromParcel = ThemeChangeRequest.CREATOR.createFromParcel(parcel);
-
-        assertNotNull(fromParcel);
-        assertEquals(expectedBootAnimationThemePackageName,
-                fromParcel.getBootanimationThemePackageName());
-    }
-
-    @SmallTest
-    public void testGetFontThemePackageNameUnravelFromParcel() {
-        String expectedFontThemePackageName = "dummy";
-
-        ThemeChangeRequest request = new ThemeChangeRequest.Builder()
-                .setFont(expectedFontThemePackageName)
-                .build();
-
-        // Write to parcel
-        Parcel parcel = Parcel.obtain();
-        request.writeToParcel(parcel, 0);
-
-        // Rewind
-        parcel.setDataPosition(0);
-
-        // Verify data when unraveling
-        ThemeChangeRequest fromParcel = ThemeChangeRequest.CREATOR.createFromParcel(parcel);
-
-        assertNotNull(fromParcel);
-        assertEquals(expectedFontThemePackageName,
-                fromParcel.getFontThemePackageName());
-    }
-
-    @SmallTest
-    public void testGetIconsThemePackageNameUnravelFromParcel() {
-        String expectedIconThemePackageName = "dummy";
-
-        ThemeChangeRequest request = new ThemeChangeRequest.Builder()
-                .setIcons(expectedIconThemePackageName)
-                .build();
-
-        // Write to parcel
-        Parcel parcel = Parcel.obtain();
-        request.writeToParcel(parcel, 0);
-
-        // Rewind
-        parcel.setDataPosition(0);
-
-        // Verify data when unraveling
-        ThemeChangeRequest fromParcel = ThemeChangeRequest.CREATOR.createFromParcel(parcel);
-
-        assertNotNull(fromParcel);
-        assertEquals(expectedIconThemePackageName,
-                fromParcel.getIconsThemePackageName());
-    }
-
-    @SmallTest
-    public void testGetLiveLockScreenThemePackageNameUnravelFromParcel() {
-        String expectedLiveLockscreenThemePN = "dummy";
-
-        ThemeChangeRequest request = new ThemeChangeRequest.Builder()
-                .setLiveLockScreen(expectedLiveLockscreenThemePN)
-                .build();
-
-        // Write to parcel
-        Parcel parcel = Parcel.obtain();
-        request.writeToParcel(parcel, 0);
-
-        // Rewind
-        parcel.setDataPosition(0);
-
-        // Verify data when unraveling
-        ThemeChangeRequest fromParcel = ThemeChangeRequest.CREATOR.createFromParcel(parcel);
-
-        assertNotNull(fromParcel);
-        assertEquals(expectedLiveLockscreenThemePN,
-                fromParcel.getLiveLockScreenThemePackageName());
-    }
-
-    @SmallTest
-    public void testGetLockWallpaperThemePackageNameUnravelFromParcel() {
-        String expectedLockWallpaperThemePN = "dummy";
-
-        ThemeChangeRequest request = new ThemeChangeRequest.Builder()
-                .setLockWallpaper(expectedLockWallpaperThemePN)
-                .build();
-
-        // Write to parcel
-        Parcel parcel = Parcel.obtain();
-        request.writeToParcel(parcel, 0);
-
-        // Rewind
-        parcel.setDataPosition(0);
-
-        // Verify data when unraveling
-        ThemeChangeRequest fromParcel = ThemeChangeRequest.CREATOR.createFromParcel(parcel);
-
-        assertNotNull(request);
-        assertEquals(expectedLockWallpaperThemePN,
-                fromParcel.getLockWallpaperThemePackageName());
-    }
-
-    @SmallTest
-    public void testGetNavBarThemePackageNameUnravelFromParcel() {
-        String expectedNavBarThemePackageName = "dummy";
-
-        ThemeChangeRequest request = new ThemeChangeRequest.Builder()
-                .setNavBar(expectedNavBarThemePackageName)
-                .build();
-
-        // Write to parcel
-        Parcel parcel = Parcel.obtain();
-        request.writeToParcel(parcel, 0);
-
-        // Rewind
-        parcel.setDataPosition(0);
-
-        // Verify data when unraveling
-        ThemeChangeRequest fromParcel = ThemeChangeRequest.CREATOR.createFromParcel(parcel);
-
-        assertNotNull(fromParcel);
-        assertEquals(expectedNavBarThemePackageName,
-                fromParcel.getNavBarThemePackageName());
-    }
-
-    @SmallTest
-    public void testGetNotificationThemePackageNameUnravelFromParcel() {
-        String expectedNotificationThemePackageName = "dummy";
-
-        ThemeChangeRequest request = new ThemeChangeRequest.Builder()
-                .setNotification(expectedNotificationThemePackageName)
-                .build();
-
-        // Write to parcel
-        Parcel parcel = Parcel.obtain();
-        request.writeToParcel(parcel, 0);
-
-        // Rewind
-        parcel.setDataPosition(0);
-
-        // Verify data when unraveling
-        ThemeChangeRequest fromParcel = ThemeChangeRequest.CREATOR.createFromParcel(parcel);
-
-        assertNotNull(request);
-        assertEquals(expectedNotificationThemePackageName,
-                fromParcel.getNotificationThemePackageName());
-    }
-
-    @SmallTest
-    public void testGetNumChangesRequestedUnravelFromParcel() {
-        int expectedNumChangesRequested = 5;
-        String dummyData = "dummy";
-
-        ThemeChangeRequest request = new ThemeChangeRequest.Builder()
-                .setAlarm(dummyData)
-                .setNavBar(dummyData)
-                .setBootanimation(dummyData)
-                .setLockWallpaper(dummyData)
-                .setLiveLockScreen(dummyData)
-                .build();
-
-        // Write to parcel
-        Parcel parcel = Parcel.obtain();
-        request.writeToParcel(parcel, 0);
-
-        // Rewind
-        parcel.setDataPosition(0);
-
-        // Verify data when unraveling
-        ThemeChangeRequest fromParcel = ThemeChangeRequest.CREATOR.createFromParcel(parcel);
-
-        assertNotNull(request);
-        assertEquals(expectedNumChangesRequested,
-                fromParcel.getNumChangesRequested());
-    }
-
-    @SmallTest
-    public void testGetOverlayThemePackageNameUnravelFromParcel() {
-        String expectedOverlayPN = "dummy";
-
-        ThemeChangeRequest request = new ThemeChangeRequest.Builder()
-                .setOverlay(expectedOverlayPN)
-                .build();
-
-        // Write to parcel
-        Parcel parcel = Parcel.obtain();
-        request.writeToParcel(parcel, 0);
-
-        // Rewind
-        parcel.setDataPosition(0);
-
-        // Verify data when unraveling
-        ThemeChangeRequest fromParcel = ThemeChangeRequest.CREATOR.createFromParcel(parcel);
-
-        assertNotNull(fromParcel);
-        assertEquals(expectedOverlayPN,
-                fromParcel.getOverlayThemePackageName());
-    }
-
-    @SmallTest
-    public void testGetPerAppOverlaysUnravelFromParcel() {
-        Map<String, String> expectedAppOverlayMap = new HashMap<>();
-
-        String appkey1 = "app1";
-        String appkey2 = "app2";
-        String appkey3 = "app3";
-        String appvalue1 = "dummy1";
-        String appvalue2 = "dummy2";
-        String appvalue3 = "dummy3";
-
-        expectedAppOverlayMap.put(appkey1, appvalue1);
-        expectedAppOverlayMap.put(appkey2, appvalue2);
-        expectedAppOverlayMap.put(appkey3, appvalue3);
-
-        ThemeChangeRequest request = new ThemeChangeRequest.Builder()
-                .setAppOverlay(appkey1, appvalue1)
-                .setAppOverlay(appkey2, appvalue2)
-                .setAppOverlay(appkey3, appvalue3)
-                .build();
-
-        // Write to parcel
-        Parcel parcel = Parcel.obtain();
-        request.writeToParcel(parcel, 0);
-
-        // Rewind
-        parcel.setDataPosition(0);
-
-        // Verify data when unraveling
-        ThemeChangeRequest fromParcel = ThemeChangeRequest.CREATOR.createFromParcel(parcel);
-
-        assertNotNull(fromParcel);
-        Map<String, String> actualAppOverlayMap = fromParcel.getPerAppOverlays();
-        for (String key : actualAppOverlayMap.keySet()) {
-            assertNotNull(expectedAppOverlayMap.get(key));
-            assertEquals(expectedAppOverlayMap.get(key), actualAppOverlayMap.get(key));
-        }
-    }
-
-    @SmallTest
-    public void testGetReqeustTypeUnravelFromParcel() {
-        ThemeChangeRequest.RequestType expectedRequestType =
-                ThemeChangeRequest.RequestType.USER_REQUEST;
-
-        ThemeChangeRequest request = new ThemeChangeRequest.Builder()
-                .setRequestType(expectedRequestType)
-                .build();
-
-        // Write to parcel
-        Parcel parcel = Parcel.obtain();
-        request.writeToParcel(parcel, 0);
-
-        // Rewind
-        parcel.setDataPosition(0);
-
-        // Verify data when unraveling
-        ThemeChangeRequest fromParcel = ThemeChangeRequest.CREATOR.createFromParcel(parcel);
-
-        assertNotNull(fromParcel);
-        assertEquals(expectedRequestType,
-                fromParcel.getReqeustType());
-    }
-
-    @SmallTest
-    public void testGetRingtoneThemePackageNameUnravelFromParcel() {
-        String expectedRingtoneThemePN = "dummy";
-
-        ThemeChangeRequest request = new ThemeChangeRequest.Builder()
-                .setRingtone(expectedRingtoneThemePN)
-                .build();
-
-        // Write to parcel
-        Parcel parcel = Parcel.obtain();
-        request.writeToParcel(parcel, 0);
-
-        // Rewind
-        parcel.setDataPosition(0);
-
-        // Verify data when unraveling
-        ThemeChangeRequest fromParcel = ThemeChangeRequest.CREATOR.createFromParcel(parcel);
-
-        assertNotNull(fromParcel);
-        assertEquals(expectedRingtoneThemePN,
-                fromParcel.getRingtoneThemePackageName());
-    }
-
-    @SmallTest
-    public void testGetStatusBarThemePackageNameUnravelFromParcel() {
-        String expectedStatusBarThemePN = "dummy";
-
-        ThemeChangeRequest request = new ThemeChangeRequest.Builder()
-                .setStatusBar(expectedStatusBarThemePN)
-                .build();
-
-        // Write to parcel
-        Parcel parcel = Parcel.obtain();
-        request.writeToParcel(parcel, 0);
-
-        // Rewind
-        parcel.setDataPosition(0);
-
-        // Verify data when unraveling
-        ThemeChangeRequest fromParcel = ThemeChangeRequest.CREATOR.createFromParcel(parcel);
-
-        assertNotNull(fromParcel);
-        assertEquals(expectedStatusBarThemePN,
-                fromParcel.getStatusBarThemePackageName());
-    }
-
-    @SmallTest
-    public void testGetThemeComponentsMapUnravelFromParcel() {
-        Map<String, String> expectedAppOverlayMap = new HashMap<>();
-
-        String appkey1 = "app1";
-        String appkey2 = "app2";
-        String appkey3 = "app3";
-        String appvalue1 = "dummy1";
-        String appvalue2 = "dummy2";
-        String appvalue3 = "dummy3";
-
-        expectedAppOverlayMap.put(appkey1, appvalue1);
-        expectedAppOverlayMap.put(appkey2, appvalue2);
-        expectedAppOverlayMap.put(appkey3, appvalue3);
-
-        ThemeChangeRequest request = new ThemeChangeRequest.Builder()
-                .setComponent(appkey1, appvalue1)
-                .setComponent(appkey2, appvalue2)
-                .setComponent(appkey3, appvalue3)
-                .build();
-
-        // Write to parcel
-        Parcel parcel = Parcel.obtain();
-        request.writeToParcel(parcel, 0);
-
-        // Rewind
-        parcel.setDataPosition(0);
-
-        // Verify data when unraveling
-        ThemeChangeRequest fromParcel = ThemeChangeRequest.CREATOR.createFromParcel(parcel);
-
-        assertNotNull(fromParcel);
-        Map<String, String> actualAppOverlayMap = fromParcel.getThemeComponentsMap();
-        for (String key : actualAppOverlayMap.keySet()) {
-            assertNotNull(expectedAppOverlayMap.get(key));
-            assertEquals(expectedAppOverlayMap.get(key), actualAppOverlayMap.get(key));
-        }
-    }
-
-    @SmallTest
-    public void testGetWallpaperIdUnravelFromParcel() {
-        long expectedWallpaperId = 123971231L;
-
-        ThemeChangeRequest request = new ThemeChangeRequest.Builder()
-                .setWallpaperId(expectedWallpaperId)
-                .build();
-
-        // Write to parcel
-        Parcel parcel = Parcel.obtain();
-        request.writeToParcel(parcel, 0);
-
-        // Rewind
-        parcel.setDataPosition(0);
-
-        // Verify data when unraveling
-        ThemeChangeRequest fromParcel = ThemeChangeRequest.CREATOR.createFromParcel(parcel);
-
-        assertNotNull(fromParcel);
-        assertEquals(expectedWallpaperId,
-                fromParcel.getWallpaperId());
-    }
-
-    @SmallTest
-    public void testGetWallpaperThemePackageNameUnravelFromParcel() {
-        String expectedWallpaperThemePN = "dummy";
-
-        ThemeChangeRequest request = new ThemeChangeRequest.Builder()
-                .setWallpaper(expectedWallpaperThemePN)
-                .build();
-
-        // Write to parcel
-        Parcel parcel = Parcel.obtain();
-        request.writeToParcel(parcel, 0);
-
-        // Rewind
-        parcel.setDataPosition(0);
-
-        // Verify data when unraveling
-        ThemeChangeRequest fromParcel = ThemeChangeRequest.CREATOR.createFromParcel(parcel);
-
-        assertNotNull(fromParcel);
-        assertEquals(expectedWallpaperThemePN,
-                fromParcel.getWallpaperThemePackageName());
-    }
-
-}
diff --git a/tests/src/org/lineageos/tests/themes/unit/ThemeManagerTest.java b/tests/src/org/lineageos/tests/themes/unit/ThemeManagerTest.java
deleted file mode 100644
index f909cdd..0000000
--- a/tests/src/org/lineageos/tests/themes/unit/ThemeManagerTest.java
+++ /dev/null
@@ -1,655 +0,0 @@
-/**
- * Copyright (C) 2016 The CyanogenMod 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 org.lineageos.tests.themes.unit;
-
-import android.content.ContentResolver;
-import android.content.Context;
-import android.content.pm.PackageManager;
-import android.content.res.ThemeConfig;
-import android.database.Cursor;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.text.TextUtils;
-import android.util.Log;
-
-import lineageos.providers.LineageSettings;
-import lineageos.providers.ThemesContract;
-import lineageos.themes.IThemeService;
-import lineageos.themes.ThemeChangeRequest;
-import lineageos.themes.ThemeManager;
-import lineageos.themes.ThemeManager.ThemeChangeListener;
-
-import org.mockito.Mockito;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.CountDownLatch;
-
-public class ThemeManagerTest extends AndroidTestCase {
-    private static final String TAG = ThemeManagerTest.class.getSimpleName();
-    private static final int COUNTDOWN = 1;
-    private static final int INVALID_PROGRESS = -1;
-
-    private ThemeManager mThemeManager;
-
-    private static final List<String> ALL_THEME_COMPONENTS = new ArrayList<>();
-
-    static {
-        ALL_THEME_COMPONENTS.add(ThemesContract.ThemesColumns.MODIFIES_ALARMS);
-        ALL_THEME_COMPONENTS.add(ThemesContract.ThemesColumns.MODIFIES_BOOT_ANIM);
-        ALL_THEME_COMPONENTS.add(ThemesContract.ThemesColumns.MODIFIES_FONTS);
-        ALL_THEME_COMPONENTS.add(ThemesContract.ThemesColumns.MODIFIES_ICONS);
-        ALL_THEME_COMPONENTS.add(ThemesContract.ThemesColumns.MODIFIES_LAUNCHER);
-        ALL_THEME_COMPONENTS.add(ThemesContract.ThemesColumns.MODIFIES_LIVE_LOCK_SCREEN);
-        ALL_THEME_COMPONENTS.add(ThemesContract.ThemesColumns.MODIFIES_LOCKSCREEN);
-        ALL_THEME_COMPONENTS.add(ThemesContract.ThemesColumns.MODIFIES_NAVIGATION_BAR);
-        ALL_THEME_COMPONENTS.add(ThemesContract.ThemesColumns.MODIFIES_NOTIFICATIONS);
-        ALL_THEME_COMPONENTS.add(ThemesContract.ThemesColumns.MODIFIES_OVERLAYS);
-        ALL_THEME_COMPONENTS.add(ThemesContract.ThemesColumns.MODIFIES_RINGTONES);
-        ALL_THEME_COMPONENTS.add(ThemesContract.ThemesColumns.MODIFIES_STATUS_BAR);
-    }
-
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-        mThemeManager = ThemeManager.getInstance(getContext());
-    }
-
-    @SmallTest
-    public void testManagerExists() {
-        assertNotNull(mThemeManager);
-    }
-
-    @SmallTest
-    public void testManagerServiceIsAvailable() {
-        IThemeService ilineageStatusBarManager = mThemeManager.getService();
-        assertNotNull(ilineageStatusBarManager);
-    }
-
-    @SmallTest
-    public void testApplyDefaultTheme() {
-        final HashMap<String, String> componentKeyMap = new HashMap<>();
-        final CountDownLatch signal = new CountDownLatch(COUNTDOWN);
-
-        // Get the default theme package
-        final String defaultThemePkg = getDefaultThemePackageName(mContext);
-
-        // Get the default theme components
-        final List<String> components = getSupportedComponentsForTheme(mContext, defaultThemePkg);
-
-        // Populate componentkey map since we're going to lock the thread
-        for (String component : components) {
-            String key = ThemesContract.MixnMatchColumns.componentToMixNMatchKey(component);
-            componentKeyMap.put(key, getPackageNameForKey(mContext, key));
-        }
-
-        // Register defaultThemeChangeListener
-        mThemeManager.registerThemeChangeListener(new ThemeChangeListener() {
-            public void onProgress(int progress) {
-
-            }
-
-            public void onFinish(boolean isSuccess) {
-                boolean assertionFailure = false;
-                if (isSuccess) {
-                    for (String component : components) {
-                        String key = ThemesContract.MixnMatchColumns.
-                                componentToMixNMatchKey(component);
-                        Log.d(TAG, "Verifying row " + key);
-                        if (!verifyThemeAppliedFromPackageForRow(defaultThemePkg,
-                                componentKeyMap.get(key), true)) {
-                            Log.d(TAG, "Expected package " + defaultThemePkg
-                                    + " but got package " + componentKeyMap.get(key));
-                            assertionFailure = true;
-                        }
-                    }
-                }
-                mThemeManager.unregisterThemeChangeListener(this);
-                signal.countDown();
-                if (assertionFailure) throw new AssertionError("Unable to apply default theme");
-            }
-        });
-
-        // Apply the default theme
-        mThemeManager.applyDefaultTheme();
-
-        // Lock
-        try {
-            signal.await();
-        } catch (InterruptedException e) {
-            throw new AssertionError(e);
-        }
-    }
-
-    private ThemeChangeListener dummyThemeChangeListener = new ThemeChangeListener() {
-        @Override
-        public void onProgress(int progress) {
-
-        }
-
-        @Override
-        public void onFinish(boolean isSuccess) {
-
-        }
-    };
-
-    @SmallTest
-    public void testRegisterAndUnregisterThemeChangeListener() {
-        // Exploit the illegalArgumentException thrown by registerThemeChangeListener to
-        // verify registration.
-        mThemeManager.registerThemeChangeListener(dummyThemeChangeListener);
-
-        try {
-            mThemeManager.registerThemeChangeListener(dummyThemeChangeListener);
-            throw new AssertionError("Failed to register theme change listener!");
-        } catch (IllegalArgumentException e) {
-            // EXPECTED!
-        }
-
-        // Inversely, exploit that the illegal argument exception isn't thrown
-        // if unregistering and reregistering
-        mThemeManager.unregisterThemeChangeListener(dummyThemeChangeListener);
-
-        try {
-            mThemeManager.registerThemeChangeListener(dummyThemeChangeListener);
-        } catch (IllegalArgumentException e) {
-            throw new AssertionError("Failed to unregister theme change listener!");
-        }
-
-        // Cleanup!
-        mThemeManager.unregisterThemeChangeListener(dummyThemeChangeListener);
-    }
-
-    private ThemeManager.ThemeProcessingListener dummyThemeProcessingListener =
-            new ThemeManager.ThemeProcessingListener() {
-        @Override
-        public void onFinishedProcessing(String pkgName) {
-
-        }
-    };
-
-    @SmallTest
-    public void testRegisterAndUnregisterThemeProcessingListener() {
-        // Exploit the illegalArgumentException thrown by registerThemeChangeListener to
-        // verify registration.
-        mThemeManager.registerProcessingListener(dummyThemeProcessingListener);
-
-        try {
-            mThemeManager.registerProcessingListener(dummyThemeProcessingListener);
-            throw new AssertionError("Failed to register theme processing listener!");
-        } catch (IllegalArgumentException e) {
-            // EXPECTED!
-        }
-
-        // Inversely, exploit that the illegal argument exception isn't thrown
-        // if unregistering and reregistering
-        mThemeManager.unregisterProcessingListener(dummyThemeProcessingListener);
-
-        try {
-            mThemeManager.registerProcessingListener(dummyThemeProcessingListener);
-        } catch (IllegalArgumentException e) {
-            throw new AssertionError("Failed to unregister theme change listener!");
-        }
-
-        // Cleanup!
-        mThemeManager.unregisterProcessingListener(dummyThemeProcessingListener);
-    }
-
-    @SmallTest
-    public void testAddAndRemoveClient() {
-        // Exploit the illegalArgumentException thrown by addClient to verify registration.
-        mThemeManager.addClient(dummyThemeChangeListener);
-
-        try {
-            mThemeManager.addClient(dummyThemeChangeListener);
-            throw new AssertionError("Failed to add client!");
-        } catch (IllegalArgumentException e) {
-            // EXPECTED!
-        }
-
-        // Inversely, exploit that the illegal argument exception isn't thrown
-        // if adding and removing
-        mThemeManager.removeClient(dummyThemeChangeListener);
-
-        try {
-            mThemeManager.addClient(dummyThemeChangeListener);
-        } catch (IllegalArgumentException e) {
-            throw new AssertionError("Failed to remove client!");
-        }
-
-        // Cleanup!
-        mThemeManager.removeClient(dummyThemeChangeListener);
-    }
-
-    @SmallTest
-    public void testOnClientPausedResumedAndDestroyed() {
-        // Exploit the illegalArgumentException thrown by addClient to verify registration.
-        mThemeManager.addClient(dummyThemeChangeListener);
-
-        try {
-            mThemeManager.addClient(dummyThemeChangeListener);
-            throw new AssertionError("Failed to add client!");
-        } catch (IllegalArgumentException e) {
-            // EXPECTED!
-        }
-
-        // Inversely, exploit that the illegal argument exception isn't thrown
-        // if pausing and resuming
-        mThemeManager.onClientPaused(dummyThemeChangeListener);
-
-        try {
-            mThemeManager.onClientResumed(dummyThemeChangeListener);
-        } catch (IllegalArgumentException e) {
-            throw new AssertionError("Failed to pause client!");
-        }
-
-        // Once again exploit the illegalArgumentException thrown by onClientResumed to verify
-        // the previous call to onClientResumed added the client back
-        try {
-            mThemeManager.onClientResumed(dummyThemeChangeListener);
-            throw new AssertionError("Failed to resume client!");
-        } catch (IllegalArgumentException e) {
-            // EXPECTED!
-        }
-
-        // Inversely, exploit that the illegal argument exception isn't thrown
-        // if destroying and adding
-        mThemeManager.onClientDestroyed(dummyThemeChangeListener);
-
-        try {
-            mThemeManager.addClient(dummyThemeChangeListener);
-        } catch (IllegalArgumentException e) {
-            throw new AssertionError("Failed to destroy client!");
-        }
-
-        // Cleanup!
-        mThemeManager.removeClient(dummyThemeChangeListener);
-    }
-
-    boolean actualRequestThemeChangeAsMapResponse = false;
-    @SmallTest
-    public void testRequestThemeChangeAsMapAndCallback() {
-        Map<String, String> expectedAppOverlayMap = new HashMap<>();
-        final CountDownLatch signal = new CountDownLatch(COUNTDOWN);
-
-        // Get the default theme package
-        final String defaultThemePkg = getDefaultThemePackageName(mContext);
-
-        // Get the default theme components
-        final List<String> components = getSupportedComponentsForTheme(mContext, defaultThemePkg);
-
-        for (String component : components) {
-            expectedAppOverlayMap.put(component, defaultThemePkg);
-        }
-
-        mThemeManager.registerThemeChangeListener(new ThemeChangeListener() {
-            @Override
-            public void onProgress(int progress) {
-
-            }
-
-            @Override
-            public void onFinish(boolean isSuccess) {
-                actualRequestThemeChangeAsMapResponse = isSuccess;
-                mThemeManager.unregisterThemeChangeListener(this);
-                signal.countDown();
-            }
-        });
-
-        mThemeManager.requestThemeChange(expectedAppOverlayMap);
-
-        // Lock
-        try {
-            signal.await();
-        } catch (InterruptedException e) {
-            throw new AssertionError(e);
-        }
-
-        assertTrue(actualRequestThemeChangeAsMapResponse);
-    }
-
-    boolean actualRequestThemeChangeAsStringListResponse = false;
-    @SmallTest
-    public void testRequestThemeChangeAsStringListAndCallback() {
-        final CountDownLatch signal = new CountDownLatch(COUNTDOWN);
-
-        // Get the default theme package
-        final String defaultThemePkg = getDefaultThemePackageName(mContext);
-
-        // Get the default theme components
-        final List<String> components = getSupportedComponentsForTheme(mContext, defaultThemePkg);
-
-        mThemeManager.registerThemeChangeListener(new ThemeChangeListener() {
-            @Override
-            public void onProgress(int progress) {
-
-            }
-
-            @Override
-            public void onFinish(boolean isSuccess) {
-                actualRequestThemeChangeAsStringListResponse = isSuccess;
-                mThemeManager.unregisterThemeChangeListener(this);
-                signal.countDown();
-            }
-        });
-
-        mThemeManager.requestThemeChange(defaultThemePkg, components);
-
-        // Lock
-        try {
-            signal.await();
-        } catch (InterruptedException e) {
-            throw new AssertionError(e);
-        }
-
-        assertTrue(actualRequestThemeChangeAsStringListResponse);
-    }
-
-    boolean actualRequestThemeChangeAsRequestResponse = false;
-    @SmallTest
-    public void testRequestThemeChangeAsRequestAndCallback() {
-        final CountDownLatch signal = new CountDownLatch(COUNTDOWN);
-
-        // Get the default theme package
-        final String defaultThemePkg = getDefaultThemePackageName(mContext);
-
-        ThemeChangeRequest request = new ThemeChangeRequest.Builder()
-                .setAlarm(defaultThemePkg)
-                .setNavBar(defaultThemePkg)
-                .setBootanimation(defaultThemePkg)
-                .setLockWallpaper(defaultThemePkg)
-                .setLiveLockScreen(defaultThemePkg)
-                .build();
-
-        mThemeManager.registerThemeChangeListener(new ThemeChangeListener() {
-            @Override
-            public void onProgress(int progress) {
-
-            }
-
-            @Override
-            public void onFinish(boolean isSuccess) {
-                actualRequestThemeChangeAsRequestResponse = isSuccess;
-                mThemeManager.unregisterThemeChangeListener(this);
-                signal.countDown();
-            }
-        });
-
-        mThemeManager.requestThemeChange(request, true);
-
-        // Lock
-        try {
-            signal.await();
-        } catch (InterruptedException e) {
-            throw new AssertionError(e);
-        }
-
-        assertTrue(actualRequestThemeChangeAsRequestResponse);
-    }
-
-    @SmallTest
-    public void testGetLastThemeChangeRequestType() {
-        final CountDownLatch signal = new CountDownLatch(COUNTDOWN);
-
-        // Get the default theme package
-        final String defaultThemePkg = getDefaultThemePackageName(mContext);
-
-        ThemeChangeRequest request = new ThemeChangeRequest.Builder()
-                .setStatusBar(defaultThemePkg)
-                .setRequestType(ThemeChangeRequest.RequestType.USER_REQUEST_MIXNMATCH)
-                .build();
-
-        mThemeManager.registerThemeChangeListener(new ThemeChangeListener() {
-            @Override
-            public void onProgress(int progress) {}
-
-            @Override
-            public void onFinish(boolean isSuccess) {
-                mThemeManager.unregisterThemeChangeListener(this);
-                signal.countDown();
-            }
-        });
-
-        mThemeManager.requestThemeChange(request, true);
-
-        // Lock
-        try {
-            signal.await();
-        } catch (InterruptedException e) {
-            throw new AssertionError(e);
-        }
-
-        assertEquals(ThemeChangeRequest.RequestType.USER_REQUEST_MIXNMATCH,
-                mThemeManager.getLastThemeChangeRequestType());
-    }
-
-    @SmallTest
-    public void testGetLastThemeChangeTime() {
-        final CountDownLatch signal = new CountDownLatch(COUNTDOWN);
-
-        // Get the default theme package
-        final String defaultThemePkg = getDefaultThemePackageName(mContext);
-
-        ThemeChangeRequest request = new ThemeChangeRequest.Builder()
-                .setStatusBar(defaultThemePkg)
-                .setRequestType(ThemeChangeRequest.RequestType.USER_REQUEST_MIXNMATCH)
-                .build();
-
-        mThemeManager.registerThemeChangeListener(new ThemeChangeListener() {
-            @Override
-            public void onProgress(int progress) {}
-
-            @Override
-            public void onFinish(boolean isSuccess) {
-                mThemeManager.unregisterThemeChangeListener(this);
-                signal.countDown();
-            }
-        });
-
-        final long preThemeChangeTime = System.currentTimeMillis();
-        mThemeManager.requestThemeChange(request, true);
-
-        // Lock
-        try {
-            signal.await();
-        } catch (InterruptedException e) {
-            throw new AssertionError(e);
-        }
-
-        final long postThemeChangeTime = System.currentTimeMillis();
-        final long lastThemeChangeTime = mThemeManager.getLastThemeChangeTime();
-        // lastThemeChangeTime should be between preThemeChangeTime and postThemeChangeTime
-        assertTrue(lastThemeChangeTime >= preThemeChangeTime);
-        assertTrue(lastThemeChangeTime <= postThemeChangeTime);
-    }
-
-    @SmallTest
-    public void testIsThemeApplying() {
-        boolean themeApplying;
-        final CountDownLatch signal = new CountDownLatch(COUNTDOWN);
-
-        // Get the default theme package
-        final String defaultThemePkg = getDefaultThemePackageName(mContext);
-
-        ThemeChangeRequest request = new ThemeChangeRequest.Builder()
-                .setStatusBar(defaultThemePkg)
-                .setRequestType(ThemeChangeRequest.RequestType.USER_REQUEST_MIXNMATCH)
-                .build();
-
-        mThemeManager.registerThemeChangeListener(new ThemeChangeListener() {
-            @Override
-            public void onProgress(int progress) {
-                signal.countDown();
-            }
-
-            @Override
-            public void onFinish(boolean isSuccess) {
-                mThemeManager.unregisterThemeChangeListener(this);
-            }
-        });
-
-        mThemeManager.requestThemeChange(request, true);
-
-        // Lock
-        try {
-            signal.await();
-            themeApplying = mThemeManager.isThemeApplying();
-        } catch (InterruptedException e) {
-            throw new AssertionError(e);
-        }
-
-        assertTrue(themeApplying);
-    }
-
-    int progress = INVALID_PROGRESS;
-    @SmallTest
-    public void testGetProgress() {
-        final CountDownLatch signal = new CountDownLatch(COUNTDOWN);
-
-        // Get the default theme package
-        final String defaultThemePkg = getDefaultThemePackageName(mContext);
-
-        ThemeChangeRequest request = new ThemeChangeRequest.Builder()
-                .setStatusBar(defaultThemePkg)
-                .setRequestType(ThemeChangeRequest.RequestType.USER_REQUEST_MIXNMATCH)
-                .build();
-
-        mThemeManager.registerThemeChangeListener(new ThemeChangeListener() {
-            @Override
-            public void onProgress(int p) {
-                if (progress == INVALID_PROGRESS) progress = mThemeManager.getProgress();
-            }
-
-            @Override
-            public void onFinish(boolean isSuccess) {
-                mThemeManager.unregisterThemeChangeListener(this);
-                signal.countDown();
-            }
-        });
-
-        mThemeManager.requestThemeChange(request, true);
-
-        // Lock
-        try {
-            signal.await();
-        } catch (InterruptedException e) {
-            throw new AssertionError(e);
-        }
-
-        // Verify that progress was updating during the theme change
-        assertTrue(progress != INVALID_PROGRESS);
-
-        // Verify that getProgress returns 0 now that the theme change has finished
-        assertEquals(0, mThemeManager.getProgress());
-    }
-
-    @SmallTest
-    public void testThemeProcessing() {
-        // Get the default theme package
-        final String defaultThemePkg = getDefaultThemePackageName(mContext);
-
-        ThemeManager mockedThemeManager = Mockito.mock(ThemeManager.class);
-
-        Mockito.doReturn(true)
-                .when(mockedThemeManager)
-                .processThemeResources(Mockito.anyString());
-
-        Mockito.doReturn(true)
-                .when(mockedThemeManager)
-                .isThemeBeingProcessed(Mockito.anyString());
-
-        assertTrue(mockedThemeManager.processThemeResources(defaultThemePkg));
-        assertTrue(mockedThemeManager.isThemeBeingProcessed(defaultThemePkg));
-    }
-
-    private boolean verifyThemeAppliedFromPackageForRow(String packageName, String expectedPackage,
-            boolean systemTheme) {
-        boolean verified = TextUtils.isEmpty(expectedPackage) ||
-                TextUtils.equals(packageName, expectedPackage);
-
-        if (systemTheme && !verified) {
-            verified = TextUtils.equals(expectedPackage, ThemeConfig.SYSTEM_DEFAULT);
-        }
-
-        return verified;
-    }
-
-    private String getPackageNameForKey(Context context, String key) {
-        final ContentResolver cr = context.getContentResolver();
-        String[] projection = {ThemesContract.MixnMatchColumns.COL_VALUE};
-        String selection = ThemesContract.MixnMatchColumns.COL_KEY + "=?";
-        String[] selectionArgs = {key};
-        Cursor c = cr.query(ThemesContract.MixnMatchColumns.CONTENT_URI, projection, selection,
-                selectionArgs, null, null);
-        if (c != null) {
-            try {
-                if (c.moveToFirst()) {
-                    return c.getString(0);
-                }
-            } finally {
-                c.close();
-            }
-        }
-        return null;
-    }
-
-    private static String getDefaultThemePackageName(Context context) {
-        final String defaultThemePkg = LineageSettings.Secure.getString(context.getContentResolver(),
-                LineageSettings.Secure.DEFAULT_THEME_PACKAGE);
-        if (!TextUtils.isEmpty(defaultThemePkg)) {
-            PackageManager pm = context.getPackageManager();
-            try {
-                if (pm.getPackageInfo(defaultThemePkg, 0) != null) {
-                    return defaultThemePkg;
-                }
-            } catch (PackageManager.NameNotFoundException e) {
-                // doesn't exist so system will be default
-                Log.w(TAG, "Default theme " + defaultThemePkg + " not found", e);
-            }
-        }
-
-        return ThemeConfig.SYSTEM_DEFAULT;
-    }
-
-    private static List<String> getSupportedComponentsForTheme(Context context,
-            String themePkgName) {
-        List<String> supportedComponents = new ArrayList<>();
-
-        String selection = ThemesContract.ThemesColumns.PKG_NAME + "= ?";
-        String[] selectionArgs = new String[]{ themePkgName };
-        Cursor c = context.getContentResolver().query(ThemesContract.ThemesColumns.CONTENT_URI,
-                null, selection, selectionArgs, null);
-
-        if (c != null) {
-            try {
-                if (c.moveToFirst()) {
-                    for (String component : ALL_THEME_COMPONENTS) {
-                        int index = c.getColumnIndex(component);
-                        if (c.getInt(index) == 1) {
-                            supportedComponents.add(component);
-                        }
-                    }
-                }
-            } finally {
-                c.close();
-            }
-        }
-        return supportedComponents;
-    }
-}
diff --git a/tests/src/org/lineageos/tests/themes/unit/ThemesContractTests.java b/tests/src/org/lineageos/tests/themes/unit/ThemesContractTests.java
deleted file mode 100644
index 480870b..0000000
--- a/tests/src/org/lineageos/tests/themes/unit/ThemesContractTests.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/**
- * Copyright (C) 2016 The CyanogenMod 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 org.lineageos.tests.themes.unit;
-
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-import lineageos.providers.ThemesContract;
-
-public class ThemesContractTests extends AndroidTestCase {
-    private static final String TAG = ThemesContract.class.getSimpleName();
-
-    public static final String[] COMPONENTS = {
-            ThemesContract.ThemesColumns.MODIFIES_LAUNCHER,
-            ThemesContract.ThemesColumns.MODIFIES_LOCKSCREEN,
-            ThemesContract.ThemesColumns.MODIFIES_ICONS,
-            ThemesContract.ThemesColumns.MODIFIES_STATUS_BAR,
-            ThemesContract.ThemesColumns.MODIFIES_BOOT_ANIM,
-            ThemesContract.ThemesColumns.MODIFIES_FONTS,
-            ThemesContract.ThemesColumns.MODIFIES_NOTIFICATIONS,
-            ThemesContract.ThemesColumns.MODIFIES_RINGTONES,
-            ThemesContract.ThemesColumns.MODIFIES_ALARMS,
-            ThemesContract.ThemesColumns.MODIFIES_OVERLAYS,
-            ThemesContract.ThemesColumns.MODIFIES_NAVIGATION_BAR,
-            ThemesContract.ThemesColumns.MODIFIES_LIVE_LOCK_SCREEN
-    };
-
-    public static final String[] URIS = {
-            ThemesContract.ThemesColumns.HOMESCREEN_URI,
-            ThemesContract.ThemesColumns.LOCKSCREEN_URI,
-            ThemesContract.ThemesColumns.ICON_URI,
-            ThemesContract.ThemesColumns.STATUSBAR_URI,
-            ThemesContract.ThemesColumns.BOOT_ANIM_URI,
-            ThemesContract.ThemesColumns.FONT_URI,
-            null,
-            null,
-            null,
-            ThemesContract.ThemesColumns.OVERLAYS_URI,
-            null,
-            null,
-    };
-
-    @SmallTest
-    public void testComponentToImageColNameTransformation() {
-        for (int i = 0; i < ThemesContract.MixnMatchColumns.ROWS.length; i++) {
-            if (URIS[i] != null) {
-                assertEquals(URIS[i],
-                        ThemesContract.MixnMatchColumns.componentToImageColName(
-                                ThemesContract.MixnMatchColumns.ROWS[i]));
-            } else {
-                try {
-                    ThemesContract.MixnMatchColumns.componentToImageColName(
-                            ThemesContract.MixnMatchColumns.ROWS[i]);
-                    throw new AssertionError("Key " + ThemesContract.MixnMatchColumns.ROWS[i]
-                            + " should throw IllegalArgumentException");
-                } catch (IllegalArgumentException e) {
-                    // Expected
-                }
-            }
-        }
-    }
-
-    @SmallTest
-    public void testComponentToMixNMatchKeyTransformation() {
-        for (int i = 0; i < COMPONENTS.length; i++) {
-            assertEquals(ThemesContract.MixnMatchColumns.componentToMixNMatchKey(
-                    COMPONENTS[i]) , ThemesContract.MixnMatchColumns.ROWS[i]);
-        }
-    }
-
-    @SmallTest
-    public void testmixNMatchKeyToComponentTransformation() {
-        for (int i = 0; i < ThemesContract.MixnMatchColumns.ROWS.length; i++) {
-            assertEquals(ThemesContract.MixnMatchColumns.mixNMatchKeyToComponent(
-                    ThemesContract.MixnMatchColumns.ROWS[i]) , COMPONENTS[i]);
-        }
-    }
-}
diff --git a/tests/src/org/lineageos/tests/versioning/unit/apiv5/ApiV5PriorReleaseInterfaces.java b/tests/src/org/lineageos/tests/versioning/unit/apiv5/ApiV5PriorReleaseInterfaces.java
index 158b0ff..7adefe0 100644
--- a/tests/src/org/lineageos/tests/versioning/unit/apiv5/ApiV5PriorReleaseInterfaces.java
+++ b/tests/src/org/lineageos/tests/versioning/unit/apiv5/ApiV5PriorReleaseInterfaces.java
@@ -105,43 +105,6 @@
         lineageAudioService.put("listAudioSessions", 1);
     }
 
-    //ThemeChangeListener Aidl (IThemeChangeListener)
-    static {
-        Map<String, Integer> themeChangeListener =
-                getInternalInterfaceMap("IThemeChangeListener");
-        //ELDERBERRY BEGIN
-        themeChangeListener.put("onProgress", 1);
-        themeChangeListener.put("onFinish", 2);
-    }
-
-    //ThemeProcessingListener Aidl (IThemeProcessingListener)
-    static {
-        Map<String, Integer> themeChangeListener =
-                getInternalInterfaceMap("IThemeProcessingListener");
-        //ELDERBERRY BEGIN
-        themeChangeListener.put("onFinishedProcessing", 1);
-    }
-
-    //ThemeManager Aidl (IThemeService)
-    static {
-        Map<String, Integer> themes =
-                getInternalInterfaceMap("IThemeService");
-        //ELDERBERRY BEGIN
-        themes.put("requestThemeChangeUpdates", 1);
-        themes.put("removeUpdates ", 2);
-        themes.put("requestThemeChange", 3);
-        themes.put("applyDefaultTheme", 4);
-        themes.put("isThemeApplying", 5);
-        themes.put("getProgress", 6);
-        themes.put("processThemeResources", 7);
-        themes.put("isThemeBeingProcessed", 8);
-        themes.put("registerThemeProcessingListener", 9);
-        themes.put("unregisterThemeProcessingListener", 10);
-        themes.put("rebuildResourceCache", 11);
-        themes.put("getLastThemeChangeTime", 12);
-        themes.put("getLastThemeChangeRequestType", 13);
-    }
-
     //LineageWeatherManager Aidl (ILineageWeatherManager)
     static {
         Map<String, Integer> ilineageWeatherManager =