diff --git a/app/src/main/java/code/name/monkey/retromusic/Constants.kt b/app/src/main/java/code/name/monkey/retromusic/Constants.kt
index 23e9bf40c..29e165973 100644
--- a/app/src/main/java/code/name/monkey/retromusic/Constants.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/Constants.kt
@@ -157,3 +157,4 @@ const val SNOWFALL = "snowfall"
const val LYRICS_TYPE = "lyrics_type"
const val PLAYBACK_SPEED = "playback_speed"
const val PLAYBACK_PITCH = "playback_pitch"
+const val CUSTOM_FONT = "custom_font"
diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/MainActivity.kt b/app/src/main/java/code/name/monkey/retromusic/activities/MainActivity.kt
index e9aa2a3b3..502977858 100644
--- a/app/src/main/java/code/name/monkey/retromusic/activities/MainActivity.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/activities/MainActivity.kt
@@ -147,7 +147,7 @@ class MainActivity : AbsCastActivity(), OnSharedPreferenceChangeListener {
}
override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences?, key: String?) {
- if (key == GENERAL_THEME || key == MATERIAL_YOU || key == BLACK_THEME || key == ADAPTIVE_COLOR_APP || key == USER_NAME || key == TOGGLE_FULL_SCREEN || key == TOGGLE_VOLUME || key == ROUND_CORNERS || key == CAROUSEL_EFFECT || key == NOW_PLAYING_SCREEN_ID || key == TOGGLE_GENRE || key == BANNER_IMAGE_PATH || key == PROFILE_IMAGE_PATH || key == CIRCULAR_ALBUM_ART || key == KEEP_SCREEN_ON || key == TOGGLE_SEPARATE_LINE || key == TOGGLE_HOME_BANNER || key == TOGGLE_ADD_CONTROLS || key == ALBUM_COVER_STYLE || key == HOME_ARTIST_GRID_STYLE || key == ALBUM_COVER_TRANSFORM || key == DESATURATED_COLOR || key == EXTRA_SONG_INFO || key == TAB_TEXT_MODE || key == LANGUAGE_NAME || key == LIBRARY_CATEGORIES) {
+ if (key == GENERAL_THEME || key == MATERIAL_YOU || key == BLACK_THEME || key == ADAPTIVE_COLOR_APP || key == USER_NAME || key == TOGGLE_FULL_SCREEN || key == TOGGLE_VOLUME || key == ROUND_CORNERS || key == CAROUSEL_EFFECT || key == NOW_PLAYING_SCREEN_ID || key == TOGGLE_GENRE || key == BANNER_IMAGE_PATH || key == PROFILE_IMAGE_PATH || key == CIRCULAR_ALBUM_ART || key == KEEP_SCREEN_ON || key == TOGGLE_SEPARATE_LINE || key == TOGGLE_HOME_BANNER || key == TOGGLE_ADD_CONTROLS || key == ALBUM_COVER_STYLE || key == HOME_ARTIST_GRID_STYLE || key == ALBUM_COVER_TRANSFORM || key == DESATURATED_COLOR || key == EXTRA_SONG_INFO || key == TAB_TEXT_MODE || key == LANGUAGE_NAME || key == LIBRARY_CATEGORIES || key == CUSTOM_FONT) {
postRecreate()
}
}
diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsThemeActivity.kt b/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsThemeActivity.kt
index e9cac3e2a..6b95a2149 100644
--- a/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsThemeActivity.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsThemeActivity.kt
@@ -24,6 +24,7 @@ import androidx.appcompat.app.AppCompatDelegate.setDefaultNightMode
import androidx.core.os.ConfigurationCompat
import code.name.monkey.appthemehelper.common.ATHToolbarActivity
import code.name.monkey.retromusic.LanguageContextWrapper
+import code.name.monkey.retromusic.R
import code.name.monkey.retromusic.extensions.*
import code.name.monkey.retromusic.util.PreferenceUtil
import code.name.monkey.retromusic.util.theme.ThemeManager
@@ -57,6 +58,9 @@ abstract class AbsThemeActivity : ATHToolbarActivity(), Runnable {
com.google.android.material.R.style.ThemeOverlay_Material3_DynamicColors_DayNight
)
}
+ if (PreferenceUtil.isCustomFont) {
+ setTheme(R.style.CircularStdFontOverlay)
+ }
}
override fun onWindowFocusChanged(hasFocus: Boolean) {
diff --git a/app/src/main/java/code/name/monkey/retromusic/extensions/ColorExtensions.kt b/app/src/main/java/code/name/monkey/retromusic/extensions/ColorExtensions.kt
index 6463070d7..5fc056b35 100644
--- a/app/src/main/java/code/name/monkey/retromusic/extensions/ColorExtensions.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/extensions/ColorExtensions.kt
@@ -115,8 +115,10 @@ fun SeekBar.addAccentColor() {
fun Slider.accent() {
if (materialYou) return
- trackActiveTintList = context.accentColor().colorStateList
- trackInactiveTintList = context.accentColorVariant().colorStateList
+ val accentColor = context.accentColor()
+ thumbTintList = accentColor.colorStateList
+ trackActiveTintList = accentColor.colorStateList
+ trackInactiveTintList = ColorUtil.withAlpha(accentColor, 0.1F).colorStateList
}
fun Button.accentTextColor() {
diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/settings/ThemeSettingsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/settings/ThemeSettingsFragment.kt
index c0c8207ef..05205b9c5 100644
--- a/app/src/main/java/code/name/monkey/retromusic/fragments/settings/ThemeSettingsFragment.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/fragments/settings/ThemeSettingsFragment.kt
@@ -121,6 +121,11 @@ class ThemeSettingsFragment : AbsSettingsFragment() {
restartActivity()
true
}
+ val customFont: ATESwitchPreference? = findPreference(CUSTOM_FONT)
+ customFont?.setOnPreferenceChangeListener { _, _ ->
+ restartActivity()
+ true
+ }
}
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
diff --git a/app/src/main/java/code/name/monkey/retromusic/util/PreferenceUtil.kt b/app/src/main/java/code/name/monkey/retromusic/util/PreferenceUtil.kt
index 7a92d61a6..b12986c2e 100644
--- a/app/src/main/java/code/name/monkey/retromusic/util/PreferenceUtil.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/util/PreferenceUtil.kt
@@ -665,6 +665,9 @@ object PreferenceUtil {
val materialYou
get() = sharedPreferences.getBoolean(MATERIAL_YOU, VersionUtils.hasS())
+ val isCustomFont
+ get() = sharedPreferences.getBoolean(CUSTOM_FONT, false)
+
val isSnowFalling
get() = sharedPreferences.getBoolean(SNOWFALL, false)
diff --git a/app/src/main/res/font/circular.xml b/app/src/main/res/font/circular.xml
new file mode 100644
index 000000000..d5fabd612
--- /dev/null
+++ b/app/src/main/res/font/circular.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/font/circular_std_black.otf b/app/src/main/res/font/circular_std_black.otf
new file mode 100644
index 000000000..c62b210c5
Binary files /dev/null and b/app/src/main/res/font/circular_std_black.otf differ
diff --git a/app/src/main/res/font/circular_std_book.otf b/app/src/main/res/font/circular_std_book.otf
new file mode 100644
index 000000000..3a1f1ad82
Binary files /dev/null and b/app/src/main/res/font/circular_std_book.otf differ
diff --git a/app/src/main/res/font/circular_std_medium.otf b/app/src/main/res/font/circular_std_medium.otf
new file mode 100644
index 000000000..931f4159d
Binary files /dev/null and b/app/src/main/res/font/circular_std_medium.otf differ
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 5a1f5e2e1..b0d46c2fa 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -529,4 +529,5 @@
Playback Speed
Pitch
Playback Settings
+ Use Custom font
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index f137c7ce9..f44d8fb6e 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -245,4 +245,9 @@
- @null
- @color/transparent
+
+
diff --git a/app/src/main/res/xml/pref_general.xml b/app/src/main/res/xml/pref_general.xml
index 4b67a2825..86b3e9c32 100755
--- a/app/src/main/res/xml/pref_general.xml
+++ b/app/src/main/res/xml/pref_general.xml
@@ -30,6 +30,12 @@
android:title="@string/pref_title_md3"
app:isPreferenceVisible="@bool/md3_available" />
+
+