Fit progress slider jumps

main
h4h13 2020-01-10 02:23:18 +05:30
parent e2f3f1569a
commit fc7c3b30f5
31 changed files with 758 additions and 678 deletions

View File

@ -22,7 +22,7 @@ android {
vectorDrawables.useSupportLibrary = true vectorDrawables.useSupportLibrary = true
applicationId "code.name.monkey.retromusic" applicationId "code.name.monkey.retromusic"
versionCode 401 versionCode 403
versionName '3.4.850' versionName '3.4.850'
multiDexEnabled true multiDexEnabled true

File diff suppressed because one or more lines are too long

View File

@ -8,6 +8,7 @@ import androidx.annotation.IntDef
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.widget.AppCompatTextView import androidx.appcompat.widget.AppCompatTextView
import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import code.name.monkey.retromusic.R import code.name.monkey.retromusic.R
import code.name.monkey.retromusic.adapter.album.AlbumFullWidthAdapter import code.name.monkey.retromusic.adapter.album.AlbumFullWidthAdapter
@ -22,7 +23,7 @@ import code.name.monkey.retromusic.model.Playlist
import code.name.monkey.retromusic.util.PreferenceUtil import code.name.monkey.retromusic.util.PreferenceUtil
class HomeAdapter( class HomeAdapter(
private val activity: AppCompatActivity, private val displayMetrics: DisplayMetrics private val activity: AppCompatActivity, private val displayMetrics: DisplayMetrics
) : RecyclerView.Adapter<RecyclerView.ViewHolder>() { ) : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
private var list = ArrayList<Home>() private var list = ArrayList<Home>()
@ -33,12 +34,18 @@ class HomeAdapter(
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
val layout = LayoutInflater.from(activity) val layout = LayoutInflater.from(activity)
.inflate(R.layout.section_recycler_view, parent, false) .inflate(R.layout.section_recycler_view, parent, false)
return when (viewType) { return when (viewType) {
RECENT_ARTISTS, TOP_ARTISTS -> ArtistViewHolder(layout) RECENT_ARTISTS, TOP_ARTISTS -> ArtistViewHolder(layout)
PLAYLISTS -> PlaylistViewHolder(layout) PLAYLISTS -> PlaylistViewHolder(layout)
else -> { else -> {
AlbumViewHolder(LayoutInflater.from(activity).inflate(R.layout.metal_section_recycler_view, parent, false)) AlbumViewHolder(
LayoutInflater.from(activity).inflate(
R.layout.metal_section_recycler_view,
parent,
false
)
)
} }
} }
} }
@ -89,7 +96,6 @@ class HomeAdapter(
const val RECENT_ARTISTS = 2 const val RECENT_ARTISTS = 2
const val TOP_ARTISTS = 0 const val TOP_ARTISTS = 0
const val PLAYLISTS = 4 const val PLAYLISTS = 4
} }
private inner class AlbumViewHolder(view: View) : AbsHomeViewItem(view) { private inner class AlbumViewHolder(view: View) : AbsHomeViewItem(view) {
@ -109,15 +115,13 @@ class HomeAdapter(
if (list.isNotEmpty()) { if (list.isNotEmpty()) {
recyclerView.apply { recyclerView.apply {
show() show()
layoutManager = GridLayoutManager( layoutManager = LinearLayoutManager(activity, LinearLayoutManager.HORIZONTAL, false)
activity, 1, GridLayoutManager.HORIZONTAL, false
)
val artistAdapter = ArtistAdapter( val artistAdapter = ArtistAdapter(
activity, activity,
list, list,
PreferenceUtil.getInstance(activity).getHomeGridStyle(activity), PreferenceUtil.getInstance(activity).getHomeGridStyle(activity),
false, false,
null null
) )
adapter = artistAdapter adapter = artistAdapter
} }
@ -134,10 +138,10 @@ class HomeAdapter(
recyclerView.apply { recyclerView.apply {
show() show()
val songAdapter = SongAdapter( val songAdapter = SongAdapter(
activity, songs, R.layout.item_album_card, false, null activity, songs, R.layout.item_album_card, false, null
) )
layoutManager = GridLayoutManager( layoutManager = GridLayoutManager(
activity, 1, GridLayoutManager.HORIZONTAL, false activity, 1, GridLayoutManager.HORIZONTAL, false
) )
adapter = songAdapter adapter = songAdapter
@ -159,7 +163,7 @@ private fun <E> ArrayList<E>.toAlbums(): ArrayList<Album> {
for (x in this) { for (x in this) {
arrayList.add(x as Album) arrayList.add(x as Album)
} }
return arrayList; return arrayList
} }
private fun <E> ArrayList<E>.toArtists(): ArrayList<Artist> { private fun <E> ArrayList<E>.toArtists(): ArrayList<Artist> {
@ -167,7 +171,7 @@ private fun <E> ArrayList<E>.toArtists(): ArrayList<Artist> {
for (x in this) { for (x in this) {
arrayList.add(x as Artist) arrayList.add(x as Artist)
} }
return arrayList; return arrayList
} }
private fun <E> ArrayList<E>.toPlaylist(): ArrayList<Playlist> { private fun <E> ArrayList<E>.toPlaylist(): ArrayList<Playlist> {
@ -175,6 +179,6 @@ private fun <E> ArrayList<E>.toPlaylist(): ArrayList<Playlist> {
for (x in this) { for (x in this) {
arrayList.add(x as Playlist) arrayList.add(x as Playlist)
} }
return arrayList; return arrayList
} }

View File

@ -101,7 +101,6 @@ class AlbumCoverPagerAdapter(
val view = inflater.inflate(finalLayout, container, false) val view = inflater.inflate(finalLayout, container, false)
albumCover = view.findViewById(R.id.player_image) albumCover = view.findViewById(R.id.player_image)
albumCover.setOnClickListener { albumCover.setOnClickListener {
NavigationUtil.goToLyrics(requireActivity()) NavigationUtil.goToLyrics(requireActivity())
} }
return view return view

View File

@ -13,6 +13,7 @@ import code.name.monkey.appthemehelper.util.MaterialValueHelper
import code.name.monkey.retromusic.R import code.name.monkey.retromusic.R
import code.name.monkey.retromusic.adapter.base.AbsMultiSelectAdapter import code.name.monkey.retromusic.adapter.base.AbsMultiSelectAdapter
import code.name.monkey.retromusic.adapter.base.MediaEntryViewHolder import code.name.monkey.retromusic.adapter.base.MediaEntryViewHolder
import code.name.monkey.retromusic.extensions.hide
import code.name.monkey.retromusic.glide.ArtistGlideRequest import code.name.monkey.retromusic.glide.ArtistGlideRequest
import code.name.monkey.retromusic.glide.RetroMusicColoredTarget import code.name.monkey.retromusic.glide.RetroMusicColoredTarget
import code.name.monkey.retromusic.helper.menu.SongsMenuHelper import code.name.monkey.retromusic.helper.menu.SongsMenuHelper
@ -63,13 +64,13 @@ class ArtistAdapter(
val isChecked = isChecked(artist) val isChecked = isChecked(artist)
holder.itemView.isActivated = isChecked holder.itemView.isActivated = isChecked
holder.title?.text = artist.name holder.title?.text = artist.name
holder.text?.visibility = View.GONE holder.text?.hide()
loadArtistImage(artist, holder) loadArtistImage(artist, holder)
} }
fun setColors(color: Int, holder: ViewHolder) { fun setColors(color: Int, holder: ViewHolder) {
if (holder.paletteColorContainer != null) { if (holder.paletteColorContainer != null) {
holder.paletteColorContainer?.setBackgroundColor(color) holder.paletteColorContainer?.backgroundTintList = ColorStateList.valueOf(color)
holder.title?.setTextColor( holder.title?.setTextColor(
MaterialValueHelper.getPrimaryTextColor( MaterialValueHelper.getPrimaryTextColor(
activity, ColorUtil.isColorLight( activity, ColorUtil.isColorLight(
@ -78,7 +79,7 @@ class ArtistAdapter(
) )
) )
} }
holder.imageContainerCard?.setCardBackgroundColor(color)
holder.mask?.backgroundTintList = ColorStateList.valueOf(color) holder.mask?.backgroundTintList = ColorStateList.valueOf(color)
} }

View File

@ -151,8 +151,7 @@ class BannerHomeFragment : AbsMainActivityFragment(), MainActivityFragmentCallba
private fun setupToolbar() { private fun setupToolbar() {
toolbar.apply { toolbar.apply {
backgroundTintList = backgroundTintList = ColorStateList.valueOf(ATHUtil.resolveColor(requireContext(), R.attr.colorSurface))
ColorStateList.valueOf(ATHUtil.resolveColor(requireContext(), R.attr.colorSurface))
setNavigationIcon(R.drawable.ic_menu_white_24dp) setNavigationIcon(R.drawable.ic_menu_white_24dp)
setOnClickListener { setOnClickListener {
val options = ActivityOptions.makeSceneTransitionAnimation( val options = ActivityOptions.makeSceneTransitionAnimation(

View File

@ -14,7 +14,7 @@ import code.name.monkey.retromusic.helper.MusicPlayerRemote
import code.name.monkey.retromusic.transform.CarousalPagerTransformer import code.name.monkey.retromusic.transform.CarousalPagerTransformer
import code.name.monkey.retromusic.transform.ParallaxPagerTransformer import code.name.monkey.retromusic.transform.ParallaxPagerTransformer
import code.name.monkey.retromusic.util.PreferenceUtil import code.name.monkey.retromusic.util.PreferenceUtil
import kotlinx.android.synthetic.main.fragment_player_album_cover.* import kotlinx.android.synthetic.main.fragment_player_album_cover.viewPager
class PlayerAlbumCoverFragment : AbsMusicServiceFragment(), ViewPager.OnPageChangeListener { class PlayerAlbumCoverFragment : AbsMusicServiceFragment(), ViewPager.OnPageChangeListener {
@ -44,8 +44,6 @@ class PlayerAlbumCoverFragment : AbsMusicServiceFragment(), ViewPager.OnPageChan
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
viewPager.addOnPageChangeListener(this) viewPager.addOnPageChangeListener(this)
//noinspection ConstantConditions //noinspection ConstantConditions
if (PreferenceUtil.getInstance(requireContext()).carouselEffect() && if (PreferenceUtil.getInstance(requireContext()).carouselEffect() &&
@ -60,8 +58,6 @@ class PlayerAlbumCoverFragment : AbsMusicServiceFragment(), ViewPager.OnPageChan
viewPager.offscreenPageLimit = 2 viewPager.offscreenPageLimit = 2
viewPager.setPageTransformer(true, PreferenceUtil.getInstance(requireContext()).albumCoverTransform) viewPager.setPageTransformer(true, PreferenceUtil.getInstance(requireContext()).albumCoverTransform)
} }
} }
override fun onDestroyView() { override fun onDestroyView() {

View File

@ -132,6 +132,7 @@ class BlurPlaybackControlsFragment : AbsPlayerControlsFragment() {
updatePrevNextColor() updatePrevNextColor()
text.setTextColor(lastDisabledPlaybackControlsColor) text.setTextColor(lastDisabledPlaybackControlsColor)
songInfo.setTextColor(lastDisabledPlaybackControlsColor)
TintHelper.setTintAuto(progressSlider, lastPlaybackControlsColor, false) TintHelper.setTintAuto(progressSlider, lastPlaybackControlsColor, false)
volumeFragment?.setTintableColor(lastPlaybackControlsColor) volumeFragment?.setTintableColor(lastPlaybackControlsColor)

View File

@ -90,6 +90,7 @@ class CardBlurPlaybackControlsFragment : AbsPlayerControlsFragment() {
val color = MaterialValueHelper.getPrimaryTextColor(context, false) val color = MaterialValueHelper.getPrimaryTextColor(context, false)
songTotalTime.setTextColor(color) songTotalTime.setTextColor(color)
songCurrentProgress.setTextColor(color) songCurrentProgress.setTextColor(color)
songInfo.setTextColor(color)
} }
override fun onResume() { override fun onResume() {

View File

@ -107,7 +107,6 @@ class PlayerPlaybackControlsFragment : AbsPlayerControlsFragment(), OnSharedPref
updatePrevNextColor() updatePrevNextColor()
} }
private fun updateSong() { private fun updateSong() {
val song = MusicPlayerRemote.currentSong val song = MusicPlayerRemote.currentSong
title.text = song.title title.text = song.title

View File

@ -30,9 +30,9 @@ import code.name.monkey.retromusic.util.RippleUtils
import com.google.android.material.bottomnavigation.BottomNavigationView import com.google.android.material.bottomnavigation.BottomNavigationView
class BottomNavigationBarTinted @JvmOverloads constructor( class BottomNavigationBarTinted @JvmOverloads constructor(
context: Context, context: Context,
attrs: AttributeSet? = null, attrs: AttributeSet? = null,
defStyleAttr: Int = 0 defStyleAttr: Int = 0
) : BottomNavigationView(context, attrs, defStyleAttr) { ) : BottomNavigationView(context, attrs, defStyleAttr) {
init { init {
@ -43,13 +43,21 @@ class BottomNavigationBarTinted @JvmOverloads constructor(
val accentColor = ThemeStore.accentColor(context) val accentColor = ThemeStore.accentColor(context)
NavigationViewUtil.setItemIconColors(this, ColorUtil.withAlpha(iconColor, 0.5f), accentColor) NavigationViewUtil.setItemIconColors(this, ColorUtil.withAlpha(iconColor, 0.5f), accentColor)
NavigationViewUtil.setItemTextColors(this, ColorUtil.withAlpha(iconColor, 0.5f), accentColor) NavigationViewUtil.setItemTextColors(this, ColorUtil.withAlpha(iconColor, 0.5f), accentColor)
itemBackground = RippleDrawable(RippleUtils.convertToRippleDrawableColor(ColorStateList.valueOf(ThemeStore.accentColor(context).addAlpha())), ContextCompat.getDrawable(context, R.drawable.bottom_navigation_item_background), ContextCompat.getDrawable(context, R.drawable.bottom_navigation_item_background_mask)) itemBackground = RippleDrawable(
RippleUtils.convertToRippleDrawableColor(
ColorStateList.valueOf(
ThemeStore.accentColor(context).addAlpha()
)
),
ContextCompat.getDrawable(context, R.drawable.bottom_navigation_item_background),
ContextCompat.getDrawable(context, R.drawable.bottom_navigation_item_background_mask)
)
setOnApplyWindowInsetsListener(null) setOnApplyWindowInsetsListener(null)
//itemRippleColor = ColorStateList.valueOf(accentColor) //itemRippleColor = ColorStateList.valueOf(accentColor)
background = ColorDrawable(ATHUtil.resolveColor(context, R.attr.colorSurface)) background = ColorDrawable(ATHUtil.resolveColor(context, R.attr.colorSurface))
} }
} }
private fun Int.addAlpha(): Int { fun Int.addAlpha(): Int {
return ColorUtil.withAlpha(this, 0.12f) return ColorUtil.withAlpha(this, 0.12f)
} }

View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?><!--
~ Copyright (c) 2020 Hemanth Savarala.
~
~ Licensed under the GNU General Public License v3
~
~ This is free software: you can redistribute it and/or modify it under
~ the terms of the GNU General Public License as published by
~ the Free Software Foundation either version 3 of the License, or (at your option) any later version.
~
~ This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
~ without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
~ See the GNU General Public License for more details.
-->
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:angle="135"
android:endColor="@color/semi_transparent"
android:startColor="@color/md_blue_500" />
</shape>

View File

@ -11,55 +11,59 @@
tools:ignore="MissingPrefix"> tools:ignore="MissingPrefix">
<RelativeLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/progress_slider_height" android:layout_height="wrap_content"
android:layout_marginTop="8dp" android:gravity="center">
android:layout_marginBottom="8dp"
android:paddingStart="12dp"
android:paddingEnd="12dp">
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/songCurrentProgress" android:id="@+id/songCurrentProgress"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="match_parent" android:layout_height="wrap_content"
android:layout_alignParentLeft="true" android:layout_marginStart="16dp"
android:gravity="center_vertical|left|end" android:gravity="center"
android:paddingLeft="8dp" android:minWidth="40dp"
android:singleLine="true"
android:textColor="?android:attr/textColorSecondary"
android:textSize="12sp"
tools:ignore="RtlHardcoded,RtlSymmetry"
tools:text="00:22" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/songTotalTime"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentRight="true"
android:gravity="center_vertical|right|end"
android:paddingRight="8dp"
android:singleLine="true" android:singleLine="true"
android:textColor="?android:attr/textColorSecondary" android:textColor="?android:attr/textColorSecondary"
android:textSize="12sp" android:textSize="12sp"
app:layout_constraintBottom_toBottomOf="@+id/progressSlider"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/progressSlider"
tools:ignore="RtlHardcoded,RtlSymmetry" tools:ignore="RtlHardcoded,RtlSymmetry"
tools:text="00:22" /> tools:text="00:22" />
<androidx.appcompat.widget.AppCompatSeekBar <androidx.appcompat.widget.AppCompatSeekBar
android:id="@+id/progressSlider" android:id="@+id/progressSlider"
style="@style/Widget.MaterialProgressBar.ProgressBar.Horizontal" style="@style/Widget.MaterialProgressBar.ProgressBar.Horizontal"
android:layout_width="match_parent" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_centerVertical="true" android:layout_weight="8"
android:layout_toLeftOf="@id/songTotalTime"
android:layout_toRightOf="@id/songCurrentProgress"
android:maxHeight="2dp" android:maxHeight="2dp"
android:progressDrawable="@drawable/color_progress_seek" android:progressDrawable="@drawable/color_progress_seek"
android:splitTrack="false" android:splitTrack="false"
app:layout_constraintEnd_toStartOf="@id/songTotalTime"
app:layout_constraintStart_toEndOf="@id/songCurrentProgress"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="RtlHardcoded,UnusedAttribute" tools:ignore="RtlHardcoded,UnusedAttribute"
tools:progress="20" /> tools:progress="20" />
</RelativeLayout>
<com.google.android.material.textview.MaterialTextView
android:id="@+id/songTotalTime"
android:layout_width="40dp"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:gravity="center"
android:minWidth="40dp"
android:singleLine="true"
android:textColor="?android:attr/textColorSecondary"
android:textSize="12sp"
app:layout_constraintBottom_toBottomOf="@+id/progressSlider"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/progressSlider"
tools:ignore="RtlHardcoded,RtlSymmetry"
tools:text="00:22" />
</LinearLayout>
<RelativeLayout <RelativeLayout
android:id="@+id/playerMediaControllerContainer" android:id="@+id/playerMediaControllerContainer"

View File

@ -12,7 +12,6 @@
android:layout_gravity="center"> android:layout_gravity="center">
<com.google.android.material.card.MaterialCardView <com.google.android.material.card.MaterialCardView
android:id="@+id/player_album_art_frame"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_margin="16dp" android:layout_margin="16dp"

View File

@ -38,16 +38,44 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical"> android:orientation="vertical">
<com.google.android.material.card.MaterialCardView
android:id="@+id/toolbarContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/toolbar_margin_horizontal"
android:layout_marginEnd="@dimen/toolbar_margin_horizontal"
app:cardCornerRadius="8dp"
app:cardUseCompatPadding="true"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_scrollFlags="scroll|enterAlways"
app:shapeAppearance="@style/ToolbarCornerCardView">
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="@dimen/toolbar_height"
android:background="?attr/colorSurface"
app:contentInsetStart="0dp"
app:contentInsetStartWithNavigation="0dp"
app:popupTheme="?toolbarPopupTheme"
app:title="@string/search_hint"
app:titleMarginStart="0dp"
app:titleTextAppearance="@style/ToolbarTextAppearanceSearch"
tools:ignore="UnusedAttribute" />
</com.google.android.material.card.MaterialCardView>
<com.google.android.material.card.MaterialCardView <com.google.android.material.card.MaterialCardView
android:id="@+id/imageContainer" android:id="@+id/imageContainer"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
app:cardCornerRadius="24dp" app:cardCornerRadius="24dp"
app:cardUseCompatPadding="true" app:cardUseCompatPadding="true"
app:layout_constraintDimensionRatio="16:9" app:layout_constraintDimensionRatio="21:10"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"> app:layout_constraintTop_toBottomOf="@id/toolbarContainer">
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent" android:layout_width="match_parent"
@ -62,36 +90,6 @@
tools:ignore="ContentDescription" tools:ignore="ContentDescription"
tools:srcCompat="@tools:sample/backgrounds/scenic[9]" /> tools:srcCompat="@tools:sample/backgrounds/scenic[9]" />
<com.google.android.material.card.MaterialCardView
android:id="@+id/toolbarContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/toolbar_margin_horizontal"
android:layout_marginTop="8dp"
android:layout_marginEnd="@dimen/toolbar_margin_horizontal"
app:cardBackgroundColor="@android:color/transparent"
app:cardCornerRadius="8dp"
app:cardUseCompatPadding="true"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_scrollFlags="scroll|enterAlways"
app:shapeAppearance="@style/ToolbarCornerCardView">
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="@dimen/toolbar_height"
android:background="?attr/colorSurface"
app:contentInsetStart="0dp"
app:contentInsetStartWithNavigation="0dp"
app:popupTheme="?toolbarPopupTheme"
app:title="@string/search_hint"
app:titleMarginStart="0dp"
app:titleTextAppearance="@style/ToolbarTextAppearanceSearch"
tools:ignore="UnusedAttribute" />
</com.google.android.material.card.MaterialCardView>
<View <View
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="52dp" android:layout_height="52dp"

View File

@ -22,56 +22,53 @@
android:orientation="vertical" android:orientation="vertical"
tools:ignore="MissingPrefix"> tools:ignore="MissingPrefix">
<RelativeLayout <com.google.android.material.textview.MaterialTextView
android:id="@+id/progressContainer" android:id="@+id/songCurrentProgress"
android:layout_width="match_parent" android:layout_width="wrap_content"
android:layout_height="28dp" android:layout_height="wrap_content"
android:paddingStart="12dp" android:layout_marginStart="16dp"
android:paddingEnd="12dp" android:gravity="center"
app:layout_constraintEnd_toEndOf="parent" android:minWidth="40dp"
android:singleLine="true"
android:textColor="?android:attr/textColorSecondary"
android:textSize="12sp"
app:layout_constraintBottom_toBottomOf="@+id/progressSlider"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"> app:layout_constraintTop_toTopOf="@id/progressSlider"
tools:ignore="RtlHardcoded,RtlSymmetry"
tools:text="00:22" />
<androidx.appcompat.widget.AppCompatSeekBar <androidx.appcompat.widget.AppCompatSeekBar
android:id="@+id/progressSlider" android:id="@+id/progressSlider"
style="@style/Widget.MaterialProgressBar.ProgressBar.Horizontal" style="@style/Widget.MaterialProgressBar.ProgressBar.Horizontal"
android:layout_width="match_parent" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_centerInParent="true" android:layout_weight="8"
android:layout_toLeftOf="@id/songTotalTime" android:maxHeight="1.5dp"
android:layout_toRightOf="@id/songCurrentProgress" android:progressDrawable="@drawable/color_progress_seek"
android:maxHeight="1.5dp" android:splitTrack="false"
android:progressDrawable="@drawable/color_progress_seek" app:layout_constraintEnd_toStartOf="@id/songTotalTime"
android:splitTrack="false" app:layout_constraintStart_toEndOf="@id/songCurrentProgress"
tools:ignore="RtlHardcoded,UnusedAttribute" app:layout_constraintTop_toTopOf="parent"
tools:progress="20" /> tools:ignore="RtlHardcoded,UnusedAttribute"
tools:progress="20" />
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/songTotalTime" android:id="@+id/songTotalTime"
android:layout_width="wrap_content" android:layout_width="40dp"
android:layout_height="match_parent" android:layout_height="wrap_content"
android:layout_alignParentRight="true" android:layout_marginEnd="16dp"
android:gravity="center_vertical|right|end" android:gravity="center"
android:paddingRight="8dp" android:minWidth="40dp"
android:singleLine="true" android:singleLine="true"
android:textColor="?colorOnSecondary" android:textColor="?android:attr/textColorSecondary"
android:textSize="12sp" android:textSize="12sp"
tools:ignore="RtlHardcoded,RtlSymmetry" app:layout_constraintBottom_toBottomOf="@+id/progressSlider"
tools:text="00:22" /> app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/progressSlider"
tools:ignore="RtlHardcoded,RtlSymmetry"
tools:text="00:22" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/songCurrentProgress"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:gravity="center_vertical|left|end"
android:paddingLeft="8dp"
android:singleLine="true"
android:textColor="?colorOnSecondary"
android:textSize="12sp"
tools:ignore="RtlHardcoded,RtlSymmetry"
tools:text="00:22" />
</RelativeLayout>
<LinearLayout <LinearLayout
android:id="@+id/titleContainer" android:id="@+id/titleContainer"
@ -81,7 +78,7 @@
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5" app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/progressContainer"> app:layout_constraintTop_toBottomOf="@+id/progressSlider">
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/title" android:id="@+id/title"

View File

@ -25,7 +25,8 @@
android:singleLine="true" android:singleLine="true"
android:textColor="?colorOnSecondary" android:textColor="?colorOnSecondary"
android:textSize="12sp" android:textSize="12sp"
tools:ignore="RtlHardcoded,RtlSymmetry" /> tools:ignore="RtlHardcoded,RtlSymmetry"
tools:text="00:00" />
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/songTotalTime" android:id="@+id/songTotalTime"
@ -37,7 +38,8 @@
android:singleLine="true" android:singleLine="true"
android:textColor="?colorOnSecondary" android:textColor="?colorOnSecondary"
android:textSize="12sp" android:textSize="12sp"
tools:ignore="RtlHardcoded,RtlSymmetry" /> tools:ignore="RtlHardcoded,RtlSymmetry"
tools:text="00:00" />
<androidx.appcompat.widget.AppCompatSeekBar <androidx.appcompat.widget.AppCompatSeekBar
android:id="@+id/progressSlider" android:id="@+id/progressSlider"

View File

@ -1,206 +1,206 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/playback_controls" android:id="@+id/playback_controls"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical" android:orientation="vertical"
tools:ignore="MissingPrefix"> tools:ignore="MissingPrefix">
<RelativeLayout <com.google.android.material.textview.MaterialTextView
android:id="@+id/progressContainer" android:id="@+id/songCurrentProgress"
android:layout_width="match_parent" android:layout_width="wrap_content"
android:layout_height="28dp" android:layout_height="wrap_content"
android:paddingStart="12dp" android:layout_marginStart="16dp"
android:paddingEnd="12dp" android:gravity="center"
app:layout_constraintEnd_toEndOf="parent" android:minWidth="40dp"
app:layout_constraintStart_toStartOf="parent" android:singleLine="true"
app:layout_constraintTop_toTopOf="parent"> android:textColor="?android:attr/textColorSecondary"
android:textSize="12sp"
app:layout_constraintBottom_toBottomOf="@+id/progressSlider"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/progressSlider"
tools:ignore="RtlHardcoded,RtlSymmetry"
tools:text="00:22" />
<com.google.android.material.textview.MaterialTextView <androidx.appcompat.widget.AppCompatSeekBar
android:id="@+id/songCurrentProgress" android:id="@+id/progressSlider"
android:layout_width="wrap_content" style="@style/Widget.MaterialProgressBar.ProgressBar.Horizontal"
android:layout_height="match_parent" android:layout_width="0dp"
android:layout_alignParentLeft="true" android:layout_height="wrap_content"
android:gravity="center_vertical|left|end" android:layout_marginTop="8dp"
android:paddingLeft="8dp" android:layout_weight="8"
android:singleLine="true" android:maxHeight="2dp"
android:textSize="12sp" android:progressDrawable="@drawable/color_progress_seek"
tools:ignore="RtlHardcoded,RtlSymmetry" android:splitTrack="false"
tools:text="00:22" /> app:layout_constraintEnd_toStartOf="@id/songTotalTime"
app:layout_constraintStart_toEndOf="@id/songCurrentProgress"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="RtlHardcoded,UnusedAttribute"
tools:progress="20" />
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/songTotalTime" android:id="@+id/songTotalTime"
android:layout_width="wrap_content" android:layout_width="40dp"
android:layout_height="match_parent" android:layout_height="wrap_content"
android:layout_alignParentRight="true" android:layout_marginEnd="16dp"
android:gravity="center_vertical|right|end" android:gravity="center"
android:paddingRight="8dp" android:minWidth="40dp"
android:singleLine="true" android:singleLine="true"
android:textSize="12sp" android:textColor="?android:attr/textColorSecondary"
tools:ignore="RtlHardcoded,RtlSymmetry" android:textSize="12sp"
tools:text="04:22" /> app:layout_constraintBottom_toBottomOf="@+id/progressSlider"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/progressSlider"
tools:ignore="RtlHardcoded,RtlSymmetry"
tools:text="00:22" />
<androidx.appcompat.widget.AppCompatSeekBar <LinearLayout
android:id="@+id/progressSlider" android:id="@+id/titleContainer"
style="@style/Widget.MaterialProgressBar.ProgressBar.Horizontal" android:layout_width="wrap_content"
android:layout_width="match_parent" android:layout_height="wrap_content"
android:layout_height="wrap_content" app:layout_constraintBottom_toTopOf="@+id/text"
android:layout_centerVertical="true" app:layout_constraintEnd_toEndOf="parent"
android:layout_toLeftOf="@id/songTotalTime" app:layout_constraintHorizontal_bias="0.5"
android:layout_toRightOf="@id/songCurrentProgress" app:layout_constraintStart_toStartOf="parent"
android:maxHeight="2dp" app:layout_constraintTop_toBottomOf="@+id/progressSlider">
android:progressDrawable="@drawable/color_progress_seek"
tools:ignore="RtlHardcoded,UnusedAttribute"
tools:progress="20" />
</RelativeLayout>
<LinearLayout <com.google.android.material.textview.MaterialTextView
android:id="@+id/titleContainer" android:id="@+id/title"
android:layout_width="wrap_content" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:layout_constraintBottom_toTopOf="@+id/text" android:layout_gravity="center"
app:layout_constraintEnd_toEndOf="parent" android:ellipsize="marquee"
app:layout_constraintHorizontal_bias="0.5" android:focusable="true"
app:layout_constraintStart_toStartOf="parent" android:focusableInTouchMode="true"
app:layout_constraintTop_toBottomOf="@+id/progressContainer"> android:freezesText="true"
android:gravity="center"
android:marqueeRepeatLimit="marquee_forever"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:scrollHorizontally="true"
android:singleLine="true"
android:textAppearance="@style/TextViewHeadline6"
android:textColor="?android:attr/textColorPrimary"
android:textStyle="bold"
tools:text="@tools:sample/lorem/random" />
</LinearLayout>
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/title" android:id="@+id/text"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
android:ellipsize="marquee" android:ellipsize="end"
android:focusable="true" android:gravity="center"
android:focusableInTouchMode="true" android:maxLines="2"
android:freezesText="true" android:paddingStart="16dp"
android:gravity="center" android:paddingEnd="16dp"
android:marqueeRepeatLimit="marquee_forever" android:textAppearance="@style/TextViewBody1"
android:paddingStart="16dp" android:textColor="?android:attr/textColorSecondary"
android:paddingEnd="16dp" app:layout_constraintBottom_toTopOf="@+id/songInfo"
android:scrollHorizontally="true" app:layout_constraintTop_toBottomOf="@+id/titleContainer"
android:singleLine="true" tools:text="@tools:sample/lorem/random" />
android:textAppearance="@style/TextViewHeadline6"
android:textColor="?android:attr/textColorPrimary"
android:textStyle="bold"
tools:text="@tools:sample/lorem/random" />
</LinearLayout>
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/text" android:id="@+id/songInfo"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
android:ellipsize="end" android:ellipsize="end"
android:gravity="center" android:gravity="center"
android:maxLines="2" android:maxLines="2"
android:paddingStart="16dp" android:paddingStart="16dp"
android:paddingEnd="16dp" android:paddingEnd="16dp"
android:textAppearance="@style/TextViewBody1" android:textColor="?android:attr/textColorSecondary"
android:textColor="?android:attr/textColorSecondary" android:textSize="12sp"
app:layout_constraintBottom_toTopOf="@+id/songInfo" app:layout_constraintBottom_toTopOf="@+id/playPauseButton"
app:layout_constraintTop_toBottomOf="@+id/titleContainer" app:layout_constraintTop_toBottomOf="@+id/text"
tools:text="@tools:sample/lorem/random" /> tools:text="@tools:sample/lorem/random" />
<com.google.android.material.textview.MaterialTextView <androidx.appcompat.widget.AppCompatImageButton
android:id="@+id/songInfo" android:id="@+id/repeatButton"
android:layout_width="match_parent" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:background="?attr/roundSelector"
android:ellipsize="end" android:padding="16dp"
android:gravity="center" android:scaleType="fitCenter"
android:maxLines="2" app:layout_constraintBottom_toBottomOf="@+id/previousButton"
android:paddingStart="16dp" app:layout_constraintEnd_toStartOf="@+id/previousButton"
android:paddingEnd="16dp" app:layout_constraintHorizontal_bias="0.5"
android:textColor="?android:attr/textColorSecondary" app:layout_constraintStart_toStartOf="parent"
android:textSize="12sp" app:layout_constraintTop_toTopOf="@+id/previousButton"
app:layout_constraintBottom_toTopOf="@+id/playPauseButton" app:srcCompat="@drawable/ic_repeat_white_24dp"
app:layout_constraintTop_toBottomOf="@+id/text" tools:ignore="MissingPrefix"
tools:text="@tools:sample/lorem/random" /> tools:tint="@color/md_black_1000" />
<androidx.appcompat.widget.AppCompatImageButton <androidx.appcompat.widget.AppCompatImageButton
android:id="@+id/repeatButton" android:id="@+id/previousButton"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="?attr/roundSelector" android:background="?attr/roundSelector"
android:padding="16dp" android:padding="16dp"
android:scaleType="fitCenter" android:scaleType="fitCenter"
app:layout_constraintBottom_toBottomOf="@+id/previousButton" app:layout_constraintBottom_toBottomOf="@+id/playPauseButton"
app:layout_constraintEnd_toStartOf="@+id/previousButton" app:layout_constraintEnd_toStartOf="@+id/playPauseButton"
app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toEndOf="@+id/repeatButton"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="@+id/playPauseButton"
app:layout_constraintTop_toTopOf="@+id/previousButton" app:srcCompat="@drawable/ic_skip_previous_white_24dp"
app:srcCompat="@drawable/ic_repeat_white_24dp" tools:ignore="MissingPrefix"
tools:ignore="MissingPrefix" tools:tint="@color/md_black_1000" />
tools:tint="@color/md_black_1000" />
<androidx.appcompat.widget.AppCompatImageButton <com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/previousButton" android:id="@+id/playPauseButton"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="?attr/roundSelector" android:background="?attr/roundSelector"
android:padding="16dp" app:layout_constraintBottom_toTopOf="@+id/volumeFragmentContainer"
android:scaleType="fitCenter" app:layout_constraintEnd_toStartOf="@+id/nextButton"
app:layout_constraintBottom_toBottomOf="@+id/playPauseButton" app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintEnd_toStartOf="@+id/playPauseButton" app:layout_constraintStart_toEndOf="@+id/previousButton"
app:layout_constraintStart_toEndOf="@+id/repeatButton" app:layout_constraintTop_toBottomOf="@+id/songInfo"
app:layout_constraintTop_toTopOf="@+id/playPauseButton" app:srcCompat="@drawable/ic_pause_white_64dp"
app:srcCompat="@drawable/ic_skip_previous_white_24dp" tools:tint="@color/md_black_1000" />
tools:ignore="MissingPrefix"
tools:tint="@color/md_black_1000" />
<com.google.android.material.floatingactionbutton.FloatingActionButton <androidx.appcompat.widget.AppCompatImageButton
android:id="@+id/playPauseButton" android:id="@+id/nextButton"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="?attr/roundSelector" android:background="?attr/roundSelector"
app:layout_constraintBottom_toTopOf="@+id/volumeFragmentContainer" android:padding="16dp"
app:layout_constraintEnd_toStartOf="@+id/nextButton" android:scaleType="fitCenter"
app:layout_constraintHorizontal_bias="0.5" app:layout_constraintBottom_toBottomOf="@+id/playPauseButton"
app:layout_constraintStart_toEndOf="@+id/previousButton" app:layout_constraintEnd_toStartOf="@+id/shuffleButton"
app:layout_constraintTop_toBottomOf="@+id/songInfo" app:layout_constraintStart_toEndOf="@+id/playPauseButton"
app:srcCompat="@drawable/ic_pause_white_64dp" app:layout_constraintTop_toTopOf="@+id/playPauseButton"
tools:tint="@color/md_black_1000" /> app:srcCompat="@drawable/ic_skip_next_white_24dp"
tools:ignore="MissingPrefix"
tools:tint="@color/md_black_1000" />
<androidx.appcompat.widget.AppCompatImageButton <androidx.appcompat.widget.AppCompatImageButton
android:id="@+id/nextButton" android:id="@+id/shuffleButton"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="?attr/roundSelector" android:background="?attr/roundSelector"
android:padding="16dp" android:padding="16dp"
android:scaleType="fitCenter" android:scaleType="fitCenter"
app:layout_constraintBottom_toBottomOf="@+id/playPauseButton" app:layout_constraintBottom_toBottomOf="@+id/nextButton"
app:layout_constraintEnd_toStartOf="@+id/shuffleButton" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/playPauseButton" app:layout_constraintStart_toEndOf="@+id/nextButton"
app:layout_constraintTop_toTopOf="@+id/playPauseButton" app:layout_constraintTop_toTopOf="@+id/nextButton"
app:srcCompat="@drawable/ic_skip_next_white_24dp" app:srcCompat="@drawable/ic_shuffle_white_24dp"
tools:ignore="MissingPrefix" tools:ignore="MissingPrefix"
tools:tint="@color/md_black_1000" /> tools:tint="@color/md_black_1000" />
<androidx.appcompat.widget.AppCompatImageButton <FrameLayout
android:id="@+id/shuffleButton" android:id="@+id/volumeFragmentContainer"
android:layout_width="wrap_content" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="?attr/roundSelector" android:layout_weight="0"
android:padding="16dp" android:paddingStart="8dp"
android:scaleType="fitCenter" android:paddingEnd="8dp"
app:layout_constraintBottom_toBottomOf="@+id/nextButton" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" tools:backgroundTint="@color/md_red_400"
app:layout_constraintStart_toEndOf="@+id/nextButton" tools:layout_height="52dp" />
app:layout_constraintTop_toTopOf="@+id/nextButton"
app:srcCompat="@drawable/ic_shuffle_white_24dp"
tools:ignore="MissingPrefix"
tools:tint="@color/md_black_1000" />
<FrameLayout
android:id="@+id/volumeFragmentContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0"
android:paddingStart="8dp"
android:paddingEnd="8dp"
app:layout_constraintBottom_toBottomOf="parent"
tools:backgroundTint="@color/md_red_400"
tools:layout_height="52dp" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -9,48 +9,53 @@
android:orientation="vertical" android:orientation="vertical"
tools:ignore="MissingPrefix"> tools:ignore="MissingPrefix">
<RelativeLayout <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/progressContainer" android:id="@+id/progressContainer"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/progress_container_height" android:layout_height="@dimen/progress_container_height"
android:background="@color/twenty_percent_black_overlay" android:background="@color/twenty_percent_black_overlay"
app:layout_constraintTop_toTopOf="parent"> app:layout_constraintTop_toTopOf="parent">
<com.google.android.material.textview.MaterialTextView
android:id="@+id/songCurrentProgress"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:gravity="center_vertical|left|end"
android:paddingLeft="8dp"
android:singleLine="true"
android:textColor="?android:attr/textColorSecondary"
android:textSize="12sp"
tools:ignore="RtlHardcoded,RtlSymmetry"
tools:text="00:22" />
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/songTotalTime" android:id="@+id/songCurrentProgress"
android:layout_width="wrap_content" android:layout_width="0dp"
android:layout_height="match_parent" android:layout_height="wrap_content"
android:layout_alignParentRight="true" android:gravity="center_vertical|left|end"
android:gravity="center_vertical|right|end" android:paddingStart="8dp"
android:paddingRight="8dp"
android:singleLine="true" android:singleLine="true"
android:textColor="?android:attr/textColorSecondary" android:textColor="?android:attr/textColorSecondary"
android:textSize="12sp" android:textSize="12sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="RtlHardcoded,RtlSymmetry" tools:ignore="RtlHardcoded,RtlSymmetry"
tools:text="00:22" /> tools:text="00:22" />
<androidx.appcompat.widget.AppCompatSeekBar <androidx.appcompat.widget.AppCompatSeekBar
android:id="@+id/progressSlider" android:id="@+id/progressSlider"
style="@style/MusicProgressSlider" style="@style/MusicProgressSlider"
android:layout_width="0dp"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_toLeftOf="@id/songTotalTime" app:layout_constraintEnd_toStartOf="@id/songTotalTime"
android:layout_toRightOf="@id/songCurrentProgress" app:layout_constraintStart_toEndOf="@id/songCurrentProgress"
tools:ignore="RtlHardcoded,UnusedAttribute" /> tools:ignore="RtlHardcoded,UnusedAttribute" />
</RelativeLayout> <com.google.android.material.textview.MaterialTextView
android:id="@+id/songTotalTime"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical|right|end"
android:paddingEnd="8dp"
android:singleLine="true"
android:textColor="?android:attr/textColorSecondary"
android:textSize="12sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="RtlHardcoded,RtlSymmetry"
tools:text="00:22" />
</androidx.constraintlayout.widget.ConstraintLayout>
<LinearLayout <LinearLayout
android:id="@+id/titleContainer" android:id="@+id/titleContainer"

View File

@ -8,54 +8,51 @@
android:orientation="vertical" android:orientation="vertical"
tools:ignore="MissingPrefix"> tools:ignore="MissingPrefix">
<RelativeLayout <com.google.android.material.textview.MaterialTextView
android:id="@+id/progressContainer" android:id="@+id/songCurrentProgress"
android:layout_width="match_parent" android:layout_width="wrap_content"
android:layout_height="@dimen/progress_container_height" android:layout_height="wrap_content"
android:paddingStart="12dp" android:layout_marginStart="16dp"
android:paddingEnd="12dp" android:gravity="center"
app:layout_constraintEnd_toEndOf="parent" android:minWidth="40dp"
android:singleLine="true"
android:textColor="?android:attr/textColorSecondary"
android:textSize="12sp"
app:layout_constraintBottom_toBottomOf="@+id/progressSlider"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"> app:layout_constraintTop_toTopOf="@id/progressSlider"
tools:ignore="RtlHardcoded,RtlSymmetry"
tools:text="00:22" />
<com.google.android.material.textview.MaterialTextView <androidx.appcompat.widget.AppCompatSeekBar
android:id="@+id/songCurrentProgress" android:id="@+id/progressSlider"
android:layout_width="wrap_content" android:layout_width="0dp"
android:layout_height="match_parent" android:layout_height="wrap_content"
android:layout_alignParentLeft="true" android:layout_weight="8"
android:gravity="center_vertical|left|end" android:splitTrack="false"
android:paddingLeft="8dp" android:thumb="@drawable/switch_square"
android:singleLine="true" app:layout_constraintEnd_toStartOf="@id/songTotalTime"
android:textColor="?android:attr/textColorSecondary" app:layout_constraintStart_toEndOf="@id/songCurrentProgress"
android:textSize="12sp" app:layout_constraintTop_toTopOf="parent"
tools:ignore="RtlHardcoded,RtlSymmetry" tools:ignore="RtlHardcoded,UnusedAttribute"
tools:text="@tools:sample/date/hhmm" /> tools:progress="20" />
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/songTotalTime" android:id="@+id/songTotalTime"
android:layout_width="wrap_content" android:layout_width="40dp"
android:layout_height="match_parent" android:layout_height="wrap_content"
android:layout_alignParentRight="true" android:layout_marginEnd="16dp"
android:gravity="center_vertical|right|end" android:gravity="center"
android:paddingRight="8dp" android:minWidth="40dp"
android:singleLine="true" android:singleLine="true"
android:textColor="?android:attr/textColorSecondary" android:textColor="?android:attr/textColorSecondary"
android:textSize="12sp" android:textSize="12sp"
tools:ignore="RtlHardcoded,RtlSymmetry" app:layout_constraintBottom_toBottomOf="@+id/progressSlider"
tools:text="@tools:sample/date/hhmm" /> app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/progressSlider"
tools:ignore="RtlHardcoded,RtlSymmetry"
tools:text="00:22" />
<androidx.appcompat.widget.AppCompatSeekBar
android:id="@+id/progressSlider"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toLeftOf="@id/songTotalTime"
android:layout_toRightOf="@id/songCurrentProgress"
android:splitTrack="false"
android:thumb="@drawable/switch_square"
tools:ignore="RtlHardcoded,UnusedAttribute"
tools:progress="20" />
</RelativeLayout>
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/songInfo" android:id="@+id/songInfo"
@ -76,7 +73,7 @@
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0" app:layout_constraintHorizontal_bias="0"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/progressContainer" app:layout_constraintTop_toBottomOf="@+id/progressSlider"
tools:text="@tools:sample/full_names" /> tools:text="@tools:sample/full_names" />
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView

View File

@ -71,51 +71,52 @@
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/songCurrentProgress" android:id="@+id/songCurrentProgress"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="match_parent" android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:layout_marginTop="8dp" android:gravity="center"
android:gravity="center_vertical|left|end" android:minWidth="40dp"
android:singleLine="true" android:singleLine="true"
android:textColor="@color/md_white_1000" android:textColor="?android:attr/textColorSecondary"
android:textSize="12sp"
app:layout_constraintBottom_toBottomOf="@+id/progressSlider"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/progressSlider" app:layout_constraintTop_toTopOf="@id/progressSlider"
tools:ignore="RtlHardcoded,RtlSymmetry" tools:ignore="RtlHardcoded,RtlSymmetry"
tools:text="00:00" /> tools:text="00:22" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/songTotalTime"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentRight="true"
android:layout_marginTop="8dp"
android:layout_marginEnd="16dp"
android:gravity="center_vertical|right|end"
android:singleLine="true"
android:textColor="@color/md_white_1000"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/progressSlider"
tools:ignore="RtlHardcoded,RtlSymmetry"
tools:text="00:00" />
<androidx.appcompat.widget.AppCompatSeekBar <androidx.appcompat.widget.AppCompatSeekBar
android:id="@+id/progressSlider" android:id="@+id/progressSlider"
style="@style/Widget.MaterialProgressBar.ProgressBar.Horizontal" style="@style/Widget.MaterialProgressBar.ProgressBar.Horizontal"
android:layout_width="match_parent" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
android:layout_toLeftOf="@id/songTotalTime" android:layout_weight="8"
android:layout_toRightOf="@id/songCurrentProgress"
android:maxHeight="3dp" android:maxHeight="3dp"
android:progressDrawable="@drawable/color_progress_seek" android:progressDrawable="@drawable/color_progress_seek"
android:splitTrack="false" android:splitTrack="false"
app:layout_constraintEnd_toEndOf="parent" android:thumb="@drawable/switch_thumb_material"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toStartOf="@id/songTotalTime"
app:layout_constraintTop_toBottomOf="@+id/text" app:layout_constraintStart_toEndOf="@id/songCurrentProgress"
app:layout_constraintTop_toBottomOf="@id/text"
tools:ignore="RtlHardcoded,UnusedAttribute" tools:ignore="RtlHardcoded,UnusedAttribute"
tools:progress="20" /> tools:progress="20" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/songTotalTime"
android:layout_width="40dp"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:gravity="center"
android:minWidth="40dp"
android:singleLine="true"
android:textColor="?android:attr/textColorSecondary"
android:textSize="12sp"
app:layout_constraintBottom_toBottomOf="@+id/progressSlider"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/progressSlider"
tools:ignore="RtlHardcoded,RtlSymmetry"
tools:text="00:22" />
<androidx.appcompat.widget.AppCompatImageButton <androidx.appcompat.widget.AppCompatImageButton
android:id="@+id/repeatButton" android:id="@+id/repeatButton"
@ -160,7 +161,7 @@
app:layout_constraintEnd_toStartOf="@+id/nextButton" app:layout_constraintEnd_toStartOf="@+id/nextButton"
app:layout_constraintHorizontal_bias="0.5" app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/previousButton" app:layout_constraintStart_toEndOf="@+id/previousButton"
app:layout_constraintTop_toBottomOf="@+id/songCurrentProgress" app:layout_constraintTop_toBottomOf="@+id/progressSlider"
app:srcCompat="@drawable/ic_pause_white_64dp" app:srcCompat="@drawable/ic_pause_white_64dp"
tools:tint="@color/md_black_1000" /> tools:tint="@color/md_black_1000" />

View File

@ -9,55 +9,53 @@
android:orientation="vertical" android:orientation="vertical"
tools:ignore="MissingPrefix"> tools:ignore="MissingPrefix">
<RelativeLayout <com.google.android.material.textview.MaterialTextView
android:id="@+id/progressContainer" android:id="@+id/songCurrentProgress"
android:layout_width="match_parent" android:layout_width="wrap_content"
android:layout_height="28dp" android:layout_height="wrap_content"
android:paddingStart="12dp" android:layout_marginStart="16dp"
android:paddingEnd="12dp" android:gravity="center"
app:layout_constraintBottom_toTopOf="@+id/titleContainer" android:minWidth="40dp"
app:layout_constraintTop_toTopOf="parent"> android:singleLine="true"
android:textColor="?android:attr/textColorSecondary"
android:textSize="12sp"
app:layout_constraintBottom_toBottomOf="@+id/progressSlider"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/progressSlider"
tools:ignore="RtlHardcoded,RtlSymmetry"
tools:text="00:22" />
<androidx.appcompat.widget.AppCompatSeekBar <androidx.appcompat.widget.AppCompatSeekBar
android:id="@+id/progressSlider" android:id="@+id/progressSlider"
style="@style/Widget.MaterialProgressBar.ProgressBar.Horizontal" style="@style/Widget.MaterialProgressBar.ProgressBar.Horizontal"
android:layout_width="match_parent" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_toLeftOf="@id/songTotalTime" android:layout_weight="8"
android:layout_toRightOf="@id/songCurrentProgress" android:maxHeight="3dp"
android:maxHeight="3dp" android:progressDrawable="@drawable/color_progress_seek"
android:progressDrawable="@drawable/color_progress_seek" android:splitTrack="false"
android:splitTrack="false" android:thumb="@drawable/switch_thumb_material"
android:thumb="@drawable/switch_thumb_material" app:layout_constraintEnd_toStartOf="@id/songTotalTime"
tools:ignore="RtlHardcoded,UnusedAttribute" app:layout_constraintStart_toEndOf="@id/songCurrentProgress"
tools:progress="20" /> app:layout_constraintTop_toTopOf="parent"
tools:ignore="RtlHardcoded,UnusedAttribute"
tools:progress="20" />
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/songTotalTime" android:id="@+id/songTotalTime"
android:layout_width="wrap_content" android:layout_width="40dp"
android:layout_height="match_parent" android:layout_height="wrap_content"
android:layout_alignParentRight="true" android:layout_marginEnd="16dp"
android:gravity="center_vertical|right|end" android:gravity="center"
android:paddingRight="8dp" android:minWidth="40dp"
android:singleLine="true" android:singleLine="true"
android:textColor="?android:attr/textColorSecondary" android:textColor="?android:attr/textColorSecondary"
android:textSize="12sp" android:textSize="12sp"
tools:ignore="RtlHardcoded,RtlSymmetry" app:layout_constraintBottom_toBottomOf="@+id/progressSlider"
tools:text="00:22" /> app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/progressSlider"
<com.google.android.material.textview.MaterialTextView tools:ignore="RtlHardcoded,RtlSymmetry"
android:id="@+id/songCurrentProgress" tools:text="00:22" />
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:gravity="center_vertical|left|end"
android:paddingLeft="8dp"
android:singleLine="true"
android:textColor="?android:attr/textColorSecondary"
android:textSize="12sp"
tools:ignore="RtlHardcoded,RtlSymmetry"
tools:text="00:22" />
</RelativeLayout>
<LinearLayout <LinearLayout
android:id="@+id/titleContainer" android:id="@+id/titleContainer"
@ -66,7 +64,7 @@
app:layout_constraintBottom_toTopOf="@+id/text" app:layout_constraintBottom_toTopOf="@+id/text"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/progressContainer"> app:layout_constraintTop_toBottomOf="@+id/progressSlider">
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/title" android:id="@+id/title"

View File

@ -9,57 +9,53 @@
android:orientation="vertical" android:orientation="vertical"
tools:ignore="MissingPrefix"> tools:ignore="MissingPrefix">
<RelativeLayout <com.google.android.material.textview.MaterialTextView
android:id="@+id/progressContainer" android:id="@+id/songCurrentProgress"
android:layout_width="match_parent" android:layout_width="wrap_content"
android:layout_height="@dimen/progress_slider_height" android:layout_height="wrap_content"
android:paddingStart="12dp" android:layout_marginStart="16dp"
android:paddingEnd="12dp" android:gravity="center"
app:layout_constraintEnd_toEndOf="parent" android:minWidth="40dp"
app:layout_constraintHorizontal_bias="0.5" android:singleLine="true"
android:textColor="?android:attr/textColorSecondary"
android:textSize="12sp"
app:layout_constraintBottom_toBottomOf="@+id/progressSlider"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"> app:layout_constraintTop_toTopOf="@id/progressSlider"
tools:ignore="RtlHardcoded,RtlSymmetry"
tools:text="00:22" />
<com.google.android.material.textview.MaterialTextView <androidx.appcompat.widget.AppCompatSeekBar
android:id="@+id/songCurrentProgress" android:id="@+id/progressSlider"
android:layout_width="wrap_content" style="@style/Widget.MaterialProgressBar.ProgressBar.Horizontal"
android:layout_height="match_parent" android:layout_width="0dp"
android:layout_alignParentLeft="true" android:layout_height="wrap_content"
android:gravity="center_vertical|left|end" android:layout_marginTop="8dp"
android:paddingLeft="8dp" android:layout_weight="8"
android:singleLine="true" android:maxHeight="3dp"
android:textColor="?android:attr/textColorSecondary" android:progressDrawable="@drawable/color_progress_seek"
android:textSize="12sp" android:splitTrack="false"
tools:ignore="RtlHardcoded,RtlSymmetry" app:layout_constraintEnd_toStartOf="@id/songTotalTime"
tools:text="00:22" /> app:layout_constraintStart_toEndOf="@id/songCurrentProgress"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="RtlHardcoded,UnusedAttribute"
tools:progress="20" />
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/songTotalTime" android:id="@+id/songTotalTime"
android:layout_width="wrap_content" android:layout_width="40dp"
android:layout_height="match_parent" android:layout_height="wrap_content"
android:layout_alignParentRight="true" android:layout_marginEnd="16dp"
android:gravity="center_vertical|right|end" android:gravity="center"
android:paddingRight="8dp" android:minWidth="40dp"
android:singleLine="true" android:singleLine="true"
android:textColor="?android:attr/textColorSecondary" android:textColor="?android:attr/textColorSecondary"
android:textSize="12sp" android:textSize="12sp"
tools:ignore="RtlHardcoded,RtlSymmetry" app:layout_constraintBottom_toBottomOf="@+id/progressSlider"
tools:text="00:22" /> app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/progressSlider"
<androidx.appcompat.widget.AppCompatSeekBar tools:ignore="RtlHardcoded,RtlSymmetry"
android:id="@+id/progressSlider" tools:text="00:22" />
style="@style/Widget.MaterialProgressBar.ProgressBar.Horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toLeftOf="@id/songTotalTime"
android:layout_toRightOf="@id/songCurrentProgress"
android:maxHeight="3dp"
android:progressDrawable="@drawable/color_progress_seek"
android:splitTrack="false"
tools:ignore="RtlHardcoded,UnusedAttribute"
tools:progress="20" />
</RelativeLayout>
<LinearLayout <LinearLayout
android:id="@+id/titleContainer" android:id="@+id/titleContainer"
@ -69,7 +65,7 @@
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5" app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/progressContainer"> app:layout_constraintTop_toBottomOf="@+id/progressSlider">
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/title" android:id="@+id/title"

View File

@ -19,57 +19,53 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical"> android:orientation="vertical">
<RelativeLayout <com.google.android.material.textview.MaterialTextView
android:id="@+id/progressContainer" android:id="@+id/songCurrentProgress"
android:layout_width="match_parent" android:layout_width="wrap_content"
android:layout_height="@dimen/progress_slider_height" android:layout_height="wrap_content"
android:layout_marginTop="16dp" android:layout_marginStart="16dp"
android:paddingStart="12dp" android:gravity="center"
android:paddingEnd="12dp" android:minWidth="40dp"
app:layout_constraintEnd_toEndOf="parent" android:singleLine="true"
android:textColor="?android:attr/textColorSecondary"
android:textSize="12sp"
app:layout_constraintBottom_toBottomOf="@+id/progressSlider"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"> app:layout_constraintTop_toTopOf="@id/progressSlider"
tools:ignore="RtlHardcoded,RtlSymmetry"
tools:text="00:22" />
<com.google.android.material.textview.MaterialTextView <androidx.appcompat.widget.AppCompatSeekBar
android:id="@+id/songCurrentProgress" android:id="@+id/progressSlider"
android:layout_width="wrap_content" style="@style/Widget.MaterialProgressBar.ProgressBar.Horizontal"
android:layout_height="match_parent" android:layout_width="0dp"
android:layout_alignParentLeft="true" android:layout_height="wrap_content"
android:gravity="center_vertical|left|end" android:layout_marginTop="16dp"
android:paddingLeft="8dp" android:layout_weight="8"
android:singleLine="true" android:maxHeight="3dp"
android:textColor="?android:attr/textColorSecondary" android:progressDrawable="@drawable/color_progress_seek"
android:textSize="12sp" android:splitTrack="false"
tools:ignore="RtlHardcoded,RtlSymmetry" app:layout_constraintEnd_toStartOf="@id/songTotalTime"
tools:text="00:22" /> app:layout_constraintStart_toEndOf="@id/songCurrentProgress"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="RtlHardcoded,UnusedAttribute"
tools:progress="20" />
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/songTotalTime" android:id="@+id/songTotalTime"
android:layout_width="wrap_content" android:layout_width="40dp"
android:layout_height="match_parent" android:layout_height="wrap_content"
android:layout_alignParentRight="true" android:layout_marginEnd="16dp"
android:gravity="center_vertical|right|end" android:gravity="center"
android:paddingRight="8dp" android:minWidth="40dp"
android:singleLine="true" android:singleLine="true"
android:textColor="?android:attr/textColorSecondary" android:textColor="?android:attr/textColorSecondary"
android:textSize="12sp" android:textSize="12sp"
tools:ignore="RtlHardcoded,RtlSymmetry" app:layout_constraintBottom_toBottomOf="@+id/progressSlider"
tools:text="00:22" /> app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/progressSlider"
<androidx.appcompat.widget.AppCompatSeekBar tools:ignore="RtlHardcoded,RtlSymmetry"
android:id="@+id/progressSlider" tools:text="00:22" />
style="@style/Widget.MaterialProgressBar.ProgressBar.Horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toLeftOf="@id/songTotalTime"
android:layout_toRightOf="@id/songCurrentProgress"
android:maxHeight="3dp"
android:progressDrawable="@drawable/color_progress_seek"
android:splitTrack="false"
tools:ignore="RtlHardcoded,UnusedAttribute"
tools:progress="20" />
</RelativeLayout>
<androidx.appcompat.widget.AppCompatImageButton <androidx.appcompat.widget.AppCompatImageButton
android:id="@+id/playPauseButton" android:id="@+id/playPauseButton"
@ -82,7 +78,7 @@
app:layout_constraintEnd_toStartOf="@+id/nextButton" app:layout_constraintEnd_toStartOf="@+id/nextButton"
app:layout_constraintHorizontal_bias="0.5" app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/previousButton" app:layout_constraintStart_toEndOf="@+id/previousButton"
app:layout_constraintTop_toBottomOf="@+id/progressContainer" app:layout_constraintTop_toBottomOf="@+id/progressSlider"
app:srcCompat="@drawable/ic_pause_white_24dp" app:srcCompat="@drawable/ic_pause_white_24dp"
tools:tint="@color/md_black_1000" /> tools:tint="@color/md_black_1000" />

View File

@ -7,57 +7,53 @@
android:gravity="center_vertical" android:gravity="center_vertical"
android:orientation="vertical"> android:orientation="vertical">
<RelativeLayout <com.google.android.material.textview.MaterialTextView
android:id="@+id/progressContainer" android:id="@+id/songCurrentProgress"
android:layout_width="match_parent" android:layout_width="wrap_content"
android:layout_height="28dp" android:layout_height="wrap_content"
android:paddingStart="12dp" android:layout_marginStart="16dp"
android:paddingEnd="12dp" android:gravity="center"
app:layout_constraintEnd_toEndOf="parent" android:minWidth="40dp"
app:layout_constraintHorizontal_bias="0.5" android:singleLine="true"
android:textColor="?android:attr/textColorSecondary"
android:textSize="12sp"
app:layout_constraintBottom_toBottomOf="@+id/progressSlider"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"> app:layout_constraintTop_toTopOf="@id/progressSlider"
tools:ignore="RtlHardcoded,RtlSymmetry"
tools:text="00:22" />
<com.google.android.material.textview.MaterialTextView <androidx.appcompat.widget.AppCompatSeekBar
android:id="@+id/songCurrentProgress" android:id="@+id/progressSlider"
android:layout_width="wrap_content" style="@style/Widget.MaterialProgressBar.ProgressBar.Horizontal"
android:layout_height="match_parent" android:layout_width="0dp"
android:layout_alignParentLeft="true" android:layout_height="wrap_content"
android:gravity="center_vertical|left|end" android:layout_weight="8"
android:paddingLeft="8dp" android:maxHeight="3dp"
android:singleLine="true" android:progressDrawable="@drawable/color_progress_seek"
android:textColor="?android:attr/textColorSecondary" android:splitTrack="false"
android:textSize="12sp" app:layout_constraintBottom_toTopOf="@+id/playPauseButton"
tools:ignore="RtlHardcoded,RtlSymmetry" app:layout_constraintEnd_toStartOf="@id/songTotalTime"
tools:text="00:22" /> app:layout_constraintStart_toEndOf="@id/songCurrentProgress"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="RtlHardcoded,UnusedAttribute"
tools:progress="20" />
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/songTotalTime" android:id="@+id/songTotalTime"
android:layout_width="wrap_content" android:layout_width="40dp"
android:layout_height="match_parent" android:layout_height="wrap_content"
android:layout_alignParentRight="true" android:layout_marginEnd="16dp"
android:gravity="center_vertical|right|end" android:gravity="center"
android:paddingRight="8dp" android:minWidth="40dp"
android:singleLine="true" android:singleLine="true"
android:textColor="?android:attr/textColorSecondary" android:textColor="?android:attr/textColorSecondary"
android:textSize="12sp" android:textSize="12sp"
tools:ignore="RtlHardcoded,RtlSymmetry" app:layout_constraintBottom_toBottomOf="@+id/progressSlider"
tools:text="00:22" /> app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/progressSlider"
<androidx.appcompat.widget.AppCompatSeekBar tools:ignore="RtlHardcoded,RtlSymmetry"
android:id="@+id/progressSlider" tools:text="00:22" />
style="@style/Widget.MaterialProgressBar.ProgressBar.Horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toLeftOf="@id/songTotalTime"
android:layout_toRightOf="@id/songCurrentProgress"
android:maxHeight="2dp"
android:progressDrawable="@drawable/color_progress_seek"
android:splitTrack="false"
tools:ignore="RtlHardcoded,UnusedAttribute"
tools:progress="20" />
</RelativeLayout>
<androidx.appcompat.widget.AppCompatImageButton <androidx.appcompat.widget.AppCompatImageButton
android:id="@+id/repeatButton" android:id="@+id/repeatButton"
@ -98,7 +94,7 @@
app:layout_constraintEnd_toStartOf="@+id/nextButton" app:layout_constraintEnd_toStartOf="@+id/nextButton"
app:layout_constraintHorizontal_bias="0.5" app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/previousButton" app:layout_constraintStart_toEndOf="@+id/previousButton"
app:layout_constraintTop_toBottomOf="@+id/progressContainer" app:layout_constraintTop_toBottomOf="@+id/progressSlider"
tools:backgroundTint="@color/md_green_500" tools:backgroundTint="@color/md_green_500"
tools:srcCompat="@drawable/ic_play_arrow_white_32dp" /> tools:srcCompat="@drawable/ic_play_arrow_white_32dp" />
@ -139,7 +135,8 @@
android:layout_weight="0" android:layout_weight="0"
android:paddingStart="8dp" android:paddingStart="8dp"
android:paddingEnd="8dp" android:paddingEnd="8dp"
app:layout_constraintBottom_toTopOf="@id/songInfo" app:layout_constraintBottom_toTopOf="@+id/songInfo"
app:layout_constraintTop_toBottomOf="@+id/playPauseButton"
tools:backgroundTint="@color/md_red_400" tools:backgroundTint="@color/md_red_400"
tools:layout_height="52dp" /> tools:layout_height="52dp" />
@ -156,8 +153,7 @@
android:textColor="?android:attr/textColorSecondary" android:textColor="?android:attr/textColorSecondary"
android:textSize="12sp" android:textSize="12sp"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toBottomOf="@+id/volumeFragmentContainer"
app:layout_constraintStart_toStartOf="parent"
tools:text="@tools:sample/lorem/random" /> tools:text="@tools:sample/lorem/random" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -9,55 +9,55 @@
android:orientation="vertical" android:orientation="vertical"
tools:ignore="MissingPrefix"> tools:ignore="MissingPrefix">
<RelativeLayout
android:id="@+id/progressContainer"
android:layout_width="match_parent"
android:layout_height="28dp"
android:paddingStart="12dp"
android:paddingEnd="12dp"
app:layout_constraintTop_toTopOf="parent">
<androidx.appcompat.widget.AppCompatSeekBar <com.google.android.material.textview.MaterialTextView
android:id="@+id/progressSlider" android:id="@+id/songCurrentProgress"
style="@style/Widget.MaterialProgressBar.ProgressBar.Horizontal" android:layout_width="wrap_content"
android:layout_width="match_parent" android:layout_height="wrap_content"
android:layout_height="wrap_content" android:layout_marginStart="16dp"
android:layout_toLeftOf="@id/songTotalTime" android:gravity="center"
android:layout_toRightOf="@id/songCurrentProgress" android:minWidth="40dp"
android:maxHeight="3dp" android:singleLine="true"
android:progressDrawable="@drawable/color_progress_seek" android:textColor="?android:attr/textColorSecondary"
android:splitTrack="false" android:textSize="12sp"
android:thumb="@drawable/switch_thumb_material" app:layout_constraintBottom_toBottomOf="@+id/progressSlider"
tools:ignore="RtlHardcoded,UnusedAttribute" app:layout_constraintStart_toStartOf="parent"
tools:progress="20" /> app:layout_constraintTop_toTopOf="@id/progressSlider"
tools:ignore="RtlHardcoded,RtlSymmetry"
tools:text="00:22" />
<com.google.android.material.textview.MaterialTextView <androidx.appcompat.widget.AppCompatSeekBar
android:id="@+id/songTotalTime" android:id="@+id/progressSlider"
android:layout_width="wrap_content" style="@style/Widget.MaterialProgressBar.ProgressBar.Horizontal"
android:layout_height="match_parent" android:layout_width="0dp"
android:layout_alignParentRight="true" android:layout_height="wrap_content"
android:layout_weight="8"
android:maxHeight="3dp"
android:progressDrawable="@drawable/color_progress_seek"
android:splitTrack="false"
android:thumb="@drawable/switch_thumb_material"
app:layout_constraintEnd_toStartOf="@id/songTotalTime"
app:layout_constraintStart_toEndOf="@id/songCurrentProgress"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="RtlHardcoded,UnusedAttribute"
tools:progress="20" />
android:gravity="center_vertical|right|end" <com.google.android.material.textview.MaterialTextView
android:paddingRight="8dp" android:id="@+id/songTotalTime"
android:singleLine="true" android:layout_width="40dp"
android:textColor="?android:attr/textColorSecondary" android:layout_height="wrap_content"
android:textSize="12sp" android:layout_marginEnd="16dp"
tools:ignore="RtlHardcoded,RtlSymmetry" android:gravity="center"
tools:text="00:22" /> android:minWidth="40dp"
android:singleLine="true"
android:textColor="?android:attr/textColorSecondary"
android:textSize="12sp"
app:layout_constraintBottom_toBottomOf="@+id/progressSlider"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="RtlHardcoded,RtlSymmetry"
tools:text="00:22" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/songCurrentProgress"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:gravity="center_vertical|left|end"
android:paddingLeft="8dp"
android:singleLine="true"
android:textColor="?android:attr/textColorSecondary"
android:textSize="12sp"
tools:ignore="RtlHardcoded,RtlSymmetry"
tools:text="00:22" />
</RelativeLayout>
<LinearLayout <LinearLayout
android:id="@+id/titleContainer" android:id="@+id/titleContainer"
@ -66,7 +66,7 @@
app:layout_constraintBottom_toTopOf="@+id/text" app:layout_constraintBottom_toTopOf="@+id/text"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/progressContainer"> app:layout_constraintTop_toBottomOf="@+id/progressSlider">
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/title" android:id="@+id/title"

View File

@ -0,0 +1,56 @@
<?xml version="1.0" encoding="utf-8"?><!--
~ Copyright (c) 2020 Hemanth Savarala.
~
~ Licensed under the GNU General Public License v3
~
~ This is free software: you can redistribute it and/or modify it under
~ the terms of the GNU General Public License as published by
~ the Free Software Foundation either version 3 of the License, or (at your option) any later version.
~
~ This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
~ without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
~ See the GNU General Public License for more details.
-->
<com.google.android.material.card.MaterialCardView 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:layout_width="128dp"
android:layout_height="128dp"
app:cardCornerRadius="16dp"
app:cardUseCompatPadding="true">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/paletteColorContainer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/artist_card_gradient_effect">
<code.name.monkey.retromusic.views.CircularImageView
android:id="@+id/image"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
app:civ_border_width="0dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:src="@tools:sample/avatars" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:layout_marginBottom="8dp"
android:ellipsize="end"
android:maxLines="2"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="@+id/image"
app:layout_constraintTop_toBottomOf="@+id/image"
tools:text="@tools:sample/full_names" />
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.card.MaterialCardView>

View File

@ -2,6 +2,7 @@
<com.google.android.material.card.MaterialCardView xmlns:android="http://schemas.android.com/apk/res/android" <com.google.android.material.card.MaterialCardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/imageContainerCard"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="?attr/rectSelector" android:background="?attr/rectSelector"

View File

@ -58,7 +58,7 @@
android:minHeight="40dp" android:minHeight="40dp"
android:textAppearance="@style/TextViewSubtitle2" android:textAppearance="@style/TextViewSubtitle2"
android:visibility="gone" android:visibility="gone"
tools:text="1" tools:text="100"
tools:visibility="visible" /> tools:visibility="visible" />
</com.google.android.material.card.MaterialCardView> </com.google.android.material.card.MaterialCardView>
</FrameLayout> </FrameLayout>

View File

@ -81,18 +81,21 @@
<item>@string/circular</item> <item>@string/circular</item>
<item>@string/card_color_style</item> <item>@string/card_color_style</item>
<item>@string/card_style</item> <item>@string/card_style</item>
<item>@string/tiny_card_style</item>
</string-array> </string-array>
<string-array name="pref_home_grid_style_list_values"> <string-array name="pref_home_grid_style_list_values">
<item>0</item> <item>0</item>
<item>1</item> <item>1</item>
<item>2</item> <item>2</item>
<item>3</item>
</string-array> </string-array>
<array name="pref_home_grid_style_layout"> <array name="pref_home_grid_style_layout">
<item>@layout/item_artist</item> <item>@layout/item_artist</item>
<item>@layout/item_artist_square</item> <item>@layout/item_artist_square</item>
<item>@layout/item_album_card</item> <item>@layout/item_album_card</item>
<item>@layout/item_artist_card</item>
</array> </array>
@ -176,4 +179,5 @@
<item>@layout/activity_album</item> <item>@layout/activity_album</item>
</array> </array>
<string name="tiny_card_style">Tiny card</string>
</resources> </resources>

View File

@ -29,6 +29,7 @@
<color name="blackColorSurface">#000000</color> <color name="blackColorSurface">#000000</color>
<color name="transparent">#00000000</color> <color name="transparent">#00000000</color>
<color name="semi_transparent">#40000000</color>
<!-- card colors --> <!-- card colors -->
<color name="card_background">#ffffff</color> <color name="card_background">#ffffff</color>
<color name="card_shadow_1">#d4d4d4</color> <color name="card_shadow_1">#d4d4d4</color>