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 9d8b3ab40..699c803a6 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -109,4 +109,5 @@
Purple
OLED Theme
Material You
+ 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"
/>
+
+