package androidx.emoji2.text;

import android.text.Editable;
import android.text.Selection;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.method.MetaKeyKeyListener;
import android.view.KeyEvent;
import android.view.inputmethod.InputConnection;
import androidx.emoji2.text.e;
import androidx.emoji2.text.m;
import java.util.Arrays;

/* JADX INFO: compiled from: EmojiProcessor.java */
/* JADX INFO: loaded from: classes.dex */
final class h {

    /* JADX INFO: renamed from: a, reason: collision with root package name */
    private final e.i f2091a;

    /* JADX INFO: renamed from: b, reason: collision with root package name */
    private final m f2092b;

    /* JADX INFO: renamed from: c, reason: collision with root package name */
    private e.d f2093c;

    /* JADX INFO: renamed from: d, reason: collision with root package name */
    private final boolean f2094d;

    /* JADX INFO: renamed from: e, reason: collision with root package name */
    private final int[] f2095e;

    /* JADX INFO: compiled from: EmojiProcessor.java */
    private static final class a {
        static int a(CharSequence charSequence, int i3, int i4) {
            int length = charSequence.length();
            if (i3 < 0 || length < i3 || i4 < 0) {
                return -1;
            }
            while (true) {
                boolean z2 = false;
                while (i4 != 0) {
                    i3--;
                    if (i3 < 0) {
                        return z2 ? -1 : 0;
                    }
                    char cCharAt = charSequence.charAt(i3);
                    if (z2) {
                        if (!Character.isHighSurrogate(cCharAt)) {
                            return -1;
                        }
                        i4--;
                    } else if (!Character.isSurrogate(cCharAt)) {
                        i4--;
                    } else {
                        if (Character.isHighSurrogate(cCharAt)) {
                            return -1;
                        }
                        z2 = true;
                    }
                }
                return i3;
            }
        }

        static int b(CharSequence charSequence, int i3, int i4) {
            int length = charSequence.length();
            if (i3 < 0 || length < i3 || i4 < 0) {
                return -1;
            }
            while (true) {
                boolean z2 = false;
                while (i4 != 0) {
                    if (i3 >= length) {
                        if (z2) {
                            return -1;
                        }
                        return length;
                    }
                    char cCharAt = charSequence.charAt(i3);
                    if (z2) {
                        if (!Character.isLowSurrogate(cCharAt)) {
                            return -1;
                        }
                        i4--;
                        i3++;
                    } else if (!Character.isSurrogate(cCharAt)) {
                        i4--;
                        i3++;
                    } else {
                        if (Character.isLowSurrogate(cCharAt)) {
                            return -1;
                        }
                        i3++;
                        z2 = true;
                    }
                }
                return i3;
            }
        }
    }

    /* JADX INFO: compiled from: EmojiProcessor.java */
    static final class b {

        /* JADX INFO: renamed from: a, reason: collision with root package name */
        private int f2096a = 1;

        /* JADX INFO: renamed from: b, reason: collision with root package name */
        private final m.a f2097b;

        /* JADX INFO: renamed from: c, reason: collision with root package name */
        private m.a f2098c;

        /* JADX INFO: renamed from: d, reason: collision with root package name */
        private m.a f2099d;

        /* JADX INFO: renamed from: e, reason: collision with root package name */
        private int f2100e;

        /* JADX INFO: renamed from: f, reason: collision with root package name */
        private int f2101f;

        /* JADX INFO: renamed from: g, reason: collision with root package name */
        private final boolean f2102g;

        /* JADX INFO: renamed from: h, reason: collision with root package name */
        private final int[] f2103h;

        b(m.a aVar, boolean z2, int[] iArr) {
            this.f2097b = aVar;
            this.f2098c = aVar;
            this.f2102g = z2;
            this.f2103h = iArr;
        }

        private static boolean d(int i3) {
            return i3 == 65039;
        }

        private static boolean f(int i3) {
            return i3 == 65038;
        }

        private int g() {
            this.f2096a = 1;
            this.f2098c = this.f2097b;
            this.f2101f = 0;
            return 1;
        }

