Utilize more KTX extensions (#7348)
This commit is contained in:
@@ -2,6 +2,7 @@ package eu.kanade.tachiyomi.widget
|
||||
|
||||
import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
import androidx.core.content.withStyledAttributes
|
||||
import androidx.recyclerview.widget.GridLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import kotlin.math.max
|
||||
@@ -27,9 +28,9 @@ class AutofitRecyclerView @JvmOverloads constructor(context: Context, attrs: Att
|
||||
init {
|
||||
if (attrs != null) {
|
||||
val attrsArray = intArrayOf(android.R.attr.columnWidth)
|
||||
val array = context.obtainStyledAttributes(attrs, attrsArray)
|
||||
columnWidth = array.getDimensionPixelSize(0, -1)
|
||||
array.recycle()
|
||||
context.withStyledAttributes(attrs, attrsArray) {
|
||||
columnWidth = getDimensionPixelSize(0, -1)
|
||||
}
|
||||
}
|
||||
|
||||
layoutManager = manager
|
||||
|
||||
@@ -9,6 +9,7 @@ import androidx.annotation.AttrRes
|
||||
import androidx.annotation.CallSuper
|
||||
import androidx.appcompat.content.res.AppCompatResources
|
||||
import androidx.core.view.isVisible
|
||||
import androidx.core.view.updatePadding
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.util.system.getResourceColor
|
||||
@@ -230,7 +231,7 @@ open class ExtendedNavigationView @JvmOverloads constructor(
|
||||
is SeparatorHolder -> {
|
||||
val view = holder.itemView
|
||||
val item = items[position] as Item.Separator
|
||||
view.setPadding(0, item.paddingTop, 0, item.paddingBottom)
|
||||
view.updatePadding(top = item.paddingTop, bottom = item.paddingBottom)
|
||||
}
|
||||
is RadioHolder -> {
|
||||
val item = items[position] as Item.Radio
|
||||
|
||||
@@ -11,6 +11,7 @@ import androidx.annotation.ArrayRes
|
||||
import androidx.appcompat.content.res.AppCompatResources
|
||||
import androidx.appcompat.view.menu.MenuBuilder
|
||||
import androidx.appcompat.widget.PopupMenu
|
||||
import androidx.core.content.withStyledAttributes
|
||||
import androidx.core.view.forEach
|
||||
import androidx.core.view.get
|
||||
import com.fredporciuncula.flow.preferences.Preference
|
||||
@@ -51,16 +52,15 @@ class MaterialSpinnerView @JvmOverloads constructor(context: Context, attrs: Att
|
||||
init {
|
||||
addView(binding.root)
|
||||
|
||||
val attr = context.obtainStyledAttributes(attrs, R.styleable.MaterialSpinnerView)
|
||||
context.withStyledAttributes(set = attrs, attrs = R.styleable.MaterialSpinnerView) {
|
||||
val title = getString(R.styleable.MaterialSpinnerView_title).orEmpty()
|
||||
binding.title.text = title
|
||||
|
||||
val title = attr.getString(R.styleable.MaterialSpinnerView_title).orEmpty()
|
||||
binding.title.text = title
|
||||
|
||||
val entries = (attr.getTextArray(R.styleable.MaterialSpinnerView_android_entries) ?: emptyArray()).map { it.toString() }
|
||||
this.entries = entries
|
||||
binding.details.text = entries.firstOrNull().orEmpty()
|
||||
|
||||
attr.recycle()
|
||||
val viewEntries = (getTextArray(R.styleable.MaterialSpinnerView_android_entries)
|
||||
?: emptyArray()).map { it.toString() }
|
||||
entries = viewEntries
|
||||
binding.details.text = viewEntries.firstOrNull().orEmpty()
|
||||
}
|
||||
}
|
||||
|
||||
fun setSelection(selection: Int) {
|
||||
@@ -152,9 +152,7 @@ class MaterialSpinnerView @JvmOverloads constructor(context: Context, attrs: Att
|
||||
popup.menu.forEach {
|
||||
it.icon = emptyIcon
|
||||
}
|
||||
popup.menu.getItem(selectedPosition)?.let {
|
||||
it.icon = checkmarkIcon
|
||||
}
|
||||
popup.menu[selectedPosition].icon = checkmarkIcon
|
||||
popup.setOnMenuItemClickListener { menuItem ->
|
||||
val pos = menuClicked(menuItem)
|
||||
onItemClick(pos)
|
||||
|
||||
@@ -12,6 +12,8 @@ import android.util.AttributeSet
|
||||
import android.view.animation.LinearInterpolator
|
||||
import android.widget.TextView
|
||||
import androidx.annotation.FloatRange
|
||||
import androidx.core.graphics.drawable.updateBounds
|
||||
import androidx.core.graphics.withTranslation
|
||||
import androidx.lifecycle.coroutineScope
|
||||
import androidx.lifecycle.findViewTreeLifecycleOwner
|
||||
import com.google.android.material.shape.MaterialShapeDrawable
|
||||
@@ -84,15 +86,14 @@ class TachiyomiAppBarLayout @JvmOverloads constructor(
|
||||
|
||||
override fun draw(canvas: Canvas) {
|
||||
super.draw(canvas)
|
||||
val saveCount = canvas.save()
|
||||
canvas.translate(0f, -currentOffset.toFloat())
|
||||
statusBarForeground?.draw(canvas)
|
||||
canvas.restoreToCount(saveCount)
|
||||
canvas.withTranslation(y = -currentOffset.toFloat()) {
|
||||
statusBarForeground?.draw(this)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onLayout(changed: Boolean, l: Int, t: Int, r: Int, b: Int) {
|
||||
super.onLayout(changed, l, t, r, b)
|
||||
statusBarForeground?.setBounds(0, 0, width, paddingTop)
|
||||
statusBarForeground?.updateBounds(right = width, bottom = paddingTop)
|
||||
}
|
||||
|
||||
override fun onOffsetChanged(offset: Int) {
|
||||
|
||||
Reference in New Issue
Block a user