diff --git a/app/src/main/java/org/oxycblt/auxio/MainActivity.kt b/app/src/main/java/org/oxycblt/auxio/MainActivity.kt index b371ee7f7..c9d4b10d0 100644 --- a/app/src/main/java/org/oxycblt/auxio/MainActivity.kt +++ b/app/src/main/java/org/oxycblt/auxio/MainActivity.kt @@ -12,9 +12,9 @@ import androidx.databinding.DataBindingUtil import org.oxycblt.auxio.databinding.ActivityMainBinding import org.oxycblt.auxio.playback.PlaybackService import org.oxycblt.auxio.settings.SettingsManager -import org.oxycblt.auxio.utils.accent -import org.oxycblt.auxio.utils.handleTransparentSystemBars -import org.oxycblt.auxio.utils.toColor +import org.oxycblt.auxio.ui.accent +import org.oxycblt.auxio.ui.handleTransparentSystemBars +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] diff --git a/app/src/main/java/org/oxycblt/auxio/MainFragment.kt b/app/src/main/java/org/oxycblt/auxio/MainFragment.kt index 6d62e0109..cf353f6f8 100644 --- a/app/src/main/java/org/oxycblt/auxio/MainFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/MainFragment.kt @@ -19,10 +19,10 @@ import org.oxycblt.auxio.music.Artist import org.oxycblt.auxio.music.MusicStore 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 org.oxycblt.auxio.ui.accent +import org.oxycblt.auxio.ui.getTransparentAccent +import org.oxycblt.auxio.ui.isLandscape +import org.oxycblt.auxio.ui.toColor import kotlin.IllegalArgumentException class MainFragment : Fragment() { diff --git a/app/src/main/java/org/oxycblt/auxio/database/PlaybackState.kt b/app/src/main/java/org/oxycblt/auxio/database/PlaybackState.kt index 1589e16b6..dc65094bb 100644 --- a/app/src/main/java/org/oxycblt/auxio/database/PlaybackState.kt +++ b/app/src/main/java/org/oxycblt/auxio/database/PlaybackState.kt @@ -8,7 +8,6 @@ package org.oxycblt.auxio.database * @property index - The current index in the queue. * @property mode - The integer form of the current [org.oxycblt.auxio.playback.state.PlaybackMode] * @property isShuffling - A bool for if the queue was shuffled - * @property shuffleSeed - A long for the seed used to shuffle the queue [Used for quick-restore] * @property loopMode - The integer form of the current [org.oxycblt.auxio.playback.state.LoopMode] * @property inUserQueue - A bool for if the state was currently playing from the user queue. * @author OxygenCobalt @@ -21,7 +20,6 @@ data class PlaybackState( val index: Int, val mode: Int, val isShuffling: Boolean, - val shuffleSeed: Long, val loopMode: Int, val inUserQueue: Boolean ) { @@ -33,7 +31,6 @@ data class PlaybackState( const val COLUMN_INDEX = "state_index" const val COLUMN_MODE = "mode" const val COLUMN_IS_SHUFFLING = "is_shuffling" - const val COLUMN_SHUFFLE_SEED = "shuffle_seed" const val COLUMN_LOOP_MODE = "loop_mode" const val COLUMN_IN_USER_QUEUE = "is_user_queue" } diff --git a/app/src/main/java/org/oxycblt/auxio/database/PlaybackStateDatabase.kt b/app/src/main/java/org/oxycblt/auxio/database/PlaybackStateDatabase.kt index 58ef8578f..ae0505525 100644 --- a/app/src/main/java/org/oxycblt/auxio/database/PlaybackStateDatabase.kt +++ b/app/src/main/java/org/oxycblt/auxio/database/PlaybackStateDatabase.kt @@ -51,7 +51,6 @@ class PlaybackStateDatabase(context: Context) : command.append("${PlaybackState.COLUMN_INDEX} INTEGER NOT NULL,") command.append("${PlaybackState.COLUMN_MODE} INTEGER NOT NULL,") command.append("${PlaybackState.COLUMN_IS_SHUFFLING} BOOLEAN NOT NULL,") - command.append("${PlaybackState.COLUMN_SHUFFLE_SEED} LONG NOT NULL,") command.append("${PlaybackState.COLUMN_LOOP_MODE} INTEGER NOT NULL,") command.append("${PlaybackState.COLUMN_IN_USER_QUEUE} BOOLEAN NOT NULL)") @@ -88,7 +87,7 @@ class PlaybackStateDatabase(context: Context) : try { database.beginTransaction() - val stateData = ContentValues(10) + val stateData = ContentValues(9) stateData.put(PlaybackState.COLUMN_ID, state.id) stateData.put(PlaybackState.COLUMN_SONG_ID, state.songId) @@ -97,7 +96,6 @@ class PlaybackStateDatabase(context: Context) : stateData.put(PlaybackState.COLUMN_INDEX, state.index) stateData.put(PlaybackState.COLUMN_MODE, state.mode) stateData.put(PlaybackState.COLUMN_IS_SHUFFLING, state.isShuffling) - stateData.put(PlaybackState.COLUMN_SHUFFLE_SEED, state.shuffleSeed) stateData.put(PlaybackState.COLUMN_LOOP_MODE, state.loopMode) stateData.put(PlaybackState.COLUMN_IN_USER_QUEUE, state.inUserQueue) @@ -139,8 +137,6 @@ class PlaybackStateDatabase(context: Context) : val modeIndex = cursor.getColumnIndexOrThrow(PlaybackState.COLUMN_MODE) val isShufflingIndex = cursor.getColumnIndexOrThrow(PlaybackState.COLUMN_IS_SHUFFLING) - val shuffleSeedIndex = - cursor.getColumnIndexOrThrow(PlaybackState.COLUMN_SHUFFLE_SEED) val loopModeIndex = cursor.getColumnIndexOrThrow(PlaybackState.COLUMN_LOOP_MODE) val inUserQueueIndex = cursor.getColumnIndexOrThrow(PlaybackState.COLUMN_IN_USER_QUEUE) @@ -155,7 +151,6 @@ class PlaybackStateDatabase(context: Context) : index = cursor.getInt(indexIndex), mode = cursor.getInt(modeIndex), isShuffling = cursor.getInt(isShufflingIndex) == 1, - shuffleSeed = cursor.getLong(shuffleSeedIndex), loopMode = cursor.getInt(loopModeIndex), inUserQueue = cursor.getInt(inUserQueueIndex) == 1 ) 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 b78a72174..d84ccaf7a 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/AlbumDetailFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/AlbumDetailFragment.kt @@ -17,9 +17,9 @@ import org.oxycblt.auxio.music.MusicStore import org.oxycblt.auxio.music.Song import org.oxycblt.auxio.playback.PlaybackViewModel import org.oxycblt.auxio.playback.state.PlaybackMode -import org.oxycblt.auxio.utils.createToast -import org.oxycblt.auxio.utils.disable -import org.oxycblt.auxio.utils.setupAlbumSongActions +import org.oxycblt.auxio.ui.createToast +import org.oxycblt.auxio.ui.disable +import org.oxycblt.auxio.ui.setupAlbumSongActions /** * The [DetailFragment] for an album. 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 e1284c0a5..274637e91 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/ArtistDetailFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/ArtistDetailFragment.kt @@ -15,8 +15,8 @@ import org.oxycblt.auxio.logD import org.oxycblt.auxio.music.Artist import org.oxycblt.auxio.music.MusicStore import org.oxycblt.auxio.playback.PlaybackViewModel -import org.oxycblt.auxio.utils.disable -import org.oxycblt.auxio.utils.setupAlbumActions +import org.oxycblt.auxio.ui.disable +import org.oxycblt.auxio.ui.setupAlbumActions /** * The [DetailFragment] for an artist. 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 8aaaca6b3..db3ab6518 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/GenreDetailFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/GenreDetailFragment.kt @@ -14,8 +14,8 @@ import org.oxycblt.auxio.detail.adapters.GenreArtistAdapter import org.oxycblt.auxio.logD import org.oxycblt.auxio.music.MusicStore import org.oxycblt.auxio.playback.PlaybackViewModel -import org.oxycblt.auxio.utils.disable -import org.oxycblt.auxio.utils.setupArtistActions +import org.oxycblt.auxio.ui.disable +import org.oxycblt.auxio.ui.setupArtistActions /** * The [DetailFragment] for a genre. diff --git a/app/src/main/java/org/oxycblt/auxio/detail/adapters/AlbumSongAdapter.kt b/app/src/main/java/org/oxycblt/auxio/detail/adapters/AlbumSongAdapter.kt index e6bfa8347..59bd1a091 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/adapters/AlbumSongAdapter.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/adapters/AlbumSongAdapter.kt @@ -9,8 +9,8 @@ import org.oxycblt.auxio.databinding.ItemAlbumSongBinding import org.oxycblt.auxio.music.Song import org.oxycblt.auxio.recycler.DiffCallback import org.oxycblt.auxio.recycler.viewholders.BaseViewHolder -import org.oxycblt.auxio.utils.accent -import org.oxycblt.auxio.utils.toColor +import org.oxycblt.auxio.ui.accent +import org.oxycblt.auxio.ui.toColor /** * An adapter for displaying the [Song]s of an album. diff --git a/app/src/main/java/org/oxycblt/auxio/library/LibraryFragment.kt b/app/src/main/java/org/oxycblt/auxio/library/LibraryFragment.kt index 554e51931..b3e175042 100644 --- a/app/src/main/java/org/oxycblt/auxio/library/LibraryFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/library/LibraryFragment.kt @@ -28,13 +28,13 @@ import org.oxycblt.auxio.music.Header import org.oxycblt.auxio.music.Song import org.oxycblt.auxio.playback.PlaybackViewModel import org.oxycblt.auxio.settings.SettingsManager -import org.oxycblt.auxio.utils.applyColor -import org.oxycblt.auxio.utils.isLandscape -import org.oxycblt.auxio.utils.resolveAttr -import org.oxycblt.auxio.utils.setupAlbumActions -import org.oxycblt.auxio.utils.setupArtistActions -import org.oxycblt.auxio.utils.setupGenreActions -import org.oxycblt.auxio.utils.setupSongActions +import org.oxycblt.auxio.ui.applyColor +import org.oxycblt.auxio.ui.isLandscape +import org.oxycblt.auxio.ui.resolveAttr +import org.oxycblt.auxio.ui.setupAlbumActions +import org.oxycblt.auxio.ui.setupArtistActions +import org.oxycblt.auxio.ui.setupGenreActions +import org.oxycblt.auxio.ui.setupSongActions /** * A [Fragment] that shows a custom list of [Genre], [Artist], or [Album] data. Also allows for diff --git a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackFragment.kt b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackFragment.kt index 074432792..cd8a4a6eb 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackFragment.kt @@ -16,8 +16,8 @@ import org.oxycblt.auxio.R import org.oxycblt.auxio.databinding.FragmentPlaybackBinding import org.oxycblt.auxio.logD import org.oxycblt.auxio.playback.state.LoopMode -import org.oxycblt.auxio.utils.accent -import org.oxycblt.auxio.utils.toColor +import org.oxycblt.auxio.ui.accent +import org.oxycblt.auxio.ui.toColor /** * A [Fragment] that displays more information about the song, along with more media controls. diff --git a/app/src/main/java/org/oxycblt/auxio/playback/state/PlaybackStateManager.kt b/app/src/main/java/org/oxycblt/auxio/playback/state/PlaybackStateManager.kt index 4047a6665..6d9657b7b 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/state/PlaybackStateManager.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/state/PlaybackStateManager.kt @@ -564,7 +564,6 @@ class PlaybackStateManager private constructor() { index = mIndex, mode = intMode, isShuffling = mIsShuffling, - shuffleSeed = mShuffleSeed, loopMode = intLoopMode, inUserQueue = mIsInUserQueue ) @@ -598,7 +597,6 @@ class PlaybackStateManager private constructor() { mMode = PlaybackMode.fromInt(playbackState.mode) ?: PlaybackMode.ALL_SONGS mLoopMode = LoopMode.fromInt(playbackState.loopMode) ?: LoopMode.NONE mIsShuffling = playbackState.isShuffling - mShuffleSeed = playbackState.shuffleSeed mIsInUserQueue = playbackState.inUserQueue mIndex = playbackState.index diff --git a/app/src/main/java/org/oxycblt/auxio/recycler/NoLeakThumbView.kt b/app/src/main/java/org/oxycblt/auxio/recycler/NoLeakThumbView.kt index bd0e3e483..536bf7ba0 100644 --- a/app/src/main/java/org/oxycblt/auxio/recycler/NoLeakThumbView.kt +++ b/app/src/main/java/org/oxycblt/auxio/recycler/NoLeakThumbView.kt @@ -22,8 +22,8 @@ import androidx.dynamicanimation.animation.SpringForce import com.reddit.indicatorfastscroll.FastScrollItemIndicator import com.reddit.indicatorfastscroll.FastScrollerView import org.oxycblt.auxio.R -import org.oxycblt.auxio.utils.accent -import org.oxycblt.auxio.utils.toColor +import org.oxycblt.auxio.ui.accent +import org.oxycblt.auxio.ui.toColor /** * A semi-copy, semi-custom implementation of [com.reddit.indicatorfastscroll.FastScrollerThumbView] diff --git a/app/src/main/java/org/oxycblt/auxio/settings/SettingsListFragment.kt b/app/src/main/java/org/oxycblt/auxio/settings/SettingsListFragment.kt index da0334a77..24ea66103 100644 --- a/app/src/main/java/org/oxycblt/auxio/settings/SettingsListFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/settings/SettingsListFragment.kt @@ -18,10 +18,10 @@ import org.oxycblt.auxio.logD import org.oxycblt.auxio.playback.PlaybackViewModel import org.oxycblt.auxio.recycler.DisplayMode import org.oxycblt.auxio.settings.adapters.AccentAdapter -import org.oxycblt.auxio.utils.ACCENTS -import org.oxycblt.auxio.utils.accent -import org.oxycblt.auxio.utils.createToast -import org.oxycblt.auxio.utils.getDetailedAccentSummary +import org.oxycblt.auxio.ui.ACCENTS +import org.oxycblt.auxio.ui.accent +import org.oxycblt.auxio.ui.createToast +import org.oxycblt.auxio.ui.getDetailedAccentSummary @Suppress("UNUSED") class SettingsListFragment : PreferenceFragmentCompat() { diff --git a/app/src/main/java/org/oxycblt/auxio/settings/SettingsManager.kt b/app/src/main/java/org/oxycblt/auxio/settings/SettingsManager.kt index b398df1b3..e6947018e 100644 --- a/app/src/main/java/org/oxycblt/auxio/settings/SettingsManager.kt +++ b/app/src/main/java/org/oxycblt/auxio/settings/SettingsManager.kt @@ -6,7 +6,7 @@ import androidx.preference.PreferenceManager import org.oxycblt.auxio.playback.state.PlaybackMode import org.oxycblt.auxio.recycler.DisplayMode import org.oxycblt.auxio.recycler.SortMode -import org.oxycblt.auxio.utils.ACCENTS +import org.oxycblt.auxio.ui.ACCENTS /** * Wrapper around the [SharedPreferences] class that writes & reads values without a context. diff --git a/app/src/main/java/org/oxycblt/auxio/settings/adapters/AccentAdapter.kt b/app/src/main/java/org/oxycblt/auxio/settings/adapters/AccentAdapter.kt index bff15d3de..133dc9354 100644 --- a/app/src/main/java/org/oxycblt/auxio/settings/adapters/AccentAdapter.kt +++ b/app/src/main/java/org/oxycblt/auxio/settings/adapters/AccentAdapter.kt @@ -6,10 +6,10 @@ import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView import org.oxycblt.auxio.R import org.oxycblt.auxio.databinding.ItemAccentBinding -import org.oxycblt.auxio.utils.ACCENTS -import org.oxycblt.auxio.utils.accent -import org.oxycblt.auxio.utils.getAccentItemSummary -import org.oxycblt.auxio.utils.toColor +import org.oxycblt.auxio.ui.ACCENTS +import org.oxycblt.auxio.ui.accent +import org.oxycblt.auxio.ui.getAccentItemSummary +import org.oxycblt.auxio.ui.toColor class AccentAdapter( private val doOnAccentConfirm: (accent: Pair) -> Unit diff --git a/app/src/main/java/org/oxycblt/auxio/songs/SongsFragment.kt b/app/src/main/java/org/oxycblt/auxio/songs/SongsFragment.kt index 260f9f943..4af425156 100644 --- a/app/src/main/java/org/oxycblt/auxio/songs/SongsFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/songs/SongsFragment.kt @@ -18,8 +18,8 @@ import org.oxycblt.auxio.logD import org.oxycblt.auxio.music.MusicStore import org.oxycblt.auxio.playback.PlaybackViewModel import org.oxycblt.auxio.settings.SettingsManager -import org.oxycblt.auxio.utils.isLandscape -import org.oxycblt.auxio.utils.setupSongActions +import org.oxycblt.auxio.ui.isLandscape +import org.oxycblt.auxio.ui.setupSongActions import kotlin.math.ceil /** diff --git a/app/src/main/java/org/oxycblt/auxio/utils/InterfaceUtils.kt b/app/src/main/java/org/oxycblt/auxio/ui/InterfaceUtils.kt similarity index 99% rename from app/src/main/java/org/oxycblt/auxio/utils/InterfaceUtils.kt rename to app/src/main/java/org/oxycblt/auxio/ui/InterfaceUtils.kt index 25840a4e9..721a905d2 100644 --- a/app/src/main/java/org/oxycblt/auxio/utils/InterfaceUtils.kt +++ b/app/src/main/java/org/oxycblt/auxio/ui/InterfaceUtils.kt @@ -1,4 +1,4 @@ -package org.oxycblt.auxio.utils +package org.oxycblt.auxio.ui import android.annotation.TargetApi import android.content.Context diff --git a/app/src/main/java/org/oxycblt/auxio/utils/ThemeUtils.kt b/app/src/main/java/org/oxycblt/auxio/ui/ThemeUtils.kt similarity index 99% rename from app/src/main/java/org/oxycblt/auxio/utils/ThemeUtils.kt rename to app/src/main/java/org/oxycblt/auxio/ui/ThemeUtils.kt index 62f27f028..54755071e 100644 --- a/app/src/main/java/org/oxycblt/auxio/utils/ThemeUtils.kt +++ b/app/src/main/java/org/oxycblt/auxio/ui/ThemeUtils.kt @@ -1,4 +1,4 @@ -package org.oxycblt.auxio.utils +package org.oxycblt.auxio.ui import android.content.Context import android.content.res.Resources diff --git a/app/src/main/res/layout-land/fragment_playback.xml b/app/src/main/res/layout-land/fragment_playback.xml index 4b3e95b62..a4fee3c96 100644 --- a/app/src/main/res/layout-land/fragment_playback.xml +++ b/app/src/main/res/layout-land/fragment_playback.xml @@ -63,7 +63,7 @@ android:textAppearance="@style/TextAppearance.MaterialComponents.Headline6" app:layout_constraintBottom_toTopOf="@+id/playback_artist" app:layout_constraintStart_toEndOf="@+id/playback_cover" - app:layout_constraintTop_toTopOf="@+id/playback_cover" + app:layout_constraintTop_toBottomOf="@+id/playback_toolbar" app:layout_constraintVertical_chainStyle="packed" tools:text="Song Name" /> @@ -81,7 +81,6 @@ android:textColor="?android:attr/textColorSecondary" app:layout_constraintBottom_toTopOf="@+id/playback_album" app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toEndOf="@+id/playback_cover" app:layout_constraintTop_toBottomOf="@+id/playback_song" tools:text="Artist Name" /> @@ -92,7 +91,6 @@ android:layout_height="wrap_content" android:layout_marginStart="@dimen/margin_mid_large" android:layout_marginEnd="@dimen/margin_mid_large" - android:layout_marginBottom="16dp" android:ellipsize="end" android:onClick="@{() -> playbackModel.navToItem(playbackModel.song.album)}" android:singleLine="true" @@ -101,7 +99,6 @@ android:textColor="?android:attr/textColorSecondary" app:layout_constraintBottom_toTopOf="@+id/playback_seek_bar" app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toEndOf="@+id/playback_cover" app:layout_constraintTop_toBottomOf="@+id/playback_artist" tools:text="Album Name" /> @@ -110,6 +107,7 @@ android:id="@+id/playback_seek_bar" android:layout_width="0dp" android:layout_height="wrap_content" + android:layout_marginTop="@dimen/margin_medium" android:clickable="true" android:focusable="true" android:paddingStart="@dimen/margin_mid_large" @@ -121,7 +119,6 @@ android:thumbTint="?attr/colorPrimary" app:layout_constraintBottom_toTopOf="@+id/playback_duration_current" app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toEndOf="@+id/playback_cover" app:layout_constraintTop_toBottomOf="@+id/playback_album" tools:progress="70" /> @@ -131,7 +128,6 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="@dimen/margin_mid_large" - android:layout_marginBottom="@dimen/margin_medium" app:layout_constraintBottom_toTopOf="@+id/playback_play_pause" app:layout_constraintStart_toEndOf="@+id/playback_cover" app:layout_constraintTop_toBottomOf="@+id/playback_seek_bar" @@ -142,26 +138,27 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginEnd="@dimen/margin_mid_large" - android:layout_marginBottom="@dimen/margin_medium" android:text="@{song.formattedDuration}" - app:layout_constraintBottom_toTopOf="@+id/playback_play_pause" app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toBottomOf="@+id/playback_seek_bar" tools:text="16:16" /> @@ -170,12 +167,13 @@ style="@style/Widget.AppCompat.Button.Borderless" android:layout_width="@dimen/size_play_pause_compact" android:layout_height="@dimen/size_play_pause_compact" - android:layout_marginStart="@dimen/margin_mid_large" + android:layout_marginEnd="@dimen/margin_large" android:background="@drawable/ui_unbounded_ripple" android:contentDescription="@string/description_skip_next" android:onClick="@{() -> playbackModel.skipNext()}" android:src="@drawable/ic_skip_next_large" app:layout_constraintBottom_toBottomOf="@+id/playback_play_pause" + app:layout_constraintEnd_toStartOf="@+id/playback_shuffle" app:layout_constraintStart_toEndOf="@+id/playback_play_pause" app:layout_constraintTop_toTopOf="@+id/playback_play_pause" /> @@ -184,13 +182,14 @@ style="@style/Widget.AppCompat.Button.Borderless" android:layout_width="@dimen/size_play_pause_compact" android:layout_height="@dimen/size_play_pause_compact" - android:layout_marginEnd="@dimen/margin_mid_large" + android:layout_marginStart="@dimen/margin_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_constraintStart_toEndOf="@+id/playback_loop" app:layout_constraintTop_toTopOf="@+id/playback_play_pause" /> + app:layout_constraintTop_toTopOf="@+id/playback_skip_next" /> + app:layout_constraintHorizontal_chainStyle="packed" + app:layout_constraintStart_toStartOf="@+id/playback_duration_current" + app:layout_constraintTop_toTopOf="@+id/playback_skip_prev" /> \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_playback.xml b/app/src/main/res/layout/fragment_playback.xml index 05f671b3a..93dd2976c 100644 --- a/app/src/main/res/layout/fragment_playback.xml +++ b/app/src/main/res/layout/fragment_playback.xml @@ -148,6 +148,8 @@ android:id="@+id/playback_play_pause" android:layout_width="@dimen/size_play_pause" android:layout_height="@dimen/size_play_pause" + android:layout_marginStart="@dimen/margin_large" + android:layout_marginEnd="@dimen/margin_large" android:layout_marginBottom="@dimen/margin_medium" android:background="@drawable/ui_circular_button" android:backgroundTint="?attr/colorPrimary" @@ -156,8 +158,8 @@ android:onClick="@{() -> playbackModel.invertPlayingStatus()}" android:tint="@color/background" app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" + app:layout_constraintEnd_toStartOf="@+id/playback_skip_next" + app:layout_constraintStart_toEndOf="@+id/playback_skip_prev" tools:src="@drawable/ic_play_to_pause" /> @@ -179,13 +182,14 @@ style="@style/Widget.AppCompat.Button.Borderless" android:layout_width="@dimen/size_play_pause_compact" android:layout_height="@dimen/size_play_pause_compact" - android:layout_marginEnd="@dimen/margin_mid_large" + android:layout_marginStart="@dimen/margin_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_constraintStart_toEndOf="@+id/playback_loop" app:layout_constraintTop_toTopOf="@+id/playback_play_pause" /> + app:layout_constraintTop_toTopOf="@+id/playback_skip_next" /> + app:layout_constraintHorizontal_chainStyle="packed" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="@+id/playback_skip_prev" /> \ No newline at end of file