Add Android Navigation component
This commit is contained in:
parent
d0b1d0083d
commit
7365e44803
62 changed files with 662 additions and 570 deletions
|
@ -18,21 +18,21 @@ class LibraryViewModel(
|
|||
private val repository: RepositoryImpl
|
||||
) : ViewModel(), MusicServiceEventListener {
|
||||
|
||||
private val _albums = MutableLiveData<List<Album>>()
|
||||
private val _songs = MutableLiveData<List<Song>>()
|
||||
private val _artists = MutableLiveData<List<Artist>>()
|
||||
private val _playlist = MutableLiveData<List<Playlist>>()
|
||||
private val _genre = MutableLiveData<List<Genre>>()
|
||||
private val _homeSections = MutableLiveData<List<Home>>()
|
||||
private val _paletteColor = MutableLiveData<Int>()
|
||||
private val albums = MutableLiveData<List<Album>>()
|
||||
private val songs = MutableLiveData<List<Song>>()
|
||||
private val artists = MutableLiveData<List<Artist>>()
|
||||
private val playlists = MutableLiveData<List<Playlist>>()
|
||||
private val genres = MutableLiveData<List<Genre>>()
|
||||
private val home = MutableLiveData<List<Home>>()
|
||||
private val paletteColor = MutableLiveData<Int>()
|
||||
|
||||
val paletteColor: LiveData<Int> = _paletteColor
|
||||
val homeSections: LiveData<List<Home>> = _homeSections
|
||||
val allAlbums: LiveData<List<Album>> = _albums
|
||||
val allSongs: LiveData<List<Song>> = _songs
|
||||
val allArtists: LiveData<List<Artist>> = _artists
|
||||
val allPlaylisits: LiveData<List<Playlist>> = _playlist
|
||||
val allGenres: LiveData<List<Genre>> = _genre
|
||||
val paletteColorLiveData: LiveData<Int> = paletteColor
|
||||
val homeLiveData: LiveData<List<Home>> = home
|
||||
val albumsLiveData: LiveData<List<Album>> = albums
|
||||
val songsLiveData: LiveData<List<Song>> = songs
|
||||
val artistsLiveData: LiveData<List<Artist>> = artists
|
||||
val playlisitsLiveData: LiveData<List<Playlist>> = playlists
|
||||
val genresLiveData: LiveData<List<Genre>> = genres
|
||||
|
||||
init {
|
||||
viewModelScope.launch {
|
||||
|
@ -41,11 +41,11 @@ class LibraryViewModel(
|
|||
}
|
||||
|
||||
private fun loadLibraryContent() = viewModelScope.launch {
|
||||
_songs.value = loadSongs.await()
|
||||
_albums.value = loadAlbums.await()
|
||||
_artists.value = loadArtists.await()
|
||||
_playlist.value = loadPlaylists.await()
|
||||
_genre.value = loadGenres.await()
|
||||
songs.value = loadSongs.await()
|
||||
albums.value = loadAlbums.await()
|
||||
artists.value = loadArtists.await()
|
||||
playlists.value = loadPlaylists.await()
|
||||
genres.value = loadGenres.await()
|
||||
loadHomeSections()
|
||||
}
|
||||
|
||||
|
@ -71,7 +71,7 @@ class LibraryViewModel(
|
|||
}
|
||||
}
|
||||
}
|
||||
_homeSections.value = list
|
||||
home.value = list
|
||||
}
|
||||
|
||||
private val loadSongs: Deferred<List<Song>>
|
||||
|
@ -101,13 +101,17 @@ class LibraryViewModel(
|
|||
|
||||
fun forceReload(reloadType: ReloadType) = viewModelScope.launch {
|
||||
when (reloadType) {
|
||||
Songs -> _songs.value = loadSongs.await()
|
||||
Albums -> _albums.value = loadAlbums.await()
|
||||
Artists -> _artists.value = loadArtists.await()
|
||||
HomeSections -> _songs.value = loadSongs.await()
|
||||
Songs -> songs.value = loadSongs.await()
|
||||
Albums -> albums.value = loadAlbums.await()
|
||||
Artists -> artists.value = loadArtists.await()
|
||||
HomeSections -> songs.value = loadSongs.await()
|
||||
}
|
||||
}
|
||||
|
||||
fun updateColor(newColor: Int) {
|
||||
paletteColor.postValue(newColor)
|
||||
}
|
||||
|
||||
override fun onMediaStoreChanged() {
|
||||
loadLibraryContent()
|
||||
}
|
||||
|
@ -119,6 +123,7 @@ class LibraryViewModel(
|
|||
override fun onPlayStateChanged() {}
|
||||
override fun onRepeatModeChanged() {}
|
||||
override fun onShuffleModeChanged() {}
|
||||
|
||||
}
|
||||
|
||||
enum class ReloadType {
|
||||
|
|
|
@ -24,7 +24,7 @@ enum class NowPlayingScreen constructor(
|
|||
Gradient(R.string.gradient, R.drawable.np_gradient, 17),
|
||||
Material(R.string.material, R.drawable.np_material, 11),
|
||||
Normal(R.string.normal, R.drawable.np_normal, 0),
|
||||
Peak(R.string.peak, R.drawable.np_peak, 14),
|
||||
//Peak(R.string.peak, R.drawable.np_peak, 14),
|
||||
Plain(R.string.plain, R.drawable.np_plain, 3),
|
||||
Simple(R.string.simple, R.drawable.np_simple, 8),
|
||||
Tiny(R.string.tiny, R.drawable.np_tiny, 7),
|
||||
|
|
|
@ -11,7 +11,7 @@ import code.name.monkey.retromusic.fragments.ReloadType
|
|||
import code.name.monkey.retromusic.fragments.base.AbsLibraryPagerRecyclerViewCustomGridSizeFragment
|
||||
import code.name.monkey.retromusic.interfaces.MainActivityFragmentCallbacks
|
||||
import code.name.monkey.retromusic.util.PreferenceUtil
|
||||
import org.koin.android.viewmodel.ext.android.sharedViewModel
|
||||
import org.koin.androidx.viewmodel.ext.android.sharedViewModel
|
||||
|
||||
class AlbumsFragment :
|
||||
AbsLibraryPagerRecyclerViewCustomGridSizeFragment<AlbumAdapter, GridLayoutManager>(),
|
||||
|
@ -21,7 +21,7 @@ class AlbumsFragment :
|
|||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
libraryViewModel.allAlbums
|
||||
libraryViewModel.albumsLiveData
|
||||
.observe(viewLifecycleOwner, Observer { albums ->
|
||||
if (albums.isNotEmpty())
|
||||
adapter?.swapDataSet(albums)
|
||||
|
|
|
@ -11,7 +11,7 @@ import code.name.monkey.retromusic.fragments.ReloadType
|
|||
import code.name.monkey.retromusic.fragments.base.AbsLibraryPagerRecyclerViewCustomGridSizeFragment
|
||||
import code.name.monkey.retromusic.interfaces.MainActivityFragmentCallbacks
|
||||
import code.name.monkey.retromusic.util.PreferenceUtil
|
||||
import org.koin.android.viewmodel.ext.android.sharedViewModel
|
||||
import org.koin.androidx.viewmodel.ext.android.sharedViewModel
|
||||
|
||||
class ArtistsFragment :
|
||||
AbsLibraryPagerRecyclerViewCustomGridSizeFragment<ArtistAdapter, GridLayoutManager>(),
|
||||
|
@ -21,7 +21,7 @@ class ArtistsFragment :
|
|||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
libraryViewModel.allArtists
|
||||
libraryViewModel.artistsLiveData
|
||||
.observe(viewLifecycleOwner, Observer { artists ->
|
||||
if (artists.isNotEmpty()) {
|
||||
adapter?.swapDataSet(artists)
|
||||
|
|
|
@ -2,7 +2,6 @@ package code.name.monkey.retromusic.fragments.base
|
|||
|
||||
import android.annotation.SuppressLint
|
||||
import android.content.ContentUris
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.media.MediaMetadataRetriever
|
||||
import android.os.AsyncTask
|
||||
|
@ -19,6 +18,7 @@ import code.name.monkey.retromusic.activities.tageditor.AbsTagEditorActivity
|
|||
import code.name.monkey.retromusic.activities.tageditor.SongTagEditorActivity
|
||||
import code.name.monkey.retromusic.dialogs.*
|
||||
import code.name.monkey.retromusic.extensions.hide
|
||||
import code.name.monkey.retromusic.fragments.LibraryViewModel
|
||||
import code.name.monkey.retromusic.fragments.player.PlayerAlbumCoverFragment
|
||||
import code.name.monkey.retromusic.helper.MusicPlayerRemote
|
||||
import code.name.monkey.retromusic.interfaces.PaletteColorHolder
|
||||
|
@ -26,6 +26,7 @@ import code.name.monkey.retromusic.model.Song
|
|||
import code.name.monkey.retromusic.model.lyrics.Lyrics
|
||||
import code.name.monkey.retromusic.util.*
|
||||
import kotlinx.android.synthetic.main.shadow_statusbar_toolbar.*
|
||||
import org.koin.androidx.viewmodel.ext.android.sharedViewModel
|
||||
import java.io.FileNotFoundException
|
||||
|
||||
abstract class AbsPlayerFragment : AbsMusicServiceFragment(),
|
||||
|
@ -33,27 +34,11 @@ abstract class AbsPlayerFragment : AbsMusicServiceFragment(),
|
|||
PaletteColorHolder,
|
||||
PlayerAlbumCoverFragment.Callbacks {
|
||||
|
||||
var callbacks: Callbacks? = null
|
||||
private set
|
||||
|
||||
private var updateIsFavoriteTask: AsyncTask<*, *, *>? = null
|
||||
private var updateLyricsAsyncTask: AsyncTask<*, *, *>? = null
|
||||
private var playerAlbumCoverFragment: PlayerAlbumCoverFragment? = null
|
||||
|
||||
override fun onAttach(
|
||||
context: Context
|
||||
) {
|
||||
super.onAttach(context)
|
||||
try {
|
||||
callbacks = context as Callbacks?
|
||||
} catch (e: ClassCastException) {
|
||||
throw RuntimeException(context.javaClass.simpleName + " must implement " + Callbacks::class.java.simpleName)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onDetach() {
|
||||
super.onDetach()
|
||||
callbacks = null
|
||||
}
|
||||
protected val libraryViewModel by sharedViewModel<LibraryViewModel>()
|
||||
|
||||
override fun onMenuItemClick(
|
||||
item: MenuItem
|
||||
|
|
|
@ -84,7 +84,7 @@ public class FoldersFragment extends AbsMainActivityFragment implements
|
|||
FileUtil.fileIsMimeType(file, "audio/*", MimeTypeMap.getSingleton()) ||
|
||||
FileUtil.fileIsMimeType(file, "application/opus", MimeTypeMap.getSingleton()) ||
|
||||
FileUtil.fileIsMimeType(file, "application/ogg", MimeTypeMap.getSingleton()));
|
||||
private static final String PATH = "path";
|
||||
public static final String PATH = "path";
|
||||
private static final String CRUMBS = "crumbs";
|
||||
private static final int LOADER_ID = 5;
|
||||
private SongFileAdapter adapter;
|
||||
|
@ -170,8 +170,7 @@ public class FoldersFragment extends AbsMainActivityFragment implements
|
|||
|
||||
if (savedInstanceState == null) {
|
||||
//noinspection ConstantConditions
|
||||
setCrumb(new BreadCrumbLayout.Crumb(
|
||||
FileUtil.safeGetCanonicalFile((File) getArguments().getSerializable(PATH))), true);
|
||||
setCrumb(new BreadCrumbLayout.Crumb(FileUtil.safeGetCanonicalFile((File) requireArguments().getSerializable(PATH))), true);
|
||||
} else {
|
||||
breadCrumbs.restoreFromStateWrapper(savedInstanceState.getParcelable(CRUMBS));
|
||||
getLoaderManager().initLoader(LOADER_ID, null, this);
|
||||
|
|
|
@ -23,7 +23,7 @@ import code.name.monkey.retromusic.adapter.GenreAdapter
|
|||
import code.name.monkey.retromusic.fragments.LibraryViewModel
|
||||
import code.name.monkey.retromusic.fragments.base.AbsLibraryPagerRecyclerViewFragment
|
||||
import code.name.monkey.retromusic.interfaces.MainActivityFragmentCallbacks
|
||||
import org.koin.android.viewmodel.ext.android.sharedViewModel
|
||||
import org.koin.androidx.viewmodel.ext.android.sharedViewModel
|
||||
|
||||
class GenresFragment : AbsLibraryPagerRecyclerViewFragment<GenreAdapter, LinearLayoutManager>(),
|
||||
MainActivityFragmentCallbacks {
|
||||
|
@ -32,7 +32,7 @@ class GenresFragment : AbsLibraryPagerRecyclerViewFragment<GenreAdapter, LinearL
|
|||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
libraryViewModel.allGenres
|
||||
libraryViewModel.genresLiveData
|
||||
.observe(viewLifecycleOwner, Observer { genres ->
|
||||
if (genres.isNotEmpty()) {
|
||||
adapter?.swapDataSet(genres)
|
||||
|
|
|
@ -40,7 +40,7 @@ import com.bumptech.glide.Glide
|
|||
import kotlinx.android.synthetic.main.abs_playlists.*
|
||||
import kotlinx.android.synthetic.main.fragment_banner_home.*
|
||||
import kotlinx.android.synthetic.main.home_content.*
|
||||
import org.koin.android.viewmodel.ext.android.sharedViewModel
|
||||
import org.koin.androidx.viewmodel.ext.android.sharedViewModel
|
||||
|
||||
class BannerHomeFragment : AbsMainActivityFragment(), MainActivityFragmentCallbacks {
|
||||
|
||||
|
@ -116,7 +116,7 @@ class BannerHomeFragment : AbsMainActivityFragment(), MainActivityFragmentCallba
|
|||
adapter = homeAdapter
|
||||
}
|
||||
|
||||
libraryViewModel.homeSections
|
||||
libraryViewModel.homeLiveData
|
||||
.observe(viewLifecycleOwner, Observer { sections ->
|
||||
homeAdapter.swapData(sections)
|
||||
})
|
||||
|
|
|
@ -1,16 +0,0 @@
|
|||
package code.name.monkey.retromusic.fragments.player
|
||||
|
||||
import android.os.Bundle
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import code.name.monkey.retromusic.R
|
||||
import code.name.monkey.retromusic.util.PreferenceUtil
|
||||
|
||||
class MainPlayerFragment : Fragment(R.layout.fragment_main_player) {
|
||||
override fun onActivityCreated(savedInstanceState: Bundle?) {
|
||||
super.onActivityCreated(savedInstanceState)
|
||||
when (PreferenceUtil.nowPlayingScreen) {
|
||||
else -> findNavController().navigate(R.id.action_mainPlayerFragment_to_adaptiveFragment)
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,45 @@
|
|||
package code.name.monkey.retromusic.fragments.player
|
||||
|
||||
import android.os.Bundle
|
||||
import android.util.Log
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.navigation.NavController
|
||||
import code.name.monkey.retromusic.R
|
||||
import code.name.monkey.retromusic.extensions.navController
|
||||
import code.name.monkey.retromusic.fragments.NowPlayingScreen.*
|
||||
import code.name.monkey.retromusic.util.PreferenceUtil
|
||||
|
||||
class NowPlayingPlayerFragment : Fragment(R.layout.fragment_now_playing_player) {
|
||||
companion object {
|
||||
const val TAG = "NowPlaying"
|
||||
}
|
||||
|
||||
override fun onActivityCreated(savedInstanceState: Bundle?) {
|
||||
super.onActivityCreated(savedInstanceState)
|
||||
Log.i(TAG, "onActivityCreated: ")
|
||||
val navController = navController(R.id.playerFragmentContainer)
|
||||
updateNowPlaying(navController)
|
||||
}
|
||||
|
||||
private fun updateNowPlaying(navController: NavController) {
|
||||
Log.i(TAG, "updateNowPlaying: ${PreferenceUtil.nowPlayingScreen}")
|
||||
when (PreferenceUtil.nowPlayingScreen) {
|
||||
Adaptive -> navController.navigate(R.id.adaptiveFragment)
|
||||
Blur -> navController.navigate(R.id.blurPlayerFragment)
|
||||
BlurCard -> navController.navigate(R.id.cardBlurFragment)
|
||||
Card -> navController.navigate(R.id.cardFragment)
|
||||
Circle -> navController.navigate(R.id.circlePlayerFragment)
|
||||
Classic -> navController.navigate(R.id.classicPlayerFragment)
|
||||
Color -> navController.navigate(R.id.colorFragment)
|
||||
Fit -> navController.navigate(R.id.fitFragment)
|
||||
Flat -> navController.navigate(R.id.flatPlayerFragment)
|
||||
Full -> navController.navigate(R.id.fullPlayerFragment)
|
||||
Gradient -> navController.navigate(R.id.gradientPlayerFragment)
|
||||
Material -> navController.navigate(R.id.materialFragment)
|
||||
Plain -> navController.navigate(R.id.plainPlayerFragment)
|
||||
Simple -> navController.navigate(R.id.simplePlayerFragment)
|
||||
Tiny -> navController.navigate(R.id.tinyPlayerFragment)
|
||||
else -> navController.navigate(R.id.playerFragment)
|
||||
}
|
||||
}
|
||||
}
|
|
@ -50,7 +50,7 @@ class PlayerAlbumCoverFragment : AbsMusicServiceFragment(), ViewPager.OnPageChan
|
|||
val metrics = resources.displayMetrics
|
||||
val ratio = metrics.heightPixels.toFloat() / metrics.widthPixels.toFloat()
|
||||
|
||||
if (nps == Full || nps == Classic || nps == Fit || nps == Gradient || nps == Peak) {
|
||||
if (nps == Full || nps == Classic || nps == Fit || nps == Gradient ) {
|
||||
viewPager.offscreenPageLimit = 2
|
||||
} else if (PreferenceUtil.isCarouselEffect) {
|
||||
viewPager.clipToPadding = false
|
||||
|
|
|
@ -96,7 +96,7 @@ class AdaptiveFragment : AbsPlayerFragment() {
|
|||
override fun onColorChanged(color: MediaNotificationProcessor) {
|
||||
playbackControlsFragment.setColor(color)
|
||||
lastColor = color.primaryTextColor
|
||||
callbacks?.onPaletteColorChanged()
|
||||
libraryViewModel.updateColor(color.primaryTextColor)
|
||||
ToolbarContentTintHelper.colorizeToolbar(
|
||||
playerToolbar,
|
||||
ATHUtil.resolveColor(requireContext(), R.attr.colorControlNormal),
|
||||
|
|
|
@ -68,7 +68,7 @@ class BlurPlayerFragment : AbsPlayerFragment(), SharedPreferences.OnSharedPrefer
|
|||
override fun onColorChanged(color: MediaNotificationProcessor) {
|
||||
playbackControlsFragment.setColor(color)
|
||||
lastColor = color.backgroundColor
|
||||
callbacks?.onPaletteColorChanged()
|
||||
libraryViewModel.updateColor(color.backgroundColor)
|
||||
ToolbarContentTintHelper.colorizeToolbar(playerToolbar, Color.WHITE, activity)
|
||||
}
|
||||
|
||||
|
|
|
@ -47,7 +47,7 @@ class CardFragment : AbsPlayerFragment() {
|
|||
override fun onColorChanged(color: MediaNotificationProcessor) {
|
||||
playbackControlsFragment.setColor(color)
|
||||
lastColor = color.primaryTextColor
|
||||
callbacks?.onPaletteColorChanged()
|
||||
libraryViewModel.updateColor(color.primaryTextColor)
|
||||
ToolbarContentTintHelper.colorizeToolbar(playerToolbar, Color.WHITE, activity)
|
||||
}
|
||||
|
||||
|
|
|
@ -54,7 +54,7 @@ class CardBlurFragment : AbsPlayerFragment(), SharedPreferences.OnSharedPreferen
|
|||
override fun onColorChanged(color: MediaNotificationProcessor) {
|
||||
playbackControlsFragment.setColor(color)
|
||||
lastColor = color.backgroundColor
|
||||
callbacks!!.onPaletteColorChanged()
|
||||
libraryViewModel.updateColor(color.backgroundColor)
|
||||
ToolbarContentTintHelper.colorizeToolbar(playerToolbar, Color.WHITE, activity)
|
||||
|
||||
playerToolbar.setTitleTextColor(Color.WHITE)
|
||||
|
|
|
@ -271,7 +271,7 @@ class ClassicPlayerFragment : AbsPlayerFragment(), View.OnLayoutChangeListener,
|
|||
|
||||
override fun onColorChanged(color: MediaNotificationProcessor) {
|
||||
lastColor = color.backgroundColor
|
||||
callbacks?.onPaletteColorChanged()
|
||||
libraryViewModel.updateColor(color.backgroundColor)
|
||||
|
||||
lastPlaybackControlsColor = color.primaryTextColor
|
||||
lastDisabledPlaybackControlsColor = ColorUtil.withAlpha(color.primaryTextColor, 0.3f)
|
||||
|
|
|
@ -33,10 +33,11 @@ class ColorFragment : AbsPlayerFragment() {
|
|||
get() = navigationColor
|
||||
|
||||
override fun onColorChanged(color: MediaNotificationProcessor) {
|
||||
libraryViewModel.updateColor(color.backgroundColor)
|
||||
lastColor = color.secondaryTextColor
|
||||
playbackControlsFragment.setColor(color)
|
||||
navigationColor = color.backgroundColor
|
||||
callbacks?.onPaletteColorChanged()
|
||||
|
||||
colorGradientBackground?.setBackgroundColor(color.backgroundColor)
|
||||
playerActivity?.setLightNavigationBar(ColorUtil.isColorLight(color.backgroundColor))
|
||||
Handler().post {
|
||||
|
|
|
@ -46,7 +46,7 @@ class FitFragment : AbsPlayerFragment() {
|
|||
override fun onColorChanged(color: MediaNotificationProcessor) {
|
||||
playbackControlsFragment.setColor(color)
|
||||
lastColor = color.primaryTextColor
|
||||
callbacks?.onPaletteColorChanged()
|
||||
libraryViewModel.updateColor(color.primaryTextColor)
|
||||
ToolbarContentTintHelper.colorizeToolbar(
|
||||
playerToolbar,
|
||||
ATHUtil.resolveColor(requireContext(), R.attr.colorControlNormal),
|
||||
|
|
|
@ -86,14 +86,14 @@ class FlatPlaybackControlsFragment : AbsPlayerControlsFragment(), Callback {
|
|||
override fun setColor(color: MediaNotificationProcessor) {
|
||||
if (ATHUtil.isWindowBackgroundDark(requireContext())) {
|
||||
lastPlaybackControlsColor =
|
||||
MaterialValueHelper.getSecondaryTextColor(requireContext(), true)
|
||||
MaterialValueHelper.getSecondaryTextColor(requireContext(), false)
|
||||
lastDisabledPlaybackControlsColor =
|
||||
MaterialValueHelper.getSecondaryDisabledTextColor(requireContext(), true)
|
||||
MaterialValueHelper.getSecondaryDisabledTextColor(requireContext(), false)
|
||||
} else {
|
||||
lastPlaybackControlsColor =
|
||||
MaterialValueHelper.getPrimaryTextColor(requireContext(), false)
|
||||
MaterialValueHelper.getPrimaryTextColor(requireContext(), true)
|
||||
lastDisabledPlaybackControlsColor =
|
||||
MaterialValueHelper.getPrimaryDisabledTextColor(requireContext(), false)
|
||||
MaterialValueHelper.getPrimaryDisabledTextColor(requireContext(), true)
|
||||
}
|
||||
|
||||
val colorFinal = if (PreferenceUtil.isAdaptiveColor) {
|
||||
|
@ -116,8 +116,8 @@ class FlatPlaybackControlsFragment : AbsPlayerControlsFragment(), Callback {
|
|||
val colorSecondary =
|
||||
MaterialValueHelper.getSecondaryTextColor(context, ColorUtil.isColorLight(darkColor))
|
||||
|
||||
TintHelper.setTintAuto(playPauseButton!!, colorPrimary, false)
|
||||
TintHelper.setTintAuto(playPauseButton!!, color, true)
|
||||
TintHelper.setTintAuto(playPauseButton, colorPrimary, false)
|
||||
TintHelper.setTintAuto(playPauseButton, color, true)
|
||||
|
||||
title.setBackgroundColor(color)
|
||||
title.setTextColor(colorPrimary)
|
||||
|
|
|
@ -108,7 +108,7 @@ class FlatPlayerFragment : AbsPlayerFragment() {
|
|||
override fun onColorChanged(color: MediaNotificationProcessor) {
|
||||
lastColor = color.backgroundColor
|
||||
controlsFragment.setColor(color)
|
||||
callbacks?.onPaletteColorChanged()
|
||||
libraryViewModel.updateColor(color.backgroundColor)
|
||||
val isLight = ColorUtil.isColorLight(color.backgroundColor)
|
||||
val iconColor = if (PreferenceUtil.isAdaptiveColor)
|
||||
MaterialValueHelper.getPrimaryTextColor(requireContext(), isLight)
|
||||
|
|
|
@ -202,7 +202,7 @@ class FullPlayerFragment : AbsPlayerFragment(), MusicProgressViewUpdateHelper.Ca
|
|||
lastColor = color.backgroundColor
|
||||
mask.backgroundTintList = ColorStateList.valueOf(color.backgroundColor)
|
||||
controlsFragment.setColor(color)
|
||||
callbacks?.onPaletteColorChanged()
|
||||
libraryViewModel.updateColor(color.backgroundColor)
|
||||
ToolbarContentTintHelper.colorizeToolbar(playerToolbar, Color.WHITE, activity)
|
||||
}
|
||||
|
||||
|
|
|
@ -201,7 +201,7 @@ class GradientPlayerFragment : AbsPlayerFragment(), MusicProgressViewUpdateHelpe
|
|||
|
||||
override fun onColorChanged(color: MediaNotificationProcessor) {
|
||||
lastColor = color.backgroundColor
|
||||
callbacks?.onPaletteColorChanged()
|
||||
libraryViewModel.updateColor(color.backgroundColor)
|
||||
mask.backgroundTintList = ColorStateList.valueOf(color.backgroundColor)
|
||||
colorBackground.setBackgroundColor(color.backgroundColor)
|
||||
playerQueueSheet.setBackgroundColor(ColorUtil.darkenColor(color.backgroundColor))
|
||||
|
|
|
@ -93,7 +93,7 @@ class HomePlayerFragment : AbsPlayerFragment(), MusicProgressViewUpdateHelper.Ca
|
|||
|
||||
override fun onColorChanged(color: MediaNotificationProcessor) {
|
||||
lastColor = color.backgroundColor
|
||||
callbacks?.onPaletteColorChanged()
|
||||
libraryViewModel.updateColor(color.backgroundColor)
|
||||
ToolbarContentTintHelper.colorizeToolbar(
|
||||
playerToolbar,
|
||||
Color.WHITE,
|
||||
|
|
|
@ -52,7 +52,7 @@ class MaterialFragment : AbsPlayerFragment() {
|
|||
override fun onColorChanged(color: MediaNotificationProcessor) {
|
||||
playbackControlsFragment.setColor(color)
|
||||
lastColor = color.backgroundColor
|
||||
callbacks?.onPaletteColorChanged()
|
||||
libraryViewModel.updateColor(color.backgroundColor)
|
||||
|
||||
ToolbarContentTintHelper.colorizeToolbar(
|
||||
playerToolbar,
|
||||
|
|
|
@ -78,7 +78,7 @@ class PlayerFragment : AbsPlayerFragment() {
|
|||
override fun onColorChanged(color: MediaNotificationProcessor) {
|
||||
controlsFragment.setColor(color)
|
||||
lastColor = color.backgroundColor
|
||||
callbacks?.onPaletteColorChanged()
|
||||
libraryViewModel.updateColor(color.backgroundColor)
|
||||
|
||||
ToolbarContentTintHelper.colorizeToolbar(
|
||||
playerToolbar,
|
||||
|
|
|
@ -102,7 +102,7 @@ class PeakPlayerFragment : AbsPlayerFragment() {
|
|||
|
||||
override fun onColorChanged(color: MediaNotificationProcessor) {
|
||||
lastColor = color.primaryTextColor
|
||||
callbacks?.onPaletteColorChanged()
|
||||
libraryViewModel.updateColor(color.primaryTextColor)
|
||||
controlsFragment.setColor(color)
|
||||
}
|
||||
|
||||
|
|
|
@ -97,7 +97,7 @@ class PlainPlayerFragment : AbsPlayerFragment() {
|
|||
override fun onColorChanged(color: MediaNotificationProcessor) {
|
||||
plainPlaybackControlsFragment.setColor(color)
|
||||
lastColor = color.primaryTextColor
|
||||
callbacks!!.onPaletteColorChanged()
|
||||
libraryViewModel.updateColor(color.primaryTextColor)
|
||||
ToolbarContentTintHelper.colorizeToolbar(
|
||||
playerToolbar,
|
||||
ATHUtil.resolveColor(requireContext(), R.attr.colorControlNormal),
|
||||
|
|
|
@ -71,7 +71,7 @@ class SimplePlayerFragment : AbsPlayerFragment() {
|
|||
|
||||
override fun onColorChanged(color: MediaNotificationProcessor) {
|
||||
lastColor = color.backgroundColor
|
||||
callbacks?.onPaletteColorChanged()
|
||||
libraryViewModel.updateColor(color.backgroundColor)
|
||||
controlsFragment.setColor(color)
|
||||
ToolbarContentTintHelper.colorizeToolbar(
|
||||
playerToolbar,
|
||||
|
|
|
@ -57,9 +57,9 @@ class TinyPlayerFragment : AbsPlayerFragment(), MusicProgressViewUpdateHelper.Ca
|
|||
|
||||
override fun onColorChanged(color: MediaNotificationProcessor) {
|
||||
lastColor = color.backgroundColor
|
||||
libraryViewModel.updateColor(color.backgroundColor)
|
||||
toolbarColor = color.secondaryTextColor
|
||||
controlsFragment.setColor(color)
|
||||
callbacks?.onPaletteColorChanged()
|
||||
|
||||
title.setTextColor(color.primaryTextColor)
|
||||
playerSongTotalTime.setTextColor(color.primaryTextColor)
|
||||
|
|
|
@ -11,7 +11,7 @@ import code.name.monkey.retromusic.adapter.playlist.PlaylistAdapter
|
|||
import code.name.monkey.retromusic.fragments.LibraryViewModel
|
||||
import code.name.monkey.retromusic.fragments.base.AbsLibraryPagerRecyclerViewFragment
|
||||
import code.name.monkey.retromusic.interfaces.MainActivityFragmentCallbacks
|
||||
import org.koin.android.viewmodel.ext.android.sharedViewModel
|
||||
import org.koin.androidx.viewmodel.ext.android.sharedViewModel
|
||||
|
||||
class PlaylistsFragment :
|
||||
AbsLibraryPagerRecyclerViewFragment<PlaylistAdapter, GridLayoutManager>(),
|
||||
|
@ -21,7 +21,7 @@ class PlaylistsFragment :
|
|||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
libraryViewModel.allPlaylisits.observe(viewLifecycleOwner, Observer { playlists ->
|
||||
libraryViewModel.playlisitsLiveData.observe(viewLifecycleOwner, Observer { playlists ->
|
||||
if (playlists.isNotEmpty()) {
|
||||
adapter?.swapDataSet(playlists)
|
||||
} else {
|
||||
|
|
|
@ -23,8 +23,6 @@ import androidx.preference.ListPreference
|
|||
import androidx.preference.Preference
|
||||
import androidx.preference.PreferenceManager
|
||||
import code.name.monkey.appthemehelper.common.prefs.supportv7.ATEPreferenceFragmentCompat
|
||||
import code.name.monkey.appthemehelper.util.ATHUtil
|
||||
import code.name.monkey.retromusic.R
|
||||
import code.name.monkey.retromusic.preferences.*
|
||||
import code.name.monkey.retromusic.util.NavigationUtil
|
||||
|
||||
|
@ -65,7 +63,7 @@ abstract class AbsSettingsFragment : ATEPreferenceFragmentCompat() {
|
|||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
setDivider(ColorDrawable(Color.TRANSPARENT))
|
||||
listView.setBackgroundColor(ATHUtil.resolveColor(requireContext(), R.attr.colorSurface))
|
||||
//listView.setBackgroundColor(ATHUtil.resolveColor(requireContext(), R.attr.colorSurface))
|
||||
listView.overScrollMode = View.OVER_SCROLL_NEVER
|
||||
listView.setPadding(0, 0, 0, 0)
|
||||
listView.setPaddingRelative(0, 0, 0, 0)
|
||||
|
|
|
@ -13,7 +13,7 @@ import code.name.monkey.retromusic.fragments.ReloadType
|
|||
import code.name.monkey.retromusic.fragments.base.AbsLibraryPagerRecyclerViewCustomGridSizeFragment
|
||||
import code.name.monkey.retromusic.interfaces.MainActivityFragmentCallbacks
|
||||
import code.name.monkey.retromusic.util.PreferenceUtil
|
||||
import org.koin.android.viewmodel.ext.android.sharedViewModel
|
||||
import org.koin.androidx.viewmodel.ext.android.sharedViewModel
|
||||
|
||||
class SongsFragment :
|
||||
AbsLibraryPagerRecyclerViewCustomGridSizeFragment<SongAdapter, GridLayoutManager>(),
|
||||
|
@ -23,7 +23,7 @@ class SongsFragment :
|
|||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
libraryViewModel.allSongs.observe(viewLifecycleOwner, Observer {
|
||||
libraryViewModel.songsLiveData.observe(viewLifecycleOwner, Observer {
|
||||
if (it.isNotEmpty()) {
|
||||
adapter?.swapDataSet(it)
|
||||
} else {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue