From 7995d3ac9881ee2ec9e84b525d7699d18a606948 Mon Sep 17 00:00:00 2001 From: Alexander Capehart Date: Wed, 17 Apr 2024 22:07:50 -0600 Subject: [PATCH] ui: material 3.1 (first draft) I'm mostly cowboying through patching things to look nice. I'll re-add round mode configs and actually try to migrate to standard spacing later. --- app/src/main/ic_launcher-playstore.png | Bin 0 -> 16098 bytes .../java/org/oxycblt/auxio/MainActivity.kt | 2 +- .../java/org/oxycblt/auxio/MainFragment.kt | 5 +-- .../detail/list/PlaylistDetailListAdapter.kt | 5 +-- .../java/org/oxycblt/auxio/image/CoverView.kt | 4 +- .../auxio/music/service/MediaItemBrowser.kt | 21 ++-------- .../auxio/playback/PlaybackBarFragment.kt | 4 ++ .../playback/PlaybackBottomSheetBehavior.kt | 5 +-- .../auxio/playback/queue/QueueAdapter.kt | 9 ++-- .../queue/QueueBottomSheetBehavior.kt | 5 +-- .../service/MediaSessionServiceFragment.kt | 2 +- .../playback/ui/AnimatedMaterialButton.kt | 4 ++ .../java/org/oxycblt/auxio/tasker/Tasker.kt | 19 ++++++++- app/src/main/res/drawable/ic_pause_48.xml | 11 +++++ app/src/main/res/drawable/ic_play_48.xml | 11 +++++ app/src/main/res/drawable/ic_skip_next_40.xml | 11 +++++ app/src/main/res/drawable/ic_skip_prev_40.xml | 11 +++++ app/src/main/res/drawable/ic_splash_anim.xml | 20 +-------- .../res/drawable/sel_playing_state_48.xml | 5 +++ .../layout-h480dp/fragment_playback_panel.xml | 17 +++++--- .../res/layout-w600dp-land/fragment_main.xml | 1 + app/src/main/res/layout/fragment_main.xml | 3 +- app/src/main/res/layout/view_seek_bar.xml | 5 ++- app/src/main/res/values/dimens.xml | 6 +-- app/src/main/res/values/styles_core.xml | 2 +- app/src/main/res/values/styles_ui.xml | 39 ++++++++++++------ 26 files changed, 142 insertions(+), 85 deletions(-) create mode 100644 app/src/main/ic_launcher-playstore.png create mode 100644 app/src/main/res/drawable/ic_pause_48.xml create mode 100644 app/src/main/res/drawable/ic_play_48.xml create mode 100644 app/src/main/res/drawable/ic_skip_next_40.xml create mode 100644 app/src/main/res/drawable/ic_skip_prev_40.xml create mode 100644 app/src/main/res/drawable/sel_playing_state_48.xml diff --git a/app/src/main/ic_launcher-playstore.png b/app/src/main/ic_launcher-playstore.png new file mode 100644 index 0000000000000000000000000000000000000000..7d8c77dc1c73e6c715285862e01533af1aca189c GIT binary patch literal 16098 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 @@ -277,7 +276,7 @@ class MainFragment : // Reduce playback sheet elevation as it expands. This involves both updating the // shadow elevation for older versions, and fading out the background drawable // containing the elevation overlay. - binding.playbackSheet.translationZ = elevationNormal * outPlaybackRatio + binding.playbackSheet.elevation = elevationNormal * outPlaybackRatio playbackSheetBehavior.sheetBackgroundDrawable.alpha = (outPlaybackRatio * 255).toInt() // Fade out the playback bar as the panel expands. diff --git a/app/src/main/java/org/oxycblt/auxio/detail/list/PlaylistDetailListAdapter.kt b/app/src/main/java/org/oxycblt/auxio/detail/list/PlaylistDetailListAdapter.kt index ca8a0657b..334f39703 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/list/PlaylistDetailListAdapter.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/list/PlaylistDetailListAdapter.kt @@ -30,7 +30,6 @@ import androidx.recyclerview.widget.RecyclerView import com.google.android.material.R as MR import com.google.android.material.shape.MaterialShapeDrawable import org.oxycblt.auxio.IntegerTable -import org.oxycblt.auxio.R import org.oxycblt.auxio.databinding.ItemEditHeaderBinding import org.oxycblt.auxio.databinding.ItemEditableSongBinding import org.oxycblt.auxio.list.EditableListListener @@ -46,7 +45,6 @@ import org.oxycblt.auxio.music.Song import org.oxycblt.auxio.music.resolveNames import org.oxycblt.auxio.util.context import org.oxycblt.auxio.util.getAttrColorCompat -import org.oxycblt.auxio.util.getDimen import org.oxycblt.auxio.util.inflater import org.oxycblt.auxio.util.logD @@ -232,8 +230,7 @@ private constructor(private val binding: ItemEditableSongBinding) : override val delete = binding.background override val background = MaterialShapeDrawable.createWithElevationOverlay(binding.root.context).apply { - fillColor = binding.context.getAttrColorCompat(MR.attr.colorSurface) - elevation = binding.context.getDimen(R.dimen.elevation_normal) + fillColor = binding.context.getAttrColorCompat(MR.attr.colorSurfaceContainerHigh) alpha = 0 } diff --git a/app/src/main/java/org/oxycblt/auxio/image/CoverView.kt b/app/src/main/java/org/oxycblt/auxio/image/CoverView.kt index 792755dc7..75712201c 100644 --- a/app/src/main/java/org/oxycblt/auxio/image/CoverView.kt +++ b/app/src/main/java/org/oxycblt/auxio/image/CoverView.kt @@ -461,7 +461,9 @@ constructor(context: Context, attrs: AttributeSet? = null, @AttrRes defStyleAttr companion object { val SIZING_CORNER_RADII = arrayOf( - R.dimen.size_corners_small, R.dimen.size_corners_small, R.dimen.size_corners_medium) + R.dimen.size_corners_small, + R.dimen.size_corners_medium, + R.dimen.size_corners_mid_large) val SIZING_ICON_SIZE = arrayOf(R.dimen.size_icon_small, R.dimen.size_icon_medium, null) } } diff --git a/app/src/main/java/org/oxycblt/auxio/music/service/MediaItemBrowser.kt b/app/src/main/java/org/oxycblt/auxio/music/service/MediaItemBrowser.kt index 5c8c35ede..63b68925d 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/service/MediaItemBrowser.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/service/MediaItemBrowser.kt @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ - + package org.oxycblt.auxio.music.service import android.content.Context @@ -141,10 +141,8 @@ constructor( is MediaSessionUID.Category -> return uid.toMediaItem(context) is MediaSessionUID.Single -> musicRepository.find(uid.uid)?.let { musicRepository.find(it.uid) } - is MediaSessionUID.Joined -> musicRepository.find(uid.childUid)?.let { musicRepository.find(it.uid) } - null -> null } ?: return null @@ -179,40 +177,32 @@ constructor( when (mediaSessionUID) { MediaSessionUID.Category.ROOT -> MediaSessionUID.Category.IMPORTANT.map { it.toMediaItem(context) } - MediaSessionUID.Category.SONGS -> listSettings.songSort.songs(deviceLibrary.songs).map { it.toMediaItem(context, null) } - MediaSessionUID.Category.ALBUMS -> listSettings.albumSort.albums(deviceLibrary.albums).map { it.toMediaItem(context) } - MediaSessionUID.Category.ARTISTS -> listSettings.artistSort.artists(deviceLibrary.artists).map { it.toMediaItem(context) } - MediaSessionUID.Category.GENRES -> listSettings.genreSort.genres(deviceLibrary.genres).map { it.toMediaItem(context) } - MediaSessionUID.Category.PLAYLISTS -> userLibrary.playlists.map { it.toMediaItem(context) } } } - is MediaSessionUID.Single -> { getChildMediaItems(mediaSessionUID.uid) } - is MediaSessionUID.Joined -> { getChildMediaItems(mediaSessionUID.childUid) } - null -> { return null } @@ -225,24 +215,20 @@ constructor( val songs = listSettings.albumSongSort.songs(item.songs) songs.map { it.toMediaItem(context, item) } } - is Artist -> { val albums = ARTIST_ALBUMS_SORT.albums(item.explicitAlbums + item.implicitAlbums) val songs = listSettings.artistSongSort.songs(item.songs) albums.map { it.toMediaItem(context) } + songs.map { it.toMediaItem(context, item) } } - is Genre -> { val artists = GENRE_ARTISTS_SORT.artists(item.artists) val songs = listSettings.genreSongSort.songs(item.songs) artists.map { it.toMediaItem(context) } + - songs.map { it.toMediaItem(context, null) } + songs.map { it.toMediaItem(context, null) } } - is Playlist -> { item.songs.map { it.toMediaItem(context, item) } } - is Song, null -> return null } @@ -339,8 +325,7 @@ constructor( deviceLibrary.albums, deviceLibrary.artists, deviceLibrary.genres, - userLibrary.playlists - ) + userLibrary.playlists) val results = searchEngine.search(items, query) for (entry in searchSubscribers.entries) { if (entry.value == query) { diff --git a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackBarFragment.kt b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackBarFragment.kt index e21aebb63..7d0dfb1f9 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackBarFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackBarFragment.kt @@ -76,6 +76,10 @@ class PlaybackBarFragment : ViewBindingFragment() { binding.playbackProgressBar.trackColor = context.getColorCompat(R.color.sel_track).defaultColor + // binding.playbackProgressBar.wavelength = 48 + // binding.playbackProgressBar.speed = 20 + // binding.playbackProgressBar.amplitude = 5 + // -- VIEWMODEL SETUP --- collectImmediately(playbackModel.song, ::updateSong) collectImmediately(playbackModel.isPlaying, ::updatePlaying) diff --git a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackBottomSheetBehavior.kt b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackBottomSheetBehavior.kt index a2ed51882..37934c0e1 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackBottomSheetBehavior.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackBottomSheetBehavior.kt @@ -29,7 +29,6 @@ import com.google.android.material.shape.MaterialShapeDrawable import org.oxycblt.auxio.R import org.oxycblt.auxio.ui.BaseBottomSheetBehavior import org.oxycblt.auxio.util.getAttrColorCompat -import org.oxycblt.auxio.util.getDimen /** * The [BaseBottomSheetBehavior] for the playback bottom sheet. This bottom sheet @@ -40,8 +39,8 @@ class PlaybackBottomSheetBehavior(context: Context, attributeSet: Attr BaseBottomSheetBehavior(context, attributeSet) { val sheetBackgroundDrawable = MaterialShapeDrawable.createWithElevationOverlay(context).apply { - fillColor = context.getAttrColorCompat(MR.attr.colorSurface) - elevation = context.getDimen(R.dimen.elevation_normal) + fillColor = context.getAttrColorCompat(MR.attr.colorSurfaceContainerLow) + setCornerSize(context.resources.getDimension(R.dimen.size_corners_mid_large)) } init { diff --git a/app/src/main/java/org/oxycblt/auxio/playback/queue/QueueAdapter.kt b/app/src/main/java/org/oxycblt/auxio/playback/queue/QueueAdapter.kt index 350ec3daa..9bd554a59 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/queue/QueueAdapter.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/queue/QueueAdapter.kt @@ -26,7 +26,6 @@ import androidx.core.view.isInvisible import androidx.recyclerview.widget.RecyclerView import com.google.android.material.R as MR import com.google.android.material.shape.MaterialShapeDrawable -import org.oxycblt.auxio.R import org.oxycblt.auxio.databinding.ItemEditableSongBinding import org.oxycblt.auxio.list.EditClickListListener import org.oxycblt.auxio.list.adapter.FlexibleListAdapter @@ -37,7 +36,6 @@ import org.oxycblt.auxio.music.Song import org.oxycblt.auxio.music.resolveNames import org.oxycblt.auxio.util.context import org.oxycblt.auxio.util.getAttrColorCompat -import org.oxycblt.auxio.util.getDimen import org.oxycblt.auxio.util.inflater import org.oxycblt.auxio.util.logD @@ -120,8 +118,7 @@ class QueueSongViewHolder private constructor(private val binding: ItemEditableS override val delete = binding.background override val background = MaterialShapeDrawable.createWithElevationOverlay(binding.root.context).apply { - fillColor = binding.context.getAttrColorCompat(MR.attr.colorSurface) - elevation = binding.context.getDimen(R.dimen.elevation_normal) * 5 + fillColor = binding.context.getAttrColorCompat(MR.attr.colorSurfaceContainerHighest) alpha = 0 } @@ -142,8 +139,8 @@ class QueueSongViewHolder private constructor(private val binding: ItemEditableS LayerDrawable( arrayOf( MaterialShapeDrawable.createWithElevationOverlay(binding.context).apply { - fillColor = binding.context.getAttrColorCompat(MR.attr.colorSurface) - elevation = binding.context.getDimen(R.dimen.elevation_normal) + fillColor = + binding.context.getAttrColorCompat(MR.attr.colorSurfaceContainerHigh) }, background)) } diff --git a/app/src/main/java/org/oxycblt/auxio/playback/queue/QueueBottomSheetBehavior.kt b/app/src/main/java/org/oxycblt/auxio/playback/queue/QueueBottomSheetBehavior.kt index ddf70b00d..24f2cfd23 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/queue/QueueBottomSheetBehavior.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/queue/QueueBottomSheetBehavior.kt @@ -28,7 +28,6 @@ import com.google.android.material.shape.MaterialShapeDrawable import org.oxycblt.auxio.R import org.oxycblt.auxio.ui.BaseBottomSheetBehavior import org.oxycblt.auxio.util.getAttrColorCompat -import org.oxycblt.auxio.util.getDimen import org.oxycblt.auxio.util.getDimenPixels import org.oxycblt.auxio.util.replaceSystemBarInsetsCompat import org.oxycblt.auxio.util.systemBarInsetsCompat @@ -65,8 +64,8 @@ class QueueBottomSheetBehavior(context: Context, attributeSet: Attribu override fun createBackground(context: Context) = MaterialShapeDrawable.createWithElevationOverlay(context).apply { // The queue sheet's background is a static elevated background. - fillColor = context.getAttrColorCompat(MR.attr.colorSurface) - elevation = context.getDimen(R.dimen.elevation_normal) + fillColor = context.getAttrColorCompat(MR.attr.colorSurfaceContainerHigh) + setCornerSize(context.resources.getDimension(R.dimen.size_corners_mid_large)) } override fun applyWindowInsets(child: View, insets: WindowInsets): WindowInsets { diff --git a/app/src/main/java/org/oxycblt/auxio/playback/service/MediaSessionServiceFragment.kt b/app/src/main/java/org/oxycblt/auxio/playback/service/MediaSessionServiceFragment.kt index 65caa80af..dfb87061e 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/service/MediaSessionServiceFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/service/MediaSessionServiceFragment.kt @@ -255,7 +255,7 @@ constructor( mediaSession.setCustomLayout(layout) } - override fun invalidate(ids: Map){ + override fun invalidate(ids: Map) { for (id in ids) { mediaSession.notifyChildrenChanged(id.key, id.value, null) } diff --git a/app/src/main/java/org/oxycblt/auxio/playback/ui/AnimatedMaterialButton.kt b/app/src/main/java/org/oxycblt/auxio/playback/ui/AnimatedMaterialButton.kt index 14d4f78a9..87380055d 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/ui/AnimatedMaterialButton.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/ui/AnimatedMaterialButton.kt @@ -21,6 +21,7 @@ package org.oxycblt.auxio.playback.ui import android.animation.ValueAnimator import android.content.Context import android.util.AttributeSet +import android.view.animation.AnimationUtils import com.google.android.material.button.MaterialButton import org.oxycblt.auxio.R import org.oxycblt.auxio.ui.RippleFixMaterialButton @@ -64,6 +65,9 @@ class AnimatedMaterialButton : RippleFixMaterialButton { animator = ValueAnimator.ofFloat(currentCornerRadiusRatio, targetRadius).apply { duration = context.getInteger(R.integer.anim_fade_enter_duration).toLong() + interpolator = + AnimationUtils.loadInterpolator( + context, android.R.interpolator.fast_out_slow_in) addUpdateListener { updateCornerRadiusRatio(animatedValue as Float) } start() } diff --git a/app/src/main/java/org/oxycblt/auxio/tasker/Tasker.kt b/app/src/main/java/org/oxycblt/auxio/tasker/Tasker.kt index e823bb338..ec2d6ac99 100644 --- a/app/src/main/java/org/oxycblt/auxio/tasker/Tasker.kt +++ b/app/src/main/java/org/oxycblt/auxio/tasker/Tasker.kt @@ -1,2 +1,19 @@ +/* + * Copyright (c) 2024 Auxio Project + * Tasker.kt is part of Auxio. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package org.oxycblt.auxio.tasker - diff --git a/app/src/main/res/drawable/ic_pause_48.xml b/app/src/main/res/drawable/ic_pause_48.xml new file mode 100644 index 000000000..76e9b9f6e --- /dev/null +++ b/app/src/main/res/drawable/ic_pause_48.xml @@ -0,0 +1,11 @@ + + + + diff --git a/app/src/main/res/drawable/ic_play_48.xml b/app/src/main/res/drawable/ic_play_48.xml new file mode 100644 index 000000000..d163cd960 --- /dev/null +++ b/app/src/main/res/drawable/ic_play_48.xml @@ -0,0 +1,11 @@ + + + + diff --git a/app/src/main/res/drawable/ic_skip_next_40.xml b/app/src/main/res/drawable/ic_skip_next_40.xml new file mode 100644 index 000000000..28ca513fc --- /dev/null +++ b/app/src/main/res/drawable/ic_skip_next_40.xml @@ -0,0 +1,11 @@ + + + + diff --git a/app/src/main/res/drawable/ic_skip_prev_40.xml b/app/src/main/res/drawable/ic_skip_prev_40.xml new file mode 100644 index 000000000..d21330db7 --- /dev/null +++ b/app/src/main/res/drawable/ic_skip_prev_40.xml @@ -0,0 +1,11 @@ + + + + diff --git a/app/src/main/res/drawable/ic_splash_anim.xml b/app/src/main/res/drawable/ic_splash_anim.xml index b2b705d9f..b96ab0ed5 100644 --- a/app/src/main/res/drawable/ic_splash_anim.xml +++ b/app/src/main/res/drawable/ic_splash_anim.xml @@ -8,9 +8,7 @@ android:viewportHeight="108"> + android:pivotY="56"> - - diff --git a/app/src/main/res/drawable/sel_playing_state_48.xml b/app/src/main/res/drawable/sel_playing_state_48.xml new file mode 100644 index 000000000..d9b283a03 --- /dev/null +++ b/app/src/main/res/drawable/sel_playing_state_48.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout-h480dp/fragment_playback_panel.xml b/app/src/main/res/layout-h480dp/fragment_playback_panel.xml index 4157231ac..a31cbcd62 100644 --- a/app/src/main/res/layout-h480dp/fragment_playback_panel.xml +++ b/app/src/main/res/layout-h480dp/fragment_playback_panel.xml @@ -102,11 +102,14 @@ @@ -45,10 +44,10 @@ + android:layout_height="wrap_content" + xmlns:app="http://schemas.android.com/apk/res-auto"> diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 140539c9b..1ee68e73f 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -16,8 +16,8 @@ 192dp 256dp - 8dp - 16dp + 12dp + 14dp 24dp 48dp @@ -36,7 +36,7 @@ 2sp - 3dp + 6dp 78dp 64dp diff --git a/app/src/main/res/values/styles_core.xml b/app/src/main/res/values/styles_core.xml index f43098404..6cc3b58da 100644 --- a/app/src/main/res/values/styles_core.xml +++ b/app/src/main/res/values/styles_core.xml @@ -18,7 +18,7 @@ - + +