From 554a0f28b22260807f8721b315920ec02dc77e52 Mon Sep 17 00:00:00 2001 From: OxygenCobalt Date: Mon, 18 Jan 2021 14:03:32 -0700 Subject: [PATCH] Fix more playback display issues Fix some other problems with the way playback is displayed. --- .../main/java/org/oxycblt/auxio/AuxioApp.kt | 2 +- .../java/org/oxycblt/auxio/MainFragment.kt | 23 ++++------ .../auxio/playback/CompactPlaybackFragment.kt | 46 ------------------- .../layout-land/fragment_compact_playback.xml | 2 +- .../res/layout-land/fragment_playback.xml | 2 - .../res/layout-land/item_album_header.xml | 4 +- .../res/layout-land/item_artist_header.xml | 2 +- .../res/layout-land/item_genre_header.xml | 2 +- .../layout-large-land/fragment_playback.xml | 14 ------ .../layout-large-port/item_album_header.xml | 4 +- .../layout-large-port/item_artist_header.xml | 2 +- .../layout-large-port/item_genre_header.xml | 2 +- app/src/main/res/layout/fragment_playback.xml | 2 - app/src/main/res/layout/item_album_header.xml | 2 +- .../main/res/layout/item_artist_header.xml | 2 +- app/src/main/res/layout/item_genre_header.xml | 2 +- app/src/main/res/menu/menu_library.xml | 3 +- app/src/main/res/values/strings.xml | 2 +- app/src/main/res/values/styles.xml | 2 +- 19 files changed, 27 insertions(+), 93 deletions(-) diff --git a/app/src/main/java/org/oxycblt/auxio/AuxioApp.kt b/app/src/main/java/org/oxycblt/auxio/AuxioApp.kt index 5db250994..75d5d6771 100644 --- a/app/src/main/java/org/oxycblt/auxio/AuxioApp.kt +++ b/app/src/main/java/org/oxycblt/auxio/AuxioApp.kt @@ -12,7 +12,7 @@ class AuxioApp : Application(), ImageLoaderFactory { super.onCreate() // Init SettingsManager here so that there aren't any race conditions - // [e.g Service gets SettingsManager before activity can init SettingsManager] + // [e.g PlaybackService gets SettingsManager before activity can init SettingsManager] SettingsManager.init(applicationContext) } diff --git a/app/src/main/java/org/oxycblt/auxio/MainFragment.kt b/app/src/main/java/org/oxycblt/auxio/MainFragment.kt index 9d956d218..c44d64f87 100644 --- a/app/src/main/java/org/oxycblt/auxio/MainFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/MainFragment.kt @@ -75,26 +75,21 @@ class MainFragment : Fragment() { if (isTablet(resources) && !isLandscape(resources)) { labelVisibilityMode = LabelVisibilityMode.LABEL_VISIBILITY_LABELED } - } - binding.navBar.itemIconTintList = navTints - binding.navBar.itemTextColor = navTints - - navController?.let { controller -> - binding.navBar.setOnNavigationItemSelectedListener { - navigateWithItem(controller, it) + navController?.let { controller -> + binding.navBar.setOnNavigationItemSelectedListener { + navigateWithItem(controller, it) + } } } // --- VIEWMODEL SETUP --- // Change CompactPlaybackFragment's visibility here so that an animation occurs. - if (!isLandscape(resources)) { - handleCompactPlaybackVisibility(binding, playbackModel.song.value) + handleCompactPlaybackVisibility(binding, playbackModel.song.value) - playbackModel.song.observe(viewLifecycleOwner) { - handleCompactPlaybackVisibility(binding, it) - } + playbackModel.song.observe(viewLifecycleOwner) { + handleCompactPlaybackVisibility(binding, it) } detailModel.navToItem.observe(viewLifecycleOwner) { @@ -148,7 +143,9 @@ class MainFragment : Fragment() { if (song == null) { logD("Hiding CompactPlaybackFragment since no song is being played.") - binding.compactPlayback.visibility = View.GONE + binding.compactPlayback.visibility = if (isLandscape(resources)) + View.INVISIBLE else View.GONE + playbackModel.disableAnimation() } else { binding.compactPlayback.visibility = View.VISIBLE diff --git a/app/src/main/java/org/oxycblt/auxio/playback/CompactPlaybackFragment.kt b/app/src/main/java/org/oxycblt/auxio/playback/CompactPlaybackFragment.kt index 6c108c85c..92aacab60 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/CompactPlaybackFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/CompactPlaybackFragment.kt @@ -15,7 +15,6 @@ import org.oxycblt.auxio.databinding.FragmentCompactPlaybackBinding import org.oxycblt.auxio.detail.DetailViewModel import org.oxycblt.auxio.logD import org.oxycblt.auxio.music.MusicStore -import org.oxycblt.auxio.ui.isLandscape import org.oxycblt.auxio.ui.memberBinding /** @@ -37,8 +36,6 @@ class CompactPlaybackFragment : Fragment() { container: ViewGroup?, savedInstanceState: Bundle? ): View { - val isLandscape = isLandscape(resources) - // --- UI SETUP --- binding.lifecycleOwner = viewLifecycleOwner @@ -46,9 +43,6 @@ class CompactPlaybackFragment : Fragment() { // Put a placeholder song in the binding & hide the playback fragment initially. binding.song = MusicStore.getInstance().songs[0] binding.playbackModel = playbackModel - if (playbackModel.song.value == null && isLandscape) { - hideAll(binding) - } binding.root.apply { setOnClickListener { @@ -71,14 +65,6 @@ class CompactPlaybackFragment : Fragment() { binding.song = it binding.playbackProgress.max = it.seconds.toInt() - - if (isLandscape) { - showAll(binding) - } - } else if (isLandscape) { - // CompactPlaybackFragment isn't fully hidden in landscape mode, only - // its UI elements are hidden. - hideAll(binding) } } @@ -126,36 +112,4 @@ class CompactPlaybackFragment : Fragment() { } } } - - /** - * Hide all UI elements, and disable the fragment from being clickable. - * Only called in landscape mode. - */ - private fun hideAll(binding: FragmentCompactPlaybackBinding) { - binding.apply { - root.isEnabled = false - - playbackCover.visibility = View.INVISIBLE - playbackSong.visibility = View.INVISIBLE - playbackInfo.visibility = View.INVISIBLE - playbackControls.visibility = View.INVISIBLE - playbackProgress.visibility = View.INVISIBLE - } - } - - /** - * Unhide all UI elements, and make the fragment clickable. - * Only called in landscape mode. - */ - private fun showAll(binding: FragmentCompactPlaybackBinding) { - binding.apply { - root.isEnabled = true - - playbackCover.visibility = View.VISIBLE - playbackSong.visibility = View.VISIBLE - playbackInfo.visibility = View.VISIBLE - playbackControls.visibility = View.VISIBLE - playbackProgress.visibility = View.VISIBLE - } - } } diff --git a/app/src/main/res/layout-land/fragment_compact_playback.xml b/app/src/main/res/layout-land/fragment_compact_playback.xml index 6989d0c1b..36398077a 100644 --- a/app/src/main/res/layout-land/fragment_compact_playback.xml +++ b/app/src/main/res/layout-land/fragment_compact_playback.xml @@ -44,8 +44,8 @@ android:layout_height="wrap_content" android:layout_marginStart="@dimen/margin_mid_small" android:layout_marginEnd="@dimen/margin_mid_small" - android:fontFamily="@font/inter_semibold" android:ellipsize="end" + android:fontFamily="@font/inter_semibold" android:singleLine="true" android:text="@{song.name}" android:textAppearance="@style/TextAppearance.SmallHeader" diff --git a/app/src/main/res/layout-land/fragment_playback.xml b/app/src/main/res/layout-land/fragment_playback.xml index d011caa37..0cb801fb7 100644 --- a/app/src/main/res/layout-land/fragment_playback.xml +++ b/app/src/main/res/layout-land/fragment_playback.xml @@ -172,7 +172,6 @@ android:id="@+id/playback_skip_next" style="@style/Widget.Button.Unbounded" android:layout_marginEnd="@dimen/margin_large" - android:padding="0dp" android:background="@drawable/ui_unbounded_ripple" android:contentDescription="@string/description_skip_next" android:onClick="@{() -> playbackModel.skipNext()}" @@ -190,7 +189,6 @@ android:contentDescription="@string/description_skip_prev" android:onClick="@{() -> playbackModel.skipPrev()}" android:src="@drawable/ic_skip_prev" - android:padding="0dp" app:layout_constraintBottom_toBottomOf="@+id/playback_play_pause" app:layout_constraintEnd_toStartOf="@+id/playback_play_pause" app:layout_constraintStart_toEndOf="@+id/playback_loop" diff --git a/app/src/main/res/layout-land/item_album_header.xml b/app/src/main/res/layout-land/item_album_header.xml index 75683f3c5..aa0a09cab 100644 --- a/app/src/main/res/layout-land/item_album_header.xml +++ b/app/src/main/res/layout-land/item_album_header.xml @@ -29,9 +29,9 @@ android:layout_height="@dimen/size_cover_mid_huge" android:layout_marginStart="@dimen/margin_medium" android:layout_marginTop="@dimen/margin_medium" - android:outlineProvider="bounds" - android:elevation="@dimen/elevation_normal" android:contentDescription="@{@string/description_album_cover(album.name)}" + android:elevation="@dimen/elevation_normal" + android:outlineProvider="bounds" app:coverArt="@{album}" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" diff --git a/app/src/main/res/layout-land/item_artist_header.xml b/app/src/main/res/layout-land/item_artist_header.xml index ab010efdd..f586705fa 100644 --- a/app/src/main/res/layout-land/item_artist_header.xml +++ b/app/src/main/res/layout-land/item_artist_header.xml @@ -29,8 +29,8 @@ android:layout_height="@dimen/size_cover_mid_huge" android:layout_margin="@dimen/margin_medium" android:contentDescription="@{@string/description_artist_image(artist.name)}" - android:outlineProvider="bounds" android:elevation="@dimen/elevation_normal" + android:outlineProvider="bounds" app:artistImage="@{artist}" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" diff --git a/app/src/main/res/layout-land/item_genre_header.xml b/app/src/main/res/layout-land/item_genre_header.xml index 239dd60e3..0717c9fef 100644 --- a/app/src/main/res/layout-land/item_genre_header.xml +++ b/app/src/main/res/layout-land/item_genre_header.xml @@ -29,8 +29,8 @@ android:layout_height="@dimen/size_cover_mid_huge" android:layout_margin="@dimen/margin_medium" android:contentDescription="@{@string/description_genre_image(genre.name)}" - android:outlineProvider="bounds" android:elevation="@dimen/elevation_normal" + android:outlineProvider="bounds" app:genreImage="@{genre}" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" diff --git a/app/src/main/res/layout-large-land/fragment_playback.xml b/app/src/main/res/layout-large-land/fragment_playback.xml index 88603e3e9..4206ac9ed 100644 --- a/app/src/main/res/layout-large-land/fragment_playback.xml +++ b/app/src/main/res/layout-large-land/fragment_playback.xml @@ -173,14 +173,10 @@ - Add to queue Added to queue Next in Queue - + About Version View on Github diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 2f9b1a392..f6ce04a7e 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -235,6 +235,6 @@ @dimen/margin_medium @dimen/margin_large fitCenter - @dimen/padding_medium + 18dp \ No newline at end of file