From 45a3899a0d859c451b859e9a9af6978e26eab191 Mon Sep 17 00:00:00 2001 From: Prathamesh More Date: Tue, 31 May 2022 01:30:56 +0530 Subject: [PATCH] Better implementation for insets and bottom padding --- .../base/AbsSlidingMusicPanelActivity.kt | 4 +- .../fragments/about/AboutFragment.kt | 2 +- .../fragments/base/AbsRecyclerViewFragment.kt | 33 +- .../fragments/folder/FoldersFragment.kt | 32 +- .../retromusic/fragments/home/HomeFragment.kt | 25 +- .../fragments/other/DetailListFragment.kt | 12 +- .../playlists/PlaylistDetailsFragment.kt | 12 - .../fragments/search/SearchFragment.kt | 15 +- .../fragments/settings/AbsSettingsFragment.kt | 5 +- .../settings/PersonalizeSettingsFragment.kt | 5 +- .../monkey/retromusic/util/PlagiarismUtil.kt | 6 +- .../views/insets/InsetsConstraintLayout.kt | 10 +- .../views/insets/InsetsLinearLayout.kt | 18 - .../views/insets/InsetsRecyclerView.kt | 23 +- .../res/layout-land/activity_pro_version.xml | 195 +++++++++++ .../main/res/layout-land/fragment_home.xml | 4 +- .../res/layout-land/fragment_user_info.xml | 3 +- .../layout-xlarge/fragment_about_content.xml | 4 +- .../main/res/layout/activity_pro_version.xml | 325 +++++++++--------- .../res/layout/fragment_about_content.xml | 3 +- .../res/layout/fragment_album_content.xml | 12 +- .../res/layout/fragment_artist_content.xml | 19 +- app/src/main/res/layout/fragment_home.xml | 4 +- .../res/layout/fragment_main_recycler.xml | 1 + .../res/layout/fragment_playlist_detail.xml | 1 + app/src/main/res/layout/fragment_search.xml | 1 + app/src/main/res/layout/fragment_settings.xml | 1 - app/src/main/res/layout/home_content.xml | 11 +- app/src/main/res/values/dimens.xml | 4 +- 29 files changed, 470 insertions(+), 320 deletions(-) delete mode 100644 app/src/main/java/code/name/monkey/retromusic/views/insets/InsetsLinearLayout.kt create mode 100644 app/src/main/res/layout-land/activity_pro_version.xml diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsSlidingMusicPanelActivity.kt b/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsSlidingMusicPanelActivity.kt index 87a2391c8..3dea6fa4a 100644 --- a/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsSlidingMusicPanelActivity.kt +++ b/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsSlidingMusicPanelActivity.kt @@ -398,6 +398,8 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity(), if (binding.bottomNavigationView.menu.size() == 1) { isInOneTabMode = true binding.bottomNavigationView.isVisible = false + } else { + isInOneTabMode = false } } @@ -470,7 +472,7 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity(), bottomSheetBehavior.peekHeight = heightOfBarWithTabs } libraryViewModel.setFabMargin(this, - dip(R.dimen.mini_player_height_expanded)) + dip(R.dimen.bottom_nav_mini_player_height)) } else { logD("Details") if (animate) { diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/about/AboutFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/about/AboutFragment.kt index 847f7b928..5b549ce89 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/about/AboutFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/about/AboutFragment.kt @@ -46,7 +46,7 @@ class AboutFragment : Fragment(R.layout.fragment_about), View.OnClickListener { binding.aboutContent.root.applyInsetter { type(navigationBars = true) { - padding() + padding(vertical = true) } } } diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/base/AbsRecyclerViewFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/base/AbsRecyclerViewFragment.kt index e96379512..48adf7eb1 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/base/AbsRecyclerViewFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/base/AbsRecyclerViewFragment.kt @@ -32,7 +32,6 @@ import code.name.monkey.retromusic.dialogs.CreatePlaylistDialog import code.name.monkey.retromusic.dialogs.ImportPlaylistDialog import code.name.monkey.retromusic.extensions.accentColor import code.name.monkey.retromusic.extensions.dip -import code.name.monkey.retromusic.helper.MusicPlayerRemote import code.name.monkey.retromusic.interfaces.IScrollHelper import code.name.monkey.retromusic.util.PreferenceUtil import code.name.monkey.retromusic.util.ThemedFastScroller.create @@ -61,6 +60,7 @@ abstract class AbsRecyclerViewFragment, LM : Recycle mainActivity.supportActionBar?.title = null initLayoutManager() initAdapter() + checkForMargins() setUpRecyclerView() setupToolbar() binding.shuffleButton.fitsSystemWindows = PreferenceUtil.isFullScreenMode @@ -118,7 +118,6 @@ abstract class AbsRecyclerViewFragment, LM : Recycle adapter = this@AbsRecyclerViewFragment.adapter create(this) } - checkForPadding() } protected open fun createFastScroller(recyclerView: RecyclerView): FastScroller { @@ -131,7 +130,6 @@ abstract class AbsRecyclerViewFragment, LM : Recycle override fun onChanged() { super.onChanged() checkIsEmpty() - checkForPadding() } }) } @@ -148,16 +146,12 @@ abstract class AbsRecyclerViewFragment, LM : Recycle binding.empty.isVisible = adapter!!.itemCount == 0 } - private fun checkForPadding() { - val itemCount: Int = adapter?.itemCount ?: 0 - - binding.recyclerView.updatePadding( - bottom = if (itemCount > 0 && MusicPlayerRemote.playingQueue.isNotEmpty()) { - dip(R.dimen.mini_player_height_expanded) - } else { - dip(R.dimen.bottom_nav_height) + private fun checkForMargins() { + if (mainActivity.bottomNavigationView.isVisible) { + binding.recyclerView.updateLayoutParams { + bottomMargin = dip(R.dimen.bottom_nav_height) } - ) + } } private fun initLayoutManager() { @@ -169,16 +163,6 @@ abstract class AbsRecyclerViewFragment, LM : Recycle @NonNull protected abstract fun createAdapter(): A - override fun onQueueChanged() { - super.onQueueChanged() - checkForPadding() - } - - override fun onServiceConnected() { - super.onServiceConnected() - checkForPadding() - } - protected fun invalidateLayoutManager() { initLayoutManager() binding.recyclerView.layoutManager = layoutManager @@ -232,6 +216,11 @@ abstract class AbsRecyclerViewFragment, LM : Recycle return false } + override fun onResume() { + super.onResume() + checkForMargins() + } + override fun onDestroyView() { super.onDestroyView() _binding = null diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/folder/FoldersFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/folder/FoldersFragment.kt index b97ad47a8..a20ee89fc 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/folder/FoldersFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/folder/FoldersFragment.kt @@ -17,16 +17,14 @@ import android.content.Context import android.media.MediaScannerConnection import android.os.Bundle import android.os.Environment -import android.view.Menu -import android.view.MenuInflater -import android.view.MenuItem -import android.view.View +import android.view.* import android.webkit.MimeTypeMap import androidx.activity.OnBackPressedCallback import androidx.appcompat.widget.PopupMenu import androidx.appcompat.widget.Toolbar import androidx.core.text.parseAsHtml import androidx.core.view.isVisible +import androidx.core.view.updateLayoutParams import androidx.lifecycle.lifecycleScope import androidx.loader.app.LoaderManager import androidx.loader.content.Loader @@ -45,7 +43,6 @@ import code.name.monkey.retromusic.databinding.FragmentFolderBinding import code.name.monkey.retromusic.extensions.* import code.name.monkey.retromusic.fragments.base.AbsMainActivityFragment import code.name.monkey.retromusic.helper.MusicPlayerRemote.openQueue -import code.name.monkey.retromusic.helper.MusicPlayerRemote.playingQueue import code.name.monkey.retromusic.helper.menu.SongsMenuHelper import code.name.monkey.retromusic.interfaces.ICabCallback import code.name.monkey.retromusic.interfaces.ICabHolder @@ -110,6 +107,7 @@ class FoldersFragment : AbsMainActivityFragment(R.layout.fragment_folder), reenterTransition = MaterialFadeThrough() setUpBreadCrumbs() + checkForMargins() setUpRecyclerView() setUpAdapter() setUpTitle() @@ -385,14 +383,9 @@ class FoldersFragment : AbsMainActivityFragment(R.layout.fragment_folder), return false } - override fun onQueueChanged() { - super.onQueueChanged() - checkForPadding() - } - - override fun onServiceConnected() { - super.onServiceConnected() - checkForPadding() + override fun onResume() { + super.onResume() + checkForMargins() } override fun openCab(menuRes: Int, callback: ICabCallback): AttachedCab { @@ -413,13 +406,11 @@ class FoldersFragment : AbsMainActivityFragment(R.layout.fragment_folder), return cab as AttachedCab } - private fun checkForPadding() { - val count = adapter?.itemCount ?: 0 - if (_binding != null) { - binding.recyclerView.updatePadding( - bottom = if (count > 0 && playingQueue.isNotEmpty()) dip(R.dimen.mini_player_height_expanded) - else dip(R.dimen.mini_player_height) - ) + private fun checkForMargins() { + if (mainActivity.bottomNavigationView.isVisible) { + binding.recyclerView.updateLayoutParams { + bottomMargin = dip(R.dimen.bottom_nav_height) + } } } @@ -608,7 +599,6 @@ class FoldersFragment : AbsMainActivityFragment(R.layout.fragment_folder), override fun onChanged() { super.onChanged() checkIsEmpty() - checkForPadding() } }) binding.recyclerView.adapter = adapter 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 b160361bc..5aecc5427 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 @@ -15,17 +15,15 @@ package code.name.monkey.retromusic.fragments.home import android.os.Bundle -import android.view.Menu -import android.view.MenuInflater -import android.view.MenuItem +import android.view.* import android.view.MenuItem.SHOW_AS_ACTION_IF_ROOM -import android.view.View import androidx.coordinatorlayout.widget.CoordinatorLayout import androidx.core.os.bundleOf import androidx.core.text.parseAsHtml import androidx.core.view.doOnLayout import androidx.core.view.doOnPreDraw import androidx.core.view.isVisible +import androidx.core.view.updateLayoutParams import androidx.navigation.fragment.FragmentNavigatorExtras import androidx.navigation.fragment.findNavController import androidx.recyclerview.widget.LinearLayoutManager @@ -38,6 +36,7 @@ import code.name.monkey.retromusic.databinding.FragmentHomeBinding import code.name.monkey.retromusic.dialogs.CreatePlaylistDialog import code.name.monkey.retromusic.dialogs.ImportPlaylistDialog import code.name.monkey.retromusic.extensions.accentColor +import code.name.monkey.retromusic.extensions.dip import code.name.monkey.retromusic.extensions.drawNextToNavbar import code.name.monkey.retromusic.extensions.elevatedAccentColor import code.name.monkey.retromusic.fragments.ReloadType @@ -72,6 +71,8 @@ class HomeFragment : enterTransition = MaterialFadeThrough().addTarget(binding.contentContainer) reenterTransition = MaterialFadeThrough().addTarget(binding.contentContainer) + checkForMargins() + val homeAdapter = HomeAdapter(mainActivity) binding.recyclerView.apply { layoutManager = LinearLayoutManager(mainActivity) @@ -190,6 +191,14 @@ class HomeFragment : binding.actionShuffle.elevatedAccentColor() } + private fun checkForMargins() { + if (mainActivity.bottomNavigationView.isVisible) { + binding.recyclerView.updateLayoutParams { + bottomMargin = dip(R.dimen.bottom_nav_height) + } + } + } + override fun onCreateMenu(menu: Menu, inflater: MenuInflater) { inflater.inflate(R.menu.menu_main, menu) menu.removeItem(R.id.action_grid_size) @@ -212,12 +221,14 @@ class HomeFragment : } fun setSharedAxisXTransitions() { - exitTransition = MaterialSharedAxis(MaterialSharedAxis.X, true).addTarget(CoordinatorLayout::class.java) + exitTransition = + MaterialSharedAxis(MaterialSharedAxis.X, true).addTarget(CoordinatorLayout::class.java) reenterTransition = MaterialSharedAxis(MaterialSharedAxis.X, false) } private fun setSharedAxisYTransitions() { - exitTransition = MaterialSharedAxis(MaterialSharedAxis.Y, true).addTarget(CoordinatorLayout::class.java) + exitTransition = + MaterialSharedAxis(MaterialSharedAxis.Y, true).addTarget(CoordinatorLayout::class.java) reenterTransition = MaterialSharedAxis(MaterialSharedAxis.Y, false) } @@ -301,7 +312,9 @@ class HomeFragment : override fun onResume() { super.onResume() + checkForMargins() libraryViewModel.forceReload(ReloadType.HomeSections) + exitTransition = null } override fun onDestroyView() { diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/other/DetailListFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/other/DetailListFragment.kt index ec13d29f4..24d8ef4ad 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/other/DetailListFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/other/DetailListFragment.kt @@ -29,7 +29,6 @@ import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.navArgs import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.LinearLayoutManager -import androidx.recyclerview.widget.RecyclerView.AdapterDataObserver import code.name.monkey.retromusic.* import code.name.monkey.retromusic.adapter.album.AlbumAdapter import code.name.monkey.retromusic.adapter.artist.ArtistAdapter @@ -37,7 +36,6 @@ import code.name.monkey.retromusic.adapter.song.ShuffleButtonSongAdapter import code.name.monkey.retromusic.adapter.song.SongAdapter import code.name.monkey.retromusic.databinding.FragmentPlaylistDetailBinding import code.name.monkey.retromusic.db.toSong -import code.name.monkey.retromusic.extensions.dipToPix import code.name.monkey.retromusic.extensions.surfaceColor import code.name.monkey.retromusic.fragments.base.AbsMainActivityFragment import code.name.monkey.retromusic.interfaces.IAlbumClickListener @@ -71,7 +69,8 @@ class DetailListFragment : AbsMainActivityFragment(R.layout.fragment_playlist_de RECENT_ARTISTS, TOP_ALBUMS, RECENT_ALBUMS, - FAVOURITES -> { + FAVOURITES, + -> { enterTransition = MaterialSharedAxis(MaterialSharedAxis.X, true) returnTransition = MaterialSharedAxis(MaterialSharedAxis.X, false) } @@ -103,13 +102,6 @@ class DetailListFragment : AbsMainActivityFragment(R.layout.fragment_playlist_de TOP_PLAYED_PLAYLIST -> topPlayed() } - binding.recyclerView.adapter?.registerAdapterDataObserver(object : AdapterDataObserver() { - override fun onChanged() { - super.onChanged() - val height = dipToPix(52f) - binding.recyclerView.updatePadding(bottom = height.toInt()) - } - }) binding.appBarLayout.statusBarForeground = MaterialShapeDrawable.createWithElevationOverlay(requireContext()) requireActivity().onBackPressedDispatcher.addCallback(viewLifecycleOwner) { 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 8df53a756..5dc7aad09 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 @@ -17,10 +17,8 @@ import code.name.monkey.retromusic.adapter.song.OrderablePlaylistSongAdapter import code.name.monkey.retromusic.databinding.FragmentPlaylistDetailBinding import code.name.monkey.retromusic.db.PlaylistWithSongs import code.name.monkey.retromusic.db.toSongs -import code.name.monkey.retromusic.extensions.dip import code.name.monkey.retromusic.extensions.surfaceColor import code.name.monkey.retromusic.fragments.base.AbsMainActivityFragment -import code.name.monkey.retromusic.helper.MusicPlayerRemote import code.name.monkey.retromusic.helper.menu.PlaylistMenuHelper import code.name.monkey.retromusic.interfaces.ICabCallback import code.name.monkey.retromusic.interfaces.ICabHolder @@ -129,17 +127,7 @@ class PlaylistDetailsFragment : AbsMainActivityFragment(R.layout.fragment_playli return PlaylistMenuHelper.handleMenuClick(requireActivity(), playlist, item) } - private fun checkForPadding() { - val itemCount: Int = playlistSongAdapter.itemCount - if (itemCount > 0 && MusicPlayerRemote.playingQueue.isNotEmpty()) { - binding.recyclerView.updatePadding(bottom = dip(R.dimen.mini_player_height)) - } else { - binding.recyclerView.updatePadding(bottom = 0) - } - } - private fun checkIsEmpty() { - checkForPadding() binding.empty.isVisible = playlistSongAdapter.itemCount == 0 binding.emptyText.isVisible = playlistSongAdapter.itemCount == 0 } diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/search/SearchFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/search/SearchFragment.kt index 7a684f252..2e9488277 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/search/SearchFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/search/SearchFragment.kt @@ -146,14 +146,20 @@ class SearchFragment : AbsMainActivityFragment(R.layout.fragment_search), } } + private fun checkForMargins() { + if (mainActivity.bottomNavigationView.isVisible) { + binding.recyclerView.updateLayoutParams { + bottomMargin = dip(R.dimen.bottom_nav_height) + } + } + } + private fun setupRecyclerView() { searchAdapter = SearchAdapter(requireActivity(), emptyList()) searchAdapter.registerAdapterDataObserver(object : RecyclerView.AdapterDataObserver() { override fun onChanged() { super.onChanged() binding.empty.isVisible = searchAdapter.itemCount < 1 - val height = dipToPix(52f) - binding.recyclerView.updatePadding(bottom = height.toInt()) } }) binding.recyclerView.apply { @@ -219,6 +225,11 @@ class SearchFragment : AbsMainActivityFragment(R.layout.fragment_search), } } + override fun onResume() { + super.onResume() + checkForMargins() + } + override fun onDestroyView() { hideKeyboard(view) super.onDestroyView() diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/settings/AbsSettingsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/settings/AbsSettingsFragment.kt index 2441d1e9b..b0fe30dfc 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/settings/AbsSettingsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/settings/AbsSettingsFragment.kt @@ -19,12 +19,14 @@ import android.graphics.drawable.ColorDrawable import android.os.Build import android.os.Bundle import android.view.View +import androidx.core.view.updatePadding 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.VersionUtils import code.name.monkey.retromusic.R +import code.name.monkey.retromusic.extensions.dip import code.name.monkey.retromusic.extensions.showToast import code.name.monkey.retromusic.preferences.* import code.name.monkey.retromusic.util.NavigationUtil @@ -70,9 +72,10 @@ abstract class AbsSettingsFragment : ATEPreferenceFragmentCompat() { listView.overScrollMode = View.OVER_SCROLL_NEVER } + listView.updatePadding(bottom = dip(R.dimen.mini_player_height)) listView.applyInsetter { type(navigationBars = true) { - padding() + padding(vertical = true) } } invalidateSettings() diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/settings/PersonalizeSettingsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/settings/PersonalizeSettingsFragment.kt index 5b8508379..4c83c96c2 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/settings/PersonalizeSettingsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/settings/PersonalizeSettingsFragment.kt @@ -17,10 +17,7 @@ package code.name.monkey.retromusic.fragments.settings import android.os.Bundle import android.view.View import code.name.monkey.appthemehelper.common.prefs.supportv7.ATEListPreference -import code.name.monkey.retromusic.HOME_ALBUM_GRID_STYLE -import code.name.monkey.retromusic.HOME_ARTIST_GRID_STYLE -import code.name.monkey.retromusic.R -import code.name.monkey.retromusic.TAB_TEXT_MODE +import code.name.monkey.retromusic.* class PersonalizeSettingsFragment : AbsSettingsFragment() { diff --git a/app/src/main/java/code/name/monkey/retromusic/util/PlagiarismUtil.kt b/app/src/main/java/code/name/monkey/retromusic/util/PlagiarismUtil.kt index b5401a5fe..42d6c768d 100644 --- a/app/src/main/java/code/name/monkey/retromusic/util/PlagiarismUtil.kt +++ b/app/src/main/java/code/name/monkey/retromusic/util/PlagiarismUtil.kt @@ -3,9 +3,9 @@ package code.name.monkey.retromusic.util import android.app.Activity import android.content.ActivityNotFoundException import android.content.Intent -import android.net.Uri import android.util.Log import android.widget.Toast +import androidx.core.net.toUri import androidx.fragment.app.Fragment import code.name.monkey.retromusic.BuildConfig import code.name.monkey.retromusic.extensions.showToast @@ -26,9 +26,9 @@ fun Activity.maybeShowAnnoyingToasts() { showToast("Support us by downloading the original version from Play Store.", Toast.LENGTH_LONG) val packageName = "code.name.monkey.retromusic" try { - startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=$packageName"))) + startActivity(Intent(Intent.ACTION_VIEW, "market://details?id=$packageName".toUri())) } catch (e: ActivityNotFoundException) { - startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=$packageName"))) + startActivity(Intent(Intent.ACTION_VIEW, "https://play.google.com/store/apps/details?id=$packageName".toUri())) } } } diff --git a/app/src/main/java/code/name/monkey/retromusic/views/insets/InsetsConstraintLayout.kt b/app/src/main/java/code/name/monkey/retromusic/views/insets/InsetsConstraintLayout.kt index d0356cb58..bfe6567d8 100644 --- a/app/src/main/java/code/name/monkey/retromusic/views/insets/InsetsConstraintLayout.kt +++ b/app/src/main/java/code/name/monkey/retromusic/views/insets/InsetsConstraintLayout.kt @@ -4,7 +4,9 @@ import android.content.Context import android.util.AttributeSet import androidx.constraintlayout.widget.ConstraintLayout import code.name.monkey.retromusic.extensions.drawAboveSystemBarsWithPadding +import code.name.monkey.retromusic.util.PreferenceUtil import code.name.monkey.retromusic.util.RetroUtil +import dev.chrisbanes.insetter.applyInsetter class InsetsConstraintLayout @JvmOverloads constructor( context: Context, @@ -12,7 +14,11 @@ class InsetsConstraintLayout @JvmOverloads constructor( defStyleAttr: Int = 0 ) : ConstraintLayout(context, attrs, defStyleAttr) { init { - if (!isInEditMode && !RetroUtil.isLandscape) - drawAboveSystemBarsWithPadding() + if (!isInEditMode && !PreferenceUtil.isFullScreenMode) + applyInsetter { + type(navigationBars = true) { + padding(vertical = true) + } + } } } \ No newline at end of file diff --git a/app/src/main/java/code/name/monkey/retromusic/views/insets/InsetsLinearLayout.kt b/app/src/main/java/code/name/monkey/retromusic/views/insets/InsetsLinearLayout.kt deleted file mode 100644 index dda7c6d06..000000000 --- a/app/src/main/java/code/name/monkey/retromusic/views/insets/InsetsLinearLayout.kt +++ /dev/null @@ -1,18 +0,0 @@ -package code.name.monkey.retromusic.views.insets - -import android.content.Context -import android.util.AttributeSet -import android.widget.LinearLayout -import code.name.monkey.retromusic.extensions.drawAboveSystemBarsWithPadding -import code.name.monkey.retromusic.util.RetroUtil - -class InsetsLinearLayout @JvmOverloads constructor( - context: Context, - attrs: AttributeSet? = null, - defStyleAttr: Int = 0 -) : LinearLayout(context, attrs, defStyleAttr) { - init { - if (!RetroUtil.isLandscape) - drawAboveSystemBarsWithPadding() - } -} \ No newline at end of file diff --git a/app/src/main/java/code/name/monkey/retromusic/views/insets/InsetsRecyclerView.kt b/app/src/main/java/code/name/monkey/retromusic/views/insets/InsetsRecyclerView.kt index 1ceb3c899..200c2a999 100644 --- a/app/src/main/java/code/name/monkey/retromusic/views/insets/InsetsRecyclerView.kt +++ b/app/src/main/java/code/name/monkey/retromusic/views/insets/InsetsRecyclerView.kt @@ -2,26 +2,21 @@ package code.name.monkey.retromusic.views.insets import android.content.Context import android.util.AttributeSet -import androidx.annotation.Px import androidx.recyclerview.widget.RecyclerView -import code.name.monkey.retromusic.extensions.applyBottomInsets +import code.name.monkey.retromusic.util.PreferenceUtil +import dev.chrisbanes.insetter.applyInsetter class InsetsRecyclerView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, - defStyleAttr: Int = 0 + defStyleAttr: Int = 0, ) : RecyclerView(context, attrs, defStyleAttr) { init { - applyBottomInsets() - } - - fun updatePadding( - @Px left: Int = paddingLeft, - @Px top: Int = paddingTop, - @Px right: Int = paddingRight, - @Px bottom: Int = paddingBottom - ) { - setPadding(left, top, right, bottom) - applyBottomInsets() + if (!isInEditMode && !PreferenceUtil.isFullScreenMode) + applyInsetter { + type(navigationBars = true) { + padding(vertical = true) + } + } } } \ No newline at end of file diff --git a/app/src/main/res/layout-land/activity_pro_version.xml b/app/src/main/res/layout-land/activity_pro_version.xml new file mode 100644 index 000000000..ee44fd42e --- /dev/null +++ b/app/src/main/res/layout-land/activity_pro_version.xml @@ -0,0 +1,195 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout-land/fragment_home.xml b/app/src/main/res/layout-land/fragment_home.xml index fa7257ac1..d59ff629a 100644 --- a/app/src/main/res/layout-land/fragment_home.xml +++ b/app/src/main/res/layout-land/fragment_home.xml @@ -65,7 +65,7 @@ android:transitionGroup="true" app:layout_behavior="com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior"> - - + \ No newline at end of file diff --git a/app/src/main/res/layout-land/fragment_user_info.xml b/app/src/main/res/layout-land/fragment_user_info.xml index 6cfe84bd5..087e5bf2b 100644 --- a/app/src/main/res/layout-land/fragment_user_info.xml +++ b/app/src/main/res/layout-land/fragment_user_info.xml @@ -28,7 +28,8 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" - app:layout_behavior="com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior"> + app:layout_behavior="com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior" + android:paddingBottom="@dimen/mini_player_height"> - + android:fitsSystemWindows="true"> + android:background="@drawable/shadow_pro" /> - + android:layout_height="match_parent"> - - - - - - + android:background="@android:color/transparent" + android:elevation="0dp" + app:elevation="0dp" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent"> - + + + + android:layout_height="0dp" + android:orientation="vertical" + app:layout_constraintBottom_toTopOf="@id/actions" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/appBarLayout"> - - - + android:gravity="center_vertical" + android:orientation="horizontal"> + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - + android:paddingBottom="16dp" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent"> - + + + - + - - \ No newline at end of file + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_about_content.xml b/app/src/main/res/layout/fragment_about_content.xml index 3a2875463..e3102723c 100644 --- a/app/src/main/res/layout/fragment_about_content.xml +++ b/app/src/main/res/layout/fragment_about_content.xml @@ -2,7 +2,8 @@ + android:orientation="vertical" + android:paddingBottom="@dimen/mini_player_height"> + android:orientation="vertical" + android:paddingBottom="@dimen/mini_player_height"> - - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_artist_content.xml b/app/src/main/res/layout/fragment_artist_content.xml index 4dae659e8..adfbb49f4 100644 --- a/app/src/main/res/layout/fragment_artist_content.xml +++ b/app/src/main/res/layout/fragment_artist_content.xml @@ -4,7 +4,8 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - android:orientation="vertical"> + android:orientation="vertical" + android:paddingBottom="@dimen/mini_player_height"> + app:layout_constraintTop_toBottomOf="@id/albumRecyclerView" /> - - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml index 934ecfc83..e5222f1da 100755 --- a/app/src/main/res/layout/fragment_home.xml +++ b/app/src/main/res/layout/fragment_home.xml @@ -64,7 +64,7 @@ android:overScrollMode="@integer/overScrollMode" app:layout_behavior="com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior"> - - + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_main_recycler.xml b/app/src/main/res/layout/fragment_main_recycler.xml index 65201612e..32bfec63f 100644 --- a/app/src/main/res/layout/fragment_main_recycler.xml +++ b/app/src/main/res/layout/fragment_main_recycler.xml @@ -12,6 +12,7 @@ android:layout_height="match_parent" android:clipToPadding="false" android:overScrollMode="@integer/overScrollMode" + android:paddingBottom="@dimen/mini_player_height" android:scrollbars="none" android:transitionGroup="true" app:layout_behavior="com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior" diff --git a/app/src/main/res/layout/fragment_playlist_detail.xml b/app/src/main/res/layout/fragment_playlist_detail.xml index e5af7fdbb..089853ac3 100644 --- a/app/src/main/res/layout/fragment_playlist_detail.xml +++ b/app/src/main/res/layout/fragment_playlist_detail.xml @@ -38,6 +38,7 @@ android:overScrollMode="@integer/overScrollMode" android:scrollbars="none" android:layoutAnimation="@anim/layout_anim_fade" + android:paddingBottom="@dimen/mini_player_height" app:layout_behavior="com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior" /> diff --git a/app/src/main/res/layout/home_content.xml b/app/src/main/res/layout/home_content.xml index b49e0e63c..606aacd86 100644 --- a/app/src/main/res/layout/home_content.xml +++ b/app/src/main/res/layout/home_content.xml @@ -29,21 +29,20 @@ android:layout_height="wrap_content" android:orientation="vertical"> - + - - - \ No newline at end of file diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 4ec485ca1..fedd0d28f 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -12,10 +12,8 @@ 8dp 56dp - - 128dp - 72dp + 128dp 96dp 96dp