From 8099eb0012438f7aad192cbc6933d75bff7935a8 Mon Sep 17 00:00:00 2001 From: Prathamesh More Date: Wed, 17 Nov 2021 21:18:52 +0530 Subject: [PATCH] Fixed back button action --- .../retromusic/activities/MainActivity.kt | 18 ++++-------------- .../fragments/albums/AlbumsFragment.kt | 3 ++- .../fragments/artists/ArtistsFragment.kt | 3 ++- .../fragments/folder/FoldersFragment.kt | 3 ++- .../fragments/genres/GenresFragment.kt | 7 +++++++ .../retromusic/fragments/home/HomeFragment.kt | 5 +++++ .../fragments/playlists/PlaylistsFragment.kt | 6 ++++++ .../fragments/songs/SongsFragment.kt | 3 ++- 8 files changed, 30 insertions(+), 18 deletions(-) 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 29c52c95..59b59bf1 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 @@ -102,11 +102,11 @@ class MainActivity : AbsCastActivity(), OnSharedPreferenceChangeListener { } } } + // This is more like a work-around as for start destination of navGraph + // enterTransition won't work as expected + navGraph.setStartDestination(R.id.libraryFragment) navController.addOnDestinationChangedListener { _, destination, _ -> - // This is more like a work-around as for start destination of navGraph - // enterTransition won't work as expected - navGraph.setStartDestination(R.id.libraryFragment) - when (destination.id) { + when (destination.id) { R.id.action_home, R.id.action_song, R.id.action_album, R.id.action_artist, R.id.action_folder, R.id.action_playlist, R.id.action_genre -> { // Save the last tab if (PreferenceUtil.rememberLastTab) { @@ -131,16 +131,6 @@ class MainActivity : AbsCastActivity(), OnSharedPreferenceChangeListener { override fun onSupportNavigateUp(): Boolean = findNavController(R.id.fragment_container).navigateUp() - override fun onBackPressed() { - val bottomTabs = listOf(R.id.action_home, R.id.action_song, R.id.action_album, R.id.action_artist, R.id.action_folder, R.id.action_playlist, R.id.action_genre) - val currentDestinationId = findNavController(R.id.fragment_container).currentDestination?.id - if (bottomTabs.contains(currentDestinationId)) { - finish() - } else { - findNavController(R.id.fragment_container).navigateUp() - } - } - override fun onResume() { super.onResume() PreferenceUtil.registerOnSharedPreferenceChangedListener(this) 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 907ce38b..f63cc644 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 @@ -24,6 +24,7 @@ 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.navigate import code.name.monkey.retromusic.extensions.surfaceColor import code.name.monkey.retromusic.fragments.ReloadType import code.name.monkey.retromusic.fragments.base.AbsRecyclerViewCustomGridSizeFragment @@ -56,7 +57,7 @@ class AlbumsFragment : AbsRecyclerViewCustomGridSizeFragment(), else adapter?.swapDataSet(listOf()) }) + requireActivity().onBackPressedDispatcher.addCallback(viewLifecycleOwner) { + remove() + mainActivity.finish() + } } override fun createLayoutManager(): LinearLayoutManager { diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/home/HomeFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/home/HomeFragment.kt index 6a1c47c8..6f521637 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/home/HomeFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/home/HomeFragment.kt @@ -20,6 +20,7 @@ import android.view.MenuInflater import android.view.MenuItem import android.view.MenuItem.SHOW_AS_ACTION_IF_ROOM import android.view.View +import androidx.activity.addCallback import androidx.core.os.bundleOf import androidx.core.text.HtmlCompat import androidx.core.view.doOnPreDraw @@ -79,6 +80,10 @@ class HomeFragment : binding.appBarLayout.statusBarForeground = MaterialShapeDrawable.createWithElevationOverlay(requireContext()) binding.toolbar.drawNextToNavbar() + requireActivity().onBackPressedDispatcher.addCallback(viewLifecycleOwner) { + remove() + mainActivity.finish() + } } private fun setupListeners() { diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/playlists/PlaylistsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/playlists/PlaylistsFragment.kt index 500d8f7f..e86f983b 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/playlists/PlaylistsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/playlists/PlaylistsFragment.kt @@ -16,6 +16,7 @@ package code.name.monkey.retromusic.fragments.playlists import android.os.Bundle import android.view.* +import androidx.activity.addCallback import androidx.core.os.bundleOf import androidx.core.view.MenuCompat import androidx.navigation.fragment.findNavController @@ -24,6 +25,7 @@ import code.name.monkey.retromusic.EXTRA_PLAYLIST import code.name.monkey.retromusic.R import code.name.monkey.retromusic.adapter.playlist.PlaylistAdapter import code.name.monkey.retromusic.db.PlaylistWithSongs +import code.name.monkey.retromusic.extensions.navigate import code.name.monkey.retromusic.fragments.ReloadType import code.name.monkey.retromusic.fragments.base.AbsRecyclerViewCustomGridSizeFragment import code.name.monkey.retromusic.helper.SortOrder.PlaylistSortOrder @@ -44,6 +46,10 @@ class PlaylistsFragment : else adapter?.swapDataSet(listOf()) }) + requireActivity().onBackPressedDispatcher.addCallback(viewLifecycleOwner) { + remove() + mainActivity.finish() + } } override val titleRes: Int diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/songs/SongsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/songs/SongsFragment.kt index b854b019..d0b3095e 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/songs/SongsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/songs/SongsFragment.kt @@ -21,6 +21,7 @@ import androidx.annotation.LayoutRes import androidx.recyclerview.widget.GridLayoutManager import code.name.monkey.retromusic.R import code.name.monkey.retromusic.adapter.song.SongAdapter +import code.name.monkey.retromusic.extensions.navigate import code.name.monkey.retromusic.extensions.surfaceColor import code.name.monkey.retromusic.fragments.ReloadType import code.name.monkey.retromusic.fragments.base.AbsRecyclerViewCustomGridSizeFragment @@ -50,7 +51,7 @@ class SongsFragment : AbsRecyclerViewCustomGridSizeFragment