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