alexandroid/decompiled/jadx/sources/androidx/emoji2/text/UnprecomputeTextOnModificationSpannable.java
KaKi87 a47fad5135 📦 Add decompiled Alexa 2.2.730155.0 (jadx, apktool, Hermes strings)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-07 00:04:16 +01:00

151 lines
4.7 KiB
Java

package androidx.emoji2.text;
import android.text.PrecomputedText;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.Spanned;
import androidx.annotation.NonNull;
import androidx.annotation.RequiresApi;
import androidx.core.text.PrecomputedTextCompat;
import java.util.stream.IntStream;
/* compiled from: r8-map-id-b9432e0f623b4a4bff4ba50a8a24c4aafad2c1e11092747b9fb5e6a22af5a940 */
/* loaded from: classes14.dex */
class UnprecomputeTextOnModificationSpannable implements Spannable {
@NonNull
private Spannable mDelegate;
private boolean mSafeToWrite = false;
/* compiled from: r8-map-id-b9432e0f623b4a4bff4ba50a8a24c4aafad2c1e11092747b9fb5e6a22af5a940 */
@RequiresApi(24)
public static class CharSequenceHelper_API24 {
private CharSequenceHelper_API24() {
}
public static IntStream chars(CharSequence charSequence) {
return charSequence.chars();
}
public static IntStream codePoints(CharSequence charSequence) {
return charSequence.codePoints();
}
}
/* compiled from: r8-map-id-b9432e0f623b4a4bff4ba50a8a24c4aafad2c1e11092747b9fb5e6a22af5a940 */
public static class PrecomputedTextDetector {
public boolean isPrecomputedText(CharSequence charSequence) {
return charSequence instanceof PrecomputedTextCompat;
}
}
/* compiled from: r8-map-id-b9432e0f623b4a4bff4ba50a8a24c4aafad2c1e11092747b9fb5e6a22af5a940 */
@RequiresApi(28)
public static class PrecomputedTextDetector_28 extends PrecomputedTextDetector {
@Override // androidx.emoji2.text.UnprecomputeTextOnModificationSpannable.PrecomputedTextDetector
public boolean isPrecomputedText(CharSequence charSequence) {
return (charSequence instanceof PrecomputedText) || (charSequence instanceof PrecomputedTextCompat);
}
}
public UnprecomputeTextOnModificationSpannable(@NonNull Spanned spanned) {
this.mDelegate = new SpannableString(spanned);
}
private void ensureSafeWrites() {
Spannable spannable = this.mDelegate;
if (!this.mSafeToWrite && precomputedTextDetector().isPrecomputedText(spannable)) {
this.mDelegate = new SpannableString(spannable);
}
this.mSafeToWrite = true;
}
public static PrecomputedTextDetector precomputedTextDetector() {
return new PrecomputedTextDetector_28();
}
@Override // java.lang.CharSequence
public char charAt(int i) {
return this.mDelegate.charAt(i);
}
@Override // java.lang.CharSequence
@NonNull
@RequiresApi(api = 24)
public IntStream chars() {
return CharSequenceHelper_API24.chars(this.mDelegate);
}
@Override // java.lang.CharSequence
@NonNull
@RequiresApi(api = 24)
public IntStream codePoints() {
return CharSequenceHelper_API24.codePoints(this.mDelegate);
}
@Override // android.text.Spanned
public int getSpanEnd(Object obj) {
return this.mDelegate.getSpanEnd(obj);
}
@Override // android.text.Spanned
public int getSpanFlags(Object obj) {
return this.mDelegate.getSpanFlags(obj);
}
@Override // android.text.Spanned
public int getSpanStart(Object obj) {
return this.mDelegate.getSpanStart(obj);
}
@Override // android.text.Spanned
public <T> T[] getSpans(int i, int i2, Class<T> cls) {
return (T[]) this.mDelegate.getSpans(i, i2, cls);
}
public Spannable getUnwrappedSpannable() {
return this.mDelegate;
}
@Override // java.lang.CharSequence
public int length() {
return this.mDelegate.length();
}
@Override // android.text.Spanned
public int nextSpanTransition(int i, int i2, Class cls) {
return this.mDelegate.nextSpanTransition(i, i2, cls);
}
@Override // android.text.Spannable
public void removeSpan(Object obj) {
ensureSafeWrites();
this.mDelegate.removeSpan(obj);
}
@Override // android.text.Spannable
public void setSpan(Object obj, int i, int i2, int i3) {
ensureSafeWrites();
this.mDelegate.setSpan(obj, i, i2, i3);
}
@Override // java.lang.CharSequence
@NonNull
public CharSequence subSequence(int i, int i2) {
return this.mDelegate.subSequence(i, i2);
}
@Override // java.lang.CharSequence
@NonNull
public String toString() {
return this.mDelegate.toString();
}
public UnprecomputeTextOnModificationSpannable(@NonNull Spannable spannable) {
this.mDelegate = spannable;
}
public UnprecomputeTextOnModificationSpannable(@NonNull CharSequence charSequence) {
this.mDelegate = new SpannableString(charSequence);
}
}