diff --git a/app/src/main/java/com/github/libretube/MainActivity.kt b/app/src/main/java/com/github/libretube/MainActivity.kt index f1c1466bf..90d18bcce 100644 --- a/app/src/main/java/com/github/libretube/MainActivity.kt +++ b/app/src/main/java/com/github/libretube/MainActivity.kt @@ -49,6 +49,8 @@ class MainActivity : AppCompatActivity() { SponsorBlockSettings.sponsorsEnabled = sharedPreferences.getBoolean("sponsors_category_key", false) SponsorBlockSettings.outroEnabled = sharedPreferences.getBoolean("outro_category_key", false) + updateAccentColor(this) + DynamicColors.applyToActivitiesIfAvailable(application) val languageName = sharedPreferences.getString("language", "sys") @@ -73,7 +75,6 @@ class MainActivity : AppCompatActivity() { "L" -> AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO) "D" -> AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES) } - //setTheme(R.style.YellowTheme) val connectivityManager = this.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager val networkInfo=connectivityManager.activeNetworkInfo diff --git a/app/src/main/java/com/github/libretube/SettingsActivity.kt b/app/src/main/java/com/github/libretube/SettingsActivity.kt index cd842d772..d48731739 100644 --- a/app/src/main/java/com/github/libretube/SettingsActivity.kt +++ b/app/src/main/java/com/github/libretube/SettingsActivity.kt @@ -38,11 +38,14 @@ class SettingsActivity : AppCompatActivity(), override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { - overridePendingTransition(50, 50); + overridePendingTransition(50, 50) } val view = this.findViewById(android.R.id.content) - view.setAlpha(0F); - view.animate().alpha(1F).setDuration(300); + view.setAlpha(0F) + view.animate().alpha(1F).setDuration(300) + + updateAccentColor(this) + setContentView(R.layout.activity_settings) if (savedInstanceState == null) { supportFragmentManager @@ -68,7 +71,6 @@ class SettingsActivity : AppCompatActivity(), override fun onCreate(savedInstanceState: Bundle?) { getContent = registerForActivityResult(ActivityResultContracts.GetContent()) { uri: Uri? -> - if (uri != null) { try { // Open a specific media item using ParcelFileDescriptor. @@ -227,9 +229,16 @@ class SettingsActivity : AppCompatActivity(), true } + val accentColor = findPreference("accent_color") + accentColor?.setOnPreferenceChangeListener {_, _ -> + val refresh = Intent(context, SettingsActivity::class.java) + startActivity(refresh) + true + } + val changeLanguage = findPreference("language") changeLanguage?.setOnPreferenceChangeListener { _, _ -> - val refresh = Intent(context, MainActivity::class.java) + val refresh = Intent(context, SettingsActivity::class.java) startActivity(refresh) true } diff --git a/app/src/main/java/com/github/libretube/ThemeChanger.kt b/app/src/main/java/com/github/libretube/ThemeChanger.kt new file mode 100644 index 000000000..00138f4f1 --- /dev/null +++ b/app/src/main/java/com/github/libretube/ThemeChanger.kt @@ -0,0 +1,15 @@ +package com.github.libretube + +import android.content.Context +import androidx.preference.PreferenceManager + +fun updateAccentColor(context: Context) { + val colorAccent = PreferenceManager.getDefaultSharedPreferences(context).getString("accent_color", "red") + when (colorAccent) { + "red" -> context.setTheme(R.style.Theme_LibreTube) + "blue" -> context.setTheme(R.style.Theme_Blue) + "yellow" -> context.setTheme(R.style.Theme_Yellow) + "green" -> context.setTheme(R.style.Theme_Green) + "purple" -> context.setTheme(R.style.Theme_Purple) + } +} diff --git a/app/src/main/res/drawable/ic_color.xml b/app/src/main/res/drawable/ic_color.xml new file mode 100644 index 000000000..7faf883b6 --- /dev/null +++ b/app/src/main/res/drawable/ic_color.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/values/array.xml b/app/src/main/res/values/array.xml index 05860585e..d3ca044ac 100644 --- a/app/src/main/res/values/array.xml +++ b/app/src/main/res/values/array.xml @@ -471,6 +471,22 @@ D + + @string/color_red + @string/color_blue + @string/color_yellow + @string/color_green + @string/color_purple + + + + red + blue + yellow + green + purple + + @string/startpage @string/subscriptions diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 2738118d7..cf0e060c5 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -14,36 +14,36 @@ #8F001D #201A1A - #F1395E - #B81B3B + #2196F3 + #3F51B5 #FFFFFF - #F1395E - #8F001D + #2196F3 + #3F51B5 #201A1A - #F1395E - #B81B3B + #FFC107 + #AC6600 #FFFFFF - #F1395E - #8F001D + #FFC107 + #B36B00 #201A1A - #F1395E - #B81B3B + #8BC34A + #4CAF50 #FFFFFF - #F1395E - #8F001D + #8BC34A + #4CAF50 #201A1A - #F1395E - #B81B3B + #9C27B0 + #673AB7 #FFFFFF - #F1395E - #8F001D + #9C27B0 + #673AB7 #201A1A \ 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 09fd12720..fed23d3c2 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -101,4 +101,10 @@ Endcards/Credits Credits or when the YouTube endcards appear. Not for conclusions with information. License + Color Accent + Red + Blue + Yellow + Green + Purple diff --git a/app/src/main/res/xml/settings.xml b/app/src/main/res/xml/settings.xml index 1904b270c..0b3557b52 100644 --- a/app/src/main/res/xml/settings.xml +++ b/app/src/main/res/xml/settings.xml @@ -71,6 +71,15 @@ android:icon="@drawable/ic_theme" /> + +