all: hack around more lollipop issues
Hack around more insane lollipop bugs, such as: - The angular auxio icon crashing the system UI - Optimized icons being corrupted - Setting image alpha not working properly I really wish I could drop support for this horrible version, but I either have to wait for a major library to drop support or for the usage numbers to reach 1%.
This commit is contained in:
parent
594fa3597e
commit
485c35d74c
78 changed files with 231 additions and 214 deletions
|
|
@ -16,6 +16,7 @@
|
|||
- Fixed incorrect ellipsizing on song items
|
||||
- Fixed a variety of esoteric crashes with queue state
|
||||
- Fixed music indexing error when the OS would not provide a file name
|
||||
- Fixed icon corruptions on lollipop devices
|
||||
|
||||
#### What's Changed
|
||||
- Audio focus is no longer configurable
|
||||
|
|
@ -29,6 +30,7 @@
|
|||
- Use native ExoPlayer AudioFocus implementation
|
||||
- Make ReplayGain functionality use AudioProcessor instead of volume
|
||||
- Removed databinding [Greatly reduces compile times]
|
||||
- Start using Material You dialogs
|
||||
- An uncountable amount of internal codebase improvements
|
||||
|
||||
## v2.2.2
|
||||
|
|
|
|||
|
|
@ -80,6 +80,7 @@ class MainActivity : AppCompatActivity() {
|
|||
override fun onNewIntent(intent: Intent?) {
|
||||
super.onNewIntent(intent)
|
||||
|
||||
// See if the new intent is a file intent. If so, open it.
|
||||
val uri = retrieveViewUri(intent)
|
||||
if (uri != null) {
|
||||
playbackModel.performAction(this, PlaybackViewModel.DelayedAction.Open(uri))
|
||||
|
|
|
|||
|
|
@ -183,7 +183,9 @@ class MainFragment : ViewBindingFragment<FragmentMainBinding>() {
|
|||
|
||||
/**
|
||||
* A back press callback that handles how to respond to backwards navigation in the detail
|
||||
* fragments and the playback panel. TODO: Migrate to new predictive API
|
||||
* fragments and the playback panel.
|
||||
*
|
||||
* TODO: Migrate to new predictive API
|
||||
*/
|
||||
inner class DynamicBackPressedCallback : OnBackPressedCallback(false) {
|
||||
override fun handleOnBackPressed() {
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@ import org.oxycblt.auxio.ui.BindingViewHolder
|
|||
import org.oxycblt.auxio.ui.Item
|
||||
import org.oxycblt.auxio.ui.MenuItemListener
|
||||
import org.oxycblt.auxio.ui.SimpleItemCallback
|
||||
import org.oxycblt.auxio.ui.StyledImageView
|
||||
import org.oxycblt.auxio.util.context
|
||||
import org.oxycblt.auxio.util.formatDuration
|
||||
import org.oxycblt.auxio.util.getPluralSafe
|
||||
|
|
@ -202,7 +203,7 @@ private class AlbumSongViewHolder private constructor(private val binding: ItemA
|
|||
contentDescription = context.getString(R.string.desc_track_number, item.track)
|
||||
}
|
||||
|
||||
binding.songTrackBg.imageAlpha = 0
|
||||
binding.songTrackBg.setImageDrawable(null)
|
||||
} else {
|
||||
binding.songTrack.apply {
|
||||
textSafe = ""
|
||||
|
|
@ -210,7 +211,12 @@ private class AlbumSongViewHolder private constructor(private val binding: ItemA
|
|||
contentDescription = context.getString(R.string.def_track)
|
||||
}
|
||||
|
||||
binding.songTrackBg.imageAlpha = 255
|
||||
// Normally we would not re-load the drawable each time and instead
|
||||
// change the alpha value, but Lollipop gets in our way yet again
|
||||
// and does some stupid insanity with the alpha value that results
|
||||
// in such branching.
|
||||
binding.songTrackBg.setImageDrawable(
|
||||
StyledImageView.StyledDrawable(binding.context, R.drawable.ic_song))
|
||||
}
|
||||
|
||||
binding.songName.textSafe = item.resolveName(binding.context)
|
||||
|
|
|
|||
|
|
@ -17,7 +17,6 @@
|
|||
|
||||
package org.oxycblt.auxio.music
|
||||
|
||||
import android.content.ContentResolver
|
||||
import android.content.ContentUris
|
||||
import android.content.Context
|
||||
import android.net.Uri
|
||||
|
|
@ -26,6 +25,7 @@ import androidx.core.database.getIntOrNull
|
|||
import androidx.core.database.getStringOrNull
|
||||
import org.oxycblt.auxio.music.excluded.ExcludedDatabase
|
||||
import org.oxycblt.auxio.ui.Sort
|
||||
import org.oxycblt.auxio.util.contentResolverSafe
|
||||
import org.oxycblt.auxio.util.logD
|
||||
|
||||
/**
|
||||
|
|
@ -99,13 +99,6 @@ object Indexer {
|
|||
@Suppress("InlinedApi")
|
||||
private const val AUDIO_COLUMN_ALBUM_ARTIST = MediaStore.Audio.AudioColumns.ALBUM_ARTIST
|
||||
|
||||
/**
|
||||
* Gets a content resolver in a way that does not mangle metadata on certain OEM skins. See
|
||||
* https://github.com/OxygenCobalt/Auxio/issues/50 for more info.
|
||||
*/
|
||||
private val Context.contentResolverSafe: ContentResolver
|
||||
get() = applicationContext.contentResolver
|
||||
|
||||
fun index(context: Context): MusicStore.Library? {
|
||||
val songs = loadSongs(context)
|
||||
if (songs.isEmpty()) return null
|
||||
|
|
|
|||
|
|
@ -18,7 +18,6 @@
|
|||
package org.oxycblt.auxio.music
|
||||
|
||||
import android.Manifest
|
||||
import android.content.ContentResolver
|
||||
import android.content.Context
|
||||
import android.content.pm.PackageManager
|
||||
import android.net.Uri
|
||||
|
|
@ -27,6 +26,7 @@ import androidx.core.content.ContextCompat
|
|||
import java.lang.Exception
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.withContext
|
||||
import org.oxycblt.auxio.util.contentResolverSafe
|
||||
import org.oxycblt.auxio.util.logD
|
||||
import org.oxycblt.auxio.util.logE
|
||||
|
||||
|
|
@ -115,15 +115,16 @@ class MusicStore private constructor() {
|
|||
* uri.
|
||||
* @return The corresponding [Song] for this [uri], null if there isn't one.
|
||||
*/
|
||||
fun findSongForUri(uri: Uri, resolver: ContentResolver): Song? {
|
||||
resolver.query(uri, arrayOf(OpenableColumns.DISPLAY_NAME), null, null, null)?.use {
|
||||
cursor ->
|
||||
cursor.moveToFirst()
|
||||
val fileName =
|
||||
cursor.getString(cursor.getColumnIndexOrThrow(OpenableColumns.DISPLAY_NAME))
|
||||
fun findSongForUri(context: Context, uri: Uri): Song? {
|
||||
context.contentResolverSafe.query(
|
||||
uri, arrayOf(OpenableColumns.DISPLAY_NAME), null, null, null)
|
||||
?.use { cursor ->
|
||||
cursor.moveToFirst()
|
||||
val fileName =
|
||||
cursor.getString(cursor.getColumnIndexOrThrow(OpenableColumns.DISPLAY_NAME))
|
||||
|
||||
return songs.find { it.fileName == fileName }
|
||||
}
|
||||
return songs.find { it.fileName == fileName }
|
||||
}
|
||||
|
||||
return null
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,14 +23,13 @@ import android.view.LayoutInflater
|
|||
import android.view.WindowInsets
|
||||
import androidx.core.view.updatePadding
|
||||
import androidx.fragment.app.activityViewModels
|
||||
import com.google.android.material.color.MaterialColors
|
||||
import org.oxycblt.auxio.R
|
||||
import org.oxycblt.auxio.databinding.FragmentPlaybackBarBinding
|
||||
import org.oxycblt.auxio.music.Song
|
||||
import org.oxycblt.auxio.ui.MainNavigationAction
|
||||
import org.oxycblt.auxio.ui.NavigationViewModel
|
||||
import org.oxycblt.auxio.ui.ViewBindingFragment
|
||||
import org.oxycblt.auxio.util.getAttrColorSafe
|
||||
import org.oxycblt.auxio.util.getColorStateListSafe
|
||||
import org.oxycblt.auxio.util.systemBarInsetsCompat
|
||||
import org.oxycblt.auxio.util.textSafe
|
||||
|
||||
|
|
@ -82,20 +81,17 @@ class PlaybackBarFragment : ViewBindingFragment<FragmentPlaybackBarBinding>() {
|
|||
}
|
||||
}
|
||||
|
||||
// Load the track color in manually as it's unclear whether the track actually supports
|
||||
// using a ColorStateList in the resources
|
||||
binding.playbackProgressBar.trackColor =
|
||||
requireContext().getColorStateListSafe(R.color.sel_track).defaultColor
|
||||
|
||||
binding.playbackSkipPrev?.setOnClickListener { playbackModel.prev() }
|
||||
|
||||
binding.playbackPlayPause.setOnClickListener { playbackModel.invertPlaying() }
|
||||
|
||||
binding.playbackSkipNext?.setOnClickListener { playbackModel.next() }
|
||||
|
||||
// Deliberately override the progress bar color [in a Lollipop-friendly way] so that
|
||||
// we use colorSecondary instead of colorSurfaceVariant. This is because
|
||||
// colorSurfaceVariant is used with the assumption that the view that is using it is
|
||||
// not elevated and is therefore not colored. This view is elevated.
|
||||
binding.playbackProgressBar.trackColor =
|
||||
MaterialColors.compositeARGBWithAlpha(
|
||||
requireContext().getAttrColorSafe(R.attr.colorSecondary), (255 * 0.2).toInt())
|
||||
|
||||
// -- VIEWMODEL SETUP ---
|
||||
|
||||
playbackModel.song.observe(viewLifecycleOwner, ::updateSong)
|
||||
|
|
|
|||
|
|
@ -24,7 +24,6 @@ import androidx.appcompat.widget.Toolbar
|
|||
import androidx.core.view.updatePadding
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.activityViewModels
|
||||
import com.google.android.material.color.MaterialColors
|
||||
import com.google.android.material.slider.Slider
|
||||
import kotlin.math.max
|
||||
import org.oxycblt.auxio.R
|
||||
|
|
@ -36,9 +35,7 @@ import org.oxycblt.auxio.ui.MainNavigationAction
|
|||
import org.oxycblt.auxio.ui.NavigationViewModel
|
||||
import org.oxycblt.auxio.ui.ViewBindingFragment
|
||||
import org.oxycblt.auxio.util.formatDuration
|
||||
import org.oxycblt.auxio.util.getAttrColorSafe
|
||||
import org.oxycblt.auxio.util.logD
|
||||
import org.oxycblt.auxio.util.stateList
|
||||
import org.oxycblt.auxio.util.systemBarInsetsCompat
|
||||
import org.oxycblt.auxio.util.textSafe
|
||||
|
||||
|
|
@ -98,12 +95,6 @@ class PlaybackPanelFragment :
|
|||
binding.playbackSeekBar.apply {
|
||||
addOnChangeListener(this@PlaybackPanelFragment)
|
||||
addOnSliderTouchListener(this@PlaybackPanelFragment)
|
||||
|
||||
// Composite a tint list based on the active/inactive colors
|
||||
trackInactiveTintList =
|
||||
MaterialColors.compositeARGBWithAlpha(
|
||||
context.getAttrColorSafe(R.attr.colorSecondary), (255 * 0.2).toInt())
|
||||
.stateList
|
||||
}
|
||||
|
||||
binding.playbackRepeat.setOnClickListener { playbackModel.incrementRepeatMode() }
|
||||
|
|
|
|||
|
|
@ -99,43 +99,6 @@ class PlaybackViewModel : ViewModel(), PlaybackStateManager.Callback, MusicStore
|
|||
|
||||
// --- PLAYING FUNCTIONS ---
|
||||
|
||||
/**
|
||||
* Perform the given [DelayedAction].
|
||||
*
|
||||
* A "delayed action" is a class of playback actions that must have music present to function,
|
||||
* usually alongside a context too. Examples include:
|
||||
* - Opening files
|
||||
* - Restoring the playback state
|
||||
* - Future app shortcuts
|
||||
*
|
||||
* We would normally want to put this kind of functionality into PlaybackService, but it's
|
||||
* lifecycle makes that more or less impossible.
|
||||
*/
|
||||
fun performAction(context: Context, action: DelayedAction) {
|
||||
val library = musicStore.library
|
||||
val actionImpl = DelayedActionImpl(context.applicationContext, action)
|
||||
if (library != null) {
|
||||
performActionImpl(actionImpl, library)
|
||||
} else {
|
||||
pendingDelayedAction = actionImpl
|
||||
}
|
||||
}
|
||||
|
||||
private fun performActionImpl(action: DelayedActionImpl, library: MusicStore.Library) {
|
||||
when (action.inner) {
|
||||
is DelayedAction.RestoreState -> {
|
||||
if (!playbackManager.isInitialized) {
|
||||
viewModelScope.launch { playbackManager.restoreState(action.context) }
|
||||
}
|
||||
}
|
||||
is DelayedAction.Open -> {
|
||||
library
|
||||
.findSongForUri(action.inner.uri, action.context.contentResolver)
|
||||
?.let(::play)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Play a [song] with the [mode] specified. [mode] will default to the preferred song playback
|
||||
* mode of the user if not specified.
|
||||
|
|
@ -188,6 +151,41 @@ class PlaybackViewModel : ViewModel(), PlaybackStateManager.Callback, MusicStore
|
|||
playbackManager.shuffleAll()
|
||||
}
|
||||
|
||||
/**
|
||||
* Perform the given [DelayedAction].
|
||||
*
|
||||
* A "delayed action" is a class of playback actions that must have music present to function,
|
||||
* usually alongside a context too. Examples include:
|
||||
* - Opening files
|
||||
* - Restoring the playback state
|
||||
* - Future app shortcuts
|
||||
*
|
||||
* We would normally want to put this kind of functionality into PlaybackService, but it's
|
||||
* lifecycle makes that more or less impossible.
|
||||
*/
|
||||
fun performAction(context: Context, action: DelayedAction) {
|
||||
val library = musicStore.library
|
||||
val actionImpl = DelayedActionImpl(context.applicationContext, action)
|
||||
if (library != null) {
|
||||
performActionImpl(actionImpl, library)
|
||||
} else {
|
||||
pendingDelayedAction = actionImpl
|
||||
}
|
||||
}
|
||||
|
||||
private fun performActionImpl(action: DelayedActionImpl, library: MusicStore.Library) {
|
||||
when (action.inner) {
|
||||
is DelayedAction.RestoreState -> {
|
||||
if (!playbackManager.isInitialized) {
|
||||
viewModelScope.launch { playbackManager.restoreState(action.context) }
|
||||
}
|
||||
}
|
||||
is DelayedAction.Open -> {
|
||||
library.findSongForUri(action.context, action.inner.uri)?.let(::play)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// --- POSITION FUNCTIONS ---
|
||||
|
||||
/** Update the position and push it to [PlaybackStateManager] */
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ class NotificationComponent(
|
|||
notificationManager.createNotificationChannel(channel)
|
||||
}
|
||||
|
||||
setSmallIcon(R.drawable.ic_auxio)
|
||||
setSmallIcon(R.drawable.ic_song)
|
||||
setCategory(NotificationCompat.CATEGORY_SERVICE)
|
||||
setShowWhen(false)
|
||||
setSilent(true)
|
||||
|
|
@ -75,7 +75,7 @@ class NotificationComponent(
|
|||
addAction(buildAction(context, PlaybackService.ACTION_SKIP_PREV, R.drawable.ic_skip_prev))
|
||||
addAction(buildPlayPauseAction(context, true))
|
||||
addAction(buildAction(context, PlaybackService.ACTION_SKIP_NEXT, R.drawable.ic_skip_next))
|
||||
addAction(buildAction(context, PlaybackService.ACTION_EXIT, R.drawable.ic_exit))
|
||||
addAction(buildAction(context, PlaybackService.ACTION_EXIT, R.drawable.ic_close))
|
||||
|
||||
setStyle(MediaStyle().setMediaSession(sessionToken).setShowActionsInCompactView(1, 2, 3))
|
||||
}
|
||||
|
|
@ -100,7 +100,7 @@ class NotificationComponent(
|
|||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||
setSubText(parent?.resolveName(context) ?: context.getString(R.string.lbl_all_songs))
|
||||
} else {
|
||||
setSubText(song.resolveName(context))
|
||||
setSubText(song.album.resolveName(context))
|
||||
}
|
||||
|
||||
provider.load(
|
||||
|
|
@ -108,7 +108,6 @@ class NotificationComponent(
|
|||
object : BitmapProvider.Target {
|
||||
override fun onCompleted(bitmap: Bitmap?) {
|
||||
setLargeIcon(bitmap)
|
||||
setLargeIcon(null)
|
||||
callback.onNotificationChanged(this@NotificationComponent)
|
||||
}
|
||||
})
|
||||
|
|
@ -171,7 +170,7 @@ class NotificationComponent(
|
|||
isShuffled: Boolean
|
||||
): NotificationCompat.Action {
|
||||
val drawableRes =
|
||||
if (isShuffled) R.drawable.ic_shuffle else R.drawable.ic_remote_shuffle_off
|
||||
if (isShuffled) R.drawable.ic_shuffle_state else R.drawable.ic_remote_shuffle_off
|
||||
|
||||
return buildAction(context, PlaybackService.ACTION_INVERT_SHUFFLE, drawableRes)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -209,8 +209,8 @@ class SettingsListFragment : PreferenceFragmentCompat() {
|
|||
private fun Int.toThemeIcon(): Int {
|
||||
return when (this) {
|
||||
AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM -> R.drawable.ic_auto
|
||||
AppCompatDelegate.MODE_NIGHT_NO -> R.drawable.ic_day
|
||||
AppCompatDelegate.MODE_NIGHT_YES -> R.drawable.ic_night
|
||||
AppCompatDelegate.MODE_NIGHT_NO -> R.drawable.ic_light
|
||||
AppCompatDelegate.MODE_NIGHT_YES -> R.drawable.ic_dark
|
||||
else -> R.drawable.ic_auto
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,9 +33,10 @@ import org.oxycblt.auxio.util.systemBarInsetsCompat
|
|||
|
||||
/**
|
||||
* An [AppBarLayout] that fixes a bug with the default implementation where the lifted state will
|
||||
* not properly respond to RecyclerView events. **Note:** This layout relies on
|
||||
* [AppBarLayout.liftOnScrollTargetViewId] to figure out what scrolling view to use. Failure to
|
||||
* specify this will result in the layout not working.
|
||||
* not properly respond to RecyclerView events.
|
||||
*
|
||||
* **Note:** This layout relies on [AppBarLayout.liftOnScrollTargetViewId] to figure out what
|
||||
* scrolling view to use. Failure to specify this will result in the layout not working.
|
||||
*/
|
||||
open class EdgeAppBarLayout
|
||||
@JvmOverloads
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@ import androidx.annotation.AttrRes
|
|||
import androidx.annotation.DrawableRes
|
||||
import androidx.annotation.StringRes
|
||||
import androidx.appcompat.widget.AppCompatImageView
|
||||
import androidx.core.graphics.drawable.DrawableCompat
|
||||
import coil.dispose
|
||||
import coil.load
|
||||
import com.google.android.material.shape.MaterialShapeDrawable
|
||||
|
|
@ -40,6 +41,7 @@ import org.oxycblt.auxio.music.Song
|
|||
import org.oxycblt.auxio.settings.SettingsManager
|
||||
import org.oxycblt.auxio.util.getColorStateListSafe
|
||||
import org.oxycblt.auxio.util.getDrawableSafe
|
||||
import org.oxycblt.auxio.util.logD
|
||||
|
||||
/**
|
||||
* An [AppCompatImageView] that applies many of the stylistic choices that Auxio uses regarding
|
||||
|
|
@ -71,7 +73,7 @@ constructor(context: Context, attrs: AttributeSet? = null, @AttrRes defStyleAttr
|
|||
// If we have a pre-set drawable, ensure that it's half-size.
|
||||
val drawable = drawable
|
||||
if (drawable != null) {
|
||||
setImageDrawable(HalfSizeDrawable(drawable))
|
||||
setImageDrawable(StyledDrawable(context, drawable))
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -106,16 +108,29 @@ constructor(context: Context, attrs: AttributeSet? = null, @AttrRes defStyleAttr
|
|||
private fun <T : Music> load(music: T, @DrawableRes error: Int, @StringRes desc: Int) {
|
||||
dispose()
|
||||
load(music) {
|
||||
error(HalfSizeDrawable(context, error))
|
||||
error(StyledDrawable(context, error))
|
||||
transformations(SquareFrameTransform.INSTANCE)
|
||||
}
|
||||
contentDescription = context.getString(desc, music.resolveName(context))
|
||||
}
|
||||
|
||||
private class HalfSizeDrawable(private val src: Drawable) : Drawable() {
|
||||
constructor(context: Context, @DrawableRes res: Int) : this(context.getDrawableSafe(res))
|
||||
/**
|
||||
* A companion drawable that can be used with the style that [StyledImageView] provides.
|
||||
* @author OxygenCobalt
|
||||
*/
|
||||
class StyledDrawable(context: Context, private val src: Drawable) : Drawable() {
|
||||
constructor(
|
||||
context: Context,
|
||||
@DrawableRes res: Int
|
||||
) : this(context, context.getDrawableSafe(res))
|
||||
|
||||
init {
|
||||
// Re-tint the drawable to something that will play along with the background
|
||||
DrawableCompat.setTintList(src, context.getColorStateListSafe(R.color.sel_on_cover_bg))
|
||||
}
|
||||
|
||||
override fun draw(canvas: Canvas) {
|
||||
logD(src.alpha)
|
||||
src.bounds.set(canvas.clipBounds)
|
||||
val adjustWidth = src.bounds.width() / 4
|
||||
val adjustHeight = src.bounds.height() / 4
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@
|
|||
package org.oxycblt.auxio.util
|
||||
|
||||
import android.app.PendingIntent
|
||||
import android.content.ContentResolver
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.content.res.ColorStateList
|
||||
|
|
@ -60,6 +61,13 @@ val Context.isNight: Boolean
|
|||
val Context.isLandscape
|
||||
get() = resources.configuration.orientation == Configuration.ORIENTATION_LANDSCAPE
|
||||
|
||||
/**
|
||||
* Gets a content resolver in a way that does not mangle metadata on certain OEM skins. See
|
||||
* https://github.com/OxygenCobalt/Auxio/issues/50 for more info.
|
||||
*/
|
||||
val Context.contentResolverSafe: ContentResolver
|
||||
get() = applicationContext.contentResolver
|
||||
|
||||
/**
|
||||
* Convenience method for getting a plural.
|
||||
* @param pluralsRes Resource for the plural
|
||||
|
|
@ -178,6 +186,11 @@ fun Context.getDimenOffsetSafe(@DimenRes dimen: Int): Int {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Calculates the pixels of the given dimension [dp].
|
||||
* @param dp the dimension value
|
||||
* @return The equivalent amount of pixels for [dp].
|
||||
*/
|
||||
@Px
|
||||
fun Context.pxOfDp(@Dimension dp: Float): Int {
|
||||
return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, resources.displayMetrics)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:color="?attr/colorPrimaryContainer"
|
||||
android:state_activated="true" />
|
||||
<item android:color="?attr/colorPrimaryContainer" android:state_activated="true" />
|
||||
<item android:color="?attr/colorOnSurfaceInverse" />
|
||||
</selector>
|
||||
|
|
@ -1,6 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:color="?attr/colorOnPrimaryContainer"
|
||||
android:state_activated="true" />
|
||||
<item android:color="?attr/colorOnPrimaryContainer" android:state_activated="true" />
|
||||
<item android:color="?attr/colorSurfaceInverse" />
|
||||
</selector>
|
||||
4
app/src/main/res/color/sel_track.xml
Normal file
4
app/src/main/res/color/sel_track.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:alpha="0.2" android:color="?attr/colorSecondary" />
|
||||
</selector>
|
||||
|
|
@ -7,5 +7,11 @@
|
|||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M11 7h2v2h-2zm0 4h2v6h-2zm1-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z" />
|
||||
android:pathData="M11,17h2v-6h-2v6zM12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM12,20c-4.41,0 -8,-3.59 -8,-8s3.59,-8 8,-8 8,3.59 8,8 -3.59,8 -8,8zM11,9h2L13,7h-2v2z" />
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M11,7h2v2h-2zM11,11h2v6h-2z" />
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM12,20c-4.41,0 -8,-3.59 -8,-8s3.59,-8 8,-8 8,3.59 8,8 -3.59,8 -8,8z" />
|
||||
</vector>
|
||||
|
|
|
|||
|
|
@ -2,9 +2,10 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:tint="?attr/colorPrimary"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="?attr/colorPrimary"
|
||||
android:pathData="M12 3c-4.97 0-9 4.03-9 9s4.03 9 9 9c0.83 0 1.5-0.67 1.5-1.5 0-0.39-0.15-0.74-0.39-1.01-0.23-0.26-0.38-0.61-0.38-0.99 0-0.83 0.67-1.5 1.5-1.5H16c2.76 0 5-2.24 5-5 0-4.42-4.03-8-9-8zm-5.5 9C5.67 12 5 11.33 5 10.5S5.67 9 6.5 9 8 9.67 8 10.5 7.33 12 6.5 12zm3-4C8.67 8 8 7.33 8 6.5S8.67 5 9.5 5 11 5.67 11 6.5 10.33 8 9.5 8zm5 0C13.67 8 13 7.33 13 6.5S13.67 5 14.5 5 16 5.67 16 6.5 15.33 8 14.5 8zm3 4c-0.83 0-1.5-0.67-1.5-1.5S16.67 9 17.5 9 19 9.67 19 10.5 18.33 12 17.5 12z" />
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M12,3c-4.97,0 -9,4.03 -9,9s4.03,9 9,9c0.83,0 1.5,-0.67 1.5,-1.5 0,-0.39 -0.15,-0.74 -0.39,-1.01 -0.23,-0.26 -0.38,-0.61 -0.38,-0.99 0,-0.83 0.67,-1.5 1.5,-1.5L16,16c2.76,0 5,-2.24 5,-5 0,-4.42 -4.03,-8 -9,-8zM6.5,12c-0.83,0 -1.5,-0.67 -1.5,-1.5S5.67,9 6.5,9 8,9.67 8,10.5 7.33,12 6.5,12zM9.5,8C8.67,8 8,7.33 8,6.5S8.67,5 9.5,5s1.5,0.67 1.5,1.5S10.33,8 9.5,8zM14.5,8c-0.83,0 -1.5,-0.67 -1.5,-1.5S13.67,5 14.5,5s1.5,0.67 1.5,1.5S15.33,8 14.5,8zM17.5,12c-0.83,0 -1.5,-0.67 -1.5,-1.5S16.67,9 17.5,9s1.5,0.67 1.5,1.5 -0.67,1.5 -1.5,1.5z" />
|
||||
</vector>
|
||||
|
|
|
|||
|
|
@ -2,10 +2,10 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:tint="@color/sel_on_cover_bg"
|
||||
android:tint="?attr/colorControlNormal"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 14.5c-2.49 0-4.5-2.01-4.5-4.5S9.51 7.5 12 7.5s4.5 2.01 4.5 4.5-2.01 4.5-4.5 4.5zm0-5.5c-0.55 0-1 0.45-1 1s0.45 1 1 1 1-0.45 1-1-0.45-1-1-1z" />
|
||||
android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM12,16.5c-2.49,0 -4.5,-2.01 -4.5,-4.5S9.51,7.5 12,7.5s4.5,2.01 4.5,4.5 -2.01,4.5 -4.5,4.5zM12,11c-0.55,0 -1,0.45 -1,1s0.45,1 1,1 1,-0.45 1,-1 -0.45,-1 -1,-1z" />
|
||||
</vector>
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:tint="@color/sel_on_cover_bg"
|
||||
android:tint="?attr/colorControlNormal"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
|
|
|
|||
|
|
@ -7,5 +7,5 @@
|
|||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M10.85 12.65h2.3L12 9l-1.15 3.65zM20 8.69V4h-4.69L12 0.69 8.69 4H4v4.69L0.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69zM14.3 16l-0.7-2h-3.2l-0.7 2H7.8L11 7h2l3.2 9h-1.9z" />
|
||||
android:pathData="M10.85,12.65h2.3L12,9l-1.15,3.65zM20,8.69V4h-4.69L12,0.69 8.69,4H4v4.69L0.69,12 4,15.31V20h4.69L12,23.31 15.31,20H20v-4.69L23.31,12 20,8.69zM14.3,16l-0.7,-2h-3.2l-0.7,2H7.8L11,7h2l3.2,9h-1.9z" />
|
||||
</vector>
|
||||
|
|
|
|||
|
|
@ -6,5 +6,5 @@
|
|||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z" />
|
||||
android:pathData="M20,11H7.83l5.59,-5.59L12,4l-8,8 8,8 1.41,-1.41L7.83,13H20v-2z" />
|
||||
</vector>
|
||||
|
|
|
|||
|
|
@ -7,5 +7,5 @@
|
|||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z" />
|
||||
android:pathData="M9,16.2L4.8,12l-1.4,1.4L9,19 21,7l-1.4,-1.4L9,16.2z" />
|
||||
</vector>
|
||||
|
|
|
|||
|
|
@ -7,5 +7,5 @@
|
|||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z" />
|
||||
android:pathData="M19,6.41L17.59,5 12,10.59 6.41,5 5,6.41 10.59,12 5,17.59 6.41,19 12,13.41 17.59,19 19,17.59 13.41,12 19,6.41z" />
|
||||
</vector>
|
||||
|
|
|
|||
|
|
@ -7,5 +7,5 @@
|
|||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z" />
|
||||
android:pathData="M9.4,16.6L4.8,12l4.6,-4.6L8,6l-6,6 6,6 1.4,-1.4zM14.6,16.6l4.6,-4.6 -4.6,-4.6L16,6l6,6 -6,6 -1.4,-1.4z" />
|
||||
</vector>
|
||||
|
|
|
|||
|
|
@ -7,5 +7,5 @@
|
|||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M20 15.31L23.31 12 20 8.69V4h-4.69L12 0.69 8.69 4H4v4.69L0.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z" />
|
||||
android:pathData="M12,3c-4.97,0 -9,4.03 -9,9s4.03,9 9,9s9,-4.03 9,-9c0,-0.46 -0.04,-0.92 -0.1,-1.36c-0.98,1.37 -2.58,2.26 -4.4,2.26c-2.98,0 -5.4,-2.42 -5.4,-5.4c0,-1.81 0.89,-3.42 2.26,-4.4C12.92,3.04 12.46,3 12,3L12,3z" />
|
||||
</vector>
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:tint="?attr/colorPrimary"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M20 8.69V4h-4.69L12 0.69 8.69 4H4v4.69L0.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6zm0-10c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4z" />
|
||||
</vector>
|
||||
|
|
@ -7,5 +7,5 @@
|
|||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M6 21h12V7H6v14zM8 9h8v10H8V9zm7.5-5l-1-1h-5l-1 1H5v2h14V4h-3.5z" />
|
||||
android:pathData="M6,21h12L18,7L6,7v14zM8,9h8v10L8,19L8,9zM15.5,4l-1,-1h-5l-1,1L5,4v2h14L19,4h-3.5z" />
|
||||
</vector>
|
||||
|
|
@ -7,5 +7,5 @@
|
|||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M5.88 7.06L12 13.167l6.12-6.107L20 8.94l-8 8-8-8z" />
|
||||
android:pathData="M16.59,8.59L12,13.17 7.41,8.59 6,10l6,6 6,-6 -1.41,-1.41z" />
|
||||
</vector>
|
||||
|
|
|
|||
|
|
@ -1,10 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z" />
|
||||
</vector>
|
||||
|
|
@ -7,5 +7,5 @@
|
|||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M11 18h2v-2h-2v2zm1-16C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm0-14c-2.21 0-4 1.79-4 4h2c0-1.1 0.9-2 2-2s2 0.9 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5 0-2.21-1.79-4-4-4z" />
|
||||
android:pathData="M11,18h2v-2h-2v2zM12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM12,20c-4.41,0 -8,-3.59 -8,-8s3.59,-8 8,-8 8,3.59 8,8 -3.59,8 -8,8zM12,6c-2.21,0 -4,1.79 -4,4h2c0,-1.1 0.9,-2 2,-2s2,0.9 2,2c0,2 -3,1.75 -3,5h2c0,-2.25 3,-2.5 3,-5 0,-2.21 -1.79,-4 -4,-4z" />
|
||||
</vector>
|
||||
|
|
|
|||
|
|
@ -7,5 +7,5 @@
|
|||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z" />
|
||||
android:pathData="M10,18h4v-2h-4v2zM3,6v2h18L21,6L3,6zM6,13h12v-2L6,11v2z" />
|
||||
</vector>
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:tint="@color/sel_on_cover_bg"
|
||||
android:tint="?attr/colorControlNormal"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
|
|
|
|||
|
|
@ -7,5 +7,5 @@
|
|||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M20 9H4v2h16V9zM4 15h16v-2H4v2z" />
|
||||
android:pathData="M20,9H4v2h16V9zM4,15h16v-2H4v2z" />
|
||||
</vector>
|
||||
|
|
|
|||
|
|
@ -7,5 +7,5 @@
|
|||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M4.01 2L4 22h16V8l-6-6H4.01zM13 9V3.5L18.5 9H13z" />
|
||||
android:pathData="M4.01,2L4,22h16V8l-6,-6H4.01zM13,9V3.5L18.5,9H13z" />
|
||||
</vector>
|
||||
|
|
|
|||
11
app/src/main/res/drawable/ic_light.xml
Normal file
11
app/src/main/res/drawable/ic_light.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="24dp"
|
||||
android:height="24dp"
|
||||
android:tint="?attr/colorPrimary"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M12,7c-2.76,0 -5,2.24 -5,5s2.24,5 5,5s5,-2.24 5,-5S14.76,7 12,7L12,7zM11,1v4h2V1L11,1zM11,19v4h2v-4L11,19zM23,11l-4,0v2l4,0V11zM5,11l-4,0l0,2l4,0L5,11zM16.24,17.66l2.47,2.47l1.41,-1.41l-2.47,-2.47L16.24,17.66zM3.87,5.28l2.47,2.47l1.41,-1.41L5.28,3.87L3.87,5.28zM6.34,16.24l-2.47,2.47l1.41,1.41l2.47,-2.47L6.34,16.24zM18.72,3.87l-2.47,2.47l1.41,1.41l2.47,-2.47L18.72,3.87z" />
|
||||
</vector>
|
||||
|
|
@ -7,5 +7,5 @@
|
|||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M15 6H3v2h12V6zm0 4H3v2h12v-2zM3 16h8v-2H3v2zM17 6v8.18C16.69 14.07 16.35 14 16 14c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3V8h3V6h-5z" />
|
||||
android:pathData="M15,6H3v2h12V6zM15,10H3v2h12V10zM3,16h8v-2H3V16zM17,6v8.18C16.69,14.07 16.35,14 16,14c-1.66,0 -3,1.34 -3,3s1.34,3 3,3s3,-1.34 3,-3V8h3V6H17z" />
|
||||
</vector>
|
||||
|
|
|
|||
|
|
@ -13,8 +13,8 @@
|
|||
a terrible API.
|
||||
-->
|
||||
<path
|
||||
android:fillColor="?attr/colorPrimary"
|
||||
android:pathData="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 14.5c-2.49 0-4.5-2.01-4.5-4.5S9.51 7.5 12 7.5s4.5 2.01 4.5 4.5-2.01 4.5-4.5 4.5zm0-5.5c-0.55 0-1 0.45-1 1s0.45 1 1 1 1-0.45 1-1-0.45-1-1-1z" />
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM12,16.5c-2.49,0 -4.5,-2.01 -4.5,-4.5S9.51,7.5 12,7.5s4.5,2.01 4.5,4.5 -2.01,4.5 -4.5,4.5zM12,11c-0.55,0 -1,0.45 -1,1s0.45,1 1,1 1,-0.45 1,-1 -0.45,-1 -1,-1z" />
|
||||
<path
|
||||
android:fillColor="?attr/colorSurface"
|
||||
android:pathData="M 11.999988,7.5000052 C 10.26837,7.4769007 8.5915309,8.560755 7.896993,10.146219 c -0.7453054,1.607465 -0.4180795,3.637951 0.8068934,4.921183 1.166041,1.284666 3.1054606,1.767719 4.7412966,1.196892 1.694811,-0.550604 2.957738,-2.193714 3.045894,-3.974751 0.132222,-1.713727 -0.824064,-3.4451124 -2.343934,-4.2469378 -0.655277,-0.3575862 -1.401101,-0.5431647 -2.147155,-0.5426 z m 0,3.5000448 c 0.727249,-0.03179 1.254295,0.852995 0.879019,1.475902 -0.300918,0.612861 -1.237867,0.707058 -1.649512,0.15916 -0.489216,-0.537264 -0.143543,-1.499245 0.56999,-1.614362 0.06589,-0.01409 0.133207,-0.02062 0.200503,-0.0207 z" />
|
||||
|
|
|
|||
|
|
@ -6,6 +6,6 @@
|
|||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#80ffffff"
|
||||
android:pathData="M7 7h10v3l4-4-4-4v3H5v6h2V7zm10 10H7v-3l-4 4 4 4v-3h12v-6h-2v4z" />
|
||||
android:fillColor="@color/remote_translucent"
|
||||
android:pathData="M7,7h10v3l4,-4 -4,-4v3L5,5v6h2L7,7zM17,17L7,17v-3l-4,4 4,4v-3h12v-6h-2v4z" />
|
||||
</vector>
|
||||
|
|
|
|||
|
|
@ -7,5 +7,5 @@
|
|||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#80FFFFFF"
|
||||
android:pathData="M10.59 9.17L5.41 4 4 5.41l5.17 5.17 1.42-1.41zM14.5 4l2.04 2.04L4 18.59 5.41 20 17.96 7.46 20 9.5V4h-5.5zm0.33 9.41l-1.41 1.41 3.13 3.13L14.5 20H20v-5.5l-2.04 2.04-3.13-3.13z" />
|
||||
android:pathData="M10.59,9.17L5.41,4 4,5.41l5.17,5.17 1.42,-1.41zM14.5,4l2.04,2.04L4,18.59 5.41,20 17.96,7.46 20,9.5L20,4h-5.5zM14.83,13.41l-1.41,1.41 3.13,3.13L14.5,20L20,20v-5.5l-2.04,2.04 -3.13,-3.13z" />
|
||||
</vector>
|
||||
|
|
|
|||
|
|
@ -7,5 +7,5 @@
|
|||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M10.59 9.17L5.41 4 4 5.41l5.17 5.17 1.42-1.41zM14.5 4l2.04 2.04L4 18.59 5.41 20 17.96 7.46 20 9.5V4h-5.5zm0.33 9.41l-1.41 1.41 3.13 3.13L14.5 20H20v-5.5l-2.04 2.04-3.13-3.13z" />
|
||||
android:pathData="M10.59,9.17L5.41,4 4,5.41l5.17,5.17 1.42,-1.41zM14.5,4l2.04,2.04L4,18.59 5.41,20 17.96,7.46 20,9.5L20,4h-5.5zM14.83,13.41l-1.41,1.41 3.13,3.13L14.5,20L20,20v-5.5l-2.04,2.04 -3.13,-3.13z" />
|
||||
</vector>
|
||||
|
|
|
|||
|
|
@ -7,5 +7,5 @@
|
|||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M7 7h10v3l4-4-4-4v3H5v6h2V7zm10 10H7v-3l-4 4 4 4v-3h12v-6h-2v4z" />
|
||||
android:pathData="M7,7h10v3l4,-4 -4,-4v3L5,5v6h2L7,7zM17,17L7,17v-3l-4,4 4,4v-3h12v-6h-2v4z" />
|
||||
</vector>
|
||||
|
|
|
|||
|
|
@ -7,5 +7,5 @@
|
|||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M7 7h10v3l4-4-4-4v3H5v6h2V7zm10 10H7v-3l-4 4 4 4v-3h12v-6h-2v4z" />
|
||||
android:pathData="M7,7h10v3l4,-4 -4,-4v3L5,5v6h2L7,7zM17,17L7,17v-3l-4,4 4,4v-3h12v-6h-2v4z" />
|
||||
</vector>
|
||||
|
|
|
|||
|
|
@ -7,5 +7,5 @@
|
|||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M7 7h10v3l4-4-4-4v3H5v6h2V7zm10 10H7v-3l-4 4 4 4v-3h12v-6h-2v4zm-4-2V9h-1l-2 1v1h1.5v4H13z" />
|
||||
android:pathData="M7,7h10v3l4,-4 -4,-4v3L5,5v6h2L7,7zM17,17L7,17v-3l-4,4 4,4v-3h12v-6h-2v4zM13,15L13,9h-1l-2,1v1h1.5v4L13,15z" />
|
||||
</vector>
|
||||
|
|
|
|||
|
|
@ -7,5 +7,5 @@
|
|||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M15.5 14h-0.79l-0.28-0.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-0.59 4.23-1.57L14 14.71v0.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z" />
|
||||
android:pathData="M15.5,14h-0.79l-0.28,-0.27C15.41,12.59 16,11.11 16,9.5 16,5.91 13.09,3 9.5,3S3,5.91 3,9.5 5.91,16 9.5,16c1.61,0 3.09,-0.59 4.23,-1.57l0.27,0.28v0.79l5,4.99L20.49,19l-4.99,-5zM9.5,14C7.01,14 5,11.99 5,9.5S7.01,5 9.5,5 14,7.01 14,9.5 11.99,14 9.5,14z" />
|
||||
</vector>
|
||||
|
|
|
|||
|
|
@ -7,5 +7,5 @@
|
|||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M19.44 12.99l-0.01 0.02c0.04-0.33 0.08-0.67 0.08-1.01 0-0.34-0.03-0.66-0.07-0.99l0.01 0.02 2.44-1.92-2.43-4.22-2.87 1.16 0.01 0.01c-0.52-0.4-1.09-0.74-1.71-1h0.01L14.44 2H9.57L9.13 5.07h0.01c-0.62 0.26-1.19 0.6-1.71 1l0.01-0.01-2.88-1.17-2.44 4.22 2.44 1.92 0.01-0.02C4.53 11.34 4.5 11.66 4.5 12c0 0.34 0.03 0.68 0.08 1.01l-0.01-0.02-2.1 1.65-0.33 0.26 2.43 4.2 2.88-1.15-0.02-0.04c0.53 0.41 1.1 0.75 1.73 1.01H9.13L9.58 22h4.85s0.03-0.18 0.06-0.42l0.38-2.65h-0.01c0.62-0.26 1.2-0.6 1.73-1.01l-0.02 0.04 2.88 1.15 2.43-4.2s-0.14-0.12-0.33-0.26l-2.11-1.66zM12 15.5c-1.93 0-3.5-1.57-3.5-3.5s1.57-3.5 3.5-3.5 3.5 1.57 3.5 3.5-1.57 3.5-3.5 3.5z" />
|
||||
android:pathData="M19.44,12.99l-0.01,0.02c0.04,-0.33 0.08,-0.67 0.08,-1.01 0,-0.34 -0.03,-0.66 -0.07,-0.99l0.01,0.02 2.44,-1.92 -2.43,-4.22 -2.87,1.16 0.01,0.01c-0.52,-0.4 -1.09,-0.74 -1.71,-1h0.01L14.44,2H9.57l-0.44,3.07h0.01c-0.62,0.26 -1.19,0.6 -1.71,1l0.01,-0.01 -2.88,-1.17 -2.44,4.22 2.44,1.92 0.01,-0.02c-0.04,0.33 -0.07,0.65 -0.07,0.99 0,0.34 0.03,0.68 0.08,1.01l-0.01,-0.02 -2.1,1.65 -0.33,0.26 2.43,4.2 2.88,-1.15 -0.02,-0.04c0.53,0.41 1.1,0.75 1.73,1.01h-0.03L9.58,22h4.85s0.03,-0.18 0.06,-0.42l0.38,-2.65h-0.01c0.62,-0.26 1.2,-0.6 1.73,-1.01l-0.02,0.04 2.88,1.15 2.43,-4.2s-0.14,-0.12 -0.33,-0.26l-2.11,-1.66zM12,15.5c-1.93,0 -3.5,-1.57 -3.5,-3.5s1.57,-3.5 3.5,-3.5 3.5,1.57 3.5,3.5 -1.57,3.5 -3.5,3.5z" />
|
||||
</vector>
|
||||
|
|
|
|||
|
|
@ -7,5 +7,5 @@
|
|||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M10.59 9.17L5.41 4 4 5.41l5.17 5.17 1.42-1.41zM14.5 4l2.04 2.04L4 18.59 5.41 20 17.96 7.46 20 9.5V4h-5.5zm0.33 9.41l-1.41 1.41 3.13 3.13L14.5 20H20v-5.5l-2.04 2.04-3.13-3.13z" />
|
||||
android:pathData="M10.59,9.17L5.41,4 4,5.41l5.17,5.17 1.42,-1.41zM14.5,4l2.04,2.04L4,18.59 5.41,20 17.96,7.46 20,9.5L20,4h-5.5zM14.83,13.41l-1.41,1.41 3.13,3.13L14.5,20L20,20v-5.5l-2.04,2.04 -3.13,-3.13z" />
|
||||
</vector>
|
||||
|
|
@ -8,5 +8,5 @@
|
|||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M6 18l8.5-6L6 6v12zM16 6v12h2V6h-2z" />
|
||||
android:pathData="M6,18l8.5,-6L6,6v12zM16,6v12h2V6h-2z" />
|
||||
</vector>
|
||||
|
|
|
|||
|
|
@ -2,11 +2,10 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:autoMirrored="true"
|
||||
android:tint="?attr/colorControlNormal"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M6 6h2v12H6zm3.5 6l8.5 6V6z" />
|
||||
android:pathData="M6,6h2v12L6,18L6,6zM9.5,12l8.5,6L18,6l-8.5,6z" />
|
||||
</vector>
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:tint="@color/sel_on_cover_bg"
|
||||
android:tint="?attr/colorControlNormal"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
|
|
|
|||
|
|
@ -7,5 +7,5 @@
|
|||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M3 18h6v-2H3v2zM3 6v2h18V6H3zm0 7h12v-2H3v2z" />
|
||||
android:pathData="M3,18h6v-2L3,16v2zM3,6v2h18L21,6L3,6zM3,13h12v-2L3,11v2z" />
|
||||
</vector>
|
||||
|
|
|
|||
|
|
@ -2,13 +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="M11.99,2C6.47,2 2,6.48 2,12s4.47,10 9.99,10C17.52,22 22,17.52 22,12S17.52,2 11.99,2zM12,20c-4.42,0 -8,-3.58 -8,-8s3.58,-8 8,-8 8,3.58 8,8 -3.58,8 -8,8z"/>
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M12.5,7H11v6l5.25,3.15 0.75,-1.23 -4.5,-2.67z"/>
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M11.99,2C6.47,2 2,6.48 2,12s4.47,10 9.99,10C17.52,22 22,17.52 22,12S17.52,2 11.99,2zM12,20c-4.42,0 -8,-3.58 -8,-8s3.58,-8 8,-8 8,3.58 8,8 -3.58,8 -8,8zM12.5,7L11,7v6l5.25,3.15 0.75,-1.23 -4.5,-2.67z" />
|
||||
</vector>
|
||||
|
|
|
|||
|
|
@ -91,7 +91,8 @@
|
|||
app:layout_constraintEnd_toEndOf="@+id/playback_song_container"
|
||||
app:layout_constraintHorizontal_bias="0.0"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:thumbRadius="@dimen/slider_thumb_radius" />
|
||||
app:thumbRadius="@dimen/slider_thumb_radius"
|
||||
app:trackColorInactive="@color/sel_track" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/playback_position"
|
||||
|
|
@ -173,9 +174,9 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="@dimen/spacing_medium"
|
||||
android:contentDescription="@string/desc_shuffle"
|
||||
android:src="@drawable/ic_shuffle"
|
||||
app:iconSize="@dimen/size_icon_large"
|
||||
android:src="@drawable/ic_shuffle_state"
|
||||
app:hasIndicator="true"
|
||||
app:iconSize="@dimen/size_icon_large"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/playback_skip_next"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@+id/playback_skip_next"
|
||||
|
|
|
|||
|
|
@ -89,7 +89,8 @@
|
|||
app:layout_constraintHorizontal_bias="0.5"
|
||||
app:layout_constraintStart_toEndOf="@+id/playback_cover"
|
||||
app:layout_constraintTop_toBottomOf="@+id/playback_album"
|
||||
app:thumbRadius="@dimen/slider_thumb_radius" />
|
||||
app:thumbRadius="@dimen/slider_thumb_radius"
|
||||
app:trackColorInactive="@color/sel_track" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/playback_position"
|
||||
|
|
@ -172,7 +173,7 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/spacing_large"
|
||||
android:contentDescription="@string/desc_shuffle"
|
||||
android:src="@drawable/ic_shuffle"
|
||||
android:src="@drawable/ic_shuffle_state"
|
||||
app:hasIndicator="true"
|
||||
app:iconSize="@dimen/size_icon_large"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/playback_skip_next"
|
||||
|
|
|
|||
|
|
@ -78,7 +78,8 @@
|
|||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="0.0"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:thumbRadius="@dimen/slider_thumb_radius" />
|
||||
app:thumbRadius="@dimen/slider_thumb_radius"
|
||||
app:trackColorInactive="@color/sel_track" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/playback_position"
|
||||
|
|
@ -111,8 +112,8 @@
|
|||
android:layout_marginEnd="@dimen/spacing_mid_large"
|
||||
android:contentDescription="@string/desc_change_repeat"
|
||||
android:src="@drawable/ic_repeat"
|
||||
app:iconSize="@dimen/size_icon_large"
|
||||
app:hasIndicator="true"
|
||||
app:iconSize="@dimen/size_icon_large"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/playback_skip_prev"
|
||||
app:layout_constraintEnd_toStartOf="@+id/playback_skip_prev"
|
||||
app:layout_constraintHorizontal_chainStyle="packed"
|
||||
|
|
@ -161,7 +162,7 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/spacing_mid_large"
|
||||
android:contentDescription="@string/desc_shuffle"
|
||||
android:src="@drawable/ic_shuffle"
|
||||
android:src="@drawable/ic_shuffle_state"
|
||||
app:hasIndicator="true"
|
||||
app:iconSize="@dimen/size_icon_large"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/playback_skip_next"
|
||||
|
|
|
|||
|
|
@ -92,7 +92,7 @@
|
|||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:trackColor="?attr/colorPrimary"
|
||||
app:trackColor="@color/sel_track"
|
||||
tools:progress="70" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
|
@ -37,7 +37,8 @@
|
|||
app:layout_constraintHorizontal_bias="0.5"
|
||||
app:layout_constraintStart_toEndOf="@+id/playback_cover"
|
||||
app:layout_constraintTop_toBottomOf="@+id/playback_toolbar"
|
||||
app:layout_constraintVertical_chainStyle="packed">
|
||||
app:layout_constraintVertical_chainStyle="packed"
|
||||
app:trackColorInactive="@color/sel_track">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/playback_song"
|
||||
|
|
@ -175,9 +176,9 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="@dimen/spacing_medium"
|
||||
android:contentDescription="@string/desc_shuffle"
|
||||
android:src="@drawable/ic_shuffle"
|
||||
app:iconSize="@dimen/size_icon_large"
|
||||
android:src="@drawable/ic_shuffle_state"
|
||||
app:hasIndicator="true"
|
||||
app:iconSize="@dimen/size_icon_large"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/playback_skip_next"
|
||||
app:layout_constraintEnd_toEndOf="@+id/playback_seek_bar"
|
||||
app:layout_constraintTop_toTopOf="@+id/playback_skip_next"
|
||||
|
|
|
|||
|
|
@ -87,11 +87,10 @@
|
|||
android:id="@+id/playback_progress_bar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:trackColor="?attr/colorPrimary"
|
||||
app:trackColor="@color/sel_track"
|
||||
tools:progress="70" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
android:paddingTop="@dimen/spacing_medium"
|
||||
android:paddingEnd="@dimen/spacing_medium"
|
||||
android:paddingBottom="@dimen/spacing_small"
|
||||
app:layoutManager=".ui.accent.AccentGridLayoutManager"
|
||||
app:layoutManager="org.oxycblt.auxio.ui.accent.AccentGridLayoutManager"
|
||||
app:layout_constraintBottom_toTopOf="@+id/accent_cancel"
|
||||
app:layout_constraintTop_toBottomOf="@+id/accent_header"
|
||||
tools:itemCount="18"
|
||||
|
|
|
|||
|
|
@ -22,8 +22,8 @@
|
|||
android:id="@+id/excluded_empty"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingTop="@dimen/spacing_medium"
|
||||
android:paddingStart="@dimen/spacing_medium"
|
||||
android:paddingTop="@dimen/spacing_medium"
|
||||
android:paddingEnd="@dimen/spacing_medium"
|
||||
android:paddingBottom="@dimen/spacing_medium"
|
||||
android:text="@string/err_no_dirs"
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@
|
|||
app:layout_constraintTop_toBottomOf="@+id/with_tags_header"
|
||||
app:thumbRadius="@dimen/slider_thumb_radius"
|
||||
app:tickVisible="false"
|
||||
app:trackColorInactive="@color/sel_track"
|
||||
tools:value="0.0" />
|
||||
|
||||
<TextView
|
||||
|
|
@ -76,6 +77,7 @@
|
|||
app:layout_constraintTop_toBottomOf="@+id/without_tags_header"
|
||||
app:thumbRadius="@dimen/slider_thumb_radius"
|
||||
app:tickVisible="false"
|
||||
app:trackColorInactive="@color/sel_track"
|
||||
tools:value="0.0" />
|
||||
|
||||
<TextView
|
||||
|
|
|
|||
|
|
@ -29,8 +29,8 @@
|
|||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
android:layout_margin="@dimen/spacing_medium">
|
||||
android:layout_margin="@dimen/spacing_medium"
|
||||
android:orientation="vertical">
|
||||
|
||||
<com.google.android.material.card.MaterialCardView
|
||||
android:layout_width="match_parent"
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:layout_margin="@dimen/spacing_medium"
|
||||
android:contentDescription="@string/desc_shuffle_all"
|
||||
android:src="@drawable/ic_shuffle" />
|
||||
android:src="@drawable/ic_shuffle_state" />
|
||||
|
||||
</org.oxycblt.auxio.home.EdgeFabContainer>
|
||||
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@
|
|||
<org.oxycblt.auxio.home.fastscroll.FastScrollRecyclerView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
style="@style/Widget.Auxio.RecyclerView.WithAdaptiveFab"
|
||||
android:id="@+id/home_recycler"
|
||||
style="@style/Widget.Auxio.RecyclerView.WithAdaptiveFab"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@
|
|||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:trackColor="?attr/colorPrimary"
|
||||
app:trackColor="@color/sel_track"
|
||||
tools:progress="70" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
|
|
|||
|
|
@ -75,7 +75,8 @@
|
|||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="0.0"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:thumbRadius="@dimen/slider_thumb_radius" />
|
||||
app:thumbRadius="@dimen/slider_thumb_radius"
|
||||
app:trackColorInactive="@color/sel_track" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/playback_position"
|
||||
|
|
@ -161,9 +162,9 @@
|
|||
android:contentDescription="@string/desc_shuffle"
|
||||
android:minWidth="@dimen/size_btn_small"
|
||||
android:minHeight="@dimen/size_btn_small"
|
||||
android:src="@drawable/ic_shuffle"
|
||||
app:iconSize="@dimen/size_icon_large"
|
||||
android:src="@drawable/ic_shuffle_state"
|
||||
app:hasIndicator="true"
|
||||
app:iconSize="@dimen/size_icon_large"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/playback_skip_next"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@+id/playback_skip_next"
|
||||
|
|
|
|||
|
|
@ -13,9 +13,7 @@
|
|||
<org.oxycblt.auxio.ui.StyledImageView
|
||||
android:id="@+id/song_track_bg"
|
||||
style="@style/Widget.Auxio.Image.Small"
|
||||
android:src="@drawable/ic_song"
|
||||
android:scaleType="matrix"
|
||||
tools:src="@null"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/song_track"
|
||||
app:layout_constraintEnd_toEndOf="@+id/song_track"
|
||||
app:layout_constraintStart_toStartOf="@+id/song_track"
|
||||
|
|
@ -27,14 +25,13 @@
|
|||
android:layout_height="@dimen/size_btn_small"
|
||||
android:gravity="center"
|
||||
android:maxLines="1"
|
||||
app:autoSizeTextType="uniform"
|
||||
app:autoSizeMinTextSize="@dimen/text_size_track_number_min"
|
||||
app:autoSizeMaxTextSize="@dimen/text_size_track_number_max"
|
||||
app:autoSizeStepGranularity="@dimen/text_size_track_number_step"
|
||||
android:textAlignment="center"
|
||||
android:textAppearance="@style/TextAppearance.Auxio.BodyLarge"
|
||||
android:textColor="@color/sel_on_cover_bg"
|
||||
|
||||
app:autoSizeMaxTextSize="@dimen/text_size_track_number_max"
|
||||
app:autoSizeMinTextSize="@dimen/text_size_track_number_min"
|
||||
app:autoSizeStepGranularity="@dimen/text_size_track_number_step"
|
||||
app:autoSizeTextType="uniform"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@+id/song_name"
|
||||
app:layout_constraintHorizontal_bias="0.5"
|
||||
|
|
|
|||
|
|
@ -2,9 +2,9 @@
|
|||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:padding="@dimen/spacing_medium"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="@dimen/spacing_medium">
|
||||
|
||||
<org.oxycblt.auxio.ui.StyledImageView
|
||||
android:id="@+id/disc_item"
|
||||
|
|
|
|||
|
|
@ -14,10 +14,10 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/spacing_mid_large"
|
||||
android:layout_marginEnd="@dimen/spacing_medium"
|
||||
android:paddingTop="@dimen/spacing_small"
|
||||
android:paddingBottom="@dimen/spacing_small"
|
||||
android:gravity="center"
|
||||
android:maxLines="@null"
|
||||
android:paddingTop="@dimen/spacing_small"
|
||||
android:paddingBottom="@dimen/spacing_small"
|
||||
android:textAppearance="@style/TextAppearance.Auxio.BodyLarge"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@+id/excluded_clear"
|
||||
|
|
@ -29,16 +29,16 @@
|
|||
android:id="@+id/excluded_clear"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="@dimen/spacing_small"
|
||||
android:background="@drawable/ui_unbounded_ripple"
|
||||
android:contentDescription="@string/desc_blacklist_delete"
|
||||
android:minWidth="@dimen/size_btn_small"
|
||||
android:minHeight="@dimen/size_btn_small"
|
||||
android:paddingTop="@dimen/spacing_small"
|
||||
android:paddingBottom="@dimen/spacing_small"
|
||||
android:paddingEnd="@dimen/spacing_medium"
|
||||
android:paddingStart="@dimen/spacing_medium"
|
||||
android:layout_marginEnd="@dimen/spacing_small"
|
||||
android:src="@drawable/ic_clear"
|
||||
android:paddingTop="@dimen/spacing_small"
|
||||
android:paddingEnd="@dimen/spacing_medium"
|
||||
android:paddingBottom="@dimen/spacing_small"
|
||||
android:src="@drawable/ic_delete"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
android:layout_gravity="end|center_vertical"
|
||||
android:contentDescription="@string/desc_clear_queue_item"
|
||||
android:padding="@dimen/spacing_medium"
|
||||
android:src="@drawable/ic_clear"
|
||||
android:src="@drawable/ic_delete"
|
||||
app:tint="?attr/colorSurface" />
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
|
|
|
|||
|
|
@ -22,15 +22,15 @@
|
|||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/ui_unbounded_ripple"
|
||||
android:contentDescription="@string/lbl_sort"
|
||||
android:minWidth="@dimen/size_btn_small"
|
||||
android:minHeight="@dimen/size_btn_small"
|
||||
android:paddingStart="@dimen/spacing_medium"
|
||||
android:paddingEnd="@dimen/spacing_medium"
|
||||
android:src="@drawable/ic_sort"
|
||||
app:layout_constraintBottom_toTopOf="@id/header_divider"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
android:contentDescription="@string/lbl_sort"
|
||||
android:src="@drawable/ic_sort" />
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<com.google.android.material.divider.MaterialDivider
|
||||
android:id="@+id/header_divider"
|
||||
|
|
|
|||
|
|
@ -14,9 +14,9 @@
|
|||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/spacing_medium"
|
||||
android:clickable="false"
|
||||
android:layout_marginTop="@dimen/spacing_small"
|
||||
android:layout_marginBottom="@dimen/spacing_small"
|
||||
android:clickable="false"
|
||||
android:focusable="false"
|
||||
android:paddingStart="@dimen/spacing_medium"
|
||||
android:textAppearance="@style/TextAppearance.Auxio.BodyLarge"
|
||||
|
|
@ -32,6 +32,7 @@
|
|||
android:id="@+id/tab_drag_handle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="@dimen/spacing_small"
|
||||
android:clickable="true"
|
||||
android:contentDescription="@string/desc_tab_handle"
|
||||
android:focusable="true"
|
||||
|
|
@ -39,7 +40,6 @@
|
|||
android:minHeight="@dimen/size_btn_small"
|
||||
android:paddingStart="@dimen/spacing_medium"
|
||||
android:paddingEnd="@dimen/spacing_medium"
|
||||
android:layout_marginEnd="@dimen/spacing_small"
|
||||
android:scaleType="center"
|
||||
android:src="@drawable/ic_handle"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/tab_icon"
|
||||
|
|
|
|||
|
|
@ -117,7 +117,7 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:contentDescription="@string/desc_shuffle"
|
||||
android:src="@drawable/ic_shuffle" />
|
||||
android:src="@drawable/ic_shuffle_state" />
|
||||
|
||||
</android.widget.LinearLayout>
|
||||
|
||||
|
|
|
|||
|
|
@ -104,7 +104,7 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:contentDescription="@string/desc_shuffle"
|
||||
android:src="@drawable/ic_shuffle" />
|
||||
android:src="@drawable/ic_shuffle_state" />
|
||||
|
||||
</android.widget.LinearLayout>
|
||||
</android.widget.RelativeLayout>
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
<!-- Note: Not actually transparent, making it transparent would actually make it translucent -->
|
||||
<color name="chrome_transparent">#01fafafa</color>
|
||||
<color name="chrome_translucent">#80000000</color>
|
||||
<color name="remote_translucent">#80ffffff</color>
|
||||
|
||||
<color name="red_primary">#BC1714</color>
|
||||
<color name="red_on_primary">#FFFFFF</color>
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
app:defaultValue="@integer/theme_auto"
|
||||
app:entries="@array/entries_theme"
|
||||
app:entryValues="@array/values_theme"
|
||||
app:icon="@drawable/ic_day"
|
||||
app:icon="@drawable/ic_light"
|
||||
app:iconSpaceReserved="false"
|
||||
app:isPreferenceVisible="@bool/enable_theme_settings"
|
||||
app:key="KEY_THEME2"
|
||||
|
|
@ -95,12 +95,12 @@
|
|||
app:title="@string/set_replay_gain" />
|
||||
|
||||
<Preference
|
||||
app:allowDividerBelow="false"
|
||||
app:dependency="auxio_replay_gain"
|
||||
app:iconSpaceReserved="false"
|
||||
app:key="auxio_pre_amp"
|
||||
app:allowDividerBelow="false"
|
||||
app:title="@string/set_pre_amp"
|
||||
app:dependency="auxio_replay_gain"
|
||||
app:summary="@string/set_pre_amp_desc"/>
|
||||
app:summary="@string/set_pre_amp_desc"
|
||||
app:title="@string/set_pre_amp" />
|
||||
|
||||
</PreferenceCategory>
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ buildscript {
|
|||
}
|
||||
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:7.2.0'
|
||||
classpath "com.android.tools.build:gradle:7.2.0"
|
||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
||||
classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$navigation_version"
|
||||
classpath "com.diffplug.spotless:spotless-plugin-gradle:6.3.0"
|
||||
|
|
|
|||
Loading…
Reference in a new issue