diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index daee23adb..cbdf25692 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -137,6 +137,21 @@ + + + + + + + + ("icon_change") + iconChange?.setOnPreferenceChangeListener { _, _ -> + changeIcon(requireContext()) + true + } + val changeLanguage = findPreference("language") changeLanguage?.setOnPreferenceChangeListener { _, _ -> val refresh = Intent(context, MainActivity::class.java) diff --git a/app/src/main/java/com/github/libretube/ThemeChanger.kt b/app/src/main/java/com/github/libretube/ThemeChanger.kt index 5a913d01d..83d26e0f6 100644 --- a/app/src/main/java/com/github/libretube/ThemeChanger.kt +++ b/app/src/main/java/com/github/libretube/ThemeChanger.kt @@ -1,6 +1,8 @@ package com.github.libretube +import android.content.ComponentName import android.content.Context +import android.content.pm.PackageManager import androidx.appcompat.app.AppCompatDelegate import androidx.preference.PreferenceManager import java.util.Locale @@ -53,3 +55,23 @@ fun updateLanguage(context: Context) { res.updateConfiguration(conf, dm) } } + +fun changeIcon(context: Context) { + val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context) + val newLogoActivityAlias = sharedPreferences.getString("icon_change", "com.github.libretube.MainActivity") + val activityAliases = context?.resources.getStringArray(R.array.iconsValue) + // Disable Old Icon(s) + for (activityAlias in activityAliases) { + context?.packageManager.setComponentEnabledSetting( + ComponentName(context?.packageName, activityAlias), + PackageManager.COMPONENT_ENABLED_STATE_DISABLED, + PackageManager.DONT_KILL_APP + ) + } + // Enable New Icon + context?.packageManager.setComponentEnabledSetting( + ComponentName(context?.packageName, newLogoActivityAlias!!), + PackageManager.COMPONENT_ENABLED_STATE_ENABLED, + PackageManager.DONT_KILL_APP + ) +} diff --git a/app/src/main/res/values/array.xml b/app/src/main/res/values/array.xml index 43f82a523..98ab4154d 100644 --- a/app/src/main/res/values/array.xml +++ b/app/src/main/res/values/array.xml @@ -538,4 +538,13 @@ 4 5 + + + Old + New + + + com\.github\.libretube\.MainActivity + com\.github\.libretube\.OptIconOne + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 80ead00f8..682b6242c 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -110,4 +110,5 @@ OLED Theme Material You Notifications + App Icon \ No newline at end of file diff --git a/app/src/main/res/xml/settings.xml b/app/src/main/res/xml/settings.xml index e9b325751..89e96fc03 100644 --- a/app/src/main/res/xml/settings.xml +++ b/app/src/main/res/xml/settings.xml @@ -80,6 +80,15 @@ android:icon="@drawable/ic_color" /> + +