Code refactor
This commit is contained in:
parent
9dac81ca6f
commit
765172d69f
14 changed files with 64 additions and 127 deletions
|
@ -136,7 +136,7 @@ open class AlbumAdapter(
|
||||||
private fun getSongList(albums: List<Album>): List<Song> {
|
private fun getSongList(albums: List<Album>): List<Song> {
|
||||||
val songs = ArrayList<Song>()
|
val songs = ArrayList<Song>()
|
||||||
for (album in albums) {
|
for (album in albums) {
|
||||||
songs.addAll(album.songs!!)
|
songs.addAll(album.songs)
|
||||||
}
|
}
|
||||||
return songs
|
return songs
|
||||||
}
|
}
|
||||||
|
@ -170,8 +170,7 @@ open class AlbumAdapter(
|
||||||
if (isInQuickSelectMode) {
|
if (isInQuickSelectMode) {
|
||||||
toggleChecked(layoutPosition)
|
toggleChecked(layoutPosition)
|
||||||
} else {
|
} else {
|
||||||
println(dataSet[layoutPosition].id)
|
albumClickListener?.onAlbumClick(dataSet[layoutPosition].id, itemView)
|
||||||
image?.let { albumClickListener?.onAlbumClick(dataSet[layoutPosition].id, it) }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -113,6 +113,7 @@ public class MediaEntryViewHolder extends AbstractDraggableSwipeableItemViewHold
|
||||||
itemView.setOnLongClickListener(this);
|
itemView.setOnLongClickListener(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
@Override
|
@Override
|
||||||
public View getSwipeableContainerView() {
|
public View getSwipeableContainerView() {
|
||||||
return null;
|
return null;
|
||||||
|
@ -129,11 +130,12 @@ public class MediaEntryViewHolder extends AbstractDraggableSwipeableItemViewHold
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setImageTransitionName(@NonNull String transitionName) {
|
public void setImageTransitionName(@NonNull String transitionName) {
|
||||||
if (imageContainerCard != null) {
|
itemView.setTransitionName(transitionName);
|
||||||
|
/* if (imageContainerCard != null) {
|
||||||
imageContainerCard.setTransitionName(transitionName);
|
imageContainerCard.setTransitionName(transitionName);
|
||||||
}
|
}
|
||||||
if (image != null) {
|
if (image != null) {
|
||||||
image.setTransitionName(transitionName);
|
image.setTransitionName(transitionName);
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,7 @@ import androidx.fragment.app.FragmentActivity
|
||||||
import code.name.monkey.retromusic.R
|
import code.name.monkey.retromusic.R
|
||||||
import code.name.monkey.retromusic.R.menu
|
import code.name.monkey.retromusic.R.menu
|
||||||
import code.name.monkey.retromusic.db.PlaylistEntity
|
import code.name.monkey.retromusic.db.PlaylistEntity
|
||||||
|
import code.name.monkey.retromusic.db.toSongEntity
|
||||||
import code.name.monkey.retromusic.db.toSongs
|
import code.name.monkey.retromusic.db.toSongs
|
||||||
import code.name.monkey.retromusic.dialogs.RemoveSongFromPlaylistDialog
|
import code.name.monkey.retromusic.dialogs.RemoveSongFromPlaylistDialog
|
||||||
import code.name.monkey.retromusic.interfaces.CabHolder
|
import code.name.monkey.retromusic.interfaces.CabHolder
|
||||||
|
|
|
@ -14,6 +14,44 @@ fun List<Song>.toSongs(playlistId: Long): List<SongEntity> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun Song.toHistoryEntity(timePlayed: Long): HistoryEntity {
|
||||||
|
return HistoryEntity(
|
||||||
|
id = id,
|
||||||
|
title = title,
|
||||||
|
trackNumber = trackNumber,
|
||||||
|
year = year,
|
||||||
|
duration = duration,
|
||||||
|
data = data,
|
||||||
|
dateModified = dateModified,
|
||||||
|
albumId = albumId,
|
||||||
|
albumName = albumName,
|
||||||
|
artistId = artistId,
|
||||||
|
artistName = artistName,
|
||||||
|
composer = composer,
|
||||||
|
albumArtist = albumArtist,
|
||||||
|
timePlayed = timePlayed
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun Song.toSongEntity(playListId: Long): SongEntity {
|
||||||
|
return SongEntity(
|
||||||
|
playlistCreatorId = playListId,
|
||||||
|
id = id,
|
||||||
|
title = title,
|
||||||
|
trackNumber = trackNumber,
|
||||||
|
year = year,
|
||||||
|
duration = duration,
|
||||||
|
data = data,
|
||||||
|
dateModified = dateModified,
|
||||||
|
albumId = albumId,
|
||||||
|
albumName = albumName,
|
||||||
|
artistId = artistId,
|
||||||
|
artistName = artistName,
|
||||||
|
composer = composer,
|
||||||
|
albumArtist = albumArtist
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
fun SongEntity.toSong(): Song {
|
fun SongEntity.toSong(): Song {
|
||||||
return Song(
|
return Song(
|
||||||
id = id,
|
id = id,
|
||||||
|
|
|
@ -11,6 +11,7 @@ import androidx.lifecycle.lifecycleScope
|
||||||
import code.name.monkey.retromusic.EXTRA_SONG
|
import code.name.monkey.retromusic.EXTRA_SONG
|
||||||
import code.name.monkey.retromusic.R
|
import code.name.monkey.retromusic.R
|
||||||
import code.name.monkey.retromusic.db.PlaylistEntity
|
import code.name.monkey.retromusic.db.PlaylistEntity
|
||||||
|
import code.name.monkey.retromusic.db.toSongEntity
|
||||||
import code.name.monkey.retromusic.extensions.colorButtons
|
import code.name.monkey.retromusic.extensions.colorButtons
|
||||||
import code.name.monkey.retromusic.extensions.extra
|
import code.name.monkey.retromusic.extensions.extra
|
||||||
import code.name.monkey.retromusic.extensions.materialDialog
|
import code.name.monkey.retromusic.extensions.materialDialog
|
||||||
|
|
|
@ -7,6 +7,7 @@ import androidx.lifecycle.viewModelScope
|
||||||
import code.name.monkey.retromusic.db.PlaylistEntity
|
import code.name.monkey.retromusic.db.PlaylistEntity
|
||||||
import code.name.monkey.retromusic.db.PlaylistWithSongs
|
import code.name.monkey.retromusic.db.PlaylistWithSongs
|
||||||
import code.name.monkey.retromusic.db.SongEntity
|
import code.name.monkey.retromusic.db.SongEntity
|
||||||
|
import code.name.monkey.retromusic.db.toSongEntity
|
||||||
import code.name.monkey.retromusic.fragments.ReloadType.*
|
import code.name.monkey.retromusic.fragments.ReloadType.*
|
||||||
import code.name.monkey.retromusic.helper.MusicPlayerRemote
|
import code.name.monkey.retromusic.helper.MusicPlayerRemote
|
||||||
import code.name.monkey.retromusic.interfaces.MusicServiceEventListener
|
import code.name.monkey.retromusic.interfaces.MusicServiceEventListener
|
||||||
|
|
|
@ -46,6 +46,7 @@ import code.name.monkey.retromusic.util.PreferenceUtil
|
||||||
import code.name.monkey.retromusic.util.RetroUtil
|
import code.name.monkey.retromusic.util.RetroUtil
|
||||||
import code.name.monkey.retromusic.util.color.MediaNotificationProcessor
|
import code.name.monkey.retromusic.util.color.MediaNotificationProcessor
|
||||||
import com.bumptech.glide.Glide
|
import com.bumptech.glide.Glide
|
||||||
|
import com.google.android.material.transition.MaterialContainerTransform
|
||||||
import kotlinx.android.synthetic.main.fragment_album_content.*
|
import kotlinx.android.synthetic.main.fragment_album_content.*
|
||||||
import kotlinx.android.synthetic.main.fragment_album_details.*
|
import kotlinx.android.synthetic.main.fragment_album_details.*
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
|
@ -70,8 +71,14 @@ class AlbumDetailsFragment : AbsMainActivityFragment(R.layout.fragment_album_det
|
||||||
private val savedSortOrder: String
|
private val savedSortOrder: String
|
||||||
get() = PreferenceUtil.albumDetailSongSortOrder
|
get() = PreferenceUtil.albumDetailSongSortOrder
|
||||||
|
|
||||||
override fun onActivityCreated(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onActivityCreated(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
|
sharedElementEnterTransition = MaterialContainerTransform().apply {
|
||||||
|
duration = 1000L
|
||||||
|
}
|
||||||
|
}
|
||||||
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
|
super.onViewCreated(view, savedInstanceState)
|
||||||
setHasOptionsMenu(true)
|
setHasOptionsMenu(true)
|
||||||
mainActivity.hideBottomBarVisibility(false)
|
mainActivity.hideBottomBarVisibility(false)
|
||||||
mainActivity.addMusicServiceEventListener(detailsViewModel)
|
mainActivity.addMusicServiceEventListener(detailsViewModel)
|
||||||
|
@ -91,11 +98,11 @@ class AlbumDetailsFragment : AbsMainActivityFragment(R.layout.fragment_album_det
|
||||||
bundleOf(EXTRA_ARTIST_ID to album.artistId)
|
bundleOf(EXTRA_ARTIST_ID to album.artistId)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
playAction.setOnClickListener { MusicPlayerRemote.openQueue(album.songs!!, 0, true) }
|
playAction.setOnClickListener { MusicPlayerRemote.openQueue(album.songs, 0, true) }
|
||||||
|
|
||||||
shuffleAction.setOnClickListener {
|
shuffleAction.setOnClickListener {
|
||||||
MusicPlayerRemote.openAndShuffleQueue(
|
MusicPlayerRemote.openAndShuffleQueue(
|
||||||
album.songs!!,
|
album.songs,
|
||||||
true
|
true
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -134,7 +141,7 @@ class AlbumDetailsFragment : AbsMainActivityFragment(R.layout.fragment_album_det
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun showAlbum(album: Album) {
|
private fun showAlbum(album: Album) {
|
||||||
if (album.songs!!.isEmpty()) {
|
if (album.songs.isEmpty()) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
this.album = album
|
this.album = album
|
||||||
|
|
|
@ -23,6 +23,7 @@ import code.name.monkey.retromusic.activities.tageditor.AbsTagEditorActivity
|
||||||
import code.name.monkey.retromusic.activities.tageditor.SongTagEditorActivity
|
import code.name.monkey.retromusic.activities.tageditor.SongTagEditorActivity
|
||||||
import code.name.monkey.retromusic.db.PlaylistEntity
|
import code.name.monkey.retromusic.db.PlaylistEntity
|
||||||
import code.name.monkey.retromusic.db.SongEntity
|
import code.name.monkey.retromusic.db.SongEntity
|
||||||
|
import code.name.monkey.retromusic.db.toSongEntity
|
||||||
import code.name.monkey.retromusic.dialogs.*
|
import code.name.monkey.retromusic.dialogs.*
|
||||||
import code.name.monkey.retromusic.extensions.hide
|
import code.name.monkey.retromusic.extensions.hide
|
||||||
import code.name.monkey.retromusic.extensions.whichFragment
|
import code.name.monkey.retromusic.extensions.whichFragment
|
||||||
|
|
|
@ -1,72 +0,0 @@
|
||||||
package code.name.monkey.retromusic.fragments.playlists
|
|
||||||
|
|
||||||
import android.os.Bundle
|
|
||||||
import android.view.Menu
|
|
||||||
import android.view.MenuInflater
|
|
||||||
import android.view.View
|
|
||||||
import android.widget.Toast
|
|
||||||
import androidx.lifecycle.Observer
|
|
||||||
import androidx.lifecycle.lifecycleScope
|
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager
|
|
||||||
import code.name.monkey.retromusic.R
|
|
||||||
import code.name.monkey.retromusic.adapter.playlist.LegacyPlaylistAdapter
|
|
||||||
import code.name.monkey.retromusic.db.PlaylistEntity
|
|
||||||
import code.name.monkey.retromusic.fragments.ReloadType.Playlists
|
|
||||||
import code.name.monkey.retromusic.fragments.base.AbsRecyclerViewFragment
|
|
||||||
import code.name.monkey.retromusic.model.Playlist
|
|
||||||
import kotlinx.coroutines.Dispatchers.IO
|
|
||||||
import kotlinx.coroutines.launch
|
|
||||||
|
|
||||||
class ImportPlaylistFragment :
|
|
||||||
AbsRecyclerViewFragment<LegacyPlaylistAdapter, LinearLayoutManager>(),
|
|
||||||
LegacyPlaylistAdapter.PlaylistClickListener {
|
|
||||||
|
|
||||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
|
||||||
super.onViewCreated(view, savedInstanceState)
|
|
||||||
libraryViewModel.getLegacyPlaylist().observe(viewLifecycleOwner, Observer {
|
|
||||||
if (it.isNotEmpty())
|
|
||||||
adapter?.swapData(it)
|
|
||||||
else
|
|
||||||
adapter?.swapData(listOf())
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun createLayoutManager(): LinearLayoutManager {
|
|
||||||
return LinearLayoutManager(requireContext())
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun createAdapter(): LegacyPlaylistAdapter {
|
|
||||||
return LegacyPlaylistAdapter(
|
|
||||||
requireActivity(),
|
|
||||||
ArrayList(),
|
|
||||||
R.layout.item_list_no_image,
|
|
||||||
this
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onPlaylistClick(playlist: Playlist) {
|
|
||||||
Toast.makeText(requireContext(), "Importing ${playlist.name}", Toast.LENGTH_LONG).show()
|
|
||||||
lifecycleScope.launch(IO) {
|
|
||||||
if (playlist.name.isNotEmpty()) {
|
|
||||||
if (libraryViewModel.checkPlaylistExists(playlist.name).isEmpty()) {
|
|
||||||
val playlistId: Long =
|
|
||||||
libraryViewModel.createPlaylist(PlaylistEntity(playlistName = playlist.name))
|
|
||||||
libraryViewModel.insertSongs(playlist.getSongs().map {
|
|
||||||
it.toSongEntity(playlistId)
|
|
||||||
})
|
|
||||||
libraryViewModel.forceReload(Playlists)
|
|
||||||
} else {
|
|
||||||
Toast.makeText(requireContext(), "Playlist exists", Toast.LENGTH_SHORT)
|
|
||||||
.show()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
|
|
||||||
menu.removeItem(R.id.action_grid_size)
|
|
||||||
menu.removeItem(R.id.action_layout_type)
|
|
||||||
menu.removeItem(R.id.action_sort_order)
|
|
||||||
super.onCreateOptionsMenu(menu, inflater)
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -16,7 +16,6 @@ import code.name.monkey.retromusic.util.RetroUtil
|
||||||
|
|
||||||
class SongsFragment : AbsRecyclerViewCustomGridSizeFragment<SongAdapter, GridLayoutManager>() {
|
class SongsFragment : AbsRecyclerViewCustomGridSizeFragment<SongAdapter, GridLayoutManager>() {
|
||||||
|
|
||||||
|
|
||||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
super.onViewCreated(view, savedInstanceState)
|
super.onViewCreated(view, savedInstanceState)
|
||||||
libraryViewModel.getSongs().observe(viewLifecycleOwner, Observer {
|
libraryViewModel.getSongs().observe(viewLifecycleOwner, Observer {
|
||||||
|
|
|
@ -35,43 +35,7 @@ open class Song(
|
||||||
open val composer: String?,
|
open val composer: String?,
|
||||||
open val albumArtist: String?
|
open val albumArtist: String?
|
||||||
) : Parcelable {
|
) : Parcelable {
|
||||||
fun toHistoryEntity(timePlayed: Long): HistoryEntity {
|
|
||||||
return HistoryEntity(
|
|
||||||
id = id,
|
|
||||||
title = title,
|
|
||||||
trackNumber = trackNumber,
|
|
||||||
year = year,
|
|
||||||
duration = duration,
|
|
||||||
data = data,
|
|
||||||
dateModified = dateModified,
|
|
||||||
albumId = albumId,
|
|
||||||
albumName = albumName,
|
|
||||||
artistId = artistId,
|
|
||||||
artistName = artistName,
|
|
||||||
composer = composer,
|
|
||||||
albumArtist = albumArtist,
|
|
||||||
timePlayed = timePlayed
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
fun toSongEntity(playListId: Long): SongEntity {
|
|
||||||
return SongEntity(
|
|
||||||
playlistCreatorId = playListId,
|
|
||||||
id = id,
|
|
||||||
title = title,
|
|
||||||
trackNumber = trackNumber,
|
|
||||||
year = year,
|
|
||||||
duration = duration,
|
|
||||||
data = data,
|
|
||||||
dateModified = dateModified,
|
|
||||||
albumId = albumId,
|
|
||||||
albumName = albumName,
|
|
||||||
artistId = artistId,
|
|
||||||
artistName = artistName,
|
|
||||||
composer = composer,
|
|
||||||
albumArtist = albumArtist
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
// need to override manually because is open and cannot be a data class
|
// need to override manually because is open and cannot be a data class
|
||||||
override fun equals(other: Any?): Boolean {
|
override fun equals(other: Any?): Boolean {
|
||||||
|
|
|
@ -3,7 +3,8 @@
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent"
|
||||||
|
android:transitionName="@string/transition_album_art">
|
||||||
|
|
||||||
<com.google.android.material.appbar.AppBarLayout
|
<com.google.android.material.appbar.AppBarLayout
|
||||||
android:id="@+id/appBarLayout"
|
android:id="@+id/appBarLayout"
|
||||||
|
@ -48,7 +49,6 @@
|
||||||
android:layout_marginStart="16dp"
|
android:layout_marginStart="16dp"
|
||||||
android:layout_marginTop="8dp"
|
android:layout_marginTop="8dp"
|
||||||
android:layout_marginEnd="16dp"
|
android:layout_marginEnd="16dp"
|
||||||
android:transitionName="@string/transition_album_art"
|
|
||||||
app:cardCornerRadius="24dp"
|
app:cardCornerRadius="24dp"
|
||||||
app:layout_constraintDimensionRatio="1:1"
|
app:layout_constraintDimensionRatio="1:1"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
|
|
@ -41,9 +41,5 @@
|
||||||
android:label=""
|
android:label=""
|
||||||
tools:layout="@layout/fragment_banner_home" />
|
tools:layout="@layout/fragment_banner_home" />
|
||||||
|
|
||||||
<fragment
|
|
||||||
android:id="@+id/action_import_playlist"
|
|
||||||
android:name="code.name.monkey.retromusic.fragments.playlists.ImportPlaylistFragment"
|
|
||||||
android:label="ImportPlaylist"
|
|
||||||
tools:layout="@layout/fragment_main_activity_recycler_view" />
|
|
||||||
</navigation>
|
</navigation>
|
Loading…
Reference in a new issue