        private boolean h() {
            if (this.f2098c.b().j() || d(this.f2100e)) {
                return true;
            }
            if (this.f2102g) {
                if (this.f2103h == null) {
                    return true;
                }
                if (Arrays.binarySearch(this.f2103h, this.f2098c.b().b(0)) < 0) {
                    return true;
                }
            }
            return false;
        }

        int a(int i3) {
            m.a aVarA = this.f2098c.a(i3);
            int iG = 3;
            if (this.f2096a == 2) {
                if (aVarA != null) {
                    this.f2098c = aVarA;
                    this.f2101f++;
                } else if (f(i3)) {
                    iG = g();
                } else if (!d(i3)) {
                    if (this.f2098c.b() == null) {
                        iG = g();
                    } else if (this.f2101f != 1 || h()) {
                        this.f2099d = this.f2098c;
                        g();
                    } else {
                        iG = g();
                    }
                }
                iG = 2;
            } else if (aVarA == null) {
                iG = g();
            } else {
                this.f2096a = 2;
                this.f2098c = aVarA;
                this.f2101f = 1;
                iG = 2;
            }
            this.f2100e = i3;
            return iG;
        }

        g b() {
            return this.f2098c.b();
        }

        g c() {
            return this.f2099d.b();
        }

        boolean e() {
            return this.f2096a == 2 && this.f2098c.b() != null && (this.f2101f > 1 || h());
        }
    }

    h(m mVar, e.i iVar, e.d dVar, boolean z2, int[] iArr) {
        this.f2091a = iVar;
        this.f2092b = mVar;
        this.f2093c = dVar;
        this.f2094d = z2;
        this.f2095e = iArr;
    }

    private void a(Spannable spannable, g gVar, int i3, int i4) {
        spannable.setSpan(this.f2091a.a(gVar), i3, i4, 33);
    }

    private static boolean b(Editable editable, KeyEvent keyEvent, boolean z2) {
        i[] iVarArr;
        if (g(keyEvent)) {
            return false;
        }
        int selectionStart = Selection.getSelectionStart(editable);
        int selectionEnd = Selection.getSelectionEnd(editable);
        if (!f(selectionStart, selectionEnd) && (iVarArr = (i[]) editable.getSpans(selectionStart, selectionEnd, i.class)) != null && iVarArr.length > 0) {
            for (i iVar : iVarArr) {
                int spanStart = editable.getSpanStart(iVar);
                int spanEnd = editable.getSpanEnd(iVar);
                if ((z2 && spanStart == selectionStart) || ((!z2 && spanEnd == selectionStart) || (selectionStart > spanStart && selectionStart < spanEnd))) {
                    editable.delete(spanStart, spanEnd);
                    return true;
                }
            }
        }
        return false;
    }

    static boolean c(InputConnection inputConnection, Editable editable, int i3, int i4, boolean z2) {
        int iMax;
        int iMin;
        if (editable != null && inputConnection != null && i3 >= 0 && i4 >= 0) {
            int selectionStart = Selection.getSelectionStart(editable);
            int selectionEnd = Selection.getSelectionEnd(editable);
            if (f(selectionStart, selectionEnd)) {
                return false;
            }
            if (z2) {
                iMax = a.a(editable, selectionStart, Math.max(i3, 0));
                iMin = a.b(editable, selectionEnd, Math.max(i4, 0));
                if (iMax == -1 || iMin == -1) {
                    return false;
                }
            } else {
                iMax = Math.max(selectionStart - i3, 0);
                iMin = Math.min(selectionEnd + i4, editable.length());
            }
            i[] iVarArr = (i[]) editable.getSpans(iMax, iMin, i.class);
            if (iVarArr != null && iVarArr.length > 0) {
                for (i iVar : iVarArr) {
                    int spanStart = editable.getSpanStart(iVar);
                    int spanEnd = editable.getSpanEnd(iVar);
                    iMax = Math.min(spanStart, iMax);
                    iMin = Math.max(spanEnd, iMin);
                }
                int iMax2 = Math.max(iMax, 0);
                int iMin2 = Math.min(iMin, editable.length());
                inputConnection.beginBatchEdit();
                editable.delete(iMax2, iMin2);
                inputConnection.endBatchEdit();
                return true;
            }
        }
        return false;
    }

