Skip to content

Commit

Permalink
Clear paint shader (#5299)
Browse files Browse the repository at this point in the history
  • Loading branch information
SeniorZhai authored Jan 25, 2025
1 parent 4f80106 commit ed96951
Showing 1 changed file with 8 additions and 33 deletions.
41 changes: 8 additions & 33 deletions app/src/main/java/one/mixin/android/widget/ConfirmationBgView.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,17 @@ package one.mixin.android.widget

import android.content.Context
import android.graphics.Canvas
import android.graphics.Outline
import android.graphics.Color
import android.graphics.LinearGradient
import android.graphics.Paint
import android.graphics.Shader
import android.util.AttributeSet
import android.view.View
import android.view.ViewOutlineProvider
import android.widget.RelativeLayout
import one.mixin.android.R
import one.mixin.android.extension.colorFromAttribute
import one.mixin.android.extension.dpToPx
import android.graphics.Color
import android.graphics.LinearGradient
import android.graphics.Shader
import one.mixin.android.extension.dp
import kotlin.math.max
import kotlin.math.min


class ConfirmationBgView : RelativeLayout {
private val colorWhite by lazy { context.colorFromAttribute(R.attr.bg_white) }

Expand All @@ -35,12 +29,16 @@ class ConfirmationBgView : RelativeLayout {
setWillNotDraw(false)
}

init {
paint.color = colorWhite
}

override fun onDraw(canvas: Canvas) {
super.onDraw(canvas)
val w = width.toFloat()
val h = height.toFloat()
if (all == 0 || cur == 0) {
paint.color = colorWhite
paint.shader = null // clear shader
canvas.drawRect(0f, 0f, w, h, paint)
} else {
val gradient = LinearGradient(
Expand All @@ -62,27 +60,4 @@ class ConfirmationBgView : RelativeLayout {
this.all = all
this.cur = cur
}

fun roundBottom(round: Boolean) {
if (round) {
outlineProvider =
object : ViewOutlineProvider() {
override fun getOutline(
view: View,
outline: Outline,
) {
outline.setRoundRect(
0,
0,
view.width,
view.height,
context.dpToPx(8f).toFloat(),
)
}
}
clipToOutline = true
} else {
clipToOutline = false
}
}
}

0 comments on commit ed96951

Please sign in to comment.