package androidx.media3.ui;

import android.text.BidiFormatter;
import android.text.SpannableStringBuilder;
import android.text.Spanned;
import android.text.TextDirectionHeuristics;
import androidx.media3.common.util.Log;
import defpackage.cy4;
import defpackage.m09;
import defpackage.qm2;
import defpackage.rq6;
import defpackage.vw2;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/* JADX INFO: loaded from: classes.dex */
final class BidiUtils {
    private static final String TAG = "BidiUtils";
    private static final m09 LF_SPLITTER = m09.b("\n");
    private static final m09 CRLF_SPLITTER = m09.b("\r\n");
    private static final cy4 LF_JOINER = new cy4("\n");

    @qm2
    public static boolean containsRtl(@rq6 CharSequence charSequence) {
        if (charSequence == null) {
            return false;
        }
        int length = charSequence.length();
        int iCharCount = 0;
        while (iCharCount < length) {
            int iCodePointAt = Character.codePointAt(charSequence, iCharCount);
            byte directionality = Character.getDirectionality(iCodePointAt);
            if (directionality == 1 || directionality == 2 || directionality == 16 || directionality == 17) {
                return true;
            }
            iCharCount += Character.charCount(iCodePointAt);
        }
        return false;
    }

    public static CharSequence wrapText(CharSequence charSequence) {
        Spanned spanned;
        Object[] spans;
        int[] iArr;
        int[] iArr2;
        List<String> listC;
        int i;
        BidiFormatter bidiFormatter = BidiFormatter.getInstance();
        int i2 = 0;
        if (charSequence instanceof Spanned) {
            spanned = (Spanned) charSequence;
            spans = spanned.getSpans(0, charSequence.length(), Object.class);
            iArr = new int[spans.length];
            iArr2 = new int[spans.length];
            Arrays.fill(iArr, -1);
            Arrays.fill(iArr2, -1);
        } else {
            spanned = null;
            spans = null;
            iArr = null;
            iArr2 = null;
        }
        if (charSequence.toString().contains("\r\n")) {
            listC = CRLF_SPLITTER.c(charSequence);
            i = 2;
        } else {
            listC = LF_SPLITTER.c(charSequence);
            i = 1;
        }
        ArrayList arrayList = new ArrayList(listC.size());
        int i3 = 0;
        int length = 0;
        for (String str : listC) {
            String strUnicodeWrap = bidiFormatter.unicodeWrap(str, TextDirectionHeuristics.LTR);
            if (spans != null) {
                spanned.getClass();
                iArr.getClass();
                iArr2.getClass();
                int length2 = strUnicodeWrap.length() - str.length();
                if (length2 > 0) {
                    i3++;
                }
                for (int i4 = i2; i4 < spans.length; i4++) {
                    if (iArr[i4] < 0 && spanned.getSpanStart(spans[i4]) >= length) {
                        if (spanned.getSpanStart(spans[i4]) < str.length() + length) {
                            iArr[i4] = i3;
                        }
                    }
                    if (iArr2[i4] < 0 && spanned.getSpanEnd(spans[i4]) - 1 >= length && spanned.getSpanEnd(spans[i4]) - 1 < str.length() + length) {
                        iArr2[i4] = i3;
                    }
                }
                length += str.length() + i;
                if (length2 > 0) {
                    i3++;
                }
            }
            arrayList.add(strUnicodeWrap);
            i2 = 0;
        }
        SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder(LF_JOINER.c(arrayList));
        if (spans != null) {
            spanned.getClass();
            iArr.getClass();
            iArr2.getClass();
            for (int i5 = 0; i5 < spans.length; i5++) {
                int spanStart = spanned.getSpanStart(spans[i5]) + iArr[i5];
                int spanEnd = spanned.getSpanEnd(spans[i5]) + iArr2[i5];
                int spanFlags = spanned.getSpanFlags(spans[i5]);
                if (spanStart < 0 || spanStart >= spannableStringBuilder.length() || spanEnd < 0 || spanEnd > spannableStringBuilder.length()) {
                    StringBuilder sbR = vw2.r("Span out of bounds: start=", spanStart, ",end=", ",len=", spanEnd);
                    sbR.append(spannableStringBuilder.length());
                    Log.w(TAG, sbR.toString());
                } else {
                    spannableStringBuilder.setSpan(spans[i5], spanStart, spanEnd, spanFlags);
                }
            }
        }
        return spannableStringBuilder;
    }
}
