View Binding
This commit is contained in:
parent
5772fcd812
commit
903fb97eef
11 changed files with 90 additions and 117 deletions
|
@ -19,12 +19,9 @@ import android.os.Bundle
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.MenuItem
|
import android.view.MenuItem
|
||||||
import android.view.View
|
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.widget.TextView
|
import android.widget.TextView
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.annotation.LayoutRes
|
|
||||||
import androidx.appcompat.widget.AppCompatImageView
|
|
||||||
import androidx.core.view.isVisible
|
import androidx.core.view.isVisible
|
||||||
import androidx.recyclerview.widget.DefaultItemAnimator
|
import androidx.recyclerview.widget.DefaultItemAnimator
|
||||||
import androidx.recyclerview.widget.GridLayoutManager
|
import androidx.recyclerview.widget.GridLayoutManager
|
||||||
|
@ -37,6 +34,7 @@ import code.name.monkey.retromusic.BuildConfig
|
||||||
import code.name.monkey.retromusic.R
|
import code.name.monkey.retromusic.R
|
||||||
import code.name.monkey.retromusic.activities.base.AbsBaseActivity
|
import code.name.monkey.retromusic.activities.base.AbsBaseActivity
|
||||||
import code.name.monkey.retromusic.databinding.ActivityDonationBinding
|
import code.name.monkey.retromusic.databinding.ActivityDonationBinding
|
||||||
|
import code.name.monkey.retromusic.databinding.ItemDonationOptionBinding
|
||||||
import code.name.monkey.retromusic.extensions.*
|
import code.name.monkey.retromusic.extensions.*
|
||||||
import com.anjlab.android.iab.v3.BillingProcessor
|
import com.anjlab.android.iab.v3.BillingProcessor
|
||||||
import com.anjlab.android.iab.v3.PurchaseInfo
|
import com.anjlab.android.iab.v3.PurchaseInfo
|
||||||
|
@ -169,8 +167,8 @@ class SkuDetailsAdapter(
|
||||||
|
|
||||||
override fun onCreateViewHolder(viewGroup: ViewGroup, i: Int): ViewHolder {
|
override fun onCreateViewHolder(viewGroup: ViewGroup, i: Int): ViewHolder {
|
||||||
return ViewHolder(
|
return ViewHolder(
|
||||||
LayoutInflater.from(donationsDialog).inflate(
|
ItemDonationOptionBinding.inflate(
|
||||||
LAYOUT_RES_ID,
|
LayoutInflater.from(donationsDialog),
|
||||||
viewGroup,
|
viewGroup,
|
||||||
false
|
false
|
||||||
)
|
)
|
||||||
|
@ -179,12 +177,14 @@ class SkuDetailsAdapter(
|
||||||
|
|
||||||
override fun onBindViewHolder(viewHolder: ViewHolder, i: Int) {
|
override fun onBindViewHolder(viewHolder: ViewHolder, i: Int) {
|
||||||
val skuDetails = skuDetailsList[i]
|
val skuDetails = skuDetailsList[i]
|
||||||
viewHolder.title.text = skuDetails.title.replace("Music Player - MP3 Player - Retro", "")
|
with(viewHolder.binding) {
|
||||||
|
itemTitle.text = skuDetails.title.replace("Music Player - MP3 Player - Retro", "")
|
||||||
.trim { it <= ' ' }
|
.trim { it <= ' ' }
|
||||||
viewHolder.text.text = skuDetails.description
|
itemText.text = skuDetails.description
|
||||||
viewHolder.text.isVisible = false
|
itemText.isVisible = false
|
||||||
viewHolder.price.text = skuDetails.priceText
|
itemPrice.text = skuDetails.priceText
|
||||||
viewHolder.image.setImageResource(getIcon(i))
|
itemImage.setImageResource(getIcon(i))
|
||||||
|
}
|
||||||
|
|
||||||
val purchased = donationsDialog.billingProcessor!!.isPurchased(skuDetails.productId)
|
val purchased = donationsDialog.billingProcessor!!.isPurchased(skuDetails.productId)
|
||||||
val titleTextColor = if (purchased) ATHUtil.resolveColor(
|
val titleTextColor = if (purchased) ATHUtil.resolveColor(
|
||||||
|
@ -194,13 +194,14 @@ class SkuDetailsAdapter(
|
||||||
val contentTextColor =
|
val contentTextColor =
|
||||||
if (purchased) titleTextColor else donationsDialog.textColorSecondary()
|
if (purchased) titleTextColor else donationsDialog.textColorSecondary()
|
||||||
|
|
||||||
viewHolder.title.setTextColor(titleTextColor)
|
with(viewHolder.binding) {
|
||||||
viewHolder.text.setTextColor(contentTextColor)
|
itemTitle.setTextColor(titleTextColor)
|
||||||
viewHolder.price.setTextColor(titleTextColor)
|
itemText.setTextColor(contentTextColor)
|
||||||
|
itemPrice.setTextColor(titleTextColor)
|
||||||
strikeThrough(viewHolder.title, purchased)
|
strikeThrough(itemTitle, purchased)
|
||||||
strikeThrough(viewHolder.text, purchased)
|
strikeThrough(itemText, purchased)
|
||||||
strikeThrough(viewHolder.price, purchased)
|
strikeThrough(itemPrice, purchased)
|
||||||
|
}
|
||||||
|
|
||||||
viewHolder.itemView.setOnTouchListener { _, _ -> purchased }
|
viewHolder.itemView.setOnTouchListener { _, _ -> purchased }
|
||||||
viewHolder.itemView.setOnClickListener { donationsDialog.donate(i) }
|
viewHolder.itemView.setOnClickListener { donationsDialog.donate(i) }
|
||||||
|
@ -210,17 +211,9 @@ class SkuDetailsAdapter(
|
||||||
return skuDetailsList.size
|
return skuDetailsList.size
|
||||||
}
|
}
|
||||||
|
|
||||||
class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
|
class ViewHolder(val binding: ItemDonationOptionBinding) : RecyclerView.ViewHolder(binding.root)
|
||||||
var title: TextView = view.findViewById(R.id.itemTitle)
|
|
||||||
var text: TextView = view.findViewById(R.id.itemText)
|
|
||||||
var price: TextView = view.findViewById(R.id.itemPrice)
|
|
||||||
var image: AppCompatImageView = view.findViewById(R.id.itemImage)
|
|
||||||
}
|
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
@LayoutRes
|
|
||||||
private val LAYOUT_RES_ID = R.layout.item_donation_option
|
|
||||||
|
|
||||||
private fun strikeThrough(textView: TextView, strikeThrough: Boolean) {
|
private fun strikeThrough(textView: TextView, strikeThrough: Boolean) {
|
||||||
textView.paintFlags =
|
textView.paintFlags =
|
||||||
if (strikeThrough) textView.paintFlags or Paint.STRIKE_THRU_TEXT_FLAG
|
if (strikeThrough) textView.paintFlags or Paint.STRIKE_THRU_TEXT_FLAG
|
||||||
|
|
|
@ -14,7 +14,6 @@
|
||||||
*/
|
*/
|
||||||
package code.name.monkey.retromusic.dialogs
|
package code.name.monkey.retromusic.dialogs
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
|
||||||
import android.app.AlarmManager
|
import android.app.AlarmManager
|
||||||
import android.app.Dialog
|
import android.app.Dialog
|
||||||
import android.app.PendingIntent
|
import android.app.PendingIntent
|
||||||
|
@ -23,7 +22,6 @@ import android.content.Intent
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.os.CountDownTimer
|
import android.os.CountDownTimer
|
||||||
import android.os.SystemClock
|
import android.os.SystemClock
|
||||||
import android.view.LayoutInflater
|
|
||||||
import android.widget.CheckBox
|
import android.widget.CheckBox
|
||||||
import android.widget.SeekBar
|
import android.widget.SeekBar
|
||||||
import android.widget.TextView
|
import android.widget.TextView
|
||||||
|
@ -31,6 +29,7 @@ import android.widget.Toast
|
||||||
import androidx.fragment.app.DialogFragment
|
import androidx.fragment.app.DialogFragment
|
||||||
import code.name.monkey.appthemehelper.util.VersionUtils
|
import code.name.monkey.appthemehelper.util.VersionUtils
|
||||||
import code.name.monkey.retromusic.R
|
import code.name.monkey.retromusic.R
|
||||||
|
import code.name.monkey.retromusic.databinding.DialogSleepTimerBinding
|
||||||
import code.name.monkey.retromusic.extensions.addAccentColor
|
import code.name.monkey.retromusic.extensions.addAccentColor
|
||||||
import code.name.monkey.retromusic.extensions.colorButtons
|
import code.name.monkey.retromusic.extensions.colorButtons
|
||||||
import code.name.monkey.retromusic.extensions.materialDialog
|
import code.name.monkey.retromusic.extensions.materialDialog
|
||||||
|
@ -49,31 +48,27 @@ class SleepTimerDialog : DialogFragment() {
|
||||||
private lateinit var timerUpdater: TimerUpdater
|
private lateinit var timerUpdater: TimerUpdater
|
||||||
private lateinit var dialog: MaterialDialog
|
private lateinit var dialog: MaterialDialog
|
||||||
private lateinit var shouldFinishLastSong: CheckBox
|
private lateinit var shouldFinishLastSong: CheckBox
|
||||||
private lateinit var seekBar: SeekBar
|
|
||||||
private lateinit var timerDisplay: TextView
|
private lateinit var timerDisplay: TextView
|
||||||
|
|
||||||
@SuppressLint("InflateParams")
|
|
||||||
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
||||||
timerUpdater = TimerUpdater()
|
timerUpdater = TimerUpdater()
|
||||||
val layout =
|
val binding = DialogSleepTimerBinding.inflate(layoutInflater)
|
||||||
LayoutInflater.from(requireContext()).inflate(R.layout.dialog_sleep_timer, null)
|
shouldFinishLastSong = binding.shouldFinishLastSong
|
||||||
shouldFinishLastSong = layout.findViewById(R.id.shouldFinishLastSong)
|
timerDisplay = binding.timerDisplay
|
||||||
seekBar = layout.findViewById(R.id.seekBar)
|
|
||||||
timerDisplay = layout.findViewById(R.id.timerDisplay)
|
|
||||||
|
|
||||||
val finishMusic = PreferenceUtil.isSleepTimerFinishMusic
|
val finishMusic = PreferenceUtil.isSleepTimerFinishMusic
|
||||||
shouldFinishLastSong.apply {
|
shouldFinishLastSong.apply {
|
||||||
addAccentColor()
|
addAccentColor()
|
||||||
isChecked = finishMusic
|
isChecked = finishMusic
|
||||||
}
|
}
|
||||||
seekBar.apply {
|
binding.seekBar.apply {
|
||||||
addAccentColor()
|
addAccentColor()
|
||||||
seekArcProgress = PreferenceUtil.lastSleepTimerValue
|
seekArcProgress = PreferenceUtil.lastSleepTimerValue
|
||||||
updateTimeDisplayTime()
|
updateTimeDisplayTime()
|
||||||
seekBar.progress = seekArcProgress
|
progress = seekArcProgress
|
||||||
}
|
}
|
||||||
|
|
||||||
seekBar.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
|
binding.seekBar.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
|
||||||
override fun onProgressChanged(seekBar: SeekBar, i: Int, b: Boolean) {
|
override fun onProgressChanged(seekBar: SeekBar, i: Int, b: Boolean) {
|
||||||
if (i < 1) {
|
if (i < 1) {
|
||||||
seekBar.progress = 1
|
seekBar.progress = 1
|
||||||
|
@ -91,7 +86,7 @@ class SleepTimerDialog : DialogFragment() {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
return materialDialog(R.string.action_sleep_timer)
|
return materialDialog(R.string.action_sleep_timer)
|
||||||
.setView(layout)
|
.setView(binding.root)
|
||||||
.setPositiveButton(R.string.action_set) { _, _ ->
|
.setPositiveButton(R.string.action_set) { _, _ ->
|
||||||
PreferenceUtil.isSleepTimerFinishMusic = shouldFinishLastSong.isChecked
|
PreferenceUtil.isSleepTimerFinishMusic = shouldFinishLastSong.isChecked
|
||||||
val minutes = seekArcProgress
|
val minutes = seekArcProgress
|
||||||
|
@ -170,7 +165,6 @@ class SleepTimerDialog : DialogFragment() {
|
||||||
) {
|
) {
|
||||||
|
|
||||||
override fun onTick(millisUntilFinished: Long) {
|
override fun onTick(millisUntilFinished: Long) {
|
||||||
seekBar.progress = millisUntilFinished.toInt()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onFinish() {
|
override fun onFinish() {
|
||||||
|
|
|
@ -113,6 +113,14 @@ fun SeekBar.addAccentColor() {
|
||||||
thumbTintList = colorState
|
thumbTintList = colorState
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun Slider.addAccentColor() {
|
||||||
|
if (materialYou) return
|
||||||
|
val accentColor = ThemeStore.accentColor(context)
|
||||||
|
trackActiveTintList = accentColor.colorStateList
|
||||||
|
trackInactiveTintList = ColorUtil.withAlpha(accentColor, 0.5F).colorStateList
|
||||||
|
thumbTintList = accentColor.colorStateList
|
||||||
|
}
|
||||||
|
|
||||||
fun Slider.accent() {
|
fun Slider.accent() {
|
||||||
if (materialYou) return
|
if (materialYou) return
|
||||||
val accentColor = context.accentColor()
|
val accentColor = context.accentColor()
|
||||||
|
|
|
@ -17,6 +17,7 @@ package code.name.monkey.retromusic.extensions
|
||||||
import androidx.appcompat.app.AlertDialog
|
import androidx.appcompat.app.AlertDialog
|
||||||
import androidx.fragment.app.DialogFragment
|
import androidx.fragment.app.DialogFragment
|
||||||
import code.name.monkey.retromusic.R
|
import code.name.monkey.retromusic.R
|
||||||
|
import com.afollestad.materialdialogs.MaterialDialog
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
|
|
||||||
fun DialogFragment.materialDialog(title: Int): MaterialAlertDialogBuilder {
|
fun DialogFragment.materialDialog(title: Int): MaterialAlertDialogBuilder {
|
||||||
|
|
|
@ -168,7 +168,7 @@ abstract class AbsPlayerFragment(@LayoutRes layout: Int) : AbsMainActivityFragme
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
R.id.action_sleep_timer -> {
|
R.id.action_sleep_timer -> {
|
||||||
SleepTimerDialog().show(parentFragmentManager, TAG)
|
SleepTimerDialog().show(parentFragmentManager, "SLEEP_TIMER")
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
R.id.action_set_as_ringtone -> {
|
R.id.action_set_as_ringtone -> {
|
||||||
|
|
|
@ -14,7 +14,6 @@
|
||||||
|
|
||||||
package code.name.monkey.retromusic.preferences
|
package code.name.monkey.retromusic.preferences
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
|
||||||
import android.app.Dialog
|
import android.app.Dialog
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
|
@ -22,8 +21,6 @@ import android.util.AttributeSet
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.widget.ImageView
|
|
||||||
import android.widget.TextView
|
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.core.graphics.BlendModeColorFilterCompat
|
import androidx.core.graphics.BlendModeColorFilterCompat
|
||||||
import androidx.core.graphics.BlendModeCompat.SRC_IN
|
import androidx.core.graphics.BlendModeCompat.SRC_IN
|
||||||
|
@ -33,6 +30,8 @@ import androidx.viewpager.widget.ViewPager
|
||||||
import code.name.monkey.appthemehelper.common.prefs.supportv7.ATEDialogPreference
|
import code.name.monkey.appthemehelper.common.prefs.supportv7.ATEDialogPreference
|
||||||
import code.name.monkey.retromusic.App
|
import code.name.monkey.retromusic.App
|
||||||
import code.name.monkey.retromusic.R
|
import code.name.monkey.retromusic.R
|
||||||
|
import code.name.monkey.retromusic.databinding.PreferenceDialogNowPlayingScreenBinding
|
||||||
|
import code.name.monkey.retromusic.databinding.PreferenceNowPlayingScreenItemBinding
|
||||||
import code.name.monkey.retromusic.extensions.*
|
import code.name.monkey.retromusic.extensions.*
|
||||||
import code.name.monkey.retromusic.fragments.AlbumCoverStyle
|
import code.name.monkey.retromusic.fragments.AlbumCoverStyle
|
||||||
import code.name.monkey.retromusic.fragments.AlbumCoverStyle.*
|
import code.name.monkey.retromusic.fragments.AlbumCoverStyle.*
|
||||||
|
@ -69,14 +68,13 @@ class AlbumCoverStylePreferenceDialog : DialogFragment(),
|
||||||
private var viewPagerPosition: Int = 0
|
private var viewPagerPosition: Int = 0
|
||||||
|
|
||||||
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
||||||
@SuppressLint("InflateParams") val view =
|
val binding = PreferenceDialogNowPlayingScreenBinding.inflate(layoutInflater)
|
||||||
layoutInflater
|
binding.nowPlayingScreenViewPager.apply {
|
||||||
.inflate(R.layout.preference_dialog_now_playing_screen, null)
|
adapter = AlbumCoverStyleAdapter(requireContext())
|
||||||
val viewPager = view.findViewById<ViewPager>(R.id.now_playing_screen_view_pager)
|
addOnPageChangeListener(this@AlbumCoverStylePreferenceDialog)
|
||||||
viewPager.adapter = AlbumCoverStyleAdapter(requireContext())
|
pageMargin = ViewUtil.convertDpToPixel(32f, resources).toInt()
|
||||||
viewPager.addOnPageChangeListener(this)
|
currentItem = PreferenceUtil.albumCoverStyle.ordinal
|
||||||
viewPager.pageMargin = ViewUtil.convertDpToPixel(32f, resources).toInt()
|
}
|
||||||
viewPager.currentItem = PreferenceUtil.albumCoverStyle.ordinal
|
|
||||||
|
|
||||||
return materialDialog(R.string.pref_title_album_cover_style)
|
return materialDialog(R.string.pref_title_album_cover_style)
|
||||||
.setPositiveButton(R.string.set) { _, _ ->
|
.setPositiveButton(R.string.set) { _, _ ->
|
||||||
|
@ -89,7 +87,7 @@ class AlbumCoverStylePreferenceDialog : DialogFragment(),
|
||||||
PreferenceUtil.albumCoverStyle = coverStyle
|
PreferenceUtil.albumCoverStyle = coverStyle
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.setView(view)
|
.setView(binding.root)
|
||||||
.create()
|
.create()
|
||||||
.colorButtons()
|
.colorButtons()
|
||||||
}
|
}
|
||||||
|
@ -111,25 +109,18 @@ class AlbumCoverStylePreferenceDialog : DialogFragment(),
|
||||||
val albumCoverStyle = values()[position]
|
val albumCoverStyle = values()[position]
|
||||||
|
|
||||||
val inflater = LayoutInflater.from(context)
|
val inflater = LayoutInflater.from(context)
|
||||||
val layout = inflater.inflate(
|
val binding = PreferenceNowPlayingScreenItemBinding.inflate(inflater, collection, false)
|
||||||
R.layout.preference_now_playing_screen_item,
|
collection.addView(binding.root)
|
||||||
collection,
|
|
||||||
false
|
|
||||||
) as ViewGroup
|
|
||||||
collection.addView(layout)
|
|
||||||
|
|
||||||
val image = layout.findViewById<ImageView>(R.id.image)
|
Glide.with(context).load(albumCoverStyle.drawableResId).into(binding.image)
|
||||||
val title = layout.findViewById<TextView>(R.id.title)
|
binding.title.setText(albumCoverStyle.titleRes)
|
||||||
val proText = layout.findViewById<TextView>(R.id.proText)
|
|
||||||
Glide.with(context).load(albumCoverStyle.drawableResId).into(image)
|
|
||||||
title.setText(albumCoverStyle.titleRes)
|
|
||||||
if (isAlbumCoverStyle(albumCoverStyle)) {
|
if (isAlbumCoverStyle(albumCoverStyle)) {
|
||||||
proText.show()
|
binding.proText.show()
|
||||||
proText.setText(R.string.pro)
|
binding.proText.setText(R.string.pro)
|
||||||
} else {
|
} else {
|
||||||
proText.hide()
|
binding.proText.hide()
|
||||||
}
|
}
|
||||||
return layout
|
return binding.root
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun destroyItem(
|
override fun destroyItem(
|
||||||
|
|
|
@ -2,16 +2,16 @@ package code.name.monkey.retromusic.preferences
|
||||||
|
|
||||||
import android.app.Dialog
|
import android.app.Dialog
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.res.ColorStateList
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.util.AttributeSet
|
import android.util.AttributeSet
|
||||||
import android.widget.TextView
|
import android.widget.TextView
|
||||||
import androidx.core.graphics.BlendModeColorFilterCompat
|
import androidx.core.graphics.BlendModeColorFilterCompat
|
||||||
import androidx.core.graphics.BlendModeCompat.SRC_IN
|
import androidx.core.graphics.BlendModeCompat.SRC_IN
|
||||||
import androidx.fragment.app.DialogFragment
|
import androidx.fragment.app.DialogFragment
|
||||||
import code.name.monkey.appthemehelper.ThemeStore
|
|
||||||
import code.name.monkey.appthemehelper.common.prefs.supportv7.ATEDialogPreference
|
import code.name.monkey.appthemehelper.common.prefs.supportv7.ATEDialogPreference
|
||||||
import code.name.monkey.retromusic.R
|
import code.name.monkey.retromusic.R
|
||||||
|
import code.name.monkey.retromusic.databinding.PreferenceDialogAudioFadeBinding
|
||||||
|
import code.name.monkey.retromusic.extensions.addAccentColor
|
||||||
import code.name.monkey.retromusic.extensions.colorButtons
|
import code.name.monkey.retromusic.extensions.colorButtons
|
||||||
import code.name.monkey.retromusic.extensions.colorControlNormal
|
import code.name.monkey.retromusic.extensions.colorControlNormal
|
||||||
import code.name.monkey.retromusic.extensions.materialDialog
|
import code.name.monkey.retromusic.extensions.materialDialog
|
||||||
|
@ -36,28 +36,23 @@ class DurationPreference @JvmOverloads constructor(
|
||||||
class DurationPreferenceDialog : DialogFragment() {
|
class DurationPreferenceDialog : DialogFragment() {
|
||||||
|
|
||||||
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
||||||
val view = layoutInflater
|
val binding = PreferenceDialogAudioFadeBinding.inflate(layoutInflater)
|
||||||
.inflate(R.layout.preference_dialog_audio_fade, null)
|
|
||||||
|
|
||||||
|
binding.slider.apply {
|
||||||
val slider = view.findViewById<Slider>(R.id.slider)
|
addAccentColor()
|
||||||
val duration = view.findViewById<TextView>(R.id.duration)
|
value = PreferenceUtil.audioFadeDuration.toFloat()
|
||||||
ColorStateList.valueOf(ThemeStore.accentColor(requireContext())).let {
|
updateText(value.toInt(), binding.duration)
|
||||||
slider.trackTintList = it
|
addOnChangeListener(Slider.OnChangeListener { _, value, fromUser ->
|
||||||
slider.thumbTintList = it
|
|
||||||
}
|
|
||||||
slider.value = PreferenceUtil.audioFadeDuration.toFloat()
|
|
||||||
updateText(slider.value.toInt(), duration)
|
|
||||||
slider.addOnChangeListener(Slider.OnChangeListener { _, value, fromUser ->
|
|
||||||
if (fromUser) {
|
if (fromUser) {
|
||||||
updateText(value.toInt(), duration)
|
updateText(value.toInt(), binding.duration)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return materialDialog(R.string.audio_fade_duration)
|
return materialDialog(R.string.audio_fade_duration)
|
||||||
.setNegativeButton(android.R.string.cancel, null)
|
.setNegativeButton(android.R.string.cancel, null)
|
||||||
.setPositiveButton(R.string.save) { _, _ -> updateDuration(slider.value.toInt()) }
|
.setPositiveButton(R.string.save) { _, _ -> updateDuration(binding.slider.value.toInt()) }
|
||||||
.setView(view)
|
.setView(view)
|
||||||
.create()
|
.create()
|
||||||
.colorButtons()
|
.colorButtons()
|
||||||
|
|
|
@ -23,10 +23,10 @@ import androidx.core.graphics.BlendModeColorFilterCompat
|
||||||
import androidx.core.graphics.BlendModeCompat.SRC_IN
|
import androidx.core.graphics.BlendModeCompat.SRC_IN
|
||||||
import androidx.fragment.app.DialogFragment
|
import androidx.fragment.app.DialogFragment
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
|
||||||
import code.name.monkey.appthemehelper.common.prefs.supportv7.ATEDialogPreference
|
import code.name.monkey.appthemehelper.common.prefs.supportv7.ATEDialogPreference
|
||||||
import code.name.monkey.retromusic.R
|
import code.name.monkey.retromusic.R
|
||||||
import code.name.monkey.retromusic.adapter.CategoryInfoAdapter
|
import code.name.monkey.retromusic.adapter.CategoryInfoAdapter
|
||||||
|
import code.name.monkey.retromusic.databinding.PreferenceDialogLibraryCategoriesBinding
|
||||||
import code.name.monkey.retromusic.extensions.colorButtons
|
import code.name.monkey.retromusic.extensions.colorButtons
|
||||||
import code.name.monkey.retromusic.extensions.colorControlNormal
|
import code.name.monkey.retromusic.extensions.colorControlNormal
|
||||||
import code.name.monkey.retromusic.extensions.materialDialog
|
import code.name.monkey.retromusic.extensions.materialDialog
|
||||||
|
@ -51,15 +51,14 @@ class LibraryPreference @JvmOverloads constructor(
|
||||||
class LibraryPreferenceDialog : DialogFragment() {
|
class LibraryPreferenceDialog : DialogFragment() {
|
||||||
|
|
||||||
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
||||||
val view = layoutInflater
|
val binding = PreferenceDialogLibraryCategoriesBinding.inflate(layoutInflater)
|
||||||
.inflate(R.layout.preference_dialog_library_categories, null)
|
|
||||||
|
|
||||||
val categoryAdapter = CategoryInfoAdapter()
|
val categoryAdapter = CategoryInfoAdapter()
|
||||||
val recyclerView = view.findViewById<RecyclerView>(R.id.recycler_view)
|
binding.recyclerView.apply {
|
||||||
recyclerView.layoutManager = LinearLayoutManager(activity)
|
layoutManager = LinearLayoutManager(activity)
|
||||||
recyclerView.adapter = categoryAdapter
|
adapter = categoryAdapter
|
||||||
categoryAdapter.attachToRecyclerView(recyclerView)
|
categoryAdapter.attachToRecyclerView(this)
|
||||||
|
}
|
||||||
|
|
||||||
return materialDialog(R.string.library_categories)
|
return materialDialog(R.string.library_categories)
|
||||||
.setNeutralButton(
|
.setNeutralButton(
|
||||||
|
@ -68,8 +67,8 @@ class LibraryPreferenceDialog : DialogFragment() {
|
||||||
updateCategories(PreferenceUtil.defaultCategories)
|
updateCategories(PreferenceUtil.defaultCategories)
|
||||||
}
|
}
|
||||||
.setNegativeButton(android.R.string.cancel, null)
|
.setNegativeButton(android.R.string.cancel, null)
|
||||||
.setPositiveButton( R.string.done) { _, _ -> updateCategories(categoryAdapter.categoryInfos) }
|
.setPositiveButton(R.string.done) { _, _ -> updateCategories(categoryAdapter.categoryInfos) }
|
||||||
.setView(view)
|
.setView(binding.root)
|
||||||
.create()
|
.create()
|
||||||
.colorButtons()
|
.colorButtons()
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,8 +21,6 @@ import android.util.AttributeSet
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.widget.ImageView
|
|
||||||
import android.widget.TextView
|
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.core.graphics.BlendModeColorFilterCompat
|
import androidx.core.graphics.BlendModeColorFilterCompat
|
||||||
import androidx.core.graphics.BlendModeCompat.SRC_IN
|
import androidx.core.graphics.BlendModeCompat.SRC_IN
|
||||||
|
@ -32,6 +30,7 @@ import androidx.viewpager.widget.ViewPager
|
||||||
import code.name.monkey.appthemehelper.common.prefs.supportv7.ATEDialogPreference
|
import code.name.monkey.appthemehelper.common.prefs.supportv7.ATEDialogPreference
|
||||||
import code.name.monkey.retromusic.App
|
import code.name.monkey.retromusic.App
|
||||||
import code.name.monkey.retromusic.R
|
import code.name.monkey.retromusic.R
|
||||||
|
import code.name.monkey.retromusic.databinding.PreferenceNowPlayingScreenItemBinding
|
||||||
import code.name.monkey.retromusic.extensions.*
|
import code.name.monkey.retromusic.extensions.*
|
||||||
import code.name.monkey.retromusic.fragments.NowPlayingScreen
|
import code.name.monkey.retromusic.fragments.NowPlayingScreen
|
||||||
import code.name.monkey.retromusic.fragments.NowPlayingScreen.*
|
import code.name.monkey.retromusic.fragments.NowPlayingScreen.*
|
||||||
|
@ -116,25 +115,17 @@ private class NowPlayingScreenAdapter(private val context: Context) : PagerAdapt
|
||||||
val nowPlayingScreen = values()[position]
|
val nowPlayingScreen = values()[position]
|
||||||
|
|
||||||
val inflater = LayoutInflater.from(context)
|
val inflater = LayoutInflater.from(context)
|
||||||
val layout = inflater.inflate(
|
val binding = PreferenceNowPlayingScreenItemBinding.inflate(inflater, collection, false )
|
||||||
R.layout.preference_now_playing_screen_item,
|
collection.addView(binding.root)
|
||||||
collection,
|
Glide.with(context).load(nowPlayingScreen.drawableResId).into(binding.image)
|
||||||
false
|
binding.title.setText(nowPlayingScreen.titleRes)
|
||||||
) as ViewGroup
|
|
||||||
collection.addView(layout)
|
|
||||||
|
|
||||||
val image = layout.findViewById<ImageView>(R.id.image)
|
|
||||||
val title = layout.findViewById<TextView>(R.id.title)
|
|
||||||
val proText = layout.findViewById<TextView>(R.id.proText)
|
|
||||||
Glide.with(context).load(nowPlayingScreen.drawableResId).into(image)
|
|
||||||
title.setText(nowPlayingScreen.titleRes)
|
|
||||||
if (isNowPlayingThemes(nowPlayingScreen)) {
|
if (isNowPlayingThemes(nowPlayingScreen)) {
|
||||||
proText.show()
|
binding.proText.show()
|
||||||
proText.setText(R.string.pro)
|
binding.proText.setText(R.string.pro)
|
||||||
}else{
|
}else{
|
||||||
proText.hide()
|
binding.proText.hide()
|
||||||
}
|
}
|
||||||
return layout
|
return binding.root
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun destroyItem(
|
override fun destroyItem(
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
android:id="@+id/timerDisplay"
|
android:id="@+id/timerDisplay"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center"
|
||||||
android:layout_marginStart="8dp"
|
android:layout_marginStart="8dp"
|
||||||
android:paddingHorizontal="16dp"
|
android:paddingHorizontal="16dp"
|
||||||
android:paddingVertical="16dp"
|
android:paddingVertical="16dp"
|
||||||
|
|
|
@ -24,14 +24,14 @@
|
||||||
android:id="@+id/image"
|
android:id="@+id/image"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="0dp"
|
android:layout_height="0dp"
|
||||||
app:layout_constraintBottom_toTopOf="@id/proText"
|
app:layout_constraintBottom_toTopOf="@id/pro_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/title"
|
app:layout_constraintTop_toBottomOf="@+id/title"
|
||||||
tools:src="@tools:sample/backgrounds/scenic" />
|
tools:src="@tools:sample/backgrounds/scenic" />
|
||||||
|
|
||||||
<com.google.android.material.textview.MaterialTextView
|
<com.google.android.material.textview.MaterialTextView
|
||||||
android:id="@+id/proText"
|
android:id="@+id/pro_text"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center"
|
android:layout_gravity="center"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue