diff --git a/app/src/main/java/org/oxycblt/auxio/MainActivity.kt b/app/src/main/java/org/oxycblt/auxio/MainActivity.kt index c9d4b10d0..fd4d28bd7 100644 --- a/app/src/main/java/org/oxycblt/auxio/MainActivity.kt +++ b/app/src/main/java/org/oxycblt/auxio/MainActivity.kt @@ -18,7 +18,6 @@ import org.oxycblt.auxio.ui.toColor // FIXME: Fix bug where fast navigation will break the animations and // lead to nothing being displayed [Possibly Un-fixable] -// TODO: Landscape UI layouts // FIXME: Compat issue with Versions 5 that leads to progress bar looking off class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { diff --git a/app/src/main/java/org/oxycblt/auxio/MainFragment.kt b/app/src/main/java/org/oxycblt/auxio/MainFragment.kt index cf353f6f8..8d936eba3 100644 --- a/app/src/main/java/org/oxycblt/auxio/MainFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/MainFragment.kt @@ -67,8 +67,6 @@ class MainFragment : Fragment() { binding.lifecycleOwner = this - handleCompactPlaybackVisibility(binding, playbackModel.song.value) - binding.navBar.itemIconTintList = navTints binding.navBar.itemTextColor = navTints @@ -81,8 +79,12 @@ class MainFragment : Fragment() { // --- VIEWMODEL SETUP --- // Change CompactPlaybackFragment's visibility here so that an animation occurs. - playbackModel.song.observe(viewLifecycleOwner) { - handleCompactPlaybackVisibility(binding, it) + if (!isLandscape(resources)) { + handleCompactPlaybackVisibility(binding, playbackModel.song.value) + + playbackModel.song.observe(viewLifecycleOwner) { + handleCompactPlaybackVisibility(binding, it) + } } playbackModel.navToItem.observe(viewLifecycleOwner) { @@ -156,11 +158,7 @@ class MainFragment : Fragment() { if (song == null) { logD("Hiding CompactPlaybackFragment since no song is being played.") - // Dont hide if the mode is landscape. - if (!isLandscape(resources)) { - binding.compactPlayback.visibility = View.GONE - } - + binding.compactPlayback.visibility = View.GONE playbackModel.disableAnimation() } else { binding.compactPlayback.visibility = View.VISIBLE diff --git a/app/src/main/java/org/oxycblt/auxio/detail/AlbumDetailFragment.kt b/app/src/main/java/org/oxycblt/auxio/detail/AlbumDetailFragment.kt index d84ccaf7a..9990a4b1c 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/AlbumDetailFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/AlbumDetailFragment.kt @@ -8,6 +8,7 @@ import androidx.appcompat.widget.PopupMenu import androidx.fragment.app.activityViewModels import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.navArgs +import androidx.recyclerview.widget.GridLayoutManager import org.oxycblt.auxio.R import org.oxycblt.auxio.databinding.FragmentAlbumDetailBinding import org.oxycblt.auxio.detail.adapters.AlbumSongAdapter @@ -19,6 +20,7 @@ import org.oxycblt.auxio.playback.PlaybackViewModel import org.oxycblt.auxio.playback.state.PlaybackMode import org.oxycblt.auxio.ui.createToast import org.oxycblt.auxio.ui.disable +import org.oxycblt.auxio.ui.isLandscape import org.oxycblt.auxio.ui.setupAlbumSongActions /** diff --git a/app/src/main/java/org/oxycblt/auxio/detail/ArtistDetailFragment.kt b/app/src/main/java/org/oxycblt/auxio/detail/ArtistDetailFragment.kt index 274637e91..bef92f5ed 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/ArtistDetailFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/ArtistDetailFragment.kt @@ -8,6 +8,7 @@ import androidx.appcompat.widget.PopupMenu import androidx.fragment.app.activityViewModels import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.navArgs +import androidx.recyclerview.widget.GridLayoutManager import org.oxycblt.auxio.R import org.oxycblt.auxio.databinding.FragmentArtistDetailBinding import org.oxycblt.auxio.detail.adapters.ArtistAlbumAdapter @@ -16,6 +17,7 @@ import org.oxycblt.auxio.music.Artist import org.oxycblt.auxio.music.MusicStore import org.oxycblt.auxio.playback.PlaybackViewModel import org.oxycblt.auxio.ui.disable +import org.oxycblt.auxio.ui.isLandscape import org.oxycblt.auxio.ui.setupAlbumActions /** diff --git a/app/src/main/java/org/oxycblt/auxio/detail/GenreDetailFragment.kt b/app/src/main/java/org/oxycblt/auxio/detail/GenreDetailFragment.kt index db3ab6518..036a92ea8 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/GenreDetailFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/GenreDetailFragment.kt @@ -8,6 +8,7 @@ import androidx.appcompat.widget.PopupMenu import androidx.fragment.app.activityViewModels import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.navArgs +import androidx.recyclerview.widget.GridLayoutManager import org.oxycblt.auxio.R import org.oxycblt.auxio.databinding.FragmentGenreDetailBinding import org.oxycblt.auxio.detail.adapters.GenreArtistAdapter @@ -15,6 +16,7 @@ import org.oxycblt.auxio.logD import org.oxycblt.auxio.music.MusicStore import org.oxycblt.auxio.playback.PlaybackViewModel import org.oxycblt.auxio.ui.disable +import org.oxycblt.auxio.ui.isLandscape import org.oxycblt.auxio.ui.setupArtistActions /** 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 ec8dd1259..c17686689 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/CompactPlaybackFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/CompactPlaybackFragment.kt @@ -15,6 +15,7 @@ import org.oxycblt.auxio.R import org.oxycblt.auxio.databinding.FragmentCompactPlaybackBinding import org.oxycblt.auxio.logD import org.oxycblt.auxio.music.MusicStore +import org.oxycblt.auxio.ui.isLandscape /** * A [Fragment] that displays the currently played song at a glance, with some basic controls. @@ -33,6 +34,8 @@ class CompactPlaybackFragment : Fragment() { ): View { val binding = FragmentCompactPlaybackBinding.inflate(inflater) + val isLandscape = isLandscape(resources) + // --- UI SETUP --- binding.lifecycleOwner = viewLifecycleOwner @@ -41,7 +44,7 @@ class CompactPlaybackFragment : Fragment() { binding.song = MusicStore.getInstance().songs[0] binding.playbackModel = playbackModel - if (playbackModel.song.value == null) { + if (playbackModel.song.value == null && isLandscape) { hideAll(binding) } @@ -64,11 +67,13 @@ class CompactPlaybackFragment : Fragment() { if (it != null) { logD("Updating song display to ${it.name}") - showAll(binding) - binding.song = it binding.playbackProgress.max = it.seconds.toInt() - } else { + + if (isLandscape) { + showAll(binding) + } + } else if (isLandscape) { hideAll(binding) } } diff --git a/app/src/main/res/layout-land/fragment_album_detail.xml b/app/src/main/res/layout-land/fragment_album_detail.xml new file mode 100644 index 000000000..149e14053 --- /dev/null +++ b/app/src/main/res/layout-land/fragment_album_detail.xml @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout-land/fragment_artist_detail.xml b/app/src/main/res/layout-land/fragment_artist_detail.xml new file mode 100644 index 000000000..03e1ccefe --- /dev/null +++ b/app/src/main/res/layout-land/fragment_artist_detail.xml @@ -0,0 +1,133 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file 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 0c86fb78f..def69e666 100644 --- a/app/src/main/res/layout-land/fragment_compact_playback.xml +++ b/app/src/main/res/layout-land/fragment_compact_playback.xml @@ -25,15 +25,17 @@ @@ -62,13 +63,12 @@ android:layout_height="wrap_content" android:layout_marginStart="@dimen/margin_mid_small" android:layout_marginEnd="@dimen/margin_mid_small" - android:layout_marginBottom="@dimen/margin_small" android:ellipsize="marquee" android:marqueeRepeatLimit="marquee_forever" android:singleLine="true" android:text="@{@string/format_info(song.album.artist.name, song.album.name)}" android:textAppearance="@style/TextAppearance.MaterialComponents.Caption" - app:layout_constraintBottom_toTopOf="@+id/playback_progress" + app:layout_constraintBottom_toBottomOf="@+id/playback_cover" app:layout_constraintEnd_toStartOf="@+id/playback_controls" app:layout_constraintStart_toEndOf="@+id/playback_cover" app:layout_constraintTop_toBottomOf="@+id/playback_song" diff --git a/app/src/main/res/layout-land/fragment_genre_detail.xml b/app/src/main/res/layout-land/fragment_genre_detail.xml new file mode 100644 index 000000000..f872109d4 --- /dev/null +++ b/app/src/main/res/layout-land/fragment_genre_detail.xml @@ -0,0 +1,135 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout-land/fragment_main.xml b/app/src/main/res/layout-land/fragment_main.xml index 4f42ae865..4be1c20c9 100644 --- a/app/src/main/res/layout-land/fragment_main.xml +++ b/app/src/main/res/layout-land/fragment_main.xml @@ -26,24 +26,24 @@ android:id="@+id/compact_playback" android:name="org.oxycblt.auxio.playback.CompactPlaybackFragment" android:layout_width="0dp" - android:layout_height="0dp" + android:layout_height="wrap_content" android:background="?android:attr/windowBackground" android:elevation="@dimen/elevation_high" android:outlineProvider="bounds" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@+id/nav_bar" - app:layout_constraintTop_toTopOf="@+id/nav_bar" tools:layout="@layout/fragment_compact_playback" /> diff --git a/app/src/main/res/layout/fragment_album_detail.xml b/app/src/main/res/layout/fragment_album_detail.xml index fd6590697..5350decad 100644 --- a/app/src/main/res/layout/fragment_album_detail.xml +++ b/app/src/main/res/layout/fragment_album_detail.xml @@ -62,13 +62,7 @@ android:layout_marginStart="@dimen/margin_medium" android:layout_marginTop="@dimen/margin_medium" android:layout_marginEnd="@dimen/margin_medium" - android:ellipsize="end" - android:maxLines="1" android:text="@{album.name}" - app:autoSizeMaxTextSize="@dimen/text_size_detail_header_max" - app:autoSizeMinTextSize="@dimen/text_size_min" - app:autoSizeStepGranularity="@dimen/text_size_increment" - app:autoSizeTextType="uniform" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toStartOf="parent" diff --git a/app/src/main/res/layout/fragment_artist_detail.xml b/app/src/main/res/layout/fragment_artist_detail.xml index bf513f8e3..826bd6254 100644 --- a/app/src/main/res/layout/fragment_artist_detail.xml +++ b/app/src/main/res/layout/fragment_artist_detail.xml @@ -62,10 +62,6 @@ android:layout_marginTop="@dimen/margin_medium" android:layout_marginEnd="@dimen/margin_medium" android:text="@{artist.name}" - app:autoSizeMaxTextSize="@dimen/text_size_detail_header_max" - app:autoSizeMinTextSize="@dimen/text_size_min" - app:autoSizeStepGranularity="@dimen/text_size_increment" - app:autoSizeTextType="uniform" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toStartOf="parent" diff --git a/app/src/main/res/layout/fragment_genre_detail.xml b/app/src/main/res/layout/fragment_genre_detail.xml index 2fdc26ca3..489be015f 100644 --- a/app/src/main/res/layout/fragment_genre_detail.xml +++ b/app/src/main/res/layout/fragment_genre_detail.xml @@ -63,10 +63,6 @@ android:layout_marginTop="@dimen/margin_medium" android:layout_marginEnd="@dimen/margin_medium" android:text="@{genre.name}" - app:autoSizeMaxTextSize="@dimen/text_size_detail_header_max" - app:autoSizeMinTextSize="@dimen/text_size_min" - app:autoSizeStepGranularity="@dimen/text_size_increment" - app:autoSizeTextType="uniform" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toStartOf="parent" diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 6a41fa806..f171ea2a3 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -21,12 +21,16 @@ 48dp + 18dp 24dp + 44dp 56dp 68dp + 120dp 260dp + 70dp 36dp diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 9107afe3f..268458fa7 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -60,6 +60,13 @@ ?attr/colorPrimary @font/inter_black @dimen/text_size_detail_header_max + 1 + end + + @dimen/text_size_detail_header_max + @dimen/text_size_min + @dimen/text_size_increment + uniform