diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/MainActivity.kt b/app/src/main/java/code/name/monkey/retromusic/activities/MainActivity.kt index 16491acc..5567745d 100644 --- a/app/src/main/java/code/name/monkey/retromusic/activities/MainActivity.kt +++ b/app/src/main/java/code/name/monkey/retromusic/activities/MainActivity.kt @@ -5,13 +5,11 @@ import android.content.SharedPreferences import android.content.SharedPreferences.OnSharedPreferenceChangeListener import android.os.Bundle import android.provider.MediaStore -import android.util.Log import android.view.View import androidx.lifecycle.lifecycleScope import code.name.monkey.retromusic.* import code.name.monkey.retromusic.activities.base.AbsSlidingMusicPanelActivity import code.name.monkey.retromusic.extensions.findNavController -import code.name.monkey.retromusic.fragments.LibraryViewModel import code.name.monkey.retromusic.helper.MusicPlayerRemote.openAndShuffleQueue import code.name.monkey.retromusic.helper.MusicPlayerRemote.openQueue import code.name.monkey.retromusic.helper.MusicPlayerRemote.playFromUri @@ -36,7 +34,6 @@ class MainActivity : AbsSlidingMusicPanelActivity(), OnSharedPreferenceChangeLis } private val repository by inject() - private val libraryViewModel by inject() private var blockRequestPermissions = false @@ -53,7 +50,6 @@ class MainActivity : AbsSlidingMusicPanelActivity(), OnSharedPreferenceChangeLis setTaskDescriptionColorAuto() hideStatusBar() appLaunched(this) - addMusicServiceEventListener(libraryViewModel) updateTabs() } @@ -167,7 +163,7 @@ class MainActivity : AbsSlidingMusicPanelActivity(), OnSharedPreferenceChangeLis try { id = idString.toLong() } catch (e: NumberFormatException) { - Log.e(TAG, e.message) + println(e.message) } } } diff --git a/app/src/main/java/code/name/monkey/retromusic/adapter/song/OrderablePlaylistSongAdapter.kt b/app/src/main/java/code/name/monkey/retromusic/adapter/song/OrderablePlaylistSongAdapter.kt index 77aa8eb6..7013d44f 100644 --- a/app/src/main/java/code/name/monkey/retromusic/adapter/song/OrderablePlaylistSongAdapter.kt +++ b/app/src/main/java/code/name/monkey/retromusic/adapter/song/OrderablePlaylistSongAdapter.kt @@ -5,7 +5,7 @@ import android.view.View import androidx.fragment.app.FragmentActivity import code.name.monkey.retromusic.R import code.name.monkey.retromusic.R.menu -import code.name.monkey.retromusic.dialogs.RemoveFromPlaylistDialog +import code.name.monkey.retromusic.db.PlaylistEntity import code.name.monkey.retromusic.dialogs.RemoveSongFromPlaylistDialog import code.name.monkey.retromusic.interfaces.CabHolder import code.name.monkey.retromusic.model.PlaylistSong @@ -17,7 +17,7 @@ import com.h6ah4i.android.widget.advrecyclerview.draggable.ItemDraggableRange import com.h6ah4i.android.widget.advrecyclerview.draggable.annotation.DraggableItemStateFlags class OrderablePlaylistSongAdapter( - private val playlistId: Int, + private val playlist: PlaylistEntity, activity: FragmentActivity, dataSet: ArrayList, itemLayoutRes: Int, @@ -56,8 +56,8 @@ class OrderablePlaylistSongAdapter( override fun onMultipleItemAction(menuItem: MenuItem, selection: List) { when (menuItem.itemId) { R.id.action_remove_from_playlist -> { - RemoveFromPlaylistDialog.create(selection as ArrayList) - .show(activity.supportFragmentManager, "ADD_PLAYLIST") + RemoveSongFromPlaylistDialog.create(selection.to(playlist.playListId)) + .show(activity.supportFragmentManager, "REMOVE_FROM_PLAYLIST") return } } @@ -120,7 +120,7 @@ class OrderablePlaylistSongAdapter( override fun onSongMenuItemClick(item: MenuItem): Boolean { when (item.itemId) { R.id.action_remove_from_playlist -> { - RemoveSongFromPlaylistDialog.create( song.toSongEntity(playlistId)) + RemoveSongFromPlaylistDialog.create(song.toSongEntity(playlist.playListId)) .show(activity.supportFragmentManager, "REMOVE_FROM_PLAYLIST") return true } diff --git a/app/src/main/java/code/name/monkey/retromusic/dialogs/AddToRetroPlaylist.kt b/app/src/main/java/code/name/monkey/retromusic/dialogs/AddToRetroPlaylist.kt index dca9ebb1..bb0bfa7b 100644 --- a/app/src/main/java/code/name/monkey/retromusic/dialogs/AddToRetroPlaylist.kt +++ b/app/src/main/java/code/name/monkey/retromusic/dialogs/AddToRetroPlaylist.kt @@ -3,7 +3,6 @@ package code.name.monkey.retromusic.dialogs import android.app.Dialog import android.os.Bundle import androidx.core.os.bundleOf -import androidx.fragment.app.DialogFragment import androidx.lifecycle.lifecycleScope import code.name.monkey.retromusic.EXTRA_PLAYLISTS import code.name.monkey.retromusic.EXTRA_SONG @@ -17,12 +16,13 @@ import code.name.monkey.retromusic.fragments.LibraryViewModel import code.name.monkey.retromusic.fragments.ReloadType import code.name.monkey.retromusic.model.Song import code.name.monkey.retromusic.repository.RealRepository +import com.google.android.material.bottomsheet.BottomSheetDialogFragment import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import org.koin.android.ext.android.inject import org.koin.androidx.viewmodel.ext.android.sharedViewModel -class AddToRetroPlaylist : DialogFragment() { +class AddToRetroPlaylist : BottomSheetDialogFragment() { private val repository by inject() private val libraryViewModel by sharedViewModel() diff --git a/app/src/main/java/code/name/monkey/retromusic/dialogs/RemoveSongFromPlaylistDialog.kt b/app/src/main/java/code/name/monkey/retromusic/dialogs/RemoveSongFromPlaylistDialog.kt index 7193a5b3..6d76e8ad 100644 --- a/app/src/main/java/code/name/monkey/retromusic/dialogs/RemoveSongFromPlaylistDialog.kt +++ b/app/src/main/java/code/name/monkey/retromusic/dialogs/RemoveSongFromPlaylistDialog.kt @@ -13,6 +13,7 @@ import code.name.monkey.retromusic.extensions.colorButtons import code.name.monkey.retromusic.extensions.extraNotNull import code.name.monkey.retromusic.extensions.materialDialog import code.name.monkey.retromusic.fragments.LibraryViewModel +import code.name.monkey.retromusic.fragments.ReloadType.Playlists import code.name.monkey.retromusic.repository.Repository import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch @@ -66,11 +67,8 @@ class RemoveSongFromPlaylistDialog : DialogFragment() { .setPositiveButton(R.string.remove_action) { _, _ -> lifecycleScope.launch(Dispatchers.IO) { repository.removeSongFromPlaylist(songs) + libraryViewModel.forceReload(Playlists) } - /* PlaylistsUtil.removeFromPlaylist( - requireContext(), - songs as MutableList - )*/ } .setNegativeButton(android.R.string.cancel, null) .create() diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/albums/AlbumsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/albums/AlbumsFragment.kt index 47c060da..d9f383ec 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/albums/AlbumsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/albums/AlbumsFragment.kt @@ -4,12 +4,12 @@ import android.os.Bundle import android.view.View import androidx.core.os.bundleOf import androidx.lifecycle.Observer -import androidx.navigation.findNavController import androidx.navigation.fragment.FragmentNavigatorExtras import androidx.recyclerview.widget.GridLayoutManager import code.name.monkey.retromusic.EXTRA_ALBUM_ID import code.name.monkey.retromusic.R import code.name.monkey.retromusic.adapter.album.AlbumAdapter +import code.name.monkey.retromusic.extensions.findActivityNavController import code.name.monkey.retromusic.fragments.ReloadType import code.name.monkey.retromusic.fragments.base.AbsRecyclerViewCustomGridSizeFragment import code.name.monkey.retromusic.util.PreferenceUtil @@ -95,8 +95,7 @@ class AlbumsFragment : } override fun onAlbumClick(albumId: Int, view: View) { - val controller = requireActivity().findNavController(R.id.fragment_container) - controller.navigate( + findActivityNavController(R.id.fragment_container).navigate( R.id.albumDetailsFragment, bundleOf(EXTRA_ALBUM_ID to albumId), null, diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/library/LibraryFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/library/LibraryFragment.kt index d7d8cad3..b47e3e50 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/library/LibraryFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/library/LibraryFragment.kt @@ -20,6 +20,7 @@ class LibraryFragment : AbsMainActivityFragment(R.layout.fragment_library) { override fun onActivityCreated(savedInstanceState: Bundle?) { super.onActivityCreated(savedInstanceState) setHasOptionsMenu(true) + retainInstance = true mainActivity.hideBottomBarVisibility(true) mainActivity.setSupportActionBar(toolbar) mainActivity.supportActionBar?.title = null @@ -43,17 +44,10 @@ class LibraryFragment : AbsMainActivityFragment(R.layout.fragment_library) { val navController = findNavController(R.id.fragment_container) NavigationUI.setupWithNavController(mainActivity.getBottomNavigationView(), navController) navController.addOnDestinationChangedListener { _, destination, _ -> - if (destination.id in arrayOf( - R.id.action_album, - R.id.action_artist, - R.id.action_home, - R.id.action_song, - R.id.action_genre - ) - ) { - addPlaylist.hide() - } else { + if (destination.id == R.id.action_playlist) { addPlaylist.show() + } else { + addPlaylist.hide() } } } diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/classic/ClassicPlayerFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/classic/ClassicPlayerFragment.kt index 323c89b4..c4748128 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/classic/ClassicPlayerFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/classic/ClassicPlayerFragment.kt @@ -20,7 +20,6 @@ import code.name.monkey.appthemehelper.util.TintHelper import code.name.monkey.appthemehelper.util.ToolbarContentTintHelper import code.name.monkey.retromusic.R import code.name.monkey.retromusic.RetroBottomSheetBehavior -import code.name.monkey.retromusic.activities.base.AbsSlidingMusicPanelActivity import code.name.monkey.retromusic.adapter.song.PlayingQueueAdapter import code.name.monkey.retromusic.extensions.hide import code.name.monkey.retromusic.extensions.show @@ -69,9 +68,7 @@ class ClassicPlayerFragment : AbsPlayerFragment(R.layout.fragment_classic_player private val bottomSheetCallbackList = object : BottomSheetBehavior.BottomSheetCallback() { override fun onSlide(bottomSheet: View, slideOffset: Float) { - (requireActivity() as AbsSlidingMusicPanelActivity).getBottomSheetBehavior() - .setAllowDragging(false) - + mainActivity.getBottomSheetBehavior().setAllowDragging(false) playerQueueSheet.setContentPadding( playerQueueSheet.contentPaddingLeft, (slideOffset * status_bar.height).toInt(), @@ -83,18 +80,17 @@ class ClassicPlayerFragment : AbsPlayerFragment(R.layout.fragment_classic_player } override fun onStateChanged(bottomSheet: View, newState: Int) { - val activity = requireActivity() as AbsSlidingMusicPanelActivity when (newState) { BottomSheetBehavior.STATE_EXPANDED, BottomSheetBehavior.STATE_DRAGGING -> { - activity.getBottomSheetBehavior().setAllowDragging(false) + mainActivity.getBottomSheetBehavior().setAllowDragging(false) } BottomSheetBehavior.STATE_COLLAPSED -> { resetToCurrentPosition() - activity.getBottomSheetBehavior().setAllowDragging(true) + mainActivity.getBottomSheetBehavior().setAllowDragging(true) } else -> { - activity.getBottomSheetBehavior().setAllowDragging(true) + mainActivity.getBottomSheetBehavior().setAllowDragging(true) } } } @@ -132,8 +128,7 @@ class ClassicPlayerFragment : AbsPlayerFragment(R.layout.fragment_classic_player playerQueueSheet.background = shapeDrawable playerQueueSheet.setOnTouchListener { _, _ -> - (requireActivity() as AbsSlidingMusicPanelActivity).getBottomSheetBehavior() - .setAllowDragging(false) + mainActivity.getBottomSheetBehavior().setAllowDragging(false) getQueuePanel().setAllowDragging(true) return@setOnTouchListener false } diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/gradient/GradientPlayerFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/gradient/GradientPlayerFragment.kt index f51b1c75..41d52255 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/gradient/GradientPlayerFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/gradient/GradientPlayerFragment.kt @@ -21,7 +21,6 @@ import code.name.monkey.appthemehelper.util.ColorUtil import code.name.monkey.appthemehelper.util.TintHelper import code.name.monkey.retromusic.R import code.name.monkey.retromusic.RetroBottomSheetBehavior -import code.name.monkey.retromusic.activities.base.AbsSlidingMusicPanelActivity import code.name.monkey.retromusic.adapter.song.PlayingQueueAdapter import code.name.monkey.retromusic.extensions.hide import code.name.monkey.retromusic.extensions.ripAlpha @@ -67,9 +66,7 @@ class GradientPlayerFragment : AbsPlayerFragment(R.layout.fragment_gradient_play private val bottomSheetCallbackList = object : BottomSheetBehavior.BottomSheetCallback() { override fun onSlide(bottomSheet: View, slideOffset: Float) { - (requireActivity() as AbsSlidingMusicPanelActivity).getBottomSheetBehavior() - .setAllowDragging(false) - + mainActivity.getBottomSheetBehavior().setAllowDragging(false) playerQueueSheet.setPadding( playerQueueSheet.paddingLeft, (slideOffset * status_bar.height).toInt(), @@ -79,18 +76,17 @@ class GradientPlayerFragment : AbsPlayerFragment(R.layout.fragment_gradient_play } override fun onStateChanged(bottomSheet: View, newState: Int) { - val activity = requireActivity() as AbsSlidingMusicPanelActivity when (newState) { BottomSheetBehavior.STATE_EXPANDED, BottomSheetBehavior.STATE_DRAGGING -> { - activity.getBottomSheetBehavior().setAllowDragging(false) + mainActivity.getBottomSheetBehavior().setAllowDragging(false) } BottomSheetBehavior.STATE_COLLAPSED -> { resetToCurrentPosition() - activity.getBottomSheetBehavior().setAllowDragging(true) + mainActivity.getBottomSheetBehavior().setAllowDragging(true) } else -> { - activity.getBottomSheetBehavior().setAllowDragging(true) + mainActivity.getBottomSheetBehavior().setAllowDragging(true) } } } @@ -139,8 +135,7 @@ class GradientPlayerFragment : AbsPlayerFragment(R.layout.fragment_gradient_play private fun setupSheet() { getQueuePanel().addBottomSheetCallback(bottomSheetCallbackList) playerQueueSheet.setOnTouchListener { _, _ -> - (requireActivity() as AbsSlidingMusicPanelActivity).getBottomSheetBehavior() - .setAllowDragging(false) + mainActivity.getBottomSheetBehavior().setAllowDragging(false) getQueuePanel().setAllowDragging(true) return@setOnTouchListener false } @@ -159,7 +154,6 @@ class GradientPlayerFragment : AbsPlayerFragment(R.layout.fragment_gradient_play recyclerViewDragDropManager?.cancelDrag() super.onPause() progressViewUpdateHelper.stop() - } override fun playerToolbar(): Toolbar? { diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/playlists/PlaylistDetailsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/playlists/PlaylistDetailsFragment.kt index beaedd5a..8b5ca227 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/playlists/PlaylistDetailsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/playlists/PlaylistDetailsFragment.kt @@ -64,7 +64,7 @@ class PlaylistDetailsFragment : AbsMainActivityFragment(R.layout.fragment_playli val animator = RefactoredDefaultItemAnimator() adapter = OrderablePlaylistSongAdapter( - playlist.playlistEntity.playListId, + playlist.playlistEntity, requireActivity(), ArrayList(), R.layout.item_list, diff --git a/app/src/main/res/layout/fragment_main_activity_recycler_view.xml b/app/src/main/res/layout/fragment_main_activity_recycler_view.xml index 9a925d89..d546767b 100644 --- a/app/src/main/res/layout/fragment_main_activity_recycler_view.xml +++ b/app/src/main/res/layout/fragment_main_activity_recycler_view.xml @@ -11,7 +11,6 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:clipToPadding="false" - android:layoutAnimation="@anim/layout_animation_fall_down" android:overScrollMode="never" android:scrollbars="none" app:layout_dodgeInsetEdges="bottom"