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 7b456a38..abc44d4b 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 @@ -129,7 +129,6 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity() { if (RetroUtil.isLandscape()) { binding.slidingPanel.drawAboveSystemBarsWithPadding(true) } - binding.fragmentContainer.addBottomInsets() chooseFragmentForTheme() setupSlidingUpPanel() setupBottomSheet() @@ -350,7 +349,7 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity() { binding.bottomNavigationView.translationY = 0F } binding.bottomNavigationView.bringToFront() - libraryViewModel.setFabMargin(heightOfBarWithTabs - 2 * windowInsets.safeGetBottomInsets()) + libraryViewModel.setFabMargin(dip(R.dimen.mini_player_height_expanded)) } else { println("Details") if (animate) { @@ -367,7 +366,7 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity() { dip(R.dimen.bottom_nav_height).toFloat() binding.slidingPanel.bringToFront() } - libraryViewModel.setFabMargin(heightOfBar - 2 * windowInsets.safeGetBottomInsets()) + libraryViewModel.setFabMargin(dip(R.dimen.mini_player_height)) } } } diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/tageditor/AlbumTagEditorActivity.kt b/app/src/main/java/code/name/monkey/retromusic/activities/tageditor/AlbumTagEditorActivity.kt index 53acf609..bd6bf459 100755 --- a/app/src/main/java/code/name/monkey/retromusic/activities/tageditor/AlbumTagEditorActivity.kt +++ b/app/src/main/java/code/name/monkey/retromusic/activities/tageditor/AlbumTagEditorActivity.kt @@ -44,6 +44,7 @@ import code.name.monkey.retromusic.util.RetroColorUtil.getColor import com.bumptech.glide.load.engine.DiskCacheStrategy import com.bumptech.glide.request.target.ImageViewTarget import com.bumptech.glide.request.transition.Transition +import com.google.android.material.shape.MaterialShapeDrawable import org.jaudiotagger.tag.FieldKey import java.util.* @@ -101,8 +102,9 @@ class AlbumTagEditorActivity : AbsTagEditorActivity super.onCreate(savedInstanceState) setUpViews() setNoImageMode() - binding.toolbar.setBackgroundColor(ATHUtil.resolveColor(this, R.attr.colorSurface)) setSupportActionBar(binding.toolbar) + binding.appBarLayout.statusBarForeground = + MaterialShapeDrawable.createWithElevationOverlay(this) } @SuppressLint("ClickableViewAccessibility") diff --git a/app/src/main/java/code/name/monkey/retromusic/extensions/ViewExtensions.kt b/app/src/main/java/code/name/monkey/retromusic/extensions/ViewExtensions.kt index 8571fe8b..270db658 100644 --- a/app/src/main/java/code/name/monkey/retromusic/extensions/ViewExtensions.kt +++ b/app/src/main/java/code/name/monkey/retromusic/extensions/ViewExtensions.kt @@ -237,6 +237,6 @@ data class InitialPadding( val right: Int, val bottom: Int ) -private fun recordInitialPaddingForView(view: View) = InitialPadding( +fun recordInitialPaddingForView(view: View) = InitialPadding( view.paddingLeft, view.paddingTop, view.paddingRight, view.paddingBottom ) diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/LibraryViewModel.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/LibraryViewModel.kt index 8a5aea2c..a021fe70 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/LibraryViewModel.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/LibraryViewModel.kt @@ -14,6 +14,7 @@ */ package code.name.monkey.retromusic.fragments +import android.animation.ValueAnimator import android.widget.Toast import androidx.lifecycle.* import code.name.monkey.retromusic.* @@ -42,7 +43,7 @@ class LibraryViewModel( private val legacyPlaylists = MutableLiveData>() private val genres = MutableLiveData>() private val searchResults = MutableLiveData>() - private val fabMargin = MutableLiveData(0) + private val fabMargin = MutableLiveData(0) val paletteColor: LiveData = _paletteColor init { @@ -337,11 +338,18 @@ class LibraryViewModel( } fun setFabMargin(bottomMargin: Int) { - fabMargin.postValue( - // Normal Margin - DensityUtil.dip2px(App.getContext(), 16F) + - bottomMargin - ) + val currentValue = DensityUtil.dip2px(App.getContext(), 16F) + + bottomMargin + if (currentValue != fabMargin.value) { + ValueAnimator.ofInt(fabMargin.value!!, currentValue).apply { + addUpdateListener { + fabMargin.postValue( + it.animatedValue as Int + ) + } + start() + } + } } } 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 3bbe5e39..dd022378 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 @@ -49,7 +49,7 @@ class AboutFragment : Fragment(R.layout.fragment_about), View.OnClickListener { // insets are not passed to child views // https://github.com/material-components/material-components-android/issues/1310 if (!RetroUtil.isLandscape()) { - binding.root.updatePadding(bottom = RetroUtil.getNavigationBarHeight()) + binding.aboutContent.root.updatePadding(bottom = RetroUtil.getNavigationBarHeight()) } } 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 c667b2fb..51dfccdd 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 @@ -22,7 +22,6 @@ import androidx.appcompat.widget.Toolbar import androidx.core.view.doOnPreDraw import androidx.core.view.isVisible import androidx.core.view.updateLayoutParams -import androidx.core.view.updatePadding import androidx.navigation.fragment.findNavController import androidx.recyclerview.widget.RecyclerView import code.name.monkey.appthemehelper.common.ATHToolbarActivity @@ -161,11 +160,9 @@ abstract class AbsRecyclerViewFragment, LM : Recycle val itemCount: Int = adapter?.itemCount ?: 0 if (itemCount > 0 && MusicPlayerRemote.playingQueue.isNotEmpty()) { - val height = dip(R.dimen.mini_player_height_expanded) - binding.recyclerView.updatePadding(0, 0, 0, height) + binding.recyclerView.updatePadding(bottom = dip(R.dimen.mini_player_height_expanded)) } else { - val height = dip(R.dimen.mini_player_height) - binding.recyclerView.updatePadding(0, 0, 0, height) + binding.recyclerView.updatePadding(bottom = dip(R.dimen.mini_player_height)) } } 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 49f22678..b28d903c 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 @@ -89,7 +89,7 @@ class DetailListFragment : AbsMainActivityFragment(R.layout.fragment_playlist_de override fun onChanged() { super.onChanged() val height = dipToPix(52f) - binding.recyclerView.setPadding(0, 0, 0, height.toInt()) + binding.recyclerView.updatePadding(bottom = height.toInt()) } }) } @@ -204,7 +204,7 @@ class DetailListFragment : AbsMainActivityFragment(R.layout.fragment_playlist_de if (RetroUtil.isTablet()) { return if (RetroUtil.isLandscape()) 6 else 4 } - return 2 + return if (RetroUtil.isLandscape()) 4 else 2 } override fun onArtist(artistId: Long, view: View) { diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/other/LyricsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/other/LyricsFragment.kt index 4b43f4ea..e06a7672 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/other/LyricsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/other/LyricsFragment.kt @@ -379,6 +379,7 @@ class LyricsFragment : AbsMusicServiceFragment(R.layout.fragment_lyrics) { override fun onDestroyView() { super.onDestroyView() - (requireActivity() as MainActivity).expandPanel() + if (MusicPlayerRemote.playingQueue.isNotEmpty()) + (requireActivity() as MainActivity).expandPanel() } } diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/queue/PlayingQueueFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/queue/PlayingQueueFragment.kt index 8ec96e2e..0bc6846d 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/queue/PlayingQueueFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/queue/PlayingQueueFragment.kt @@ -23,7 +23,9 @@ import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import code.name.monkey.appthemehelper.util.ColorUtil import code.name.monkey.appthemehelper.util.MaterialValueHelper +import code.name.monkey.appthemehelper.util.ToolbarContentTintHelper import code.name.monkey.retromusic.R +import code.name.monkey.retromusic.activities.MainActivity import code.name.monkey.retromusic.adapter.song.PlayingQueueAdapter import code.name.monkey.retromusic.databinding.FragmentPlayingQueueBinding import code.name.monkey.retromusic.extensions.accentColor @@ -172,6 +174,8 @@ class PlayingQueueFragment : AbsMusicServiceFragment(R.layout.fragment_playing_q } playingQueueAdapter = null super.onDestroy() + if (MusicPlayerRemote.playingQueue.isNotEmpty()) + (requireActivity() as MainActivity).expandPanel() } private fun setupToolbar() { @@ -191,6 +195,7 @@ class PlayingQueueFragment : AbsMusicServiceFragment(R.layout.fragment_playing_q findNavController().navigateUp() } setNavigationIcon(R.drawable.ic_keyboard_backspace_black) + ToolbarContentTintHelper.colorBackButton(this) } } } 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 e9b176fc..4cd18128 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 @@ -40,6 +40,7 @@ import code.name.monkey.retromusic.util.PreferenceUtil import code.name.monkey.retromusic.views.addAlpha import com.google.android.material.chip.Chip import com.google.android.material.chip.ChipGroup +import com.google.android.material.shape.MaterialShapeDrawable import com.google.android.material.textfield.TextInputEditText import com.google.android.material.transition.MaterialSharedAxis import java.util.* @@ -96,6 +97,8 @@ class SearchFragment : AbsMainActivityFragment(R.layout.fragment_search), TextWa bottomMargin = it } }) + binding.appBarLayout.statusBarForeground = + MaterialShapeDrawable.createWithElevationOverlay(requireContext()) } private fun setupChips() { 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 new file mode 100644 index 00000000..101624be --- /dev/null +++ b/app/src/main/java/code/name/monkey/retromusic/views/insets/InsetsConstraintLayout.kt @@ -0,0 +1,23 @@ +package code.name.monkey.retromusic.views.insets + +import android.content.Context +import android.util.AttributeSet +import android.view.WindowInsets +import androidx.constraintlayout.widget.ConstraintLayout +import androidx.core.view.WindowInsetsCompat +import code.name.monkey.retromusic.extensions.drawAboveSystemBarsWithPadding +import code.name.monkey.retromusic.extensions.recordInitialPaddingForView +import code.name.monkey.retromusic.extensions.requestApplyInsetsWhenAttached +import code.name.monkey.retromusic.util.RetroUtil +import com.afollestad.materialdialogs.utils.MDUtil.updatePadding + +class InsetsConstraintLayout @JvmOverloads constructor( + context: Context, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0 +) : ConstraintLayout(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 new file mode 100644 index 00000000..3f56b8f8 --- /dev/null +++ b/app/src/main/java/code/name/monkey/retromusic/views/insets/InsetsRecyclerView.kt @@ -0,0 +1,30 @@ +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.drawAboveSystemBarsWithPadding +import code.name.monkey.retromusic.util.RetroUtil + +class InsetsRecyclerView @JvmOverloads constructor( + context: Context, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0 +) : RecyclerView(context, attrs, defStyleAttr) { + init { + if (!RetroUtil.isLandscape()) + drawAboveSystemBarsWithPadding() + } + + fun updatePadding( + @Px left: Int = paddingLeft, + @Px top: Int = paddingTop, + @Px right: Int = paddingRight, + @Px bottom: Int = paddingBottom + ) { + setPadding(left, top, right, bottom) + if (!RetroUtil.isLandscape()) + drawAboveSystemBarsWithPadding() + } +} \ No newline at end of file diff --git a/app/src/main/res/layout-land/fragment_banner_home.xml b/app/src/main/res/layout-land/fragment_banner_home.xml index 521aab72..6b8571a4 100644 --- a/app/src/main/res/layout-land/fragment_banner_home.xml +++ b/app/src/main/res/layout-land/fragment_banner_home.xml @@ -66,7 +66,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_home.xml b/app/src/main/res/layout-land/fragment_home.xml index f3fe8fab..2ab398e4 100644 --- a/app/src/main/res/layout-land/fragment_home.xml +++ b/app/src/main/res/layout-land/fragment_home.xml @@ -59,14 +59,12 @@ android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" - android:layout_marginStart="@dimen/toolbar_margin_horizontal" - android:layout_marginEnd="@dimen/toolbar_margin_horizontal" android:descendantFocusability="beforeDescendants" android:focusableInTouchMode="true" 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/activity_album_tag_editor.xml b/app/src/main/res/layout/activity_album_tag_editor.xml index e418b247..5a40e8ee 100755 --- a/app/src/main/res/layout/activity_album_tag_editor.xml +++ b/app/src/main/res/layout/activity_album_tag_editor.xml @@ -5,8 +5,7 @@ android:layout_height="match_parent" android:background="?attr/colorSurface" android:fitsSystemWindows="true" - android:orientation="vertical" - tools:ignore="UnusedAttribute"> + android:orientation="vertical"> @@ -20,8 +18,7 @@ style="@style/Toolbar" app:navigationIcon="@drawable/ic_keyboard_backspace_black" app:title="@string/action_tag_editor" - app:titleTextAppearance="@style/ToolbarTextAppearanceNormal" - tools:ignore="UnusedAttribute" /> + app:titleTextAppearance="@style/ToolbarTextAppearanceNormal" /> - - \ No newline at end of file + \ 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 9415be12..ca171cdf 100644 --- a/app/src/main/res/layout/fragment_artist_content.xml +++ b/app/src/main/res/layout/fragment_artist_content.xml @@ -1,5 +1,5 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_banner_home.xml b/app/src/main/res/layout/fragment_banner_home.xml index 27066559..67cf3c34 100644 --- a/app/src/main/res/layout/fragment_banner_home.xml +++ b/app/src/main/res/layout/fragment_banner_home.xml @@ -63,7 +63,7 @@ android:focusableInTouchMode="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/fragment_folder.xml b/app/src/main/res/layout/fragment_folder.xml index 02d0b133..56b08660 100644 --- a/app/src/main/res/layout/fragment_folder.xml +++ b/app/src/main/res/layout/fragment_folder.xml @@ -77,7 +77,7 @@ tools:visibility="visible" /> - - - + \ 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 cf7d9816..d3cb8564 100644 --- a/app/src/main/res/layout/fragment_main_recycler.xml +++ b/app/src/main/res/layout/fragment_main_recycler.xml @@ -38,7 +38,7 @@ - - + android:layout_height="wrap_content" + android:fitsSystemWindows="true"> @@ -30,7 +29,7 @@ - - - - + - - - - + - - +