Fix text views, update queue time

This commit is contained in:
h4h13 2019-09-03 23:24:14 +05:30
parent 887b6a4d36
commit 671728b315
22 changed files with 367 additions and 196 deletions

View file

@ -27,14 +27,21 @@ class PlayingQueueActivity : AbsMusicServiceActivity() {
private var playingQueueAdapter: PlayingQueueAdapter? = null
private lateinit var linearLayoutManager: LinearLayoutManager
private val upNextAndQueueTime: String
get() = resources.getString(R.string.up_next) + "" + MusicUtil.getReadableDurationString(MusicPlayerRemote.getQueueDurationMillis(MusicPlayerRemote.position))
protected fun getUpNextAndQueueTime(): String {
val duration = MusicPlayerRemote.getQueueDurationMillis(MusicPlayerRemote.position)
return MusicUtil.buildInfoString(
resources.getString(R.string.up_next),
MusicUtil.getReadableDurationString(duration)
)
}
override fun onCreate(
savedInstanceState: Bundle?
) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_playing_queue)
setContentView(code.name.monkey.retromusic.R.layout.activity_playing_queue)
setStatusbarColorAuto()
setNavigationbarColorAuto()
@ -67,7 +74,7 @@ class PlayingQueueActivity : AbsMusicServiceActivity() {
this,
MusicPlayerRemote.playingQueue,
MusicPlayerRemote.position,
R.layout.item_queue)
code.name.monkey.retromusic.R.layout.item_queue)
wrappedAdapter = recyclerViewDragDropManager!!.createWrappedAdapter(playingQueueAdapter!!)
linearLayoutManager = LinearLayoutManager(this)
@ -107,7 +114,9 @@ class PlayingQueueActivity : AbsMusicServiceActivity() {
updateCurrentSong()
}
private fun updateCurrentSong() {}
private fun updateCurrentSong() {
playerQueueSubHeader.text = getUpNextAndQueueTime()
}
override fun onPlayingMetaChanged() {
updateQueuePosition()
@ -116,6 +125,7 @@ class PlayingQueueActivity : AbsMusicServiceActivity() {
private fun updateQueuePosition() {
playingQueueAdapter!!.setCurrent(MusicPlayerRemote.position)
resetToCurrentPosition()
playerQueueSubHeader.text = getUpNextAndQueueTime()
}
private fun updateQueue() {
@ -141,8 +151,6 @@ class PlayingQueueActivity : AbsMusicServiceActivity() {
recyclerViewDragDropManager = null
}
if (wrappedAdapter != null) {
WrapperAdapterUtils.releaseAll(wrappedAdapter)
wrappedAdapter = null
@ -152,7 +160,7 @@ class PlayingQueueActivity : AbsMusicServiceActivity() {
}
private fun setupToolbar() {
playerQueueSubHeader.text = upNextAndQueueTime
playerQueueSubHeader.text = getUpNextAndQueueTime()
playerQueueSubHeader.setTextColor(ThemeStore.accentColor(this))
applyToolbar(toolbar)

View file

@ -22,9 +22,9 @@ import android.widget.Toast
import androidx.fragment.app.DialogFragment
import androidx.preference.ListPreference
import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat
import androidx.preference.PreferenceManager
import code.name.monkey.appthemehelper.ThemeStore
import code.name.monkey.appthemehelper.common.prefs.supportv7.ATEPreferenceFragmentCompat
import code.name.monkey.retromusic.preferences.*
import code.name.monkey.retromusic.util.NavigationUtil
@ -32,7 +32,7 @@ import code.name.monkey.retromusic.util.NavigationUtil
* @author Hemanth S (h4h13).
*/
abstract class AbsSettingsFragment : PreferenceFragmentCompat() {
abstract class AbsSettingsFragment : ATEPreferenceFragmentCompat() {
internal fun showProToastAndNavigate(message: String) {
Toast.makeText(requireContext(), "$message is Pro version feature.", Toast.LENGTH_SHORT).show()
@ -67,7 +67,7 @@ abstract class AbsSettingsFragment : PreferenceFragmentCompat() {
invalidateSettings()
}
override fun onDisplayPreferenceDialog(preference: Preference) {
/*override fun onDisplayPreferenceDialog(preference: Preference) {
var dialogFragment: DialogFragment? = null// Dialog creation could not be handled here. Try with the super method.
// The dialog was created (it was one of our custom Preferences), show the dialog for it
when (preference) {
@ -89,5 +89,18 @@ abstract class AbsSettingsFragment : PreferenceFragmentCompat() {
// Dialog creation could not be handled here. Try with the super method.
super.onDisplayPreferenceDialog(preference);
}
}*/
override fun onCreatePreferenceDialog(preference: Preference): DialogFragment? {
return when (preference) {
is LibraryPreference -> LibraryPreferenceDialog.newInstance(preference.key)
is NowPlayingScreenPreference -> NowPlayingScreenPreferenceDialog.newInstance(preference.key)
is AlbumCoverStylePreference -> AlbumCoverStylePreferenceDialog.newInstance(preference.key)
is MaterialListPreference -> {
preference.entries
MaterialListPreferenceDialog.newInstance(preference)
}
is BlacklistPreference -> BlacklistPreferenceDialog.newInstance()
else -> super.onCreatePreferenceDialog(preference)
}
}
}

View file

@ -15,15 +15,15 @@
package code.name.monkey.retromusic.fragments.settings
import android.graphics.Color
import android.graphics.Color.BLUE
import android.os.Build
import android.os.Bundle
import androidx.core.content.ContextCompat
import androidx.preference.Preference
import androidx.preference.TwoStatePreference
import code.name.monkey.appthemehelper.*
import code.name.monkey.appthemehelper.ACCENT_COLORS
import code.name.monkey.appthemehelper.ACCENT_COLORS_SUB
import code.name.monkey.appthemehelper.ThemeStore
import code.name.monkey.appthemehelper.common.prefs.supportv7.ATEColorPreference
import code.name.monkey.appthemehelper.common.prefs.supportv7.ATEPreferenceCategory
import code.name.monkey.appthemehelper.util.ColorUtil
import code.name.monkey.appthemehelper.util.VersionUtils
import code.name.monkey.retromusic.App
@ -49,45 +49,7 @@ class ThemeSettingsFragment : AbsSettingsFragment() {
override fun invalidateSettings() {
val categoryColor: ATEPreferenceCategory? = findPreference("category_color")
val primaryColorPref = ATEColorPreference(preferenceScreen.context)
val primaryColor = ThemeStore.primaryColor(requireContext())
primaryColorPref.apply {
key = "primary_color"
isPersistent = false
setSummary(R.string.primary_color_desc)
setTitle(R.string.primary_color)
isCopyingEnabled = true
setIcon(R.drawable.ic_colorize_white_24dp)
setColor(primaryColor, ColorUtil.darkenColor(primaryColor))
setOnPreferenceClickListener {
materialDialog = MaterialDialog(requireContext(), BottomSheet()).show {
title(R.string.primary_color)
positiveButton(R.string.set)
colorChooser(initialSelection = BLUE,
allowCustomArgb = true,
colors = PRIMARY_COLORS,
subColors = PRIMARY_COLORS_SUB) { _, color ->
val theme = if (ColorUtil.isColorLight(color))
PreferenceUtil.getThemeResFromPrefValue("light")
else
PreferenceUtil.getThemeResFromPrefValue("dark")
ThemeStore.editTheme(requireContext()).activityTheme(theme).primaryColor(color).commit()
if (VersionUtils.hasNougatMR())
DynamicShortcutManager(context).updateDynamicShortcuts()
requireActivity().recreate()
}
}
true
}
}
val generalTheme: Preference? = findPreference("general_theme")
generalTheme?.let {
setSummary(it)
it.setOnPreferenceChangeListener { _, newValue ->
@ -100,17 +62,20 @@ class ThemeSettingsFragment : AbsSettingsFragment() {
setSummary(generalTheme, newValue)
when (theme) {
"light" -> ThemeStore.editTheme(requireContext()).primaryColor(Color.WHITE).commit()
"black" -> ThemeStore.editTheme(requireContext()).primaryColor(Color.BLACK).commit()
"dark" -> ThemeStore.editTheme(requireContext()).primaryColor(ContextCompat.getColor(requireContext(), R.color.md_grey_900)).commit()
"color" -> ThemeStore.editTheme(requireContext()).primaryColor(ContextCompat.getColor(requireContext(), R.color.md_blue_grey_800)).commit()
val color = when (theme) {
"light" -> Color.WHITE
"black" -> Color.BLACK
"dark" -> ContextCompat.getColor(requireContext(), R.color.md_grey_900)
else -> Color.WHITE
}
ThemeStore.editTheme(requireContext())
.activityTheme(PreferenceUtil.getThemeResFromPrefValue(theme))
.primaryColor(color)
.commit()
ThemeStore.markChanged(requireContext())
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N_MR1) {
requireActivity().setTheme(PreferenceUtil.getThemeResFromPrefValue(theme))
DynamicShortcutManager(requireContext()).updateDynamicShortcuts()
@ -129,10 +94,6 @@ class ThemeSettingsFragment : AbsSettingsFragment() {
title(R.string.accent_color)
positiveButton(R.string.set)
colorChooser(colors = ACCENT_COLORS, allowCustomArgb = true, subColors = ACCENT_COLORS_SUB) { _, color ->
/*var colorFinal = Color.BLACK;
if (!ColorUtil.isColorSaturated(color)) {
colorFinal = color
}*/
ThemeStore.editTheme(requireContext()).accentColor(color).commit()
if (VersionUtils.hasNougatMR())
DynamicShortcutManager(requireContext()).updateDynamicShortcuts()
@ -154,10 +115,6 @@ class ThemeSettingsFragment : AbsSettingsFragment() {
true
}
}
if (PreferenceUtil.getInstance().generalTheme == R.style.Theme_RetroMusic_Color && App.isProVersion) {
categoryColor?.addPreference(primaryColorPref)
}
}
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {

View file

@ -78,20 +78,23 @@ class MaterialListPreferenceDialog : PreferenceDialogFragmentCompat() {
val entries = arguments?.getStringArrayList(EXTRA_ENTRIES)
val entriesValues = arguments?.getStringArrayList(EXTRA_ENTRIES_VALUES)
materialDialog = MaterialDialog(activity!!, BottomSheet())
.show {
title(text = materialListPreference.title.toString())
positiveButton(R.string.set)
listItemsSingleChoice(items = entries, initialSelection = position, waitForPositiveButton = true) { _, index, _ ->
materialListPreference.callChangeListener(entriesValues!![index])
materialListPreference.setCustomValue(entriesValues[index])
materialListPreference.summary = entries!![index]
dismiss()
}
materialDialog = MaterialDialog(requireContext(), BottomSheet())
.title(text = materialListPreference.title.toString())
.positiveButton(R.string.set)
.listItemsSingleChoice(items = entries, initialSelection = position, waitForPositiveButton = true) { _, index, _ ->
materialListPreference.callChangeListener(entriesValues!![index])
materialListPreference.setCustomValue(entriesValues[index])
materialListPreference.summary = entries!![index]
dismiss()
}
return materialDialog
}
override fun onDestroyView() {
super.onDestroyView()
materialDialog.dismiss()
}
private lateinit var materialDialog: MaterialDialog
override fun onDialogClosed(positiveResult: Boolean) {

View file

@ -150,16 +150,12 @@ public final class PreferenceUtil {
}
@StyleRes
public static int getThemeResFromPrefValue(String themePrefValue) {
public static int getThemeResFromPrefValue(@NonNull String themePrefValue) {
switch (themePrefValue) {
case "light":
return R.style.Theme_RetroMusic_Light;
case "color":
return R.style.Theme_RetroMusic_Color;
case "black":
return R.style.Theme_RetroMusic_Black;
case "daynight":
return R.style.Theme_RetroMusic_DayNight;
case "dark":
default:
return R.style.Theme_RetroMusic;

View file

@ -37,7 +37,7 @@ import code.name.monkey.retromusic.R;
public class RetroColorUtil {
public static int toolbarColor(@NonNull Context context) {
int color = ThemeStore.Companion.primaryColor(context);
if (ATHUtil.INSTANCE.isWindowBackgroundDark(context) && PreferenceUtil.getInstance().getGeneralTheme() != R.style.Theme_RetroMusic_Color) {
if (ATHUtil.INSTANCE.isWindowBackgroundDark(context)) {
return ATHUtil.INSTANCE.resolveColor(context, R.attr.cardBackgroundColor);
} else {
return color;

0
app/src/main/res/font/circular_std_black.otf Executable file → Normal file
View file

0
app/src/main/res/font/circular_std_book.otf Executable file → Normal file
View file

0
app/src/main/res/font/circular_std_medium.otf Executable file → Normal file
View file

View file

@ -1,49 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.RetroMusic.DayNight" parent="Theme.MaterialComponents.DayNight.NoActionBar">
<item name="md_corner_radius">16dp</item>
<item name="md_font_title">@font/circular</item>
<item name="md_font_body">@font/circular</item>
<item name="md_font_button">@font/circular</item>
<item name="md_color_button_text">@color/md_white_1000</item>
<item name="android:windowActionBarOverlay">true</item>
<item name="windowActionBarOverlay">true</item>
<item name="roundSelector">@drawable/round_selector_dark</item>
<item name="rectSelector">@drawable/rect_selector_dark</item>
<item name="rectSelectorStrong">@drawable/rect_selector_strong_dark</item>
<item name="cardBackgroundColor">@color/md_grey_800</item>
<item name="defaultFooterColor">@color/md_grey_800</item>
<item name="dividerColor">@color/md_grey_800</item>
<item name="iconColor">@color/ate_secondary_text_dark</item>
<item name="toolbarPopupTheme">@style/ThemeOverlay.AppCompat</item>
<!-- just in case-->
<item name="android:windowBackground">@color/md_grey_900</item>
<item name="colorAccent">@android:color/white</item>
<item name="colorPrimary">@color/md_grey_900</item>
<!-- necessary to find the overflow button later in the layout-->
<item name="android:actionOverflowButtonStyle">@style/Widget.ActionButton.Overflow</item>
<item name="preferenceTheme">@style/PreferenceThemeOverlay.v14.Material</item>
<item name="bottomSheetDialogTheme">@style/BottomSheetDialog</item>
<item name="android:windowActivityTransitions">true</item>
<item name="android:windowExitTransition">@transition/grid_exit</item>
<item name="android:windowEnterTransition">@transition/grid_exit</item>
<item name="android:windowSharedElementEnterTransition">@transition/grid_exit</item>
<item name="android:windowSharedElementExitTransition">@transition/grid_exit</item>
<item name="android:fontFamily">@font/circular</item>
<item name="android:textColorPrimary">@color/md_white_1000</item>
</style>
</resources>

View file

@ -44,7 +44,6 @@
<item>@string/light_theme_name</item>
<item>@string/dark_theme_name</item>
<item>@string/black_theme_name</item>
<item>@string/color_theme_name</item>
</string-array>
<string-array name="pref_grid_style_list_titles">
@ -96,7 +95,6 @@
<item>light</item>
<item>dark</item>
<item>black</item>
<item>color</item>
</string-array>
<array name="pref_auto_download_images_values">

View file

@ -6,8 +6,6 @@
<style name="Theme.RetroMusic.Black" parent="Theme.RetroMusic.Base.Black" />
<style name="Theme.RetroMusic.Color" parent="Theme.RetroMusic.Base.Color" />
<style name="Theme.RetroMusic.Notification" parent="@android:style/TextAppearance.StatusBar.EventContent" />
<style name="Theme.RetroMusic.Notification.Title" parent="@android:style/TextAppearance.StatusBar.EventContent.Title" />

View file

@ -51,17 +51,6 @@
<item name="materialAlertDialogTheme">@style/MaterialAlertDialogTheme</item>
</style>
<style name="Theme.RetroMusic.Base.Color" parent="@style/Theme.RetroMusic.Base">
<item name="colorPrimary">@color/md_deep_purple_A400</item>
<item name="android:colorPrimary">?colorPrimary</item>
<item name="android:windowBackground">?colorPrimary</item>
<item name="md_color_button_text">@color/md_white_1000</item>
<item name="windowActionBar">false</item>
</style>
<style name="Theme.RetroMusic.Base.Black" parent="@style/Theme.RetroMusic.Base">
<item name="dividerColor">@color/dark_color</item>

View file

@ -2,7 +2,7 @@
<androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<code.name.monkey.appthemehelper.common.prefs.supportv7.ATEPreferenceCategory android:title="@string/pref_header_general">
<code.name.monkey.appthemehelper.common.prefs.supportv7.ATEListPreference
<code.name.monkey.retromusic.preferences.MaterialListPreference
android:defaultValue="dark"
android:entries="@array/pref_general_theme_list_titles"
android:entryValues="@array/pref_general_theme_list_values"