aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSam Mortimer <sam@mortimer.me.uk>2017-09-09 00:42:35 -0700
committerSam Mortimer <sam@mortimer.me.uk>2017-10-11 23:17:36 -0700
commit0912ee88c7ce0ec548089ceb2b4ed8d7f881c99f (patch)
tree6324fb893d5756215699f6e559ac527bd7848c2c
parent6904e77152df9365c627287013ce79e0b491da1f (diff)
downloadlineage-sdk-0912ee88c7ce0ec548089ceb2b4ed8d7f881c99f.tar.gz
lineage-sdk-0912ee88c7ce0ec548089ceb2b4ed8d7f881c99f.tar.bz2
lineage-sdk-0912ee88c7ce0ec548089ceb2b4ed8d7f881c99f.zip
Remove theme support
Change-Id: I41f1d0fa1ecc98c2872d2569534e6f2ef686a726
-rw-r--r--Android.mk2
-rw-r--r--api/lineage_current.txt241
-rw-r--r--host/migration/src/LineageSettings.java37
-rw-r--r--lineage/lib/main/java/org/lineageos/platform/internal/AppsFailureReceiver.java120
-rw-r--r--lineage/lib/main/java/org/lineageos/platform/internal/IconCacheManagerServiceBroker.java100
-rw-r--r--lineage/lib/main/java/org/lineageos/platform/internal/ThemeManagerServiceBroker.java372
-rw-r--r--lineage/res/AndroidManifest.xml26
-rw-r--r--lineage/res/res/values-af/strings.xml16
-rw-r--r--lineage/res/res/values-am/strings.xml3
-rw-r--r--lineage/res/res/values-ar/strings.xml17
-rw-r--r--lineage/res/res/values-as-rIN/strings.xml3
-rw-r--r--lineage/res/res/values-ast-rES/strings.xml15
-rw-r--r--lineage/res/res/values-az-rAZ/strings.xml3
-rw-r--r--lineage/res/res/values-be-rBY/strings.xml15
-rw-r--r--lineage/res/res/values-be/strings.xml15
-rw-r--r--lineage/res/res/values-bg/strings.xml15
-rw-r--r--lineage/res/res/values-bn-rBD/strings.xml3
-rw-r--r--lineage/res/res/values-br-rFR/strings.xml3
-rw-r--r--lineage/res/res/values-bs-rBA/strings.xml3
-rw-r--r--lineage/res/res/values-ca/strings.xml15
-rw-r--r--lineage/res/res/values-cs/strings.xml15
-rw-r--r--lineage/res/res/values-csb-rPL/strings.xml3
-rw-r--r--lineage/res/res/values-cy/strings.xml3
-rw-r--r--lineage/res/res/values-da/strings.xml15
-rw-r--r--lineage/res/res/values-de/strings.xml15
-rw-r--r--lineage/res/res/values-el/strings.xml15
-rw-r--r--lineage/res/res/values-en-rAU/strings.xml16
-rw-r--r--lineage/res/res/values-en-rGB/strings.xml16
-rw-r--r--lineage/res/res/values-en-rIN/strings.xml16
-rw-r--r--lineage/res/res/values-en-rPT/strings.xml3
-rw-r--r--lineage/res/res/values-eo/strings.xml4
-rw-r--r--lineage/res/res/values-es-rCO/strings.xml3
-rw-r--r--lineage/res/res/values-es-rMX/strings.xml13
-rw-r--r--lineage/res/res/values-es-rUS/strings.xml15
-rw-r--r--lineage/res/res/values-es/strings.xml15
-rw-r--r--lineage/res/res/values-et-rEE/strings.xml3
-rw-r--r--lineage/res/res/values-eu-rES/strings.xml15
-rw-r--r--lineage/res/res/values-fa/strings.xml3
-rw-r--r--lineage/res/res/values-fi/strings.xml15
-rw-r--r--lineage/res/res/values-fil-rPH/strings.xml3
-rw-r--r--lineage/res/res/values-fr-rCA/strings.xml3
-rw-r--r--lineage/res/res/values-fr/strings.xml16
-rw-r--r--lineage/res/res/values-frp-rIT/strings.xml3
-rw-r--r--lineage/res/res/values-fy-rNL/strings.xml3
-rw-r--r--lineage/res/res/values-ga-rIE/strings.xml3
-rw-r--r--lineage/res/res/values-gd-rGB/strings.xml3
-rw-r--r--lineage/res/res/values-gl-rES/strings.xml16
-rw-r--r--lineage/res/res/values-gu-rIN/strings.xml13
-rw-r--r--lineage/res/res/values-hi/strings.xml3
-rw-r--r--lineage/res/res/values-hr/strings.xml15
-rw-r--r--lineage/res/res/values-hu/strings.xml16
-rw-r--r--lineage/res/res/values-hy-rAM/strings.xml3
-rw-r--r--lineage/res/res/values-in/strings.xml15
-rw-r--r--lineage/res/res/values-is-rIS/strings.xml3
-rw-r--r--lineage/res/res/values-it/strings.xml15
-rw-r--r--lineage/res/res/values-iw/strings.xml15
-rw-r--r--lineage/res/res/values-ja/strings.xml15
-rw-r--r--lineage/res/res/values-ka-rGE/strings.xml3
-rw-r--r--lineage/res/res/values-kk-rKZ/strings.xml3
-rw-r--r--lineage/res/res/values-km-rKH/strings.xml3
-rw-r--r--lineage/res/res/values-kn-rIN/strings.xml3
-rw-r--r--lineage/res/res/values-ko/strings.xml15
-rw-r--r--lineage/res/res/values-ku/strings.xml3
-rw-r--r--lineage/res/res/values-ky-rKG/strings.xml3
-rw-r--r--lineage/res/res/values-lb/strings.xml12
-rw-r--r--lineage/res/res/values-lo-rLA/strings.xml3
-rw-r--r--lineage/res/res/values-lt/strings.xml3
-rw-r--r--lineage/res/res/values-lv/strings.xml3
-rw-r--r--lineage/res/res/values-mk-rMK/strings.xml3
-rw-r--r--lineage/res/res/values-ml-rIN/strings.xml3
-rw-r--r--lineage/res/res/values-mn-rMN/strings.xml3
-rw-r--r--lineage/res/res/values-mr-rIN/strings.xml13
-rw-r--r--lineage/res/res/values-ms-rMY/strings.xml3
-rw-r--r--lineage/res/res/values-my-rMM/strings.xml3
-rw-r--r--lineage/res/res/values-nb/strings.xml16
-rw-r--r--lineage/res/res/values-ne-rNP/strings.xml3
-rw-r--r--lineage/res/res/values-nl/strings.xml15
-rw-r--r--lineage/res/res/values-oc-rFR/strings.xml3
-rw-r--r--lineage/res/res/values-or-rIN/strings.xml3
-rw-r--r--lineage/res/res/values-pa-rIN/strings.xml3
-rw-r--r--lineage/res/res/values-pl/strings.xml15
-rw-r--r--lineage/res/res/values-pt-rBR/strings.xml16
-rw-r--r--lineage/res/res/values-pt-rPT/strings.xml16
-rw-r--r--lineage/res/res/values-rm/strings.xml3
-rw-r--r--lineage/res/res/values-ro/strings.xml16
-rw-r--r--lineage/res/res/values-ru/strings.xml15
-rw-r--r--lineage/res/res/values-si-rLK/strings.xml3
-rw-r--r--lineage/res/res/values-sk/strings.xml15
-rw-r--r--lineage/res/res/values-sl/strings.xml16
-rw-r--r--lineage/res/res/values-sq-rAL/strings.xml11
-rw-r--r--lineage/res/res/values-sr-rCS/strings.xml3
-rw-r--r--lineage/res/res/values-sr/strings.xml15
-rw-r--r--lineage/res/res/values-sv/strings.xml14
-rw-r--r--lineage/res/res/values-sw/strings.xml3
-rw-r--r--lineage/res/res/values-ta-rIN/strings.xml3
-rw-r--r--lineage/res/res/values-te-rIN/strings.xml3
-rw-r--r--lineage/res/res/values-th/strings.xml15
-rw-r--r--lineage/res/res/values-tr/strings.xml17
-rw-r--r--lineage/res/res/values-ug/strings.xml13
-rw-r--r--lineage/res/res/values-uk/strings.xml16
-rw-r--r--lineage/res/res/values-ur-rPK/strings.xml3
-rw-r--r--lineage/res/res/values-uz-rUZ/strings.xml3
-rw-r--r--lineage/res/res/values-vi/strings.xml15
-rw-r--r--lineage/res/res/values-zh-rCN/strings.xml15
-rw-r--r--lineage/res/res/values-zh-rHK/strings.xml3
-rw-r--r--lineage/res/res/values-zh-rTW/strings.xml16
-rw-r--r--lineage/res/res/values-zu/strings.xml3
-rw-r--r--lineage/res/res/values/strings.xml16
-rw-r--r--lineage/res/res/values/symbols.xml13
-rw-r--r--packages/LineageSettingsProvider/res/values/defaults.xml6
-rw-r--r--packages/LineageSettingsProvider/src/org/lineageos/lineagesettings/LineageDatabaseHelper.java6
-rw-r--r--packages/LineageSettingsProvider/tests/src/org/lineageos/lineagesettings/tests/LineageSettingsProviderDefaultsTest.java6
-rw-r--r--sdk/src/java/lineageos/app/LineageContextConstants.java15
-rw-r--r--sdk/src/java/lineageos/app/ThemeComponent.java38
-rw-r--r--sdk/src/java/lineageos/app/ThemeVersion.java206
-rw-r--r--sdk/src/java/lineageos/content/Intent.java39
-rw-r--r--sdk/src/java/lineageos/providers/LineageSettings.java32
-rw-r--r--sdk/src/java/lineageos/providers/ThemesContract.java810
-rw-r--r--sdk/src/java/lineageos/themes/IThemeChangeListener.aidl23
-rw-r--r--sdk/src/java/lineageos/themes/IThemeProcessingListener.aidl22
-rw-r--r--sdk/src/java/lineageos/themes/IThemeService.aidl44
-rw-r--r--sdk/src/java/lineageos/themes/ThemeChangeRequest.aidl19
-rw-r--r--sdk/src/java/lineageos/themes/ThemeChangeRequest.java324
-rw-r--r--sdk/src/java/lineageos/themes/ThemeManager.java396
-rw-r--r--sdk/src/java/org/lineageos/internal/themes/IIconCacheManager.aidl24
-rw-r--r--sdk/src/java/org/lineageos/internal/util/ImageUtils.java206
-rw-r--r--sdk/src/java/org/lineageos/internal/util/QSConstants.java2
-rw-r--r--sdk/src/java/org/lineageos/internal/util/ThemeUtils.java687
-rw-r--r--tests/AndroidManifest.xml3
-rw-r--r--tests/src/org/lineageos/tests/themes/unit/ThemeChangeRequestBuilderTest.java304
-rw-r--r--tests/src/org/lineageos/tests/themes/unit/ThemeChangeRequestTest.java461
-rw-r--r--tests/src/org/lineageos/tests/themes/unit/ThemeManagerTest.java655
-rw-r--r--tests/src/org/lineageos/tests/themes/unit/ThemesContractTests.java91
-rw-r--r--tests/src/org/lineageos/tests/versioning/unit/apiv5/ApiV5PriorReleaseInterfaces.java37
134 files changed, 1 insertions, 6285 deletions
diff --git a/Android.mk b/Android.mk
index 636ba347..10094713 100644
--- a/Android.mk
+++ b/Android.mk
@@ -25,7 +25,7 @@ LOCAL_PATH := $(call my-dir)
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 eb4dabfe..2a92efef 100644
--- a/api/lineage_current.txt
+++ b/api/lineage_current.txt
@@ -404,10 +404,6 @@ package lineageos.content {
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 @@ package lineageos.platform {
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 @@ package lineageos.platform {
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 @@ package lineageos.providers {
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.providers {
}
-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 d2b06bab..28c18969 100644
--- a/host/migration/src/LineageSettings.java
+++ b/host/migration/src/LineageSettings.java
@@ -775,24 +775,6 @@ public final class LineageSettings {
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 final class LineageSettings {
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 @@ public final class LineageSettings {
* @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 @@ public final class LineageSettings {
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 @@ public final class LineageSettings {
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 2b994407..00000000
--- 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 388335ea..00000000
--- 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 450608d8..00000000
--- 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 00466d24..c712c948 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 18832e70..58cda469 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 ec4d0c1a..a2da064c 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 b4512f06..f435f423 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 75459fe7..0d454360 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 18a7f02f..b5127cf4 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 942ace96..a84fb77f 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 71379338..4d508a1b 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 3e12da30..3613372f 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 076da17c..98e832f8 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 ec4d0c1a..a2da064c 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 ec4d0c1a..a2da064c 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 ec4d0c1a..a2da064c 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 be99184a..931e90b7 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 5a5dc1d1..3eb64ebe 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 ec4d0c1a..a2da064c 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 ec4d0c1a..a2da064c 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 5a1a4a36..c2255396 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 3d56af02..a95cfa50 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 1406ad48..2909afdc 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 b2b53f4a..ddaf9373 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 6b1fd2b2..c7e789ee 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 77fc29bb..b0118f54 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 ec4d0c1a..a2da064c 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 387cd2eb..c47fa6aa 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 ec4d0c1a..a2da064c 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 32e5e5ef..039eb48d 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 20da347e..08682961 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 0db151e8..a9bc6f90 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 e157ef1c..a954536a 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 69dc26bd..c7df8d6c 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 199198d1..cb92910b 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 d4da3176..c757119e 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 ec4d0c1a..a2da064c 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 ec4d0c1a..a2da064c 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 2c9a3d9b..1ac1d315 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 ec4d0c1a..a2da064c 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 ec4d0c1a..a2da064c 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 ec4d0c1a..a2da064c 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 ec4d0c1a..a2da064c 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 6d0f29d1..1d4cac43 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 3ef3fae4..0e8d0440 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 ec4d0c1a..a2da064c 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 6206a04c..69e8007d 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 3af60a13..6c918ba6 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 ec4d0c1a..a2da064c 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 ac0c4043..ee7314d3 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 ec4d0c1a..a2da064c 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 0e51085e..33325559 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 54cbcc75..573b1342 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 9d601426..7f15d855 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 ec4d0c1a..a2da064c 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 ec4d0c1a..a2da064c 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 ec4d0c1a..a2da064c 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 ddcbda88..c9618170 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 d7be0bb0..d3b51fc3 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 b2eb2db2..3ad397cd 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 ec4d0c1a..a2da064c 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 16ce614e..09753b44 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 ec4d0c1a..a2da064c 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 5e09446d..5f3398df 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 ec4d0c1a..a2da064c 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 ec4d0c1a..a2da064c 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 bdb1ea83..abed3096 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 ec4d0c1a..a2da064c 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 20476672..73c01f30 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 ec4d0c1a..a2da064c 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 ec4d0c1a..a2da064c 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 fbfb41f1..c6a6ccfc 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 ec4d0c1a..a2da064c 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 1a38a2c9..3b64e4c4 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 ec4d0c1a..a2da064c 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 5dec0a1e..af45adf5 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 ec4d0c1a..a2da064c 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 a168e15b..a82b1025 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 f332ef14..4372f093 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 b4770abe..7ee70164 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 ec4d0c1a..a2da064c 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 34c92405..d8f17b21 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 9624467c..0da7d69b 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 ec4d0c1a..a2da064c 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 368aacd3..00296d5e 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 93bcf18e..2d68dce6 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 06121cd9..64524040 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 ec4d0c1a..a2da064c 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 ec37aa19..cc0557d8 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 0e50e5a7..15dd5dae 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 ec4d0c1a..a2da064c 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 367b0a0a..f070503c 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 d0830bba..798e5f5f 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 9d442b23..93c97e2b 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 dd8464ee..2bbe15e6 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 @@ uyguladığınız temayı değiştirmesine izin verir.</string>
<!-- 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 aa10950e..37b5e325 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 c903d844..1d522dc6 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 ec4d0c1a..a2da064c 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 ec4d0c1a..a2da064c 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 ef798234..3d0e740c 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 4c614c6e..4bbc0721 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 628ae978..66a123f5 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 01888939..ee9ddcca 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 ec4d0c1a..a2da064c 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 b3304f47..8adfec3f 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 cd13a524..417818f5 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 f9eebf9c..59b40065 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 52d5a5fb..09d9defa 100644
--- a/packages/LineageSettingsProvider/src/org/lineageos/lineagesettings/LineageDatabaseHelper.java
+++ b/packages/LineageSettingsProvider/src/org/lineageos/lineagesettings/LineageDatabaseHelper.java
@@ -365,12 +365,6 @@ public class LineageDatabaseHelper extends SQLiteOpenHelper{
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 ddb9c946..702a92d7 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 @@ public class LineageSettingsProviderDefaultsTest extends AndroidTestCase {
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 e5c0df17..69f033ad 100644
--- a/sdk/src/java/lineageos/app/LineageContextConstants.java
+++ b/sdk/src/java/lineageos/app/LineageContextConstants.java
@@ -101,13 +101,6 @@ public final class LineageContextConstants {
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 @@ public final class LineageContextConstants {
/**
* 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 cc7d2f0e..00000000
--- 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 4dd09748..00000000
--- 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 fc4dbace..b245da59 100644
--- a/sdk/src/java/lineageos/content/Intent.java
+++ b/sdk/src/java/lineageos/content/Intent.java
@@ -96,45 +96,6 @@ public class Intent {
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 d9f17baf..dfd7fe05 100644
--- a/sdk/src/java/lineageos/providers/LineageSettings.java
+++ b/sdk/src/java/lineageos/providers/LineageSettings.java
@@ -2602,24 +2602,6 @@ public final class LineageSettings {
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 final class LineageSettings {
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 @@ public final class LineageSettings {
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 @@ public final class LineageSettings {
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 a795f556..00000000
--- 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 565bcb9b..00000000
--- 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 f8e79bfb..00000000
--- 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 39e1c6ed..00000000
--- 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 aaa90194..00000000
--- 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 aaba4f09..00000000
--- 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 5671c605..00000000
--- 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 68986361..00000000
--- 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 8b1105f7..d8b56b30 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.ByteArrayInputStream;
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 @@ public class ImageUtils {
}
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 45059770..bad015a9 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 class QSConstants {
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 @@ public class QSConstants {
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 784bc39a..00000000
--- 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 d5892938..a6aeec62 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 1c972ef5..00000000
--- 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 3355ca84..00000000
--- 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 f909cdd2..00000000
--- 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 480870be..00000000
--- 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 158b0ff9..7adefe08 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 @@ public class ApiV5PriorReleaseInterfaces {
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 =