Files
michas-droid/src/main/kotlin/com/michatec/store/graphics/DrawableWrapper.kt
T
Michatec 688d03ba8b - Migrate build system to Kotlin DSL (build.gradle.kts, settings.gradle.kts)
- Upgrade `compileSdk` and `targetSdk` to 36
- Add German (`de`) localization and string resources
- Add Michachatz F-Droid repository to default list
- Update dependencies and plugins in `libs.versions.toml`
- Remove manual signing configuration from README.md
- Refactor code to use non-deprecated `alpha` property and context-based string retrieval
- Clean up `buildConfig` and locale filtering logic
2026-04-09 13:34:45 +02:00

80 lines
2.2 KiB
Kotlin

package com.michatec.store.graphics
import android.content.res.ColorStateList
import android.graphics.Canvas
import android.graphics.ColorFilter
import android.graphics.PorterDuff
import android.graphics.Rect
import android.graphics.drawable.Drawable
import androidx.core.graphics.drawable.DrawableCompat
open class DrawableWrapper(val drawable: Drawable): Drawable() {
init {
drawable.callback = object: Callback {
override fun invalidateDrawable(who: Drawable) {
callback?.invalidateDrawable(who)
}
override fun scheduleDrawable(who: Drawable, what: Runnable, `when`: Long) {
callback?.scheduleDrawable(who, what, `when`)
}
override fun unscheduleDrawable(who: Drawable, what: Runnable) {
callback?.unscheduleDrawable(who, what)
}
}
}
override fun onBoundsChange(bounds: Rect) {
drawable.bounds = bounds
}
override fun getIntrinsicWidth(): Int = drawable.intrinsicWidth
override fun getIntrinsicHeight(): Int = drawable.intrinsicHeight
override fun getMinimumWidth(): Int = drawable.minimumWidth
override fun getMinimumHeight(): Int = drawable.minimumHeight
override fun draw(canvas: Canvas) {
drawable.draw(canvas)
}
override fun getAlpha(): Int {
return drawable.alpha
}
override fun setAlpha(alpha: Int) {
drawable.alpha = alpha
}
override fun getColorFilter(): ColorFilter? {
return DrawableCompat.getColorFilter(drawable)
}
override fun setColorFilter(colorFilter: ColorFilter?) {
drawable.colorFilter = colorFilter
}
override fun setTint(tintColor: Int) {
DrawableCompat.setTint(drawable, tintColor)
}
override fun setTintList(tint: ColorStateList?) {
DrawableCompat.setTintList(drawable, tint)
}
override fun setTintMode(tintMode: PorterDuff.Mode?) {
DrawableCompat.setTintMode(drawable, tintMode ?: PorterDuff.Mode.SRC_IN)
}
override fun setHotspot(x: Float, y: Float) {
DrawableCompat.setHotspot(drawable, x, y)
}
override fun setHotspotBounds(left: Int, top: Int, right: Int, bottom: Int) {
DrawableCompat.setHotspotBounds(drawable, left, top, right, bottom)
}
@Suppress("DEPRECATION", "OVERRIDE_DEPRECATION")
override fun getOpacity(): Int = drawable.opacity
}