themes look and setting to change accent color

This commit is contained in:
Bnyro 2022-05-19 18:22:19 +02:00
parent e176c6f0c8
commit 9712975fd9
8 changed files with 88 additions and 22 deletions

View File

@ -49,6 +49,8 @@ class MainActivity : AppCompatActivity() {
SponsorBlockSettings.sponsorsEnabled = sharedPreferences.getBoolean("sponsors_category_key", false) SponsorBlockSettings.sponsorsEnabled = sharedPreferences.getBoolean("sponsors_category_key", false)
SponsorBlockSettings.outroEnabled = sharedPreferences.getBoolean("outro_category_key", false) SponsorBlockSettings.outroEnabled = sharedPreferences.getBoolean("outro_category_key", false)
updateAccentColor(this)
DynamicColors.applyToActivitiesIfAvailable(application) DynamicColors.applyToActivitiesIfAvailable(application)
val languageName = sharedPreferences.getString("language", "sys") val languageName = sharedPreferences.getString("language", "sys")
@ -73,7 +75,6 @@ class MainActivity : AppCompatActivity() {
"L" -> AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO) "L" -> AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO)
"D" -> AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES) "D" -> AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES)
} }
//setTheme(R.style.YellowTheme)
val connectivityManager = this.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager val connectivityManager = this.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
val networkInfo=connectivityManager.activeNetworkInfo val networkInfo=connectivityManager.activeNetworkInfo

View File

