V5 Push
Here's a list of changes/features: https://github.com/RetroMusicPlayer/RetroMusicPlayer/releases/tag/v5.0 Internal Changes: 1) Migrated to ViewBinding 2) Migrated to Glide V4 3) Migrated to kotlin version of Material Dialogs
This commit is contained in:
parent
fc42767031
commit
bce6dbfa27
421 changed files with 13285 additions and 5757 deletions
|
@ -1,13 +1,12 @@
|
|||
package code.name.monkey.appthemehelper
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.content.Context
|
||||
import android.content.SharedPreferences
|
||||
import android.graphics.Color
|
||||
import androidx.annotation.*
|
||||
import androidx.annotation.IntRange
|
||||
import androidx.core.content.ContextCompat
|
||||
import code.name.monkey.appthemehelper.util.ATHUtil
|
||||
import code.name.monkey.appthemehelper.util.ATHUtil.isWindowBackgroundDark
|
||||
import code.name.monkey.appthemehelper.util.ATHUtil.resolveColor
|
||||
import code.name.monkey.appthemehelper.util.ColorUtil
|
||||
|
||||
|
@ -15,14 +14,10 @@ import code.name.monkey.appthemehelper.util.ColorUtil
|
|||
/**
|
||||
* @author Aidan Follestad (afollestad), Karim Abou Zeid (kabouzeid)
|
||||
*/
|
||||
class ThemeStore @SuppressLint("CommitPrefEdits")
|
||||
class ThemeStore
|
||||
private constructor(private val mContext: Context) : ThemeStorePrefKeys, ThemeStoreInterface {
|
||||
|
||||
private val mEditor: SharedPreferences.Editor
|
||||
|
||||
init {
|
||||
mEditor = prefs(mContext).edit()
|
||||
}
|
||||
private val mEditor: SharedPreferences.Editor = prefs(mContext).edit()
|
||||
|
||||
override fun activityTheme(@StyleRes theme: Int): ThemeStore {
|
||||
mEditor.putInt(ThemeStorePrefKeys.KEY_ACTIVITY_THEME, theme)
|
||||
|
@ -41,7 +36,7 @@ private constructor(private val mContext: Context) : ThemeStorePrefKeys, ThemeSt
|
|||
}
|
||||
|
||||
override fun primaryColorAttr(@AttrRes colorAttr: Int): ThemeStore {
|
||||
return primaryColor(ATHUtil.resolveColor(mContext, colorAttr))
|
||||
return primaryColor(resolveColor(mContext, colorAttr))
|
||||
}
|
||||
|
||||
override fun primaryColorDark(@ColorInt color: Int): ThemeStore {
|
||||
|
@ -54,7 +49,7 @@ private constructor(private val mContext: Context) : ThemeStorePrefKeys, ThemeSt
|
|||
}
|
||||
|
||||
override fun primaryColorDarkAttr(@AttrRes colorAttr: Int): ThemeStore {
|
||||
return primaryColorDark(ATHUtil.resolveColor(mContext, colorAttr))
|
||||
return primaryColorDark(resolveColor(mContext, colorAttr))
|
||||
}
|
||||
|
||||
override fun accentColor(@ColorInt color: Int): ThemeStore {
|
||||
|
@ -67,7 +62,7 @@ private constructor(private val mContext: Context) : ThemeStorePrefKeys, ThemeSt
|
|||
}
|
||||
|
||||
override fun accentColorAttr(@AttrRes colorAttr: Int): ThemeStore {
|
||||
return accentColor(ATHUtil.resolveColor(mContext, colorAttr))
|
||||
return accentColor(resolveColor(mContext, colorAttr))
|
||||
}
|
||||
|
||||
override fun statusBarColor(@ColorInt color: Int): ThemeStore {
|
||||
|
@ -80,7 +75,7 @@ private constructor(private val mContext: Context) : ThemeStorePrefKeys, ThemeSt
|
|||
}
|
||||
|
||||
override fun statusBarColorAttr(@AttrRes colorAttr: Int): ThemeStore {
|
||||
return statusBarColor(ATHUtil.resolveColor(mContext, colorAttr))
|
||||
return statusBarColor(resolveColor(mContext, colorAttr))
|
||||
}
|
||||
|
||||
override fun navigationBarColor(@ColorInt color: Int): ThemeStore {
|
||||
|
@ -97,7 +92,7 @@ private constructor(private val mContext: Context) : ThemeStorePrefKeys, ThemeSt
|
|||
// Static getters
|
||||
|
||||
override fun navigationBarColorAttr(@AttrRes colorAttr: Int): ThemeStore {
|
||||
return navigationBarColor(ATHUtil.resolveColor(mContext, colorAttr))
|
||||
return navigationBarColor(resolveColor(mContext, colorAttr))
|
||||
}
|
||||
|
||||
override fun textColorPrimary(@ColorInt color: Int): ThemeStore {
|
||||
|
@ -110,7 +105,7 @@ private constructor(private val mContext: Context) : ThemeStorePrefKeys, ThemeSt
|
|||
}
|
||||
|
||||
override fun textColorPrimaryAttr(@AttrRes colorAttr: Int): ThemeStore {
|
||||
return textColorPrimary(ATHUtil.resolveColor(mContext, colorAttr))
|
||||
return textColorPrimary(resolveColor(mContext, colorAttr))
|
||||
}
|
||||
|
||||
override fun textColorPrimaryInverse(@ColorInt color: Int): ThemeStore {
|
||||
|
@ -123,7 +118,7 @@ private constructor(private val mContext: Context) : ThemeStorePrefKeys, ThemeSt
|
|||
}
|
||||
|
||||
override fun textColorPrimaryInverseAttr(@AttrRes colorAttr: Int): ThemeStore {
|
||||
return textColorPrimaryInverse(ATHUtil.resolveColor(mContext, colorAttr))
|
||||
return textColorPrimaryInverse(resolveColor(mContext, colorAttr))
|
||||
}
|
||||
|
||||
override fun textColorSecondary(@ColorInt color: Int): ThemeStore {
|
||||
|
@ -136,7 +131,7 @@ private constructor(private val mContext: Context) : ThemeStorePrefKeys, ThemeSt
|
|||
}
|
||||
|
||||
override fun textColorSecondaryAttr(@AttrRes colorAttr: Int): ThemeStore {
|
||||
return textColorSecondary(ATHUtil.resolveColor(mContext, colorAttr))
|
||||
return textColorSecondary(resolveColor(mContext, colorAttr))
|
||||
}
|
||||
|
||||
override fun textColorSecondaryInverse(@ColorInt color: Int): ThemeStore {
|
||||
|
@ -149,7 +144,7 @@ private constructor(private val mContext: Context) : ThemeStorePrefKeys, ThemeSt
|
|||
}
|
||||
|
||||
override fun textColorSecondaryInverseAttr(@AttrRes colorAttr: Int): ThemeStore {
|
||||
return textColorSecondaryInverse(ATHUtil.resolveColor(mContext, colorAttr))
|
||||
return textColorSecondaryInverse(resolveColor(mContext, colorAttr))
|
||||
}
|
||||
|
||||
override fun coloredStatusBar(colored: Boolean): ThemeStore {
|
||||
|
@ -202,7 +197,7 @@ private constructor(private val mContext: Context) : ThemeStorePrefKeys, ThemeSt
|
|||
fun primaryColor(context: Context): Int {
|
||||
return prefs(context).getInt(
|
||||
ThemeStorePrefKeys.KEY_PRIMARY_COLOR,
|
||||
ATHUtil.resolveColor(context, R.attr.colorPrimary, Color.parseColor("#455A64"))
|
||||
resolveColor(context, R.attr.colorPrimary, Color.parseColor("#455A64"))
|
||||
)
|
||||
}
|
||||
|
||||
|
@ -212,9 +207,9 @@ private constructor(private val mContext: Context) : ThemeStorePrefKeys, ThemeSt
|
|||
val desaturatedColor = prefs(context).getBoolean("desaturated_color", false)
|
||||
val color = prefs(context).getInt(
|
||||
ThemeStorePrefKeys.KEY_ACCENT_COLOR,
|
||||
ATHUtil.resolveColor(context, R.attr.colorAccent, Color.parseColor("#263238"))
|
||||
resolveColor(context, R.attr.colorAccent, Color.parseColor("#263238"))
|
||||
)
|
||||
return if (ATHUtil.isWindowBackgroundDark(context) && desaturatedColor) ColorUtil.desaturateColor(
|
||||
return if (isWindowBackgroundDark(context) && desaturatedColor) ColorUtil.desaturateColor(
|
||||
color,
|
||||
0.4f
|
||||
) else color
|
||||
|
@ -290,7 +285,6 @@ private constructor(private val mContext: Context) : ThemeStorePrefKeys, ThemeSt
|
|||
)
|
||||
}
|
||||
|
||||
@SuppressLint("CommitPrefEdits")
|
||||
fun isConfigured(
|
||||
context: Context, @IntRange(
|
||||
from = 0,
|
||||
|
@ -300,7 +294,7 @@ private constructor(private val mContext: Context) : ThemeStorePrefKeys, ThemeSt
|
|||
val prefs = prefs(context)
|
||||
val lastVersion = prefs.getInt(ThemeStorePrefKeys.IS_CONFIGURED_VERSION_KEY, -1)
|
||||
if (version > lastVersion) {
|
||||
prefs.edit().putInt(ThemeStorePrefKeys.IS_CONFIGURED_VERSION_KEY, version).commit()
|
||||
prefs.edit().putInt(ThemeStorePrefKeys.IS_CONFIGURED_VERSION_KEY, version).apply()
|
||||
return false
|
||||
}
|
||||
return true
|
||||
|
|
|
@ -1,25 +0,0 @@
|
|||
package code.name.monkey.appthemehelper.util
|
||||
|
||||
import android.content.Context
|
||||
import android.content.res.ColorStateList
|
||||
import code.name.monkey.appthemehelper.ThemeStore
|
||||
import code.name.monkey.appthemehelper.util.ATHUtil.isWindowBackgroundDark
|
||||
import com.afollestad.materialdialogs.internal.ThemeSingleton
|
||||
|
||||
/**
|
||||
* @author Karim Abou Zeid (kabouzeid)
|
||||
*/
|
||||
object MaterialDialogsUtil {
|
||||
fun updateMaterialDialogsThemeSingleton(context: Context) {
|
||||
val md = ThemeSingleton.get()
|
||||
md.titleColor = ThemeStore.textColorPrimary(context)
|
||||
md.contentColor = ThemeStore.textColorSecondary(context)
|
||||
md.itemColor = md.titleColor
|
||||
md.widgetColor = ThemeStore.accentColor(context)
|
||||
md.linkColor = ColorStateList.valueOf(md.widgetColor)
|
||||
md.positiveColor = ColorStateList.valueOf(md.widgetColor)
|
||||
md.neutralColor = ColorStateList.valueOf(md.widgetColor)
|
||||
md.negativeColor = ColorStateList.valueOf(md.widgetColor)
|
||||
md.darkTheme = isWindowBackgroundDark(context)
|
||||
}
|
||||
}
|
|
@ -238,13 +238,13 @@ public final class ToolbarContentTintHelper {
|
|||
|
||||
private static class ATHMenuPresenterCallback implements MenuPresenter.Callback {
|
||||
|
||||
private int mColor;
|
||||
private final int mColor;
|
||||
|
||||
private Context mContext;
|
||||
private final Context mContext;
|
||||
|
||||
private MenuPresenter.Callback mParentCb;
|
||||
private final MenuPresenter.Callback mParentCb;
|
||||
|
||||
private Toolbar mToolbar;
|
||||
private final Toolbar mToolbar;
|
||||
|
||||
public ATHMenuPresenterCallback(Context context, final @ColorInt int color,
|
||||
MenuPresenter.Callback parentCb, Toolbar toolbar) {
|
||||
|
@ -270,13 +270,13 @@ public final class ToolbarContentTintHelper {
|
|||
|
||||
private static class ATHOnMenuItemClickListener implements Toolbar.OnMenuItemClickListener {
|
||||
|
||||
private int mColor;
|
||||
private final int mColor;
|
||||
|
||||
private Context mContext;
|
||||
private final Context mContext;
|
||||
|
||||
private Toolbar.OnMenuItemClickListener mParentListener;
|
||||
private final Toolbar.OnMenuItemClickListener mParentListener;
|
||||
|
||||
private Toolbar mToolbar;
|
||||
private final Toolbar mToolbar;
|
||||
|
||||
public ATHOnMenuItemClickListener(Context context, final @ColorInt int color,
|
||||
Toolbar.OnMenuItemClickListener parentCb, Toolbar toolbar) {
|
||||
|
@ -528,14 +528,14 @@ public final class ToolbarContentTintHelper {
|
|||
@CheckResult
|
||||
@ColorInt
|
||||
public static int toolbarSubtitleColor(@NonNull Context context, @ColorInt int toolbarColor) {
|
||||
return MaterialValueHelper.INSTANCE
|
||||
return MaterialValueHelper
|
||||
.getSecondaryTextColor(context, ColorUtil.INSTANCE.isColorLight(toolbarColor));
|
||||
}
|
||||
|
||||
@CheckResult
|
||||
@ColorInt
|
||||
public static int toolbarTitleColor(@NonNull Context context, @ColorInt int toolbarColor) {
|
||||
return MaterialValueHelper.INSTANCE
|
||||
return MaterialValueHelper
|
||||
.getPrimaryTextColor(context, ColorUtil.INSTANCE.isColorLight(toolbarColor));
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue