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" /> + +