@ -38,11 +38,14 @@ class SettingsActivity : AppCompatActivity(),
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
overridePendingTransition(50, 50); overridePendingTransition(50, 50)
} }
val view = this.findViewById<View>(android.R.id.content) val view = this.findViewById<View>(android.R.id.content)
view.setAlpha(0F); view.setAlpha(0F)
view.animate().alpha(1F).setDuration(300); view.animate().alpha(1F).setDuration(300)
updateAccentColor(this)
setContentView(R.layout.activity_settings) setContentView(R.layout.activity_settings)
if (savedInstanceState == null) { if (savedInstanceState == null) {
supportFragmentManager supportFragmentManager
@ -68,7 +71,6 @@ class SettingsActivity : AppCompatActivity(),
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
getContent = registerForActivityResult(ActivityResultContracts.GetContent()) { uri: Uri? -> getContent = registerForActivityResult(ActivityResultContracts.GetContent()) { uri: Uri? ->
if (uri != null) { if (uri != null) {
try { try {
// Open a specific media item using ParcelFileDescriptor. // Open a specific media item using ParcelFileDescriptor.
@ -227,9 +229,16 @@ class SettingsActivity : AppCompatActivity(),
true true
} }
val accentColor = findPreference<Preference>("accent_color")
accentColor?.setOnPreferenceChangeListener {_, _ ->
val refresh = Intent(context, SettingsActivity::class.java)
startActivity(refresh)
true
}
val changeLanguage = findPreference<ListPreference>("language") val changeLanguage = findPreference<ListPreference>("language")
changeLanguage?.setOnPreferenceChangeListener { _, _ -> changeLanguage?.setOnPreferenceChangeListener { _, _ ->
val refresh = Intent(context, MainActivity::class.java) val refresh = Intent(context, SettingsActivity::class.java)
startActivity(refresh) startActivity(refresh)
true true
} }

View File

@ -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)
}
}

View File

@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M12,3c-4.97,0 -9,4.03 -9,9s4.03,9 9,9c0.83,0 1.5,-0.67 1.5,-1.5 0,-0.39 -0.15,-0.74 -0.39,-1.01 -0.23,-0.26 -0.38,-0.61 -0.38,-0.99 0,-0.83 0.67,-1.5 1.5,-1.5L16,16c2.76,0 5,-2.24 5,-5 0,-4.42 -4.03,-8 -9,-8zM6.5,12c-0.83,0 -1.5,-0.67 -1.5,-1.5S5.67,9 6.5,9 8,9.67 8,10.5 7.33,12 6.5,12zM9.5,8C8.67,8 8,7.33 8,6.5S8.67,5 9.5,5s1.5,0.67 1.5,1.5S10.33,8 9.5,8zM14.5,8c-0.83,0 -1.5,-0.67 -1.5,-1.5S13.67,5 14.5,5s1.5,0.67 1.5,1.5S15.33,8 14.5,8zM17.5,12c-0.83,0 -1.5,-0.67 -1.5,-1.5S16.67,9 17.5,9s1.5,0.67 1.5,1.5 -0.67,1.5 -1.5,1.5z"/>
</vector>

View File

@ -471,6 +471,22 @@
<item>D</item> <item>D</item>
</string-array> </string-array>
<string-array name="accents">
<item>@string/color_red</item>
<item>@string/color_blue</item>
<item>@string/color_yellow</item>
<item>@string/color_green</item>
<item>@string/color_purple</item>
</string-array>
<string-array name="accentsValue">
<item>red</item>
<item>blue</item>
<item>yellow</item>
<item>green</item>
<item>purple</item>
</string-array>
<string-array name="tabs"> <string-array name="tabs">
<item>@string/startpage</item> <item>@string/startpage</item>
<item>@string/subscriptions</item> <item>@string/subscriptions</item>

View File

@ -14,36 +14,36 @@
<color name="red_dark_accentDark">#8F001D</color> <color name="red_dark_accentDark">#8F001D</color>
<color name="red_dark_background">#201A1A</color> <color name="red_dark_background">#201A1A</color>
<color name="blue_light_accentLight">#F1395E</color> <color name="blue_light_accentLight">#2196F3</color>
<color name="blue_light_accentDark">#B81B3B</color> <color name="blue_light_accentDark">#3F51B5</color>
<color name="blue_light_background">#FFFFFF</color> <color name="blue_light_background">#FFFFFF</color>
<color name="blue_dark_accentLight">#F1395E</color> <color name="blue_dark_accentLight">#2196F3</color>
<color name="blue_dark_accentDark">#8F001D</color> <color name="blue_dark_accentDark">#3F51B5</color>
<color name="blue_dark_background">#201A1A</color> <color name="blue_dark_background">#201A1A</color>
<color name="yellow_light_accentLight">#F1395E</color> <color name="yellow_light_accentLight">#FFC107</color>
<color name="yellow_light_accentDark">#B81B3B</color> <color name="yellow_light_accentDark">#AC6600</color>
<color name="yellow_light_background">#FFFFFF</color> <color name="yellow_light_background">#FFFFFF</color>
<color name="yellow_dark_accentLight">#F1395E</color> <color name="yellow_dark_accentLight">#FFC107</color>
<color name="yellow_dark_accentDark">#8F001D</color> <color name="yellow_dark_accentDark">#B36B00</color>
<color name="yellow_dark_background">#201A1A</color> <color name="yellow_dark_background">#201A1A</color>
<color name="green_light_accentLight">#F1395E</color> <color name="green_light_accentLight">#8BC34A</color>
<color name="green_light_accentDark">#B81B3B</color> <color name="green_light_accentDark">#4CAF50</color>
<color name="green_light_background">#FFFFFF</color> <color name="green_light_background">#FFFFFF</color>
<color name="green_dark_accentLight">#F1395E</color> <color name="green_dark_accentLight">#8BC34A</color>
<color name="green_dark_accentDark">#8F001D</color> <color name="green_dark_accentDark">#4CAF50</color>
<color name="green_dark_background">#201A1A</color> <color name="green_dark_background">#201A1A</color>
<color name="purple_light_accentLight">#F1395E</color> <color name="purple_light_accentLight">#9C27B0</color>
<color name="purple_light_accentDark">#B81B3B</color> <color name="purple_light_accentDark">#673AB7</color>
<color name="purple_light_background">#FFFFFF</color> <color name="purple_light_background">#FFFFFF</color>
<color name="purple_dark_accentLight">#F1395E</color> <color name="purple_dark_accentLight">#9C27B0</color>
<color name="purple_dark_accentDark">#8F001D</color> <color name="purple_dark_accentDark">#673AB7</color>
<color name="purple_dark_background">#201A1A</color> <color name="purple_dark_background">#201A1A</color>
</resources> </resources>

View File

@ -101,4 +101,10 @@
<string name="category_outro">Endcards/Credits</string> <string name="category_outro">Endcards/Credits</string>
<string name="category_outro_description">Credits or when the YouTube endcards appear. Not for conclusions with information.</string> <string name="category_outro_description">Credits or when the YouTube endcards appear. Not for conclusions with information.</string>
<string name="license">License</string> <string name="license">License</string>
<string name="color_accent">Color Accent</string>
<string name="color_red">Red</string>
<string name="color_blue">Blue</string>
<string name="color_yellow">Yellow</string>
<string name="color_green">Green</string>
<string name="color_purple">Purple</string>
</resources> </resources>

View File

@ -71,6 +71,15 @@
android:icon="@drawable/ic_theme" android:icon="@drawable/ic_theme"
/> />
<ListPreference
app:title="@string/color_accent"
app:key="accent_color"
app:entries="@array/accents"
app:entryValues="@array/accentsValue"
app:defaultValue="red"
android:icon="@drawable/ic_color"
/>
<androidx.preference.Preference <androidx.preference.Preference
app:title="@string/sponsorblock" app:title="@string/sponsorblock"
app:key="sponsorblock" app:key="sponsorblock"