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.
This commit is contained in:
parent
b19283002f
commit
7995d3ac98
26 changed files with 142 additions and 85 deletions
BIN
app/src/main/ic_launcher-playstore.png
Normal file
BIN
app/src/main/ic_launcher-playstore.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 16 KiB |
|
@ -79,7 +79,7 @@ class MainActivity : AppCompatActivity() {
|
|||
}
|
||||
}
|
||||
|
||||
override fun onNewIntent(intent: Intent?) {
|
||||
override fun onNewIntent(intent: Intent) {
|
||||
super.onNewIntent(intent)
|
||||
startIntentAction(intent)
|
||||
}
|
||||
|
|
|
@ -146,8 +146,7 @@ class MainFragment :
|
|||
// Emulate the elevated bottom sheet style.
|
||||
background =
|
||||
MaterialShapeDrawable.createWithElevationOverlay(context).apply {
|
||||
fillColor = context.getAttrColorCompat(MR.attr.colorSurface)
|
||||
elevation = context.getDimen(R.dimen.elevation_normal)
|
||||
fillColor = context.getAttrColorCompat(MR.attr.colorSurfaceContainerHigh)
|
||||
}
|
||||
// Apply bar insets for the queue's RecyclerView to use.
|
||||
setOnApplyWindowInsetsListener { v, insets ->
|
||||
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
||||
|
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
|
||||
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) {
|
||||
|
|
|
@ -76,6 +76,10 @@ class PlaybackBarFragment : ViewBindingFragment<FragmentPlaybackBarBinding>() {
|
|||
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)
|
||||
|
|
|
@ -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<V : View>(context: Context, attributeSet: Attr
|
|||
BaseBottomSheetBehavior<V>(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 {
|
||||
|
|
|
@ -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))
|
||||
}
|
||||
|
|
|
@ -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<V : View>(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 {
|
||||
|
|
|
@ -255,7 +255,7 @@ constructor(
|
|||
mediaSession.setCustomLayout(layout)
|
||||
}
|
||||
|
||||
override fun invalidate(ids: Map<String, Int>){
|
||||
override fun invalidate(ids: Map<String, Int>) {
|
||||
for (id in ids) {
|
||||
mediaSession.notifyChildrenChanged(id.key, id.value, null)
|
||||
}
|
||||
|
|
|
@ -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()
|
||||
}
|
||||
|
|
|
@ -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 <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.oxycblt.auxio.tasker
|
||||
|
||||
|
|
11
app/src/main/res/drawable/ic_pause_48.xml
Normal file
11
app/src/main/res/drawable/ic_pause_48.xml
Normal file
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="48dp"
|
||||
android:height="48dp"
|
||||
android:viewportWidth="960"
|
||||
android:viewportHeight="960"
|
||||
android:tint="?attr/colorControlNormal">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M555,760L555,200L730,200L730,760L555,760ZM230,760L230,200L405,200L405,760L230,760Z"/>
|
||||
</vector>
|
11
app/src/main/res/drawable/ic_play_48.xml
Normal file
11
app/src/main/res/drawable/ic_play_48.xml
Normal file
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="48dp"
|
||||
android:height="48dp"
|
||||
android:viewportWidth="960"
|
||||
android:viewportHeight="960"
|
||||
android:tint="?attr/colorControlNormal">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M320,757L320,197L760,477L320,757Z"/>
|
||||
</vector>
|
11
app/src/main/res/drawable/ic_skip_next_40.xml
Normal file
11
app/src/main/res/drawable/ic_skip_next_40.xml
Normal file
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="40dp"
|
||||
android:height="40dp"
|
||||
android:viewportWidth="960"
|
||||
android:viewportHeight="960"
|
||||
android:tint="?attr/colorControlNormal">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M673.33,720L673.33,240L740,240L740,720L673.33,720ZM220,720L220,240L570.67,480L220,720Z"/>
|
||||
</vector>
|
11
app/src/main/res/drawable/ic_skip_prev_40.xml
Normal file
11
app/src/main/res/drawable/ic_skip_prev_40.xml
Normal file
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="40dp"
|
||||
android:height="40dp"
|
||||
android:viewportWidth="960"
|
||||
android:viewportHeight="960"
|
||||
android:tint="?attr/colorControlNormal">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M220,720L220,240L286.67,240L286.67,720L220,720ZM740,720L389.33,480L740,240L740,720Z"/>
|
||||
</vector>
|
|
@ -8,9 +8,7 @@
|
|||
android:viewportHeight="108">
|
||||
<group android:name="bg"
|
||||
android:pivotX="56"
|
||||
android:pivotY="56"
|
||||
android:scaleX="0"
|
||||
android:scaleY="0">
|
||||
android:pivotY="56">
|
||||
<path
|
||||
android:fillColor="#eef0ff"
|
||||
android:pathData="M 136,54 A 82,82 0 0 1 54,136 82,82 0 0 1 -28,54 82,82 0 0 1 54,-28 82,82 0 0 1 136,54 Z"
|
||||
|
@ -62,22 +60,6 @@
|
|||
<target android:name="bg">
|
||||
<aapt:attr name="android:animation">
|
||||
<set>
|
||||
<objectAnimator
|
||||
android:duration="1000"
|
||||
android:interpolator="@android:interpolator/fast_out_slow_in"
|
||||
android:propertyName="scaleX"
|
||||
android:startOffset="0"
|
||||
android:valueFrom="0"
|
||||
android:valueTo="1"
|
||||
android:valueType="floatType" />
|
||||
<objectAnimator
|
||||
android:duration="1000"
|
||||
android:interpolator="@android:interpolator/fast_out_slow_in"
|
||||
android:propertyName="scaleY"
|
||||
android:startOffset="0"
|
||||
android:valueFrom="0"
|
||||
android:valueTo="1"
|
||||
android:valueType="floatType" />
|
||||
</set>
|
||||
</aapt:attr>
|
||||
</target>
|
||||
|
|
5
app/src/main/res/drawable/sel_playing_state_48.xml
Normal file
5
app/src/main/res/drawable/sel_playing_state_48.xml
Normal file
|
@ -0,0 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:drawable="@drawable/ic_pause_48" android:state_activated="true" />
|
||||
<item android:drawable="@drawable/ic_play_48" />
|
||||
</selector>
|
|
@ -102,11 +102,14 @@
|
|||
|
||||
<org.oxycblt.auxio.ui.RippleFixMaterialButton
|
||||
android:id="@+id/playback_skip_prev"
|
||||
style="@style/Widget.Auxio.Button.Icon.Large"
|
||||
style="@style/Widget.Auxio.Button.Icon.Larger"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/desc_skip_prev"
|
||||
app:icon="@drawable/ic_skip_prev_24"
|
||||
app:icon="@drawable/ic_skip_prev_40"
|
||||
app:backgroundTint="?attr/colorSecondaryContainer"
|
||||
app:iconTint="?attr/colorOnSecondaryContainer"
|
||||
app:iconSize="40dp"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/playback_play_pause"
|
||||
app:layout_constraintEnd_toStartOf="@+id/playback_play_pause"
|
||||
app:layout_constraintStart_toEndOf="@+id/playback_repeat"
|
||||
|
@ -118,7 +121,9 @@
|
|||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/desc_play_pause"
|
||||
app:icon="@drawable/sel_playing_state_24"
|
||||
app:icon="@drawable/sel_playing_state_48"
|
||||
app:backgroundTint="?attr/colorPrimaryContainer"
|
||||
app:iconTint="?attr/colorOnPrimaryContainer"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
|
@ -127,11 +132,13 @@
|
|||
|
||||
<org.oxycblt.auxio.ui.RippleFixMaterialButton
|
||||
android:id="@+id/playback_skip_next"
|
||||
style="@style/Widget.Auxio.Button.Icon.Large"
|
||||
style="@style/Widget.Auxio.Button.Icon.Larger"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/desc_skip_next"
|
||||
app:icon="@drawable/ic_skip_next_24"
|
||||
app:iconTint="?attr/colorOnSecondaryContainer"
|
||||
app:icon="@drawable/ic_skip_next_40"
|
||||
app:backgroundTint="?attr/colorSecondaryContainer"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/playback_play_pause"
|
||||
app:layout_constraintEnd_toStartOf="@+id/playback_shuffle"
|
||||
app:layout_constraintStart_toEndOf="@+id/playback_play_pause"
|
||||
|
|
|
@ -34,6 +34,7 @@
|
|||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
style="@style/Widget.Auxio.DisableDropShadows"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<androidx.fragment.app.FragmentContainerView
|
||||
|
|
|
@ -25,7 +25,6 @@
|
|||
|
||||
<androidx.coordinatorlayout.widget.CoordinatorLayout
|
||||
android:id="@+id/playback_sheet"
|
||||
style="@style/Widget.Auxio.DisableDropShadows"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:layout_behavior="org.oxycblt.auxio.playback.PlaybackBottomSheetBehavior">
|
||||
|
@ -45,10 +44,10 @@
|
|||
|
||||
<LinearLayout
|
||||
android:id="@+id/queue_sheet"
|
||||
style="@style/Widget.Auxio.DisableDropShadows"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
style="@style/Widget.Auxio.DisableDropShadows"
|
||||
app:layout_behavior="org.oxycblt.auxio.playback.queue.QueueBottomSheetBehavior">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
|
|
|
@ -2,13 +2,16 @@
|
|||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
android:layout_height="wrap_content"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
<com.google.android.material.slider.Slider
|
||||
android:id="@+id/seek_bar_slider"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="@dimen/spacing_medium"
|
||||
app:trackHeight="4dp"
|
||||
app:thumbHeight="24dp"
|
||||
android:valueFrom="0"
|
||||
android:valueTo="1" />
|
||||
|
||||
|
|
|
@ -16,8 +16,8 @@
|
|||
<dimen name="size_cover_mid_huge">192dp</dimen>
|
||||
<dimen name="size_cover_huge">256dp</dimen>
|
||||
|
||||
<dimen name="size_corners_small">8dp</dimen>
|
||||
<dimen name="size_corners_medium">16dp</dimen>
|
||||
<dimen name="size_corners_small">12dp</dimen>
|
||||
<dimen name="size_corners_medium">14dp</dimen>
|
||||
<dimen name="size_corners_mid_large">24dp</dimen>
|
||||
|
||||
<dimen name="size_btn">48dp</dimen>
|
||||
|
@ -36,7 +36,7 @@
|
|||
<dimen name="text_size_track_number_step">2sp</dimen>
|
||||
|
||||
<!-- Misc -->
|
||||
<dimen name="elevation_normal">3dp</dimen>
|
||||
<dimen name="elevation_normal">6dp</dimen>
|
||||
|
||||
<dimen name="fast_scroll_popup_min_width">78dp</dimen>
|
||||
<dimen name="fast_scroll_popup_min_height">64dp</dimen>
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
<style name="Theme.Auxio.Base" parent="Theme.Auxio.V31">
|
||||
|
||||
<!-- Material configuration -->
|
||||
<item name="colorOutline">@color/overlay_stroke</item>
|
||||
<!-- <item name="colorOutline">@color/overlay_stroke</item>-->
|
||||
<item name="toolbarStyle">@style/Widget.Auxio.Toolbar</item>
|
||||
<item name="materialAlertDialogTheme">@style/Theme.Auxio.Dialog</item>
|
||||
<item name="sliderStyle">@style/Widget.Auxio.Slider</item>
|
||||
|
|
|
@ -19,16 +19,15 @@
|
|||
</style>
|
||||
|
||||
<style name="Widget.Auxio.Slider" parent="Widget.Material3.Slider">
|
||||
<item name="trackColorInactive">@color/sel_track</item>
|
||||
<item name="haloRadius">@dimen/spacing_medium</item>
|
||||
<item name="thumbRadius">@dimen/slider_thumb_radius</item>
|
||||
<item name="labelBehavior">gone</item>
|
||||
<item name="tickVisible">false</item>
|
||||
<item name="trackStopIndicatorSize">0dp</item>
|
||||
</style>
|
||||
|
||||
<style name="Widget.Auxio.LinearProgressIndicator" parent="Widget.Material3.LinearProgressIndicator">
|
||||
<item name="trackColor">@color/sel_track</item>
|
||||
<item name="trackCornerRadius">@dimen/size_corners_medium</item>
|
||||
<item name="trackStopIndicatorSize">0dp</item>
|
||||
</style>
|
||||
|
||||
<style name="Widget.Auxio.BottomSheet" parent="Widget.Material3.BottomSheet">
|
||||
|
@ -45,8 +44,7 @@
|
|||
<item name="marginRightSystemWindowInsets">false</item>
|
||||
<item name="paddingBottomSystemWindowInsets">false</item>
|
||||
<item name="paddingTopSystemWindowInsets">false</item>
|
||||
<item name="shapeAppearance">@style/ShapeAppearance.Material3.Corner.None</item>
|
||||
<item name="shouldRemoveExpandedCorners">true</item>
|
||||
<item name="shouldRemoveExpandedCorners">false</item>
|
||||
</style>
|
||||
|
||||
<style name="Widget.Auxio.BottomSheet.Dialog" parent="ThemeOverlay.Material3.BottomSheetDialog">
|
||||
|
@ -267,18 +265,33 @@
|
|||
<item name="iconTint">@color/m3_text_button_foreground_color_selector</item>
|
||||
</style>
|
||||
|
||||
<style name="Widget.Auxio.Button.PlayPause" parent="Widget.Material3.Button.IconButton.Filled.Tonal">
|
||||
<item name="android:minWidth">@dimen/size_play_pause_button</item>
|
||||
<item name="android:minHeight">@dimen/size_play_pause_button</item>
|
||||
<item name="iconSize">@dimen/size_icon_medium</item>
|
||||
<style name="Widget.Auxio.Button.Icon.Larger" parent="Widget.Auxio.Button.Icon.Base">
|
||||
<item name="iconSize">40dp</item>
|
||||
<item name="android:minWidth">@dimen/size_btn</item>
|
||||
<item name="android:minHeight">@dimen/size_btn</item>
|
||||
<item name="android:insetTop">0dp</item>
|
||||
<item name="android:insetBottom">0dp</item>
|
||||
<item name="android:insetLeft">0dp</item>
|
||||
<item name="android:insetRight">0dp</item>
|
||||
<item name="android:paddingStart">@dimen/spacing_mid_large</item>
|
||||
<item name="android:paddingEnd">@dimen/spacing_mid_large</item>
|
||||
<item name="android:paddingTop">@dimen/spacing_mid_large</item>
|
||||
<item name="android:paddingBottom">@dimen/spacing_mid_large</item>
|
||||
<item name="android:paddingStart">10dp</item>
|
||||
<item name="android:paddingEnd">10dp</item>
|
||||
<item name="android:paddingTop">10dp</item>
|
||||
<item name="android:paddingBottom">10dp</item>
|
||||
<item name="iconTint">@color/m3_text_button_foreground_color_selector</item>
|
||||
</style>
|
||||
|
||||
<style name="Widget.Auxio.Button.PlayPause" parent="Widget.Material3.Button.IconButton.Filled.Tonal">
|
||||
<item name="android:minWidth">@dimen/size_play_pause_button</item>
|
||||
<item name="android:minHeight">@dimen/size_play_pause_button</item>
|
||||
<item name="iconSize">48dp</item>
|
||||
<item name="android:insetTop">0dp</item>
|
||||
<item name="android:insetBottom">0dp</item>
|
||||
<item name="android:insetLeft">0dp</item>
|
||||
<item name="android:insetRight">0dp</item>
|
||||
<item name="android:paddingStart">@dimen/spacing_medium</item>
|
||||
<item name="android:paddingEnd">@dimen/spacing_medium</item>
|
||||
<item name="android:paddingTop">@dimen/spacing_medium</item>
|
||||
<item name="android:paddingBottom">@dimen/spacing_medium</item>
|
||||
<item name="shapeAppearanceOverlay">
|
||||
@style/ShapeAppearanceOverlay.Material3.FloatingActionButton
|
||||
</item>
|
||||
|
|
Loading…
Reference in a new issue