    static boolean d(Editable editable, int i3, KeyEvent keyEvent) {
        if (!(i3 != 67 ? i3 != 112 ? false : b(editable, keyEvent, true) : b(editable, keyEvent, false))) {
            return false;
        }
        MetaKeyKeyListener.adjustMetaAfterKeypress(editable);
        return true;
    }

    private boolean e(CharSequence charSequence, int i3, int i4, g gVar) {
        if (gVar.d() == 0) {
            gVar.k(this.f2093c.a(charSequence, i3, i4, gVar.h()));
        }
        return gVar.d() == 2;
    }

    private static boolean f(int i3, int i4) {
        return i3 == -1 || i4 == -1 || i3 != i4;
    }

    private static boolean g(KeyEvent keyEvent) {
        return !KeyEvent.metaStateHasNoModifiers(keyEvent.getMetaState());
    }

    CharSequence h(CharSequence charSequence, int i3, int i4, int i5, boolean z2) {
        int iCharCount;
        i[] iVarArr;
        boolean z3 = charSequence instanceof n;
        if (z3) {
            ((n) charSequence).a();
        }
        p pVar = null;
        if (z3) {
            pVar = new p((Spannable) charSequence);
        } else {
            try {
                if (charSequence instanceof Spannable) {
                    pVar = new p((Spannable) charSequence);
                } else if ((charSequence instanceof Spanned) && ((Spanned) charSequence).nextSpanTransition(i3 - 1, i4 + 1, i.class) <= i4) {
                    pVar = new p(charSequence);
                }
            } finally {
                if (z3) {
                    ((n) charSequence).d();
                }
            }
        }
        if (pVar != null && (iVarArr = (i[]) pVar.getSpans(i3, i4, i.class)) != null && iVarArr.length > 0) {
            for (i iVar : iVarArr) {
                int spanStart = pVar.getSpanStart(iVar);
                int spanEnd = pVar.getSpanEnd(iVar);
                if (spanStart != i4) {
                    pVar.removeSpan(iVar);
                }
                i3 = Math.min(spanStart, i3);
                i4 = Math.max(spanEnd, i4);
            }
        }
        if (i3 != i4 && i3 < charSequence.length()) {
            if (i5 != Integer.MAX_VALUE && pVar != null) {
                i5 -= ((i[]) pVar.getSpans(0, pVar.length(), i.class)).length;
            }
            b bVar = new b(this.f2092b.f(), this.f2094d, this.f2095e);
            int iCodePointAt = Character.codePointAt(charSequence, i3);
            int i6 = 0;
            p pVar2 = pVar;
            loop1: while (true) {
                iCharCount = i3;
                while (i3 < i4 && i6 < i5) {
                    int iA = bVar.a(iCodePointAt);
                    if (iA == 1) {
                        iCharCount += Character.charCount(Character.codePointAt(charSequence, iCharCount));
                        if (iCharCount < i4) {
                            iCodePointAt = Character.codePointAt(charSequence, iCharCount);
                        }
                        i3 = iCharCount;
                    } else if (iA == 2) {
                        i3 += Character.charCount(iCodePointAt);
                        if (i3 < i4) {
                            iCodePointAt = Character.codePointAt(charSequence, i3);
                        }
                    } else if (iA == 3) {
                        if (z2 || !e(charSequence, iCharCount, i3, bVar.c())) {
                            if (pVar2 == null) {
                                pVar2 = new p((Spannable) new SpannableString(charSequence));
                            }
                            a(pVar2, bVar.c(), iCharCount, i3);
                            i6++;
                        }
                    }
                }
                break loop1;
            }
            if (bVar.e() && i6 < i5 && (z2 || !e(charSequence, iCharCount, i3, bVar.b()))) {
                if (pVar2 == null) {
                    pVar2 = new p(charSequence);
                }
                a(pVar2, bVar.b(), iCharCount, i3);
            }
            if (pVar2 != null) {
                return pVar2.b();
            }
            if (z3) {
                ((n) charSequence).d();
            }
            return charSequence;
        }
        if (z3) {
            ((n) charSequence).d();
        }
        return charSequence;
    }
}
