diff --git a/app/src/main/java/org/oxycblt/auxio/MainFragment.kt b/app/src/main/java/org/oxycblt/auxio/MainFragment.kt index 51a3d3659..6d62e0109 100644 --- a/app/src/main/java/org/oxycblt/auxio/MainFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/MainFragment.kt @@ -21,6 +21,7 @@ import org.oxycblt.auxio.music.Song import org.oxycblt.auxio.playback.PlaybackViewModel import org.oxycblt.auxio.utils.accent import org.oxycblt.auxio.utils.getTransparentAccent +import org.oxycblt.auxio.utils.isLandscape import org.oxycblt.auxio.utils.toColor import kotlin.IllegalArgumentException @@ -155,7 +156,11 @@ class MainFragment : Fragment() { if (song == null) { logD("Hiding CompactPlaybackFragment since no song is being played.") - binding.compactPlayback.visibility = View.GONE + // Dont hide if the mode is landscape. + if (!isLandscape(resources)) { + binding.compactPlayback.visibility = 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 a7d8bd7ec..d39a8dfe7 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/CompactPlaybackFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/CompactPlaybackFragment.kt @@ -37,11 +37,14 @@ class CompactPlaybackFragment : Fragment() { binding.lifecycleOwner = viewLifecycleOwner - // Put a placeholder song in the binding & hide the playback fragment initially, - // just in case. + // 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) { + hideAll(binding) + } + binding.root.setOnClickListener { findNavController().navigate( MainFragmentDirections.actionGoToPlayback() @@ -59,8 +62,12 @@ 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 { + hideAll(binding) } } @@ -114,4 +121,34 @@ class CompactPlaybackFragment : Fragment() { } } } + + /** + * Hide all UI elements, and disable the fragment from being clickable. + */ + 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. + */ + 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/java/org/oxycblt/auxio/utils/InterfaceUtils.kt b/app/src/main/java/org/oxycblt/auxio/utils/InterfaceUtils.kt index 4b7451af9..25840a4e9 100644 --- a/app/src/main/java/org/oxycblt/auxio/utils/InterfaceUtils.kt +++ b/app/src/main/java/org/oxycblt/auxio/utils/InterfaceUtils.kt @@ -4,6 +4,7 @@ import android.annotation.TargetApi import android.content.Context import android.content.res.ColorStateList import android.content.res.Configuration +import android.content.res.Resources import android.os.Build import android.text.SpannableString import android.text.Spanned @@ -55,6 +56,13 @@ fun ImageButton.disable(context: Context) { } } +/** + * Determine if the device is currently in landscape. + */ +fun isLandscape(resources: Resources): Boolean { + return resources.configuration.orientation == Configuration.ORIENTATION_LANDSCAPE +} + /** * Create a [Toast] from a [String] * @param context [Context] required to create the toast diff --git a/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml index cc71a811b..de78f6455 100644 --- a/app/src/main/res/drawable-v24/ic_launcher_foreground.xml +++ b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -10,11 +10,11 @@ android:strokeColor="#ffffff"> + android:type="linear"> diff --git a/app/src/main/res/drawable/ic_album.xml b/app/src/main/res/drawable/ic_album.xml index 5633d48c4..3cf3baefd 100644 --- a/app/src/main/res/drawable/ic_album.xml +++ b/app/src/main/res/drawable/ic_album.xml @@ -2,9 +2,9 @@ + android:viewportHeight="24"> diff --git a/app/src/main/res/drawable/ic_artist.xml b/app/src/main/res/drawable/ic_artist.xml index 0c2cd720d..fa78e54aa 100644 --- a/app/src/main/res/drawable/ic_artist.xml +++ b/app/src/main/res/drawable/ic_artist.xml @@ -2,9 +2,9 @@ + android:viewportHeight="24"> diff --git a/app/src/main/res/drawable/ic_auto.xml b/app/src/main/res/drawable/ic_auto.xml index 05612ca0f..afd9f5fb2 100644 --- a/app/src/main/res/drawable/ic_auto.xml +++ b/app/src/main/res/drawable/ic_auto.xml @@ -2,9 +2,9 @@ + android:viewportHeight="24"> diff --git a/app/src/main/res/drawable/ic_back.xml b/app/src/main/res/drawable/ic_back.xml index 5377fe60a..8888096d4 100644 --- a/app/src/main/res/drawable/ic_back.xml +++ b/app/src/main/res/drawable/ic_back.xml @@ -1,9 +1,9 @@ + android:viewportHeight="24"> diff --git a/app/src/main/res/drawable/ic_check.xml b/app/src/main/res/drawable/ic_check.xml index 94844e55e..6bab14a0b 100644 --- a/app/src/main/res/drawable/ic_check.xml +++ b/app/src/main/res/drawable/ic_check.xml @@ -2,9 +2,9 @@ + android:viewportHeight="24"> diff --git a/app/src/main/res/drawable/ic_clear.xml b/app/src/main/res/drawable/ic_clear.xml index 6a65ad672..cafc20c45 100644 --- a/app/src/main/res/drawable/ic_clear.xml +++ b/app/src/main/res/drawable/ic_clear.xml @@ -2,9 +2,9 @@ + android:viewportHeight="24"> diff --git a/app/src/main/res/drawable/ic_day.xml b/app/src/main/res/drawable/ic_day.xml index 38d2309a3..c8ce70163 100644 --- a/app/src/main/res/drawable/ic_day.xml +++ b/app/src/main/res/drawable/ic_day.xml @@ -2,9 +2,9 @@ + android:viewportHeight="24"> diff --git a/app/src/main/res/drawable/ic_down.xml b/app/src/main/res/drawable/ic_down.xml index 5fc1d0fe8..8866bfd1a 100644 --- a/app/src/main/res/drawable/ic_down.xml +++ b/app/src/main/res/drawable/ic_down.xml @@ -2,9 +2,9 @@ + android:viewportHeight="24"> diff --git a/app/src/main/res/drawable/ic_error.xml b/app/src/main/res/drawable/ic_error.xml index f9b68bb44..1b050ca5a 100644 --- a/app/src/main/res/drawable/ic_error.xml +++ b/app/src/main/res/drawable/ic_error.xml @@ -3,9 +3,9 @@ + android:viewportHeight="24"> diff --git a/app/src/main/res/drawable/ic_genre.xml b/app/src/main/res/drawable/ic_genre.xml index 46bf0a751..4bb7ce5f9 100644 --- a/app/src/main/res/drawable/ic_genre.xml +++ b/app/src/main/res/drawable/ic_genre.xml @@ -2,9 +2,9 @@ + android:viewportHeight="24"> diff --git a/app/src/main/res/drawable/ic_handle.xml b/app/src/main/res/drawable/ic_handle.xml index 0fb1b9358..14ddc3daa 100644 --- a/app/src/main/res/drawable/ic_handle.xml +++ b/app/src/main/res/drawable/ic_handle.xml @@ -2,9 +2,9 @@ + android:viewportHeight="24"> diff --git a/app/src/main/res/drawable/ic_launcher_foreground.xml b/app/src/main/res/drawable/ic_launcher_foreground.xml index cc71a811b..de78f6455 100644 --- a/app/src/main/res/drawable/ic_launcher_foreground.xml +++ b/app/src/main/res/drawable/ic_launcher_foreground.xml @@ -10,11 +10,11 @@ android:strokeColor="#ffffff"> + android:type="linear"> diff --git a/app/src/main/res/drawable/ic_library.xml b/app/src/main/res/drawable/ic_library.xml index 6c1146063..f24902a03 100644 --- a/app/src/main/res/drawable/ic_library.xml +++ b/app/src/main/res/drawable/ic_library.xml @@ -2,9 +2,9 @@ + android:viewportHeight="24"> diff --git a/app/src/main/res/drawable/ic_loop.xml b/app/src/main/res/drawable/ic_loop.xml index 70bf9c913..ff64b86b3 100644 --- a/app/src/main/res/drawable/ic_loop.xml +++ b/app/src/main/res/drawable/ic_loop.xml @@ -2,9 +2,9 @@ + android:viewportHeight="24"> diff --git a/app/src/main/res/drawable/ic_loop_large.xml b/app/src/main/res/drawable/ic_loop_large.xml index f9210f969..0a1af5ae3 100644 --- a/app/src/main/res/drawable/ic_loop_large.xml +++ b/app/src/main/res/drawable/ic_loop_large.xml @@ -2,9 +2,9 @@ + android:viewportHeight="24"> diff --git a/app/src/main/res/drawable/ic_loop_one.xml b/app/src/main/res/drawable/ic_loop_one.xml index 99ce9ffc7..f405d2a78 100644 --- a/app/src/main/res/drawable/ic_loop_one.xml +++ b/app/src/main/res/drawable/ic_loop_one.xml @@ -2,9 +2,9 @@ + android:viewportHeight="24"> diff --git a/app/src/main/res/drawable/ic_loop_one_large.xml b/app/src/main/res/drawable/ic_loop_one_large.xml index d3d0bf894..dad42a989 100644 --- a/app/src/main/res/drawable/ic_loop_one_large.xml +++ b/app/src/main/res/drawable/ic_loop_one_large.xml @@ -2,9 +2,9 @@ + android:viewportHeight="24"> diff --git a/app/src/main/res/drawable/ic_night.xml b/app/src/main/res/drawable/ic_night.xml index 3d05bec6b..7e65efb38 100644 --- a/app/src/main/res/drawable/ic_night.xml +++ b/app/src/main/res/drawable/ic_night.xml @@ -2,9 +2,9 @@ + android:viewportHeight="24"> diff --git a/app/src/main/res/drawable/ic_pause.xml b/app/src/main/res/drawable/ic_pause.xml index 4c8d64180..8f01b7f95 100644 --- a/app/src/main/res/drawable/ic_pause.xml +++ b/app/src/main/res/drawable/ic_pause.xml @@ -2,9 +2,9 @@ + android:viewportHeight="24"> diff --git a/app/src/main/res/drawable/ic_pause_large.xml b/app/src/main/res/drawable/ic_pause_large.xml index 134271da8..286d640c0 100644 --- a/app/src/main/res/drawable/ic_pause_large.xml +++ b/app/src/main/res/drawable/ic_pause_large.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="24"> + android:viewportHeight="24"> diff --git a/app/src/main/res/drawable/ic_play_large.xml b/app/src/main/res/drawable/ic_play_large.xml index 2f0b72806..859b8f3fc 100644 --- a/app/src/main/res/drawable/ic_play_large.xml +++ b/app/src/main/res/drawable/ic_play_large.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="24"> + android:viewportHeight="24"> diff --git a/app/src/main/res/drawable/ic_queue_add.xml b/app/src/main/res/drawable/ic_queue_add.xml index 2302c88a5..39e8f7172 100644 --- a/app/src/main/res/drawable/ic_queue_add.xml +++ b/app/src/main/res/drawable/ic_queue_add.xml @@ -2,9 +2,9 @@ + android:viewportHeight="24"> diff --git a/app/src/main/res/drawable/ic_queue_inactive.xml b/app/src/main/res/drawable/ic_queue_inactive.xml index fa59cf34f..ea8afb6c5 100644 --- a/app/src/main/res/drawable/ic_queue_inactive.xml +++ b/app/src/main/res/drawable/ic_queue_inactive.xml @@ -2,9 +2,9 @@ + android:viewportHeight="24"> diff --git a/app/src/main/res/drawable/ic_search.xml b/app/src/main/res/drawable/ic_search.xml index 2b1a6a6b8..83171a33a 100644 --- a/app/src/main/res/drawable/ic_search.xml +++ b/app/src/main/res/drawable/ic_search.xml @@ -2,9 +2,9 @@ + android:viewportHeight="24"> diff --git a/app/src/main/res/drawable/ic_settings.xml b/app/src/main/res/drawable/ic_settings.xml index b24c6810a..e31019c73 100644 --- a/app/src/main/res/drawable/ic_settings.xml +++ b/app/src/main/res/drawable/ic_settings.xml @@ -2,9 +2,9 @@ + android:viewportHeight="24"> diff --git a/app/src/main/res/drawable/ic_shuffle.xml b/app/src/main/res/drawable/ic_shuffle.xml index 09aec324f..2eef3f019 100644 --- a/app/src/main/res/drawable/ic_shuffle.xml +++ b/app/src/main/res/drawable/ic_shuffle.xml @@ -2,9 +2,9 @@ + android:viewportHeight="24"> diff --git a/app/src/main/res/drawable/ic_shuffle_large.xml b/app/src/main/res/drawable/ic_shuffle_large.xml index 759ee304a..b204e09d4 100644 --- a/app/src/main/res/drawable/ic_shuffle_large.xml +++ b/app/src/main/res/drawable/ic_shuffle_large.xml @@ -2,9 +2,9 @@ + android:viewportHeight="24"> diff --git a/app/src/main/res/drawable/ic_skip_next.xml b/app/src/main/res/drawable/ic_skip_next.xml index f1f32d8ac..c4a8ec310 100644 --- a/app/src/main/res/drawable/ic_skip_next.xml +++ b/app/src/main/res/drawable/ic_skip_next.xml @@ -2,10 +2,10 @@ + android:tint="?attr/colorControlNormal" + android:viewportWidth="24" + android:viewportHeight="24"> diff --git a/app/src/main/res/drawable/ic_skip_next_large.xml b/app/src/main/res/drawable/ic_skip_next_large.xml index 577f21b39..82f535b80 100644 --- a/app/src/main/res/drawable/ic_skip_next_large.xml +++ b/app/src/main/res/drawable/ic_skip_next_large.xml @@ -2,10 +2,10 @@ + android:tint="?attr/colorControlNormal" + android:viewportWidth="24" + android:viewportHeight="24"> diff --git a/app/src/main/res/drawable/ic_skip_prev.xml b/app/src/main/res/drawable/ic_skip_prev.xml index b5fba33ec..47c4110f7 100644 --- a/app/src/main/res/drawable/ic_skip_prev.xml +++ b/app/src/main/res/drawable/ic_skip_prev.xml @@ -2,10 +2,10 @@ + android:tint="?attr/colorControlNormal" + android:viewportWidth="24" + android:viewportHeight="24"> diff --git a/app/src/main/res/drawable/ic_skip_prev_large.xml b/app/src/main/res/drawable/ic_skip_prev_large.xml index d5a20d060..886719760 100644 --- a/app/src/main/res/drawable/ic_skip_prev_large.xml +++ b/app/src/main/res/drawable/ic_skip_prev_large.xml @@ -2,10 +2,10 @@ + android:tint="?attr/colorControlNormal" + android:viewportWidth="24" + android:viewportHeight="24"> diff --git a/app/src/main/res/drawable/ic_song.xml b/app/src/main/res/drawable/ic_song.xml index 2be9f49d7..16756fb7a 100644 --- a/app/src/main/res/drawable/ic_song.xml +++ b/app/src/main/res/drawable/ic_song.xml @@ -1,9 +1,9 @@ + android:viewportHeight="24"> diff --git a/app/src/main/res/drawable/ic_sort_alpha_down.xml b/app/src/main/res/drawable/ic_sort_alpha_down.xml index 9016fcd76..9a6da3d4a 100644 --- a/app/src/main/res/drawable/ic_sort_alpha_down.xml +++ b/app/src/main/res/drawable/ic_sort_alpha_down.xml @@ -1,16 +1,16 @@ + android:viewportHeight="24"> + android:strokeWidth="0.4125" /> + android:strokeWidth="0.139935" /> diff --git a/app/src/main/res/drawable/ic_sort_alpha_up.xml b/app/src/main/res/drawable/ic_sort_alpha_up.xml index 4de23d961..be6f371eb 100644 --- a/app/src/main/res/drawable/ic_sort_alpha_up.xml +++ b/app/src/main/res/drawable/ic_sort_alpha_up.xml @@ -1,16 +1,16 @@ + android:viewportHeight="24"> + android:strokeWidth="0.139935" /> + android:strokeWidth="0.4125" /> diff --git a/app/src/main/res/drawable/ic_sort_none.xml b/app/src/main/res/drawable/ic_sort_none.xml index 856d0c96e..53869f13d 100644 --- a/app/src/main/res/drawable/ic_sort_none.xml +++ b/app/src/main/res/drawable/ic_sort_none.xml @@ -2,9 +2,9 @@ + android:viewportHeight="24"> diff --git a/app/src/main/res/drawable/ic_sort_numeric_down.xml b/app/src/main/res/drawable/ic_sort_numeric_down.xml index ed52e99f2..438f82e8c 100644 --- a/app/src/main/res/drawable/ic_sort_numeric_down.xml +++ b/app/src/main/res/drawable/ic_sort_numeric_down.xml @@ -2,17 +2,17 @@ xmlns:tools="http://schemas.android.com/tools" android:width="24dp" android:height="24dp" + android:tint="?android:attr/colorPrimary" android:viewportWidth="24" - android:viewportHeight="24" - android:tint="?android:attr/colorPrimary"> + android:viewportHeight="24"> + android:strokeWidth="0.139935" /> diff --git a/app/src/main/res/drawable/ic_sort_numeric_up.xml b/app/src/main/res/drawable/ic_sort_numeric_up.xml index 8c1bfaf51..a7d503e79 100644 --- a/app/src/main/res/drawable/ic_sort_numeric_up.xml +++ b/app/src/main/res/drawable/ic_sort_numeric_up.xml @@ -2,17 +2,17 @@ xmlns:tools="http://schemas.android.com/tools" android:width="24dp" android:height="24dp" + android:tint="?attr/colorPrimary" android:viewportWidth="24" - android:viewportHeight="24" - android:tint="?attr/colorPrimary"> + android:viewportHeight="24"> + android:strokeWidth="0.139935" /> diff --git a/app/src/main/res/layout-land/fragment_compact_playback.xml b/app/src/main/res/layout-land/fragment_compact_playback.xml new file mode 100644 index 000000000..283c7a3c7 --- /dev/null +++ b/app/src/main/res/layout-land/fragment_compact_playback.xml @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ 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 new file mode 100644 index 000000000..eaedd8339 --- /dev/null +++ b/app/src/main/res/layout-land/fragment_main.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 8e9e45eac..b53fbfe59 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,14 +1,14 @@ - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_album_detail.xml b/app/src/main/res/layout/fragment_album_detail.xml index 43481953f..fd6590697 100644 --- a/app/src/main/res/layout/fragment_album_detail.xml +++ b/app/src/main/res/layout/fragment_album_detail.xml @@ -62,9 +62,9 @@ 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}" - android:ellipsize="end" app:autoSizeMaxTextSize="@dimen/text_size_detail_header_max" app:autoSizeMinTextSize="@dimen/text_size_min" app:autoSizeStepGranularity="@dimen/text_size_increment" @@ -80,9 +80,9 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginStart="@dimen/margin_medium" + android:background="@drawable/ui_ripple" android:clickable="true" android:focusable="true" - android:background="@drawable/ui_ripple" android:onClick="@{() -> detailModel.doNavToParent()}" android:text="@{album.artist.name}" android:textAppearance="?android:attr/textAppearanceListItem" @@ -108,8 +108,8 @@ style="@style/HeaderText" android:layout_marginTop="@dimen/margin_medium" android:text="@string/label_songs" - app:layout_constraintTop_toBottomOf="@+id/album_details" - app:layout_constraintStart_toStartOf="parent" /> + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/album_details" /> + android:focusable="true"> diff --git a/app/src/main/res/layout/fragment_library.xml b/app/src/main/res/layout/fragment_library.xml index 8cdae18a3..b089b07b2 100644 --- a/app/src/main/res/layout/fragment_library.xml +++ b/app/src/main/res/layout/fragment_library.xml @@ -7,15 +7,15 @@ + android:animateLayoutChanges="true" + android:orientation="vertical"> diff --git a/app/src/main/res/layout/fragment_loading.xml b/app/src/main/res/layout/fragment_loading.xml index eacf7b7f6..30976a2b7 100644 --- a/app/src/main/res/layout/fragment_loading.xml +++ b/app/src/main/res/layout/fragment_loading.xml @@ -1,7 +1,7 @@ - @@ -34,11 +34,11 @@ android:id="@+id/loading_error_icon" android:layout_width="@dimen/size_error_icon" android:layout_height="@dimen/size_error_icon" + android:contentDescription="@string/description_error" android:indeterminateTint="?attr/colorPrimary" android:indeterminateTintMode="src_in" android:src="@drawable/ic_error" android:visibility="gone" - android:contentDescription="@string/description_error" app:layout_constraintBottom_toTopOf="@+id/loading_error_text" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" @@ -49,10 +49,10 @@ android:id="@+id/loading_error_text" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:layout_marginTop="@dimen/margin_small" android:fontFamily="@font/inter" android:textAppearance="?android:attr/textAppearanceMedium" android:textColor="?android:attr/textColorPrimary" - android:layout_marginTop="@dimen/margin_small" app:layout_constraintBottom_toTopOf="@+id/loading_retry_button" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.5" @@ -71,11 +71,11 @@ android:textColor="?attr/colorPrimary" android:visibility="gone" app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintBottom_toTopOf="@+id/loading_grant_button" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/loading_error_text" - app:layout_constraintBottom_toTopOf="@+id/loading_grant_button" app:layout_constraintVertical_bias="0.673" tools:visibility="visible" /> diff --git a/app/src/main/res/layout/fragment_main.xml b/app/src/main/res/layout/fragment_main.xml index b568cad44..f07256641 100644 --- a/app/src/main/res/layout/fragment_main.xml +++ b/app/src/main/res/layout/fragment_main.xml @@ -4,8 +4,6 @@ xmlns:tools="http://schemas.android.com/tools" tools:context=".MainFragment"> - - + android:background="@color/background" + android:fitsSystemWindows="true"> + app:menu="@menu/menu_playback" + app:navigationIcon="@drawable/ic_down" + app:title="@string/label_playback" /> @@ -179,11 +179,11 @@ style="@style/Widget.AppCompat.Button.Borderless" android:layout_width="@dimen/size_play_pause_compact" android:layout_height="@dimen/size_play_pause_compact" - android:src="@drawable/ic_skip_prev_large" - android:contentDescription="@string/description_skip_prev" - android:background="@drawable/ui_unbounded_ripple" android:layout_marginEnd="@dimen/margin_mid_large" + android:background="@drawable/ui_unbounded_ripple" + android:contentDescription="@string/description_skip_prev" android:onClick="@{() -> playbackModel.skipPrev()}" + android:src="@drawable/ic_skip_prev_large" app:layout_constraintBottom_toBottomOf="@+id/playback_play_pause" app:layout_constraintEnd_toStartOf="@+id/playback_play_pause" app:layout_constraintTop_toTopOf="@+id/playback_play_pause" /> @@ -194,10 +194,10 @@ android:layout_width="@dimen/size_play_pause_compact" android:layout_height="@dimen/size_play_pause_compact" android:layout_marginEnd="@dimen/margin_mid_large" - android:src="@drawable/ic_shuffle_large" android:background="@drawable/ui_unbounded_ripple" - android:onClick="@{() -> playbackModel.invertShuffleStatus()}" android:contentDescription="@{playbackModel.isShuffling() ? @string/description_shuffle_off : @string/description_shuffle_on" + android:onClick="@{() -> playbackModel.invertShuffleStatus()}" + android:src="@drawable/ic_shuffle_large" app:layout_constraintBottom_toBottomOf="@+id/playback_play_pause" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="@+id/playback_play_pause" /> @@ -207,14 +207,14 @@ style="@style/Widget.AppCompat.Button.Borderless" android:layout_width="@dimen/size_play_pause_compact" android:layout_height="@dimen/size_play_pause_compact" - android:background="@drawable/ui_unbounded_ripple" - android:src="@drawable/ic_loop_large" android:layout_marginStart="@dimen/margin_mid_large" + android:background="@drawable/ui_unbounded_ripple" + android:contentDescription="@string/description_change_loop" android:onClick="@{() -> playbackModel.incrementLoopStatus()}" + android:src="@drawable/ic_loop_large" app:layout_constraintBottom_toBottomOf="@+id/playback_play_pause" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="@+id/playback_play_pause" - android:contentDescription="@string/description_change_loop" /> + app:layout_constraintTop_toTopOf="@+id/playback_play_pause" /> \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_queue.xml b/app/src/main/res/layout/fragment_queue.xml index be856ecae..4abd0ff13 100644 --- a/app/src/main/res/layout/fragment_queue.xml +++ b/app/src/main/res/layout/fragment_queue.xml @@ -1,15 +1,15 @@ + android:orientation="vertical"> + android:animateLayoutChanges="true" + android:orientation="vertical"> diff --git a/app/src/main/res/layout/item_action_header.xml b/app/src/main/res/layout/item_action_header.xml index 315b9cf30..8e225fe3e 100644 --- a/app/src/main/res/layout/item_action_header.xml +++ b/app/src/main/res/layout/item_action_header.xml @@ -30,7 +30,7 @@ app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="@+id/header_title" - tools:src="@drawable/ic_clear" - tools:ignore="ContentDescription" /> + tools:ignore="ContentDescription" + tools:src="@drawable/ic_clear" /> \ No newline at end of file diff --git a/app/src/main/res/layout/item_album.xml b/app/src/main/res/layout/item_album.xml index 5b7c381ee..e5e8456e2 100644 --- a/app/src/main/res/layout/item_album.xml +++ b/app/src/main/res/layout/item_album.xml @@ -1,6 +1,6 @@ - diff --git a/app/src/main/res/layout/item_album_song.xml b/app/src/main/res/layout/item_album_song.xml index 3429abc77..f20e36794 100644 --- a/app/src/main/res/layout/item_album_song.xml +++ b/app/src/main/res/layout/item_album_song.xml @@ -1,6 +1,6 @@ - @@ -17,14 +17,14 @@ android:id="@+id/song_track" android:layout_width="@dimen/width_track_number" android:layout_height="wrap_content" + android:contentDescription="@{@string/description_track_number(song.track)}" + android:gravity="center" + android:maxLines="1" android:text="@{String.valueOf(song.track)}" android:textAlignment="center" android:textAppearance="?android:attr/textAppearanceListItem" android:textColor="?android:attr/textColorTertiary" android:textSize="@dimen/text_size_track_max" - android:maxLines="1" - android:contentDescription="@{@string/description_track_number(song.track)}" - android:gravity="center" app:autoSizeMaxTextSize="@dimen/text_size_detail_header_max" app:autoSizeMinTextSize="@dimen/text_size_min" app:autoSizeStepGranularity="@dimen/text_size_increment" @@ -48,8 +48,8 @@ - @@ -18,10 +18,10 @@ android:layout_width="@dimen/size_cover_normal" android:layout_height="@dimen/size_cover_normal" android:contentDescription="@{@string/description_artist_image(artist.name)}" + app:artistImage="@{artist}" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" - app:artistImage="@{artist}" tools:src="@drawable/ic_artist" /> - diff --git a/app/src/main/res/layout/item_basic_song.xml b/app/src/main/res/layout/item_basic_song.xml index aab9eb59c..c93be38a9 100644 --- a/app/src/main/res/layout/item_basic_song.xml +++ b/app/src/main/res/layout/item_basic_song.xml @@ -1,6 +1,6 @@ - diff --git a/app/src/main/res/layout/item_genre.xml b/app/src/main/res/layout/item_genre.xml index c047860f0..1b431bc51 100644 --- a/app/src/main/res/layout/item_genre.xml +++ b/app/src/main/res/layout/item_genre.xml @@ -1,6 +1,6 @@ - @@ -17,8 +17,8 @@ android:id="@+id/genre_image" android:layout_width="@dimen/size_cover_normal" android:layout_height="@dimen/size_cover_normal" - app:genreImage="@{genre}" android:contentDescription="@{@string/description_genre_image(genre.name)}" + app:genreImage="@{genre}" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" diff --git a/app/src/main/res/layout/item_genre_artist.xml b/app/src/main/res/layout/item_genre_artist.xml index 108ad7ce2..3a7f65a46 100644 --- a/app/src/main/res/layout/item_genre_artist.xml +++ b/app/src/main/res/layout/item_genre_artist.xml @@ -1,6 +1,6 @@ - @@ -18,10 +18,10 @@ android:layout_width="@dimen/size_cover_large" android:layout_height="@dimen/size_cover_large" android:contentDescription="@{@string/description_artist_image(artist.name)}" + app:artistImage="@{artist}" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" - app:artistImage="@{artist}" tools:src="@drawable/ic_artist" /> - diff --git a/app/src/main/res/layout/item_song.xml b/app/src/main/res/layout/item_song.xml index 1edc324a0..8088a2575 100644 --- a/app/src/main/res/layout/item_song.xml +++ b/app/src/main/res/layout/item_song.xml @@ -1,6 +1,6 @@ - @@ -50,10 +50,10 @@ + android:title="@string/label_queue_add" + app:showAsAction="never" /> \ No newline at end of file diff --git a/app/src/main/res/menu/menu_album_song_actions.xml b/app/src/main/res/menu/menu_album_song_actions.xml index 1b4bb6df0..a2abddad5 100644 --- a/app/src/main/res/menu/menu_album_song_actions.xml +++ b/app/src/main/res/menu/menu_album_song_actions.xml @@ -2,14 +2,14 @@ + android:icon="@drawable/ic_queue_add" + android:title="@string/label_queue_add" /> + android:icon="@drawable/ic_artist" + android:title="@string/label_go_artist" /> + android:icon="@drawable/ic_artist" + android:title="@string/label_play_artist" /> \ No newline at end of file diff --git a/app/src/main/res/menu/menu_detail.xml b/app/src/main/res/menu/menu_detail.xml index e0dda942f..964c2565d 100644 --- a/app/src/main/res/menu/menu_detail.xml +++ b/app/src/main/res/menu/menu_detail.xml @@ -8,7 +8,7 @@ app:showAsAction="ifRoom" /> \ No newline at end of file diff --git a/app/src/main/res/menu/menu_library.xml b/app/src/main/res/menu/menu_library.xml index b42802fed..bc4563101 100644 --- a/app/src/main/res/menu/menu_library.xml +++ b/app/src/main/res/menu/menu_library.xml @@ -12,18 +12,18 @@ + android:title="@string/label_sort_none" /> + android:title="@string/label_sort_alpha_down" /> + android:title="@string/label_sort_alpha_up" /> \ No newline at end of file diff --git a/app/src/main/res/menu/menu_nav.xml b/app/src/main/res/menu/menu_nav.xml index d4abeca87..d7c808007 100644 --- a/app/src/main/res/menu/menu_nav.xml +++ b/app/src/main/res/menu/menu_nav.xml @@ -2,14 +2,14 @@ + android:icon="@drawable/ic_library" + android:title="@string/label_library" /> + android:icon="@drawable/ic_song" + android:title="@string/label_songs" /> + android:icon="@drawable/ic_settings" + android:title="@string/setting_title" /> \ No newline at end of file diff --git a/app/src/main/res/menu/menu_song_actions.xml b/app/src/main/res/menu/menu_song_actions.xml index a4585fd26..47f54a960 100644 --- a/app/src/main/res/menu/menu_song_actions.xml +++ b/app/src/main/res/menu/menu_song_actions.xml @@ -2,18 +2,18 @@ + android:icon="@drawable/ic_queue_add" + android:title="@string/label_queue_add" /> + android:icon="@drawable/ic_song" + android:title="@string/label_play_all_songs" /> + android:icon="@drawable/ic_artist" + android:title="@string/label_play_artist" /> + android:icon="@drawable/ic_album" + android:title="@string/label_play_album" /> \ No newline at end of file diff --git a/app/src/main/res/navigation/nav_explore.xml b/app/src/main/res/navigation/nav_explore.xml index a3d616da6..6697d873a 100644 --- a/app/src/main/res/navigation/nav_explore.xml +++ b/app/src/main/res/navigation/nav_explore.xml @@ -11,25 +11,25 @@ tools:layout="@layout/fragment_library"> + app:popExitAnim="@anim/nav_default_pop_exit_anim" /> + app:popExitAnim="@anim/nav_default_pop_exit_anim" /> + app:popExitAnim="@anim/nav_default_pop_exit_anim" /> + app:popExitAnim="@anim/nav_default_pop_exit_anim" /> + app:popExitAnim="@anim/nav_default_pop_exit_anim" /> + app:popExitAnim="@anim/nav_default_pop_exit_anim" /> diff --git a/app/src/main/res/navigation/nav_main.xml b/app/src/main/res/navigation/nav_main.xml index db9c67801..2268a0d01 100644 --- a/app/src/main/res/navigation/nav_main.xml +++ b/app/src/main/res/navigation/nav_main.xml @@ -13,11 +13,11 @@ app:destination="@id/main_fragment" app:enterAnim="@anim/nav_default_enter_anim" app:exitAnim="@anim/nav_default_exit_anim" + app:launchSingleTop="true" app:popEnterAnim="@anim/nav_default_pop_enter_anim" app:popExitAnim="@anim/nav_default_pop_exit_anim" app:popUpTo="@id/loading_fragment" - app:popUpToInclusive="true" - app:launchSingleTop="true" /> + app:popUpToInclusive="true" /> 4dp + 4.2dp + 8dp 4dp \ No newline at end of file diff --git a/app/src/main/res/xml-v27/prefs_main.xml b/app/src/main/res/xml-v27/prefs_main.xml index a3b6a678a..8d1280385 100644 --- a/app/src/main/res/xml-v27/prefs_main.xml +++ b/app/src/main/res/xml-v27/prefs_main.xml @@ -2,131 +2,131 @@ + android:layout="@layout/item_header" + android:title="@string/setting_ui"> + app:defaultValue="false" + app:iconSpaceReserved="false" + app:key="KEY_EDGE" + app:summary="@string/setting_edge_desc" /> + android:layout="@layout/item_header" + android:title="@string/setting_display"> + app:key="KEY_COLOR_NOTIF" + app:summary="@string/setting_color_desc" /> + app:defaultValue="false" + app:iconSpaceReserved="false" + app:key="KEY_ALT_NOTIF_ACTION" + app:summaryOff="@string/setting_use_alt_loop" + app:summaryOn="@string/setting_use_alt_shuffle" /> + android:layout="@layout/item_header" + android:title="@string/setting_playback"> + android:layout="@layout/item_header" + android:title="@string/setting_behavior"> + app:iconSpaceReserved="false" + app:key="KEY_KEEP_SHUFFLE" + app:summary="@string/setting_behavior_keep_shuffle_desc" /> + app:key="KEY_PREV_REWIND" + app:summary="@string/setting_behavior_rewind_prev_desc" /> + app:key="KEY_REWIND_THRESHOLD" + app:min="@integer/rewind_threshold_min" + app:showSeekBarValue="true" + app:summary="@string/setting_behavior_rewind_threshold_desc" /> @@ -136,10 +136,10 @@ app:layout="@layout/item_header"> + app:iconSpaceReserved="false" + app:key="KEY_SAVE_STATE" + app:summary="@string/debug_state_save_desc" /> \ No newline at end of file diff --git a/app/src/main/res/xml/prefs_main.xml b/app/src/main/res/xml/prefs_main.xml index f1e4ab2fd..7b410417c 100644 --- a/app/src/main/res/xml/prefs_main.xml +++ b/app/src/main/res/xml/prefs_main.xml @@ -2,123 +2,123 @@ + android:layout="@layout/item_header" + android:title="@string/setting_ui"> + android:layout="@layout/item_header" + android:title="@string/setting_display"> + app:key="KEY_COLOR_NOTIF" + app:summary="@string/setting_color_desc" /> + app:defaultValue="false" + app:iconSpaceReserved="false" + app:key="KEY_ALT_NOTIF_ACTION" + app:summaryOff="@string/setting_use_alt_loop" + app:summaryOn="@string/setting_use_alt_shuffle" /> + android:layout="@layout/item_header" + android:title="@string/setting_playback"> + android:layout="@layout/item_header" + android:title="@string/setting_behavior"> + app:iconSpaceReserved="false" + app:key="KEY_KEEP_SHUFFLE" + app:summary="@string/setting_behavior_keep_shuffle_desc" /> + app:key="KEY_PREV_REWIND" + app:summary="@string/setting_behavior_rewind_prev_desc" /> + app:key="KEY_REWIND_THRESHOLD" + app:min="@integer/rewind_threshold_min" + app:showSeekBarValue="true" + app:summary="@string/setting_behavior_rewind_threshold_desc" /> @@ -128,10 +128,10 @@ app:layout="@layout/item_header"> + app:iconSpaceReserved="false" + app:key="KEY_SAVE_STATE" + app:summary="@string/debug_state_save_desc" /> \ No newline at end of file