style: use material in playback view
Use Slider and FloatingActionbutton in the playback view. This is not because I wanted to, but because there were insane bugs on Lollipop devices that stemmed from them being unable to load complex selector resources.
This commit is contained in:
parent
67797d957e
commit
032fd2bd40
51 changed files with 328 additions and 257 deletions
|
@ -100,7 +100,7 @@ dependencies {
|
|||
implementation 'io.coil-kt:coil:1.4.0'
|
||||
|
||||
// Material
|
||||
implementation "com.google.android.material:material:1.5.0-alpha05"
|
||||
implementation "com.google.android.material:material:1.5.0-beta01"
|
||||
|
||||
// --- DEBUG ---
|
||||
|
||||
|
|
|
@ -25,6 +25,7 @@ import android.util.AttributeSet
|
|||
import android.view.WindowInsets
|
||||
import androidx.constraintlayout.widget.ConstraintLayout
|
||||
import androidx.core.view.updatePadding
|
||||
import com.google.android.material.color.MaterialColors
|
||||
import com.google.android.material.shape.MaterialShapeDrawable
|
||||
import org.oxycblt.auxio.R
|
||||
import org.oxycblt.auxio.databinding.ViewCompactPlaybackBinding
|
||||
|
@ -83,6 +84,12 @@ class CompactPlaybackView @JvmOverloads constructor(
|
|||
binding.playbackPlayPause.setOnClickListener {
|
||||
mCallback?.onPlayPauseClick()
|
||||
}
|
||||
|
||||
// By default, LinearProgressIndicator will not actually color the track with the proper
|
||||
// opacity. Why? Who knows!
|
||||
binding.playbackProgressBar.trackColor = MaterialColors.compositeARGBWithAlpha(
|
||||
binding.playbackProgressBar.trackColor, (255 * 0.2).toInt()
|
||||
)
|
||||
}
|
||||
|
||||
override fun onApplyWindowInsets(insets: WindowInsets): WindowInsets {
|
||||
|
|
|
@ -20,8 +20,8 @@ package org.oxycblt.auxio.playback
|
|||
|
||||
import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
import android.widget.SeekBar
|
||||
import androidx.constraintlayout.widget.ConstraintLayout
|
||||
import com.google.android.material.slider.Slider
|
||||
import org.oxycblt.auxio.databinding.ViewSeekBarBinding
|
||||
import org.oxycblt.auxio.music.toDuration
|
||||
import org.oxycblt.auxio.util.inflater
|
||||
|
@ -36,39 +36,40 @@ class PlaybackSeekBar @JvmOverloads constructor(
|
|||
context: Context,
|
||||
attrs: AttributeSet? = null,
|
||||
defStyleRes: Int = -1
|
||||
) : ConstraintLayout(context, attrs, defStyleRes), SeekBar.OnSeekBarChangeListener {
|
||||
) : ConstraintLayout(context, attrs, defStyleRes), Slider.OnChangeListener, Slider.OnSliderTouchListener {
|
||||
private val binding = ViewSeekBarBinding.inflate(context.inflater, this, true)
|
||||
private val isSeeking: Boolean get() = binding.playbackDurationCurrent.isActivated
|
||||
|
||||
var onConfirmListener: ((Long) -> Unit)? = null
|
||||
|
||||
init {
|
||||
binding.seekBar.setOnSeekBarChangeListener(this)
|
||||
binding.seekBar.addOnChangeListener(this)
|
||||
binding.seekBar.addOnSliderTouchListener(this)
|
||||
}
|
||||
|
||||
fun setProgress(seconds: Long) {
|
||||
// Don't update the progress while we are seeking, that will make the SeekBar jump around.
|
||||
if (!isSeeking) {
|
||||
binding.seekBar.progress = seconds.toInt()
|
||||
binding.seekBar.value = seconds.toFloat()
|
||||
binding.playbackDurationCurrent.text = seconds.toDuration()
|
||||
}
|
||||
}
|
||||
|
||||
fun setDuration(seconds: Long) {
|
||||
binding.seekBar.max = seconds.toInt()
|
||||
binding.seekBar.valueTo = seconds.toFloat()
|
||||
binding.playbackSongDuration.text = seconds.toDuration()
|
||||
}
|
||||
|
||||
override fun onStartTrackingTouch(seekbar: SeekBar) {
|
||||
override fun onStartTrackingTouch(slider: Slider) {
|
||||
binding.playbackDurationCurrent.isActivated = true
|
||||
}
|
||||
|
||||
override fun onStopTrackingTouch(seekbar: SeekBar) {
|
||||
override fun onStopTrackingTouch(slider: Slider) {
|
||||
binding.playbackDurationCurrent.isActivated = false
|
||||
onConfirmListener?.invoke(seekbar.progress.toLong())
|
||||
onConfirmListener?.invoke(slider.value.toLong())
|
||||
}
|
||||
|
||||
override fun onProgressChanged(seekbar: SeekBar, value: Int, fromUser: Boolean) {
|
||||
override fun onValueChange(slider: Slider, value: Float, fromUser: Boolean) {
|
||||
if (fromUser) {
|
||||
// Don't actually seek yet when the user moves the progress bar, as to make our
|
||||
// player seek during every movement is both inefficient and weird.
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<gradient android:endX="108"
|
||||
<gradient xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:endX="108"
|
||||
android:endY="108"
|
||||
android:startX="0"
|
||||
android:startY="0"
|
||||
android:type="linear"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
android:type="linear">
|
||||
<item
|
||||
android:color="#0D47A1"
|
||||
android:offset="0.0" />
|
||||
|
|
|
@ -6,6 +6,6 @@
|
|||
android:viewportHeight="108">
|
||||
<path
|
||||
android:fillColor="@color/fill_icon_bg"
|
||||
android:strokeColor="#00000000"
|
||||
android:pathData="M0 0h108v108H0z" />
|
||||
android:pathData="M0 0h108v108H0z"
|
||||
android:strokeColor="#00000000" />
|
||||
</vector>
|
||||
|
|
|
@ -1,12 +1,10 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:aapt="http://schemas.android.com/aapt"
|
||||
android:width="108dp"
|
||||
android:height="108dp"
|
||||
android:viewportWidth="108"
|
||||
android:viewportHeight="108">
|
||||
<path
|
||||
android:fillColor="#ffffff"
|
||||
android:pathData="M 53.999797,30.00003 V 56.66727 H 52.765254 48.82459 44.568872 l -6.567779,6.56803 v 4.05833 c -4.8e-5,0.0136 -0.0011,0.0269 -0.0011,0.0405 0,0.0136 0.0011,0.027 0.0011,0.0405 v 4.0573 l 6.567779,6.56804 h 8.196382 l 6.567788,-6.56804 v -4.0573 c 5e-5,-0.0133 9.92e-4,-0.0269 9.92e-4,-0.0405 V 40.667439 H 70.000006 V 30.001057 Z"
|
||||
android:strokeColor="#00000000"
|
||||
android:fillColor="#ffffff">
|
||||
</path>
|
||||
android:strokeColor="#00000000"></path>
|
||||
</vector>
|
||||
|
|
|
@ -2,10 +2,10 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:tint="?attr/colorControlNormal"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24"
|
||||
android:tint="?attr/colorControlNormal">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M6,19h4L10,5L6,5v14zM14,5v14h4L18,5h-4z"/>
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M6,19h4L10,5L6,5v14zM14,5v14h4L18,5h-4z" />
|
||||
</vector>
|
||||
|
|
|
@ -2,10 +2,10 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:tint="?attr/colorControlNormal"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24"
|
||||
android:tint="?attr/colorControlNormal">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M8,5v14l11,-7L8,5z"/>
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M8,5v14l11,-7L8,5z" />
|
||||
</vector>
|
||||
|
|
|
@ -1,6 +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"
|
||||
android:state_activated="true" />
|
||||
<item android:drawable="@drawable/ic_pause" android:state_activated="true" />
|
||||
<item android:drawable="@drawable/ic_play" />
|
||||
</selector>
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:color="@color/m3_button_ripple_color_selector">
|
||||
android:color="@color/mtrl_btn_ripple_color">
|
||||
<item android:id="@android:id/background">
|
||||
<shape
|
||||
android:shape="rectangle"
|
||||
|
|
|
@ -1,11 +1,16 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle"
|
||||
android:tint="?attr/colorSecondary">
|
||||
|
||||
<corners android:radius="8dp" />
|
||||
<padding android:top="4dp" android:bottom="4dp" android:right="2dp" android:left="2dp"/>
|
||||
<size android:width="8dp" android:height="52dp" />
|
||||
<padding
|
||||
android:bottom="4dp"
|
||||
android:left="2dp"
|
||||
android:right="2dp"
|
||||
android:top="4dp" />
|
||||
<size
|
||||
android:width="8dp"
|
||||
android:height="52dp" />
|
||||
<solid android:color="@android:color/white" />
|
||||
</shape>
|
|
@ -1,5 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Hack to make MaterialShapeDrawable cooperate with RippleDrawable. See
|
||||
<?xml version="1.0" encoding="utf-8"?><!-- Hack to make MaterialShapeDrawable cooperate with RippleDrawable. See
|
||||
CompactPlaybackView for more info. -->
|
||||
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:color="?attr/colorControlHighlight">
|
||||
|
|
|
@ -2,10 +2,9 @@
|
|||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
|
||||
<solid
|
||||
android:color="#00000000" />
|
||||
<solid android:color="#00000000" />
|
||||
|
||||
<size
|
||||
android:width="1000px"
|
||||
android:height="1000px"/>
|
||||
android:height="1000px" />
|
||||
</shape>
|
|
@ -24,7 +24,8 @@
|
|||
android:id="@+id/playback_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="?attr/colorSurface">
|
||||
android:background="?attr/colorSurface"
|
||||
android:clipToPadding="false">
|
||||
|
||||
<androidx.appcompat.widget.Toolbar
|
||||
android:id="@+id/playback_toolbar"
|
||||
|
@ -109,8 +110,8 @@
|
|||
android:id="@+id/playback_seek_bar"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/spacing_medium"
|
||||
android:layout_marginEnd="@dimen/spacing_medium"
|
||||
android:layout_marginStart="@dimen/spacing_small"
|
||||
android:layout_marginEnd="@dimen/spacing_small"
|
||||
app:layout_constraintBottom_toTopOf="@+id/playback_play_pause"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="0.5"
|
||||
|
@ -144,9 +145,9 @@
|
|||
app:layout_constraintStart_toEndOf="@+id/playback_loop"
|
||||
app:layout_constraintTop_toTopOf="@+id/playback_play_pause" />
|
||||
|
||||
<ImageButton
|
||||
<com.google.android.material.floatingactionbutton.FloatingActionButton
|
||||
android:id="@+id/playback_play_pause"
|
||||
style="@style/Widget.Auxio.Button.Circular"
|
||||
style="@style/Widget.Auxio.FloatingActionButton.MidLarge"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/desc_play_pause"
|
||||
|
|
|
@ -24,10 +24,10 @@
|
|||
android:id="@+id/detail_name"
|
||||
style="@style/Widget.Auxio.TextView.Detail"
|
||||
android:layout_width="0dp"
|
||||
android:maxLines="2"
|
||||
android:ellipsize="end"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/spacing_medium"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="2"
|
||||
app:layout_constraintBottom_toTopOf="@+id/detail_subhead"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="0.5"
|
||||
|
|
|
@ -24,8 +24,8 @@
|
|||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/spacing_medium"
|
||||
android:maxLines="4"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="4"
|
||||
app:layout_constraintBottom_toTopOf="@+id/detail_subhead"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="0.5"
|
||||
|
|
|
@ -24,7 +24,8 @@
|
|||
android:id="@+id/playback_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="?attr/colorSurface">
|
||||
android:background="?attr/colorSurface"
|
||||
android:clipToPadding="false">
|
||||
|
||||
<androidx.appcompat.widget.Toolbar
|
||||
android:id="@+id/playback_toolbar"
|
||||
|
@ -110,8 +111,8 @@
|
|||
android:id="@+id/playback_seek_bar"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/spacing_medium"
|
||||
android:layout_marginEnd="@dimen/spacing_medium"
|
||||
android:layout_marginStart="@dimen/spacing_small"
|
||||
android:layout_marginEnd="@dimen/spacing_small"
|
||||
app:layout_constraintBottom_toTopOf="@+id/playback_play_pause"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="0.5"
|
||||
|
@ -145,9 +146,9 @@
|
|||
app:layout_constraintEnd_toStartOf="@+id/playback_play_pause"
|
||||
app:layout_constraintTop_toTopOf="@+id/playback_play_pause" />
|
||||
|
||||
<ImageButton
|
||||
<com.google.android.material.floatingactionbutton.FloatingActionButton
|
||||
android:id="@+id/playback_play_pause"
|
||||
style="@style/Widget.Auxio.Button.Circular"
|
||||
style="@style/Widget.Auxio.FloatingActionButton.MidLarge"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/desc_play_pause"
|
||||
|
|
|
@ -24,7 +24,8 @@
|
|||
android:id="@+id/playback_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="?attr/colorSurface">
|
||||
android:background="?attr/colorSurface"
|
||||
android:clipToPadding="false">
|
||||
|
||||
<androidx.appcompat.widget.Toolbar
|
||||
android:id="@+id/playback_toolbar"
|
||||
|
@ -37,7 +38,7 @@
|
|||
<ImageView
|
||||
android:id="@+id/playback_cover"
|
||||
style="@style/Widget.Auxio.Image.Full"
|
||||
android:layout_margin="@dimen/spacing_mid_huge"
|
||||
android:layout_margin="@dimen/spacing_huge"
|
||||
android:contentDescription="@{@string/desc_album_cover(song.name)}"
|
||||
app:albumArt="@{song}"
|
||||
app:layout_constraintBottom_toTopOf="@+id/playback_song"
|
||||
|
@ -52,8 +53,8 @@
|
|||
style="@style/Widget.Auxio.TextView.Primary"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/spacing_mid_huge"
|
||||
android:layout_marginEnd="@dimen/spacing_mid_huge"
|
||||
android:layout_marginStart="@dimen/spacing_huge"
|
||||
android:layout_marginEnd="@dimen/spacing_huge"
|
||||
android:onClick="@{() -> detailModel.navToItem(playbackModel.song)}"
|
||||
android:text="@{song.name}"
|
||||
app:layout_constraintBottom_toTopOf="@+id/playback_artist"
|
||||
|
@ -67,8 +68,8 @@
|
|||
style="@style/Widget.Auxio.TextView.Secondary"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/spacing_mid_huge"
|
||||
android:layout_marginEnd="@dimen/spacing_mid_huge"
|
||||
android:layout_marginStart="@dimen/spacing_huge"
|
||||
android:layout_marginEnd="@dimen/spacing_huge"
|
||||
android:onClick="@{() -> detailModel.navToItem(playbackModel.song.album.artist)}"
|
||||
android:text="@{song.album.artist.resolvedName}"
|
||||
app:layout_constraintBottom_toTopOf="@+id/playback_album"
|
||||
|
@ -81,8 +82,8 @@
|
|||
style="@style/Widget.Auxio.TextView.Secondary"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/spacing_mid_huge"
|
||||
android:layout_marginEnd="@dimen/spacing_mid_huge"
|
||||
android:layout_marginStart="@dimen/spacing_huge"
|
||||
android:layout_marginEnd="@dimen/spacing_huge"
|
||||
android:onClick="@{() -> detailModel.navToItem(playbackModel.song.album)}"
|
||||
android:text="@{song.album.name}"
|
||||
app:layout_constraintBottom_toTopOf="@+id/playback_seek_bar"
|
||||
|
@ -94,8 +95,8 @@
|
|||
android:id="@+id/playback_seek_bar"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/spacing_mid_huge"
|
||||
android:layout_marginEnd="@dimen/spacing_mid_huge"
|
||||
android:layout_marginStart="@dimen/spacing_large"
|
||||
android:layout_marginEnd="@dimen/spacing_large"
|
||||
app:layout_constraintBottom_toTopOf="@+id/playback_play_pause"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
@ -127,9 +128,9 @@
|
|||
app:layout_constraintEnd_toStartOf="@+id/playback_play_pause"
|
||||
app:layout_constraintTop_toTopOf="@+id/playback_play_pause" />
|
||||
|
||||
<ImageButton
|
||||
<com.google.android.material.floatingactionbutton.FloatingActionButton
|
||||
android:id="@+id/playback_play_pause"
|
||||
style="@style/Widget.Auxio.Button.Circular"
|
||||
style="@style/Widget.Auxio.FloatingActionButton.MidLarge"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="@dimen/spacing_large"
|
||||
|
|
|
@ -8,8 +8,8 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:overScrollMode="never"
|
||||
android:paddingTop="@dimen/spacing_medium"
|
||||
android:paddingStart="@dimen/spacing_medium"
|
||||
android:paddingTop="@dimen/spacing_medium"
|
||||
android:paddingEnd="@dimen/spacing_medium"
|
||||
app:layoutManager="org.oxycblt.auxio.accent.AutoGridLayoutManager"
|
||||
app:layout_constraintBottom_toTopOf="@+id/accent_cancel"
|
||||
|
|
|
@ -178,8 +178,8 @@
|
|||
style="@style/Widget.Auxio.TextView.Icon"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:theme="@style/Theme.Auxio.Neutral"
|
||||
android:text="@string/lbl_author"
|
||||
android:theme="@style/Theme.Auxio.Neutral"
|
||||
app:drawableStartCompat="@drawable/ic_artist"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
|
|
|
@ -32,9 +32,10 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:background="@android:color/transparent"
|
||||
app:tabContentStart="@dimen/spacing_medium"
|
||||
app:tabMode="scrollable"
|
||||
app:tabGravity="start"
|
||||
app:tabTextColor="@color/sel_accented_primary"/>
|
||||
app:tabMode="scrollable"
|
||||
app:tabTextAppearance="@style/TextAppearance.Auxio.LabelLarge"
|
||||
app:tabTextColor="@color/sel_accented_primary" />
|
||||
|
||||
</org.oxycblt.auxio.ui.EdgeAppBarLayout>
|
||||
|
||||
|
@ -57,10 +58,10 @@
|
|||
android:id="@+id/home_fab"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:src="@drawable/ic_shuffle"
|
||||
app:fabSize="normal"
|
||||
android:layout_margin="@dimen/spacing_medium"
|
||||
android:contentDescription="@string/desc_shuffle_all"
|
||||
android:src="@drawable/ic_shuffle"
|
||||
app:fabSize="normal"
|
||||
app:tint="?attr/colorOnPrimaryContainer" />
|
||||
|
||||
</org.oxycblt.auxio.home.FloatingActionButtonContainer>
|
||||
|
|
|
@ -23,7 +23,8 @@
|
|||
android:id="@+id/playback_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="?attr/colorSurface">
|
||||
android:background="?attr/colorSurface"
|
||||
android:clipToPadding="false">
|
||||
|
||||
<androidx.appcompat.widget.Toolbar
|
||||
android:id="@+id/playback_toolbar"
|
||||
|
@ -93,8 +94,8 @@
|
|||
android:id="@+id/playback_seek_bar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/spacing_medium"
|
||||
android:layout_marginEnd="@dimen/spacing_medium"
|
||||
android:layout_marginStart="@dimen/spacing_small"
|
||||
android:layout_marginEnd="@dimen/spacing_small"
|
||||
app:layout_constraintBottom_toTopOf="@+id/playback_play_pause"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
@ -125,9 +126,9 @@
|
|||
app:layout_constraintStart_toEndOf="@+id/playback_loop"
|
||||
app:layout_constraintTop_toTopOf="@+id/playback_play_pause" />
|
||||
|
||||
<ImageButton
|
||||
<com.google.android.material.floatingactionbutton.FloatingActionButton
|
||||
android:id="@+id/playback_play_pause"
|
||||
style="@style/Widget.Auxio.Button.Circular"
|
||||
style="@style/Widget.Auxio.FloatingActionButton.MidLarge"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="@dimen/spacing_medium"
|
||||
|
|
|
@ -24,24 +24,24 @@
|
|||
android:id="@+id/search_text_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:hintEnabled="false"
|
||||
app:endIconContentDescription="@string/desc_clear_search"
|
||||
app:endIconDrawable="@drawable/ic_close"
|
||||
app:endIconMode="clear_text"
|
||||
app:endIconTint="?attr/colorControlNormal"
|
||||
app:errorEnabled="false">
|
||||
app:errorEnabled="false"
|
||||
app:hintEnabled="false">
|
||||
|
||||
<com.google.android.material.textfield.TextInputEditText
|
||||
android:id="@+id/search_edit_text"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:textAppearance="@style/TextAppearance.Auxio.BodyLarge"
|
||||
android:background="@android:color/transparent"
|
||||
android:paddingStart="0dp"
|
||||
android:paddingEnd="0dp"
|
||||
android:hint="@string/hint_search_library"
|
||||
android:imeOptions="actionSearch|flagNoExtractUi"
|
||||
android:inputType="textFilter" />
|
||||
android:inputType="textFilter"
|
||||
android:paddingStart="0dp"
|
||||
android:paddingEnd="0dp"
|
||||
android:textAppearance="@style/TextAppearance.Auxio.BodyLarge" />
|
||||
|
||||
</com.google.android.material.textfield.TextInputLayout>
|
||||
|
||||
|
|
|
@ -4,11 +4,11 @@
|
|||
tools:context=".settings.pref.AccentAdapter.ViewHolder">
|
||||
|
||||
<FrameLayout
|
||||
android:theme="@style/ThemeOverlay.Accent"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingTop="@dimen/spacing_small"
|
||||
android:paddingBottom="@dimen/spacing_small">
|
||||
android:paddingBottom="@dimen/spacing_small"
|
||||
android:theme="@style/ThemeOverlay.Accent">
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/accent"
|
||||
|
|
|
@ -31,12 +31,12 @@
|
|||
style="@style/Widget.AppCompat.Button.Borderless"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/ui_small_unbounded_ripple"
|
||||
android:contentDescription="@{context.getString(header.desc)}"
|
||||
android:minWidth="@dimen/size_btn_small"
|
||||
android:minHeight="@dimen/size_btn_small"
|
||||
android:paddingStart="@dimen/spacing_medium"
|
||||
android:paddingEnd="@dimen/spacing_medium"
|
||||
android:background="@drawable/ui_small_unbounded_ripple"
|
||||
android:src="@{context.getDrawable(header.icon)}"
|
||||
app:layout_constraintBottom_toTopOf="@id/header_divider"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
|
|
|
@ -25,9 +25,9 @@
|
|||
|
||||
<TextView
|
||||
android:id="@+id/artist_name"
|
||||
style="@style/Widget.Auxio.TextView.Item.Primary"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/Widget.Auxio.TextView.Item.Primary"
|
||||
android:text="@{artist.resolvedName}"
|
||||
app:layout_constraintBottom_toTopOf="@+id/artist_details"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
|
@ -38,9 +38,9 @@
|
|||
|
||||
<TextView
|
||||
android:id="@+id/artist_details"
|
||||
style="@style/Widget.Auxio.TextView.Item.Secondary"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/Widget.Auxio.TextView.Item.Secondary"
|
||||
app:artistCounts="@{artist}"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
|
|
|
@ -25,11 +25,11 @@
|
|||
|
||||
<TextView
|
||||
android:id="@+id/album_name"
|
||||
style="@style/Widget.Auxio.TextView.Item.Primary"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/Widget.Auxio.TextView.Item.Primary"
|
||||
android:textColor="@color/sel_accented_primary"
|
||||
android:text="@{album.name}"
|
||||
android:textColor="@color/sel_accented_primary"
|
||||
app:layout_constraintBottom_toTopOf="@+id/album_year"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@+id/album_cover"
|
||||
|
@ -39,9 +39,9 @@
|
|||
|
||||
<TextView
|
||||
android:id="@+id/album_year"
|
||||
style="@style/Widget.Auxio.TextView.Item.Secondary"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/Widget.Auxio.TextView.Item.Secondary"
|
||||
android:text="@{album.year != 0 ? String.valueOf(album.year) : @string/def_date}"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
|
|
|
@ -53,9 +53,9 @@
|
|||
|
||||
<TextView
|
||||
android:id="@+id/song_duration"
|
||||
style="@style/Widget.Auxio.TextView.Item.Secondary"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/Widget.Auxio.TextView.Item.Secondary"
|
||||
android:ellipsize="none"
|
||||
android:gravity="end"
|
||||
android:text="@{song.formattedDuration}"
|
||||
|
|
|
@ -35,9 +35,9 @@
|
|||
|
||||
<TextView
|
||||
android:id="@+id/detail_subhead"
|
||||
style="@style/Widget.Auxio.TextView.Secondary"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/Widget.Auxio.TextView.Secondary"
|
||||
android:textColor="?android:attr/textColorSecondary"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/detail_name"
|
||||
|
@ -45,9 +45,9 @@
|
|||
|
||||
<TextView
|
||||
android:id="@+id/detail_info"
|
||||
style="@style/Widget.Auxio.TextView.Secondary"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/Widget.Auxio.TextView.Secondary"
|
||||
android:textColor="?android:attr/textColorSecondary"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/detail_subhead"
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
style="@style/Widget.Auxio.ItemLayout"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:clickable="false"
|
||||
android:focusable="false"
|
||||
android:padding="0dp">
|
||||
|
@ -14,11 +14,11 @@
|
|||
<TextView
|
||||
android:id="@+id/excluded_path"
|
||||
style="@style/Widget.Auxio.TextView.Item.Primary"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="@dimen/spacing_medium"
|
||||
android:maxLines="@null"
|
||||
android:gravity="center"
|
||||
android:maxLines="@null"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@+id/excluded_clear"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
|
|
|
@ -53,9 +53,9 @@
|
|||
|
||||
<TextView
|
||||
android:id="@+id/song_duration"
|
||||
style="@style/Widget.Auxio.TextView.Item.Secondary"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/Widget.Auxio.TextView.Item.Secondary"
|
||||
android:ellipsize="none"
|
||||
android:gravity="end"
|
||||
android:text="@{song.formattedDuration}"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<layout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
tools:context=".ui.HeaderViewHolder">
|
||||
|
||||
<data>
|
||||
|
|
|
@ -21,16 +21,16 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="?attr/colorPrimary"
|
||||
android:visibility="invisible"/>
|
||||
android:visibility="invisible" />
|
||||
|
||||
<ImageView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:src="@drawable/ic_clear"
|
||||
android:layout_gravity="end|center_vertical"
|
||||
android:contentDescription="@string/desc_clear_queue_item"
|
||||
android:padding="@dimen/spacing_medium"
|
||||
app:tint="?attr/colorSurface"
|
||||
android:contentDescription="@string/desc_clear_queue_item"/>
|
||||
android:src="@drawable/ic_clear"
|
||||
app:tint="?attr/colorSurface" />
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/body"
|
||||
|
|
|
@ -5,22 +5,22 @@
|
|||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
style="@style/Widget.Auxio.ItemLayout"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="0dp">
|
||||
|
||||
<com.google.android.material.checkbox.MaterialCheckBox
|
||||
android:id="@+id/tab_icon"
|
||||
android:layout_width="0dp"
|
||||
style="@style/Widget.Material3.CompoundButton.CheckBox"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/spacing_medium"
|
||||
android:layout_marginTop="@dimen/spacing_small"
|
||||
android:layout_marginBottom="@dimen/spacing_small"
|
||||
android:clickable="false"
|
||||
android:focusable="false"
|
||||
android:textAppearance="@style/TextAppearance.Auxio.BodyLarge"
|
||||
android:paddingStart="@dimen/spacing_medium"
|
||||
android:textAppearance="@style/TextAppearance.Auxio.BodyLarge"
|
||||
app:buttonCompat="@null"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@+id/tab_drag_handle"
|
||||
|
|
|
@ -30,9 +30,9 @@
|
|||
|
||||
<TextView
|
||||
android:id="@+id/playback_song"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="0dp"
|
||||
style="@style/Widget.Auxio.TextView.Primary.Compact"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/spacing_small"
|
||||
android:layout_marginEnd="@dimen/spacing_small"
|
||||
android:text="@{song.name}"
|
||||
|
@ -45,9 +45,9 @@
|
|||
|
||||
<TextView
|
||||
android:id="@+id/playback_info"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="0dp"
|
||||
style="@style/Widget.Auxio.TextView.Secondary.Compact"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/spacing_small"
|
||||
android:layout_marginEnd="@dimen/spacing_small"
|
||||
android:ellipsize="end"
|
||||
|
@ -60,25 +60,26 @@
|
|||
|
||||
<ImageButton
|
||||
android:id="@+id/playback_play_pause"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="wrap_content"
|
||||
style="@style/Widget.Auxio.Button.Unbounded"
|
||||
android:src="@drawable/sel_playing_state"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="@dimen/spacing_small"
|
||||
android:contentDescription="@string/desc_play_pause"
|
||||
android:src="@drawable/sel_playing_state"
|
||||
app:layout_constraintBottom_toTopOf="@+id/playback_progress_bar"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<ProgressBar
|
||||
<com.google.android.material.progressindicator.LinearProgressIndicator
|
||||
android:id="@+id/playback_progress_bar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/size_stroke_large"
|
||||
android:layout_height="wrap_content"
|
||||
android:disabledAlpha="0.24"
|
||||
android:max="@{(int) song.seconds}"
|
||||
style="@style/Widget.Auxio.ProgressBar"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:trackColor="@color/blue_primary"
|
||||
tools:progress="70" />
|
||||
|
||||
</merge>
|
||||
|
|
|
@ -8,14 +8,18 @@
|
|||
tools:layout_width="match_parent"
|
||||
tools:parentTag="androidx.constraintlayout.widget.ConstraintLayout">
|
||||
|
||||
<SeekBar
|
||||
<com.google.android.material.slider.Slider
|
||||
android:id="@+id/seek_bar"
|
||||
style="@style/Widget.Auxio.SeekBar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="@dimen/spacing_medium"
|
||||
android:paddingStart="@dimen/spacing_small"
|
||||
android:paddingEnd="@dimen/spacing_small"
|
||||
android:layout_marginBottom="@dimen/spacing_medium"
|
||||
app:labelBehavior="gone"
|
||||
android:valueFrom="0"
|
||||
android:valueTo="0"
|
||||
app:thumbRadius="6dp"
|
||||
app:haloRadius="14dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
@ -24,8 +28,8 @@
|
|||
android:id="@+id/playback_duration_current"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/spacing_medium"
|
||||
android:layout_marginBottom="@dimen/spacing_small"
|
||||
android:layout_marginStart="@dimen/spacing_small"
|
||||
android:textColor="@color/sel_accented_secondary"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
|
@ -35,8 +39,8 @@
|
|||
android:id="@+id/playback_song_duration"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="@dimen/spacing_medium"
|
||||
android:layout_marginBottom="@dimen/spacing_small"
|
||||
android:layout_marginEnd="@dimen/spacing_small"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
tools:text="16:16" />
|
||||
|
|
|
@ -2,10 +2,10 @@
|
|||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@android:id/background"
|
||||
android:background="?attr/colorSurface"
|
||||
android:theme="@style/Theme.Widget"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
android:layout_height="match_parent"
|
||||
android:background="?attr/colorSurface"
|
||||
android:theme="@style/Theme.Widget">
|
||||
|
||||
<!--
|
||||
We can't use ConstraintLayout on widgets due to RemoteView limitations, but
|
||||
|
@ -19,15 +19,15 @@
|
|||
android:id="@+id/widget_aspect_ratio"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_above="@+id/widget_panel"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_marginStart="@dimen/spacing_medium"
|
||||
android:layout_marginTop="@dimen/spacing_medium"
|
||||
android:layout_marginEnd="@dimen/spacing_medium"
|
||||
android:adjustViewBounds="true"
|
||||
android:scaleType="fitCenter"
|
||||
android:layout_marginTop="@dimen/spacing_medium"
|
||||
android:layout_marginStart="@dimen/spacing_medium"
|
||||
android:layout_marginEnd="@dimen/spacing_medium"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_above="@+id/widget_panel"
|
||||
android:src="@drawable/ui_widget_aspect_ratio"
|
||||
android:visibility="invisible"
|
||||
tools:ignore="ContentDescription" />
|
||||
|
@ -71,45 +71,45 @@
|
|||
<android.widget.ImageButton
|
||||
android:id="@+id/widget_loop"
|
||||
style="@style/Widget.Auxio.Button.AppWidget"
|
||||
android:layout_weight="1"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:contentDescription="@string/desc_change_loop"
|
||||
android:src="@drawable/ic_loop" />
|
||||
|
||||
<android.widget.ImageButton
|
||||
android:id="@+id/widget_skip_prev"
|
||||
android:layout_weight="1"
|
||||
style="@style/Widget.Auxio.Button.AppWidget"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:contentDescription="@string/desc_skip_prev"
|
||||
android:src="@drawable/ic_skip_prev" />
|
||||
|
||||
<android.widget.ImageButton
|
||||
android:id="@+id/widget_play_pause"
|
||||
android:layout_weight="1"
|
||||
style="@style/Widget.Auxio.Button.AppWidget"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:contentDescription="@string/desc_play_pause"
|
||||
android:src="@drawable/sel_playing_state" />
|
||||
|
||||
<android.widget.ImageButton
|
||||
android:id="@+id/widget_skip_next"
|
||||
android:layout_weight="1"
|
||||
style="@style/Widget.Auxio.Button.AppWidget"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:contentDescription="@string/desc_skip_next"
|
||||
android:src="@drawable/ic_skip_next" />
|
||||
|
||||
<android.widget.ImageButton
|
||||
android:id="@+id/widget_shuffle"
|
||||
style="@style/Widget.Auxio.Button.AppWidget"
|
||||
android:layout_weight="1"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:contentDescription="@string/desc_shuffle"
|
||||
android:src="@drawable/ic_shuffle" />
|
||||
|
||||
|
|
|
@ -2,10 +2,10 @@
|
|||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@android:id/background"
|
||||
android:background="?attr/colorSurface"
|
||||
android:theme="@style/Theme.Widget"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
android:layout_height="match_parent"
|
||||
android:background="?attr/colorSurface"
|
||||
android:theme="@style/Theme.Widget">
|
||||
|
||||
<!--
|
||||
We can't use ConstraintLayout on widgets due to RemoteView limitations, but
|
||||
|
@ -19,15 +19,15 @@
|
|||
android:id="@+id/widget_aspect_ratio"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_above="@+id/widget_panel"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_marginStart="@dimen/spacing_medium"
|
||||
android:layout_marginTop="@dimen/spacing_medium"
|
||||
android:layout_marginEnd="@dimen/spacing_medium"
|
||||
android:adjustViewBounds="true"
|
||||
android:scaleType="fitCenter"
|
||||
android:layout_marginTop="@dimen/spacing_medium"
|
||||
android:layout_marginStart="@dimen/spacing_medium"
|
||||
android:layout_marginEnd="@dimen/spacing_medium"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_above="@+id/widget_panel"
|
||||
android:src="@drawable/ui_widget_aspect_ratio"
|
||||
android:visibility="invisible"
|
||||
tools:ignore="ContentDescription" />
|
||||
|
|
|
@ -3,60 +3,60 @@
|
|||
android:id="@android:id/background"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
android:gravity="center_vertical"
|
||||
android:background="?attr/colorSurface"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="vertical"
|
||||
android:theme="@style/Theme.Widget">
|
||||
|
||||
|
||||
<LinearLayout
|
||||
style="@style/Widget.Auxio.AppWidget.Panel"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/widget_cover"
|
||||
style="@style/Widget.Auxio.Image.Normal"
|
||||
android:layout_marginEnd="@dimen/spacing_medium"
|
||||
android:contentDescription="@string/desc_no_cover"
|
||||
android:scaleType="centerCrop"
|
||||
android:src="@drawable/ic_song" />
|
||||
|
||||
<LinearLayout
|
||||
style="@style/Widget.Auxio.AppWidget.Panel"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal">
|
||||
android:layout_weight="1"
|
||||
android:orientation="vertical">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/widget_cover"
|
||||
style="@style/Widget.Auxio.Image.Normal"
|
||||
android:contentDescription="@string/desc_no_cover"
|
||||
android:scaleType="centerCrop"
|
||||
android:layout_marginEnd="@dimen/spacing_medium"
|
||||
android:src="@drawable/ic_song" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
<android.widget.TextView
|
||||
android:id="@+id/widget_song"
|
||||
style="@style/Widget.Auxio.TextView.Primary.AppWidget"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
android:text="@string/def_widget_song" />
|
||||
|
||||
<android.widget.TextView
|
||||
android:id="@+id/widget_song"
|
||||
style="@style/Widget.Auxio.TextView.Primary.AppWidget"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/def_widget_song" />
|
||||
|
||||
<android.widget.TextView
|
||||
android:id="@+id/widget_artist"
|
||||
style="@style/Widget.Auxio.TextView.Secondary.AppWidget"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/def_widget_artist" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<android.widget.ImageButton
|
||||
android:id="@+id/widget_play_pause"
|
||||
style="@style/Widget.Auxio.Button.AppWidget"
|
||||
android:layout_width="wrap_content"
|
||||
<android.widget.TextView
|
||||
android:id="@+id/widget_artist"
|
||||
style="@style/Widget.Auxio.TextView.Secondary.AppWidget"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:minHeight="@dimen/size_btn_small"
|
||||
android:minWidth="@dimen/size_btn_small"
|
||||
android:contentDescription="@string/desc_play_pause"
|
||||
android:src="@drawable/sel_playing_state" />
|
||||
|
||||
android:text="@string/def_widget_artist" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<android.widget.ImageButton
|
||||
android:id="@+id/widget_play_pause"
|
||||
style="@style/Widget.Auxio.Button.AppWidget"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/desc_play_pause"
|
||||
android:minWidth="@dimen/size_btn_small"
|
||||
android:minHeight="@dimen/size_btn_small"
|
||||
android:src="@drawable/sel_playing_state" />
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
|
|
@ -3,9 +3,9 @@
|
|||
android:id="@android:id/background"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
android:gravity="center_vertical"
|
||||
android:background="?attr/colorSurface"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="vertical"
|
||||
android:theme="@style/Theme.Widget">
|
||||
|
||||
<android.widget.LinearLayout style="@style/Widget.Auxio.AppWidget.Panel">
|
||||
|
@ -18,9 +18,9 @@
|
|||
<ImageView
|
||||
android:id="@+id/widget_cover"
|
||||
style="@style/Widget.Auxio.Image.Normal"
|
||||
android:layout_marginEnd="@dimen/spacing_medium"
|
||||
android:contentDescription="@string/desc_no_cover"
|
||||
android:scaleType="centerCrop"
|
||||
android:layout_marginEnd="@dimen/spacing_medium"
|
||||
android:src="@drawable/ic_song" />
|
||||
|
||||
<LinearLayout
|
||||
|
@ -55,45 +55,45 @@
|
|||
<android.widget.ImageButton
|
||||
android:id="@+id/widget_loop"
|
||||
style="@style/Widget.Auxio.Button.AppWidget"
|
||||
android:layout_weight="1"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:contentDescription="@string/desc_change_loop"
|
||||
android:src="@drawable/ic_loop" />
|
||||
|
||||
<android.widget.ImageButton
|
||||
android:id="@+id/widget_skip_prev"
|
||||
android:layout_weight="1"
|
||||
style="@style/Widget.Auxio.Button.AppWidget"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:contentDescription="@string/desc_skip_prev"
|
||||
android:src="@drawable/ic_skip_prev" />
|
||||
|
||||
<android.widget.ImageButton
|
||||
android:id="@+id/widget_play_pause"
|
||||
android:layout_weight="1"
|
||||
style="@style/Widget.Auxio.Button.AppWidget"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:contentDescription="@string/desc_play_pause"
|
||||
android:src="@drawable/sel_playing_state" />
|
||||
|
||||
<android.widget.ImageButton
|
||||
android:id="@+id/widget_skip_next"
|
||||
android:layout_weight="1"
|
||||
style="@style/Widget.Auxio.Button.AppWidget"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:contentDescription="@string/desc_skip_next"
|
||||
android:src="@drawable/ic_skip_next" />
|
||||
|
||||
<android.widget.ImageButton
|
||||
android:id="@+id/widget_shuffle"
|
||||
style="@style/Widget.Auxio.Button.AppWidget"
|
||||
android:layout_weight="1"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:contentDescription="@string/desc_shuffle"
|
||||
android:src="@drawable/ic_shuffle" />
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@drawable/ic_launcher_background"/>
|
||||
<foreground android:drawable="@drawable/ic_launcher_foreground"/>
|
||||
<background android:drawable="@drawable/ic_launcher_background" />
|
||||
<foreground android:drawable="@drawable/ic_launcher_foreground" />
|
||||
</adaptive-icon>
|
|
@ -16,23 +16,32 @@
|
|||
<item name="colorOnPrimary">@color/m3_sys_color_dynamic_dark_on_primary</item>
|
||||
<item name="colorPrimaryInverse">@color/m3_sys_color_dynamic_dark_inverse_primary</item>
|
||||
<item name="colorPrimaryContainer">@color/m3_sys_color_dynamic_dark_primary_container</item>
|
||||
<item name="colorOnPrimaryContainer">@color/m3_sys_color_dynamic_dark_on_primary_container</item>
|
||||
<item name="colorOnPrimaryContainer">@color/m3_sys_color_dynamic_dark_on_primary_container
|
||||
</item>
|
||||
<item name="colorSecondary">@color/m3_sys_color_dynamic_dark_secondary</item>
|
||||
<item name="colorOnSecondary">@color/m3_sys_color_dynamic_dark_on_secondary</item>
|
||||
<item name="colorSecondaryContainer">@color/m3_sys_color_dynamic_dark_secondary_container</item>
|
||||
<item name="colorOnSecondaryContainer">@color/m3_sys_color_dynamic_dark_on_secondary_container</item>
|
||||
<item name="colorSecondaryContainer">@color/m3_sys_color_dynamic_dark_secondary_container
|
||||
</item>
|
||||
<item name="colorOnSecondaryContainer">
|
||||
@color/m3_sys_color_dynamic_dark_on_secondary_container
|
||||
</item>
|
||||
<item name="colorTertiary">@color/m3_sys_color_dynamic_dark_tertiary</item>
|
||||
<item name="colorOnTertiary">@color/m3_sys_color_dynamic_dark_on_tertiary</item>
|
||||
<item name="colorTertiaryContainer">@color/m3_sys_color_dynamic_dark_tertiary_container</item>
|
||||
<item name="colorOnTertiaryContainer">@color/m3_sys_color_dynamic_dark_on_tertiary_container</item>
|
||||
<item name="colorTertiaryContainer">@color/m3_sys_color_dynamic_dark_tertiary_container
|
||||
</item>
|
||||
<item name="colorOnTertiaryContainer">
|
||||
@color/m3_sys_color_dynamic_dark_on_tertiary_container
|
||||
</item>
|
||||
<item name="android:colorBackground">@color/m3_sys_color_dynamic_dark_background</item>
|
||||
<item name="colorOnBackground">@color/m3_sys_color_dynamic_dark_on_background</item>
|
||||
<item name="colorSurface">@color/m3_sys_color_dynamic_dark_surface</item>
|
||||
<item name="colorOnSurface">@color/m3_sys_color_dynamic_dark_on_surface</item>
|
||||
<item name="colorSurfaceVariant">@color/m3_sys_color_dynamic_dark_surface_variant</item>
|
||||
<item name="colorOnSurfaceVariant">@color/m3_sys_color_dynamic_dark_on_surface_variant</item>
|
||||
<item name="colorOnSurfaceVariant">@color/m3_sys_color_dynamic_dark_on_surface_variant
|
||||
</item>
|
||||
<item name="colorSurfaceInverse">@color/m3_sys_color_dynamic_dark_inverse_surface</item>
|
||||
<item name="colorOnSurfaceInverse">@color/m3_sys_color_dynamic_dark_inverse_on_surface</item>
|
||||
<item name="colorOnSurfaceInverse">@color/m3_sys_color_dynamic_dark_inverse_on_surface
|
||||
</item>
|
||||
<item name="colorOutline">@color/m3_sys_color_dynamic_dark_outline</item>
|
||||
<item name="colorError">@color/m3_sys_color_dark_error</item>
|
||||
<item name="colorOnError">@color/m3_sys_color_dark_on_error</item>
|
||||
|
@ -40,17 +49,32 @@
|
|||
<item name="colorOnErrorContainer">@color/m3_sys_color_dark_on_error_container</item>
|
||||
|
||||
<!-- Default Framework Text Colors. -->
|
||||
<item name="android:textColorPrimary">@color/m3_dynamic_dark_default_color_primary_text</item>
|
||||
<item name="android:textColorPrimaryInverse">@color/m3_dynamic_default_color_primary_text</item>
|
||||
<item name="android:textColorSecondary">@color/m3_dynamic_dark_default_color_secondary_text</item>
|
||||
<item name="android:textColorSecondaryInverse">@color/m3_dynamic_default_color_secondary_text</item>
|
||||
<item name="android:textColorTertiary">@color/m3_dynamic_dark_default_color_secondary_text</item>
|
||||
<item name="android:textColorTertiaryInverse">@color/m3_dynamic_default_color_secondary_text</item>
|
||||
<item name="android:textColorPrimaryDisableOnly">@color/m3_dynamic_dark_primary_text_disable_only</item>
|
||||
<item name="android:textColorPrimaryInverseDisableOnly">@color/m3_dynamic_primary_text_disable_only</item>
|
||||
<item name="android:textColorPrimary">@color/m3_dynamic_dark_default_color_primary_text
|
||||
</item>
|
||||
<item name="android:textColorPrimaryInverse">@color/m3_dynamic_default_color_primary_text
|
||||
</item>
|
||||
<item name="android:textColorSecondary">
|
||||
@color/m3_dynamic_dark_default_color_secondary_text
|
||||
</item>
|
||||
<item name="android:textColorSecondaryInverse">
|
||||
@color/m3_dynamic_default_color_secondary_text
|
||||
</item>
|
||||
<item name="android:textColorTertiary">@color/m3_dynamic_dark_default_color_secondary_text
|
||||
</item>
|
||||
<item name="android:textColorTertiaryInverse">
|
||||
@color/m3_dynamic_default_color_secondary_text
|
||||
</item>
|
||||
<item name="android:textColorPrimaryDisableOnly">
|
||||
@color/m3_dynamic_dark_primary_text_disable_only
|
||||
</item>
|
||||
<item name="android:textColorPrimaryInverseDisableOnly">
|
||||
@color/m3_dynamic_primary_text_disable_only
|
||||
</item>
|
||||
<item name="android:textColorHint">@color/m3_dynamic_dark_hint_foreground</item>
|
||||
<item name="android:textColorHintInverse">@color/m3_dynamic_hint_foreground</item>
|
||||
<item name="android:textColorAlertDialogListItem">@color/m3_dynamic_dark_default_color_primary_text</item>
|
||||
<item name="android:textColorAlertDialogListItem">
|
||||
@color/m3_dynamic_dark_default_color_primary_text
|
||||
</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Widget" parent="@android:style/Theme.DeviceDefault.DayNight">
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
<style name="Widget.Auxio.Button.AppWidget.V31" parent="Widget.AppCompat.Button.Borderless">
|
||||
<item name="android:background">@drawable/ui_unbounded_ripple</item>
|
||||
</style>
|
||||
|
|
|
@ -15,24 +15,35 @@
|
|||
<item name="colorPrimary">@color/m3_sys_color_dynamic_light_primary</item>
|
||||
<item name="colorOnPrimary">@color/m3_sys_color_dynamic_light_on_primary</item>
|
||||
<item name="colorPrimaryInverse">@color/m3_sys_color_dynamic_light_inverse_primary</item>
|
||||
<item name="colorPrimaryContainer">@color/m3_sys_color_dynamic_light_primary_container</item>
|
||||
<item name="colorOnPrimaryContainer">@color/m3_sys_color_dynamic_light_on_primary_container</item>
|
||||
<item name="colorPrimaryContainer">@color/m3_sys_color_dynamic_light_primary_container
|
||||
</item>
|
||||
<item name="colorOnPrimaryContainer">
|
||||
@color/m3_sys_color_dynamic_light_on_primary_container
|
||||
</item>
|
||||
<item name="colorSecondary">@color/m3_sys_color_dynamic_light_secondary</item>
|
||||
<item name="colorOnSecondary">@color/m3_sys_color_dynamic_light_on_secondary</item>
|
||||
<item name="colorSecondaryContainer">@color/m3_sys_color_dynamic_light_secondary_container</item>
|
||||
<item name="colorOnSecondaryContainer">@color/m3_sys_color_dynamic_light_on_secondary_container</item>
|
||||
<item name="colorSecondaryContainer">@color/m3_sys_color_dynamic_light_secondary_container
|
||||
</item>
|
||||
<item name="colorOnSecondaryContainer">
|
||||
@color/m3_sys_color_dynamic_light_on_secondary_container
|
||||
</item>
|
||||
<item name="colorTertiary">@color/m3_sys_color_dynamic_light_tertiary</item>
|
||||
<item name="colorOnTertiary">@color/m3_sys_color_dynamic_light_on_tertiary</item>
|
||||
<item name="colorTertiaryContainer">@color/m3_sys_color_dynamic_light_tertiary_container</item>
|
||||
<item name="colorOnTertiaryContainer">@color/m3_sys_color_dynamic_light_on_tertiary_container</item>
|
||||
<item name="colorTertiaryContainer">@color/m3_sys_color_dynamic_light_tertiary_container
|
||||
</item>
|
||||
<item name="colorOnTertiaryContainer">
|
||||
@color/m3_sys_color_dynamic_light_on_tertiary_container
|
||||
</item>
|
||||
<item name="android:colorBackground">@color/m3_sys_color_dynamic_light_background</item>
|
||||
<item name="colorOnBackground">@color/m3_sys_color_dynamic_light_on_background</item>
|
||||
<item name="colorSurface">@color/m3_sys_color_dynamic_light_surface</item>
|
||||
<item name="colorOnSurface">@color/m3_sys_color_dynamic_light_on_surface</item>
|
||||
<item name="colorSurfaceVariant">@color/m3_sys_color_dynamic_light_surface_variant</item>
|
||||
<item name="colorOnSurfaceVariant">@color/m3_sys_color_dynamic_light_on_surface_variant</item>
|
||||
<item name="colorOnSurfaceVariant">@color/m3_sys_color_dynamic_light_on_surface_variant
|
||||
</item>
|
||||
<item name="colorSurfaceInverse">@color/m3_sys_color_dynamic_light_inverse_surface</item>
|
||||
<item name="colorOnSurfaceInverse">@color/m3_sys_color_dynamic_light_inverse_on_surface</item>
|
||||
<item name="colorOnSurfaceInverse">@color/m3_sys_color_dynamic_light_inverse_on_surface
|
||||
</item>
|
||||
<item name="colorOutline">@color/m3_sys_color_dynamic_light_outline</item>
|
||||
<item name="colorError">@color/m3_sys_color_light_error</item>
|
||||
<item name="colorOnError">@color/m3_sys_color_light_on_error</item>
|
||||
|
@ -41,16 +52,29 @@
|
|||
|
||||
<!-- Default Framework Text Colors. -->
|
||||
<item name="android:textColorPrimary">@color/m3_dynamic_default_color_primary_text</item>
|
||||
<item name="android:textColorPrimaryInverse">@color/m3_dynamic_dark_default_color_primary_text</item>
|
||||
<item name="android:textColorSecondary">@color/m3_dynamic_default_color_secondary_text</item>
|
||||
<item name="android:textColorSecondaryInverse">@color/m3_dynamic_dark_default_color_secondary_text</item>
|
||||
<item name="android:textColorPrimaryInverse">
|
||||
@color/m3_dynamic_dark_default_color_primary_text
|
||||
</item>
|
||||
<item name="android:textColorSecondary">@color/m3_dynamic_default_color_secondary_text
|
||||
</item>
|
||||
<item name="android:textColorSecondaryInverse">
|
||||
@color/m3_dynamic_dark_default_color_secondary_text
|
||||
</item>
|
||||
<item name="android:textColorTertiary">@color/m3_dynamic_default_color_secondary_text</item>
|
||||
<item name="android:textColorTertiaryInverse">@color/m3_dynamic_dark_default_color_secondary_text</item>
|
||||
<item name="android:textColorPrimaryDisableOnly">@color/m3_dynamic_primary_text_disable_only</item>
|
||||
<item name="android:textColorPrimaryInverseDisableOnly">@color/m3_dynamic_dark_primary_text_disable_only</item>
|
||||
<item name="android:textColorTertiaryInverse">
|
||||
@color/m3_dynamic_dark_default_color_secondary_text
|
||||
</item>
|
||||
<item name="android:textColorPrimaryDisableOnly">
|
||||
@color/m3_dynamic_primary_text_disable_only
|
||||
</item>
|
||||
<item name="android:textColorPrimaryInverseDisableOnly">
|
||||
@color/m3_dynamic_dark_primary_text_disable_only
|
||||
</item>
|
||||
<item name="android:textColorHint">@color/m3_dynamic_hint_foreground</item>
|
||||
<item name="android:textColorHintInverse">@color/m3_dynamic_dark_hint_foreground</item>
|
||||
<item name="android:textColorAlertDialogListItem">@color/m3_dynamic_default_color_primary_text</item>
|
||||
<item name="android:textColorAlertDialogListItem">
|
||||
@color/m3_dynamic_default_color_primary_text
|
||||
</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Widget" parent="@android:style/Theme.DeviceDefault.DayNight">
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<dimen name="spacing_medium">16dp</dimen>
|
||||
<dimen name="spacing_mid_large">24dp</dimen>
|
||||
<dimen name="spacing_large">32dp</dimen>
|
||||
<dimen name="spacing_mid_huge">48dp</dimen>
|
||||
<dimen name="spacing_huge">48dp</dimen>
|
||||
<dimen name="spacing_insane">128dp</dimen>
|
||||
|
||||
<!-- Size Namespace | Width & Heights for UI elements -->
|
||||
|
@ -17,12 +17,13 @@
|
|||
<dimen name="size_cover_huge_land">128dp</dimen>
|
||||
<dimen name="size_cover_huge">256dp</dimen>
|
||||
|
||||
<dimen name="size_stroke_large">2dp</dimen>
|
||||
<dimen name="size_stroke_large">1dp</dimen>
|
||||
|
||||
<dimen name="size_small_unb_ripple">20dp</dimen>
|
||||
<dimen name="size_unb_ripple">24dp</dimen>
|
||||
|
||||
<dimen name="size_track_number">32dp</dimen>
|
||||
<dimen name="size_play_fab_icon">32dp</dimen>
|
||||
|
||||
<!-- Misc -->
|
||||
<dimen name="elevation_small">2dp</dimen>
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
<!-- Style for dialog buttons -->
|
||||
<style name="Widget.Auxio.Dialog.Button" parent="Widget.Material3.Button.TextButton.Dialog">
|
||||
<item name="android:fontFamily">@font/inter_semibold</item>
|
||||
<item name="android:textAppearance">@style/TextAppearance.Auxio.LabelMedium</item>
|
||||
<item name="android:textAppearance">@style/TextAppearance.Auxio.LabelLarge</item>
|
||||
</style>
|
||||
|
||||
<!-- Custom button style that eliminates the weird margin that the neutral button has -->
|
||||
|
@ -48,8 +48,7 @@
|
|||
<!-- Widget TextView that mimics the main Auxio Primary TextView -->
|
||||
<style name="Widget.Auxio.TextView.Primary.AppWidget" parent="Widget.Auxio.TextView.AppWidget">
|
||||
<item name="android:textStyle">bold</item>
|
||||
<item name="android:textAppearance">@style/TextAppearance.Auxio.TitleMedium
|
||||
</item>
|
||||
<item name="android:textAppearance">@style/TextAppearance.Auxio.TitleMedium</item>
|
||||
</style>
|
||||
|
||||
<!-- Widget TextView that mimics the main Auxio Secondary TextView -->
|
||||
|
|
|
@ -3,7 +3,9 @@
|
|||
<!-- Master parent theme -->
|
||||
<style name="Theme.Auxio" parent="Theme.Material3.DayNight.NoActionBar" />
|
||||
<!-- Template theme that handles edge-to-edge on other styles variants -->
|
||||
<style name="Theme.Auxio.V27" parent="Theme.Auxio" />
|
||||
<style name="Theme.Auxio.V27" parent="Theme.Auxio">
|
||||
<item name="android:statusBarColor">@android:color/black</item>
|
||||
</style>
|
||||
<!-- Android 12 configuration -->
|
||||
<style name="Theme.Auxio.V31" parent="Theme.Auxio.V27">
|
||||
<!-- Make sure to apply more accent-friendly values on older versions -->
|
||||
|
@ -26,6 +28,7 @@
|
|||
<!-- Values -->
|
||||
<item name="colorAccent">?attr/colorSecondary</item>
|
||||
<item name="colorOutline">@color/overlay_stroke</item>
|
||||
<item name="indicatorColor">?attr/colorPrimary</item>
|
||||
<item name="colorControlNormal">?attr/colorOnSurfaceVariant</item>
|
||||
<item name="colorControlActivated">?attr/colorSecondary</item>
|
||||
|
||||
|
@ -56,6 +59,14 @@
|
|||
<item name="textAppearanceBodyLarge">@style/TextAppearance.Auxio.BodyLarge</item>
|
||||
<item name="textAppearanceBodyMedium">@style/TextAppearance.Auxio.BodyMedium</item>
|
||||
<item name="textAppearanceBodySmall">@style/TextAppearance.Auxio.BodySmall</item>
|
||||
|
||||
<!-- Work around other views actually using text appearances I modified -->
|
||||
<item name="android:textAppearanceListItem">@style/TextAppearance.Material3.TitleMedium</item>
|
||||
<item name="android:textAppearanceListItemSmall">@style/TextAppearance.Material3.TitleMedium</item>
|
||||
<item name="android:textAppearanceListItemSecondary">@style/TextAppearance.Material3.BodyMedium</item>
|
||||
<item name="textAppearanceListItem">@style/TextAppearance.Material3.TitleMedium</item>
|
||||
<item name="textAppearanceListItemSmall">@style/TextAppearance.Material3.TitleMedium</item>
|
||||
<item name="textAppearanceListItemSecondary">@style/TextAppearance.Material3.BodyMedium</item>
|
||||
</style>
|
||||
|
||||
<!-- The basic black theme derived in all black accents. -->
|
||||
|
|
|
@ -19,11 +19,6 @@
|
|||
<item name="navigationIcon">@drawable/ic_down</item>
|
||||
</style>
|
||||
|
||||
<style name="Widget.Auxio.ProgressBar" parent="Widget.AppCompat.ProgressBar.Horizontal">
|
||||
<item name="android:progressTint">?attr/colorPrimary</item>
|
||||
<item name="android:progressBackgroundTint">?attr/colorSecondary</item>
|
||||
</style>
|
||||
|
||||
<style name="Widget.Auxio.SeekBar" parent="Widget.AppCompat.SeekBar">
|
||||
<item name="android:progressTint">?attr/colorPrimary</item>
|
||||
<item name="android:progressBackgroundTint">?attr/colorSecondary</item>
|
||||
|
@ -106,6 +101,7 @@
|
|||
<item name="android:ellipsize">end</item>
|
||||
<item name="android:maxLines">1</item>
|
||||
<item name="android:fontFamily">@font/inter_semibold</item>
|
||||
<item name="android:textColor">?android:attr/textColorPrimary</item>
|
||||
<item name="android:textAppearance">@style/TextAppearance.Auxio.LabelMedium</item>
|
||||
</style>
|
||||
|
||||
|
@ -156,19 +152,16 @@
|
|||
|
||||
<style name="Widget.Auxio.Button.Primary" parent="Widget.Material3.Button">
|
||||
<item name="fontFamily">@font/inter_semibold</item>
|
||||
<item name="android:textAppearance">@style/TextAppearance.Auxio.LabelLarge</item>
|
||||
</style>
|
||||
|
||||
<style name="Widget.Auxio.Button.Secondary" parent="Widget.Material3.Button.OutlinedButton">
|
||||
<item name="fontFamily">@font/inter_semibold</item>
|
||||
<item name="android:textAppearance">@style/TextAppearance.Auxio.LabelLarge</item>
|
||||
</style>
|
||||
|
||||
<style name="Widget.Auxio.Button.Circular" parent="">
|
||||
<item name="android:minHeight">@dimen/size_btn_large</item>
|
||||
<item name="android:minWidth">@dimen/size_btn_large</item>
|
||||
<item name="android:background">@drawable/ui_play_pause_circle</item>
|
||||
<item name="android:contentDescription">@string/desc_play_pause</item>
|
||||
<item name="android:tint">?attr/colorSurface</item>
|
||||
<item name="android:scaleType">fitCenter</item>
|
||||
<item name="android:padding">@dimen/spacing_medium</item>
|
||||
<style name="Widget.Auxio.FloatingActionButton.MidLarge" parent="Widget.Material3.FloatingActionButton.Primary">
|
||||
<item name="maxImageSize">@dimen/size_play_fab_icon</item>
|
||||
<item name="fabCustomSize">@dimen/size_btn_large</item>
|
||||
</style>
|
||||
</resources>
|
|
@ -2,12 +2,12 @@
|
|||
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:description="@string/info_widget_desc"
|
||||
android:initialLayout="@layout/widget_medium"
|
||||
android:minResizeWidth="@dimen/widget_width_min"
|
||||
android:minResizeHeight="@dimen/widget_height_min"
|
||||
android:minWidth="@dimen/widget_width_def"
|
||||
android:minHeight="@dimen/widget_height_def"
|
||||
android:previewLayout="@layout/widget_medium"
|
||||
android:minResizeWidth="@dimen/widget_width_min"
|
||||
android:minResizeHeight="@dimen/widget_height_min"
|
||||
android:previewImage="@drawable/ui_widget_preview"
|
||||
android:previewLayout="@layout/widget_medium"
|
||||
android:resizeMode="horizontal|vertical"
|
||||
android:targetCellWidth="3"
|
||||
android:targetCellHeight="3"
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<PreferenceScreen xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<PreferenceCategory
|
||||
app:layout="@layout/item_header"
|
||||
app:isPreferenceVisible="@bool/enable_theme_settings"
|
||||
app:layout="@layout/item_header"
|
||||
app:title="@string/set_ui">
|
||||
|
||||
<org.oxycblt.auxio.settings.pref.IntListPreference
|
||||
|
@ -35,10 +35,10 @@
|
|||
app:title="@string/set_display">
|
||||
|
||||
<Preference
|
||||
app:iconSpaceReserved="false"
|
||||
app:key="KEY_LIB_TABS"
|
||||
app:title="@string/set_lib_tabs"
|
||||
app:summary="@string/set_lib_tabs_desc"
|
||||
app:iconSpaceReserved="false" />
|
||||
app:title="@string/set_lib_tabs" />
|
||||
|
||||
<SwitchPreferenceCompat
|
||||
app:defaultValue="true"
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:initialLayout="@layout/widget_medium"
|
||||
android:minResizeWidth="@dimen/widget_width_min"
|
||||
android:minResizeHeight="@dimen/widget_height_min"
|
||||
android:minWidth="@dimen/widget_width_def"
|
||||
android:minHeight="@dimen/widget_height_def"
|
||||
android:minResizeWidth="@dimen/widget_width_min"
|
||||
android:minResizeHeight="@dimen/widget_height_min"
|
||||
android:previewImage="@drawable/ui_widget_preview"
|
||||
android:resizeMode="horizontal|vertical"
|
||||
android:updatePeriodMillis="0"
|
||||
|
|
Loading…
Reference in a new issue