79 lines
2.7 KiB
Java
79 lines
2.7 KiB
Java
package com.discord.utilities.spans;
|
|
|
|
import android.graphics.Canvas;
|
|
import android.graphics.Paint;
|
|
import android.graphics.RectF;
|
|
import android.text.Layout;
|
|
import android.text.Spanned;
|
|
import android.text.style.LeadingMarginSpan;
|
|
import androidx.annotation.ColorInt;
|
|
import androidx.annotation.IntRange;
|
|
import androidx.annotation.Px;
|
|
import androidx.core.app.NotificationCompat;
|
|
import d0.z.d.m;
|
|
/* compiled from: QuoteSpan.kt */
|
|
public final class QuoteSpan implements LeadingMarginSpan {
|
|
private final int gapWidth;
|
|
private final float radius;
|
|
private final RectF rect = new RectF();
|
|
private final int stripeColor;
|
|
private final int stripeWidth;
|
|
|
|
public QuoteSpan(@ColorInt int i, @IntRange(from = 0) @Px int i2, @IntRange(from = 0) @Px int i3) {
|
|
this.stripeColor = i;
|
|
this.stripeWidth = i2;
|
|
this.gapWidth = i3;
|
|
this.radius = (float) i2;
|
|
}
|
|
|
|
private final void draw(Canvas canvas, Paint paint) {
|
|
Paint.Style style = paint.getStyle();
|
|
int color = paint.getColor();
|
|
paint.setStyle(Paint.Style.FILL);
|
|
paint.setColor(this.stripeColor);
|
|
RectF rectF = this.rect;
|
|
float f = this.radius;
|
|
canvas.drawRoundRect(rectF, f, f, paint);
|
|
paint.setStyle(style);
|
|
paint.setColor(color);
|
|
}
|
|
|
|
@Override // android.text.style.LeadingMarginSpan
|
|
public void drawLeadingMargin(Canvas canvas, Paint paint, int i, int i2, int i3, int i4, int i5, CharSequence charSequence, int i6, int i7, boolean z2, Layout layout) {
|
|
m.checkNotNullParameter(canvas, "c");
|
|
m.checkNotNullParameter(paint, "p");
|
|
m.checkNotNullParameter(charSequence, NotificationCompat.MessagingStyle.Message.KEY_TEXT);
|
|
m.checkNotNullParameter(layout, "layout");
|
|
if (charSequence instanceof Spanned) {
|
|
Spanned spanned = (Spanned) charSequence;
|
|
if (spanned.getSpanStart(this) == i6) {
|
|
RectF rectF = this.rect;
|
|
rectF.left = (float) i;
|
|
rectF.right = (float) ((i2 * this.stripeWidth) + i);
|
|
rectF.top = (float) i3;
|
|
}
|
|
int spanEnd = spanned.getSpanEnd(this);
|
|
if (spanEnd == i7 || (spanEnd - 1 == i7 && charSequence.charAt(i7) == '\n')) {
|
|
this.rect.bottom = (float) i5;
|
|
draw(canvas, paint);
|
|
}
|
|
}
|
|
}
|
|
|
|
public final int getGapWidth() {
|
|
return this.gapWidth;
|
|
}
|
|
|
|
@Override // android.text.style.LeadingMarginSpan
|
|
public int getLeadingMargin(boolean z2) {
|
|
return this.stripeWidth + this.gapWidth;
|
|
}
|
|
|
|
public final int getStripeColor() {
|
|
return this.stripeColor;
|
|
}
|
|
|
|
public final int getStripeWidth() {
|
|
return this.stripeWidth;
|
|
}
|
|
}
|