Code refactor
This commit is contained in:
parent
6d0898a49a
commit
5ebeb9c587
20 changed files with 199 additions and 243 deletions
|
@ -30,12 +30,16 @@ class LibraryViewModel(
|
|||
|
||||
val paletteColorLiveData: LiveData<Int> = paletteColor
|
||||
|
||||
init {
|
||||
fetchHomeSections()
|
||||
}
|
||||
|
||||
private fun loadLibraryContent() = viewModelScope.launch(IO) {
|
||||
fetchHomeSections()
|
||||
fetchSongs()
|
||||
fetchAlbums()
|
||||
fetchArtists()
|
||||
fetchGenres()
|
||||
fetchHomeSections()
|
||||
fetchPlaylists()
|
||||
}
|
||||
|
||||
|
@ -70,7 +74,6 @@ class LibraryViewModel(
|
|||
}
|
||||
|
||||
fun getHome(): LiveData<List<Home>> {
|
||||
fetchHomeSections()
|
||||
return home
|
||||
}
|
||||
|
||||
|
@ -132,11 +135,10 @@ class LibraryViewModel(
|
|||
}
|
||||
|
||||
override fun onMediaStoreChanged() {
|
||||
loadLibraryContent()
|
||||
println("onMediaStoreChanged")
|
||||
loadLibraryContent()
|
||||
}
|
||||
|
||||
|
||||
override fun onServiceConnected() {
|
||||
println("onServiceConnected")
|
||||
}
|
||||
|
@ -204,6 +206,30 @@ class LibraryViewModel(
|
|||
suspend fun createPlaylist(playlistEntity: PlaylistEntity): Long =
|
||||
repository.createPlaylist(playlistEntity)
|
||||
|
||||
fun importPlaylists() = viewModelScope.launch(IO) {
|
||||
val playlists = repository.fetchLegacyPlaylist()
|
||||
playlists.forEach { playlist ->
|
||||
val playlistEntity = repository.checkPlaylistExists(playlist.name).firstOrNull();
|
||||
if (playlistEntity != null) {
|
||||
val songEntities = playlist.getSongs().map {
|
||||
it.toSongEntity(playlistEntity.playListId)
|
||||
}
|
||||
repository.insertSongs(songEntities)
|
||||
} else {
|
||||
val playListId = createPlaylist(PlaylistEntity(playlist.name))
|
||||
val songEntities = playlist.getSongs().map {
|
||||
it.toSongEntity(playListId.toInt())
|
||||
}
|
||||
repository.insertSongs(songEntities)
|
||||
}
|
||||
forceReload(Playlists)
|
||||
}
|
||||
}
|
||||
|
||||
fun deleteTracks(songs: List<Song>) = viewModelScope.launch(IO) {
|
||||
repository.deleteSongs(songs)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
enum class ReloadType {
|
||||
|
|
|
@ -4,15 +4,19 @@ import android.os.Bundle
|
|||
import android.view.Menu
|
||||
import android.view.MenuInflater
|
||||
import android.view.MenuItem
|
||||
import androidx.core.text.HtmlCompat
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import androidx.navigation.ui.NavigationUI
|
||||
import code.name.monkey.appthemehelper.ThemeStore
|
||||
import code.name.monkey.appthemehelper.common.ATHToolbarActivity.getToolbarBackgroundColor
|
||||
import code.name.monkey.appthemehelper.util.ToolbarContentTintHelper
|
||||
import code.name.monkey.retromusic.R
|
||||
import code.name.monkey.retromusic.dialogs.CreatePlaylistDialog
|
||||
import code.name.monkey.retromusic.dialogs.ImportPlaylistDialog
|
||||
import code.name.monkey.retromusic.extensions.findNavController
|
||||
import code.name.monkey.retromusic.fragments.base.AbsMainActivityFragment
|
||||
import kotlinx.android.synthetic.main.fragment_library.*
|
||||
import java.lang.String
|
||||
|
||||
class LibraryFragment : AbsMainActivityFragment(R.layout.fragment_library) {
|
||||
|
||||
|
@ -31,6 +35,17 @@ class LibraryFragment : AbsMainActivityFragment(R.layout.fragment_library) {
|
|||
)
|
||||
}
|
||||
setupNavigationController()
|
||||
setupTitle()
|
||||
}
|
||||
|
||||
private fun setupTitle() {
|
||||
val color = ThemeStore.accentColor(requireContext())
|
||||
val hexColor = String.format("#%06X", 0xFFFFFF and color)
|
||||
val appName = HtmlCompat.fromHtml(
|
||||
"Retro <span style='color:$hexColor';>Music</span>",
|
||||
HtmlCompat.FROM_HTML_MODE_COMPACT
|
||||
)
|
||||
appNameText.text = appName
|
||||
}
|
||||
|
||||
private fun setupNavigationController() {
|
||||
|
@ -61,7 +76,10 @@ class LibraryFragment : AbsMainActivityFragment(R.layout.fragment_library) {
|
|||
null,
|
||||
navOptions
|
||||
)
|
||||
R.id.action_import_playlist -> findNavController(R.id.fragment_container).navigate(R.id.action_import_playlist)
|
||||
R.id.action_import_playlist -> ImportPlaylistDialog().show(
|
||||
childFragmentManager,
|
||||
"ImportPlaylist"
|
||||
)
|
||||
R.id.action_add_to_playlist -> CreatePlaylistDialog.create(emptyList()).show(
|
||||
childFragmentManager,
|
||||
"ShowCreatePlaylistDialog"
|
||||
|
|
|
@ -20,7 +20,6 @@ class SongsFragment : AbsRecyclerViewCustomGridSizeFragment<SongAdapter, GridLay
|
|||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
libraryViewModel.getSongs().observe(viewLifecycleOwner, Observer {
|
||||
println(Thread.currentThread().name)
|
||||
if (it.isNotEmpty())
|
||||
adapter?.swapDataSet(it)
|
||||
else
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue