// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/kpdus/jad.html
// Decompiler options: braces fieldsfirst space lnc 

package android.support.v4.widget;

import android.content.Context;
import android.graphics.Rect;
import android.os.Bundle;
import android.support.v4.view.AccessibilityDelegateCompat;
import android.support.v4.view.ViewCompat;
import android.support.v4.view.ViewParentCompat;
import android.support.v4.view.accessibility.AccessibilityEventCompat;
import android.support.v4.view.accessibility.AccessibilityManagerCompat;
import android.support.v4.view.accessibility.AccessibilityNodeInfoCompat;
import android.support.v4.view.accessibility.AccessibilityNodeProviderCompat;
import android.support.v4.view.accessibility.AccessibilityRecordCompat;
import android.view.MotionEvent;
import android.view.View;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityManager;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;

// Referenced classes of package android.support.v4.widget:
//            o

public abstract class ExploreByTouchHelper extends AccessibilityDelegateCompat
{

    public static final int INVALID_ID = 0x80000000;
    private static final String b = android/view/View.getName();
    private final Rect c = new Rect();
    private final Rect d = new Rect();
    private final Rect e = new Rect();
    private final int f[] = new int[2];
    private final AccessibilityManager g;
    private final View h;
    private o i;
    private int j;
    private int k;

    public ExploreByTouchHelper(View view)
    {
        j = 0x80000000;
        k = 0x80000000;
        if (view == null)
        {
            throw new IllegalArgumentException("View may not be null");
        } else
        {
            h = view;
            g = (AccessibilityManager)view.getContext().getSystemService("accessibility");
            return;
        }
    }

    static AccessibilityNodeInfoCompat a(ExploreByTouchHelper explorebytouchhelper, int l)
    {
        return explorebytouchhelper.c(l);
    }

    private AccessibilityEvent a(int l, int i1)
    {
        switch (l)
        {
        default:
            return b(l, i1);

        case -1: 
            return b(i1);
        }
    }

    private void a(int l)
    {
        if (k == l)
        {
            return;
        } else
        {
            int i1 = k;
            k = l;
            sendEventForVirtualView(l, 128);
            sendEventForVirtualView(i1, 256);
            return;
        }
    }

    private boolean a(int l, int i1, Bundle bundle)
    {
        switch (l)
        {
        default:
            return b(l, i1, bundle);

        case -1: 
            return a(i1, bundle);
        }
    }

    private boolean a(int l, Bundle bundle)
    {
        return ViewCompat.performAccessibilityAction(h, l, bundle);
    }

    private boolean a(Rect rect)
    {
        if (rect == null || rect.isEmpty())
        {
            return false;
        }
        if (h.getWindowVisibility() != 0)
        {
            return false;
        }
        android.view.ViewParent viewparent;
        View view;
        for (viewparent = h.getParent(); viewparent instanceof View; viewparent = view.getParent())
        {
            view = (View)viewparent;
            if (ViewCompat.getAlpha(view) <= 0.0F || view.getVisibility() != 0)
            {
                return false;
            }
        }

        if (viewparent == null)
        {
            return false;
        }
        if (!h.getLocalVisibleRect(e))
        {
            return false;
        } else
        {
            return rect.intersect(e);
        }
    }

    static boolean a(ExploreByTouchHelper explorebytouchhelper, int l, int i1, Bundle bundle)
    {
        return explorebytouchhelper.a(l, i1, bundle);
    }

    private AccessibilityNodeInfoCompat b()
    {
        AccessibilityNodeInfoCompat accessibilitynodeinfocompat = AccessibilityNodeInfoCompat.obtain(h);
        ViewCompat.onInitializeAccessibilityNodeInfo(h, accessibilitynodeinfocompat);
        LinkedList linkedlist = new LinkedList();
        getVisibleVirtualViews(linkedlist);
        Integer integer;
        for (Iterator iterator = linkedlist.iterator(); iterator.hasNext(); accessibilitynodeinfocompat.addChild(h, integer.intValue()))
        {
            integer = (Integer)iterator.next();
        }

        return accessibilitynodeinfocompat;
    }

    private AccessibilityEvent b(int l)
    {
        AccessibilityEvent accessibilityevent = AccessibilityEvent.obtain(l);
        ViewCompat.onInitializeAccessibilityEvent(h, accessibilityevent);
        return accessibilityevent;
    }

    private AccessibilityEvent b(int l, int i1)
    {
        AccessibilityEvent accessibilityevent = AccessibilityEvent.obtain(i1);
        accessibilityevent.setEnabled(true);
        accessibilityevent.setClassName(b);
        onPopulateEventForVirtualView(l, accessibilityevent);
        if (accessibilityevent.getText().isEmpty() && accessibilityevent.getContentDescription() == null)
        {
            throw new RuntimeException("Callbacks must add text or a content description in populateEventForVirtualViewId()");
        } else
        {
            accessibilityevent.setPackageName(h.getContext().getPackageName());
            AccessibilityEventCompat.asRecord(accessibilityevent).setSource(h, l);
            return accessibilityevent;
        }
    }

    private boolean b(int l, int i1, Bundle bundle)
    {
        switch (i1)
        {
        default:
            return onPerformActionForVirtualView(l, i1, bundle);

        case 64: // '@'
        case 128: 
            return c(l, i1, bundle);
        }
    }

    private AccessibilityNodeInfoCompat c(int l)
    {
        switch (l)
        {
        default:
            return d(l);

        case -1: 
            return b();
        }
    }

    private boolean c(int l, int i1, Bundle bundle)
    {
        switch (i1)
        {
        default:
            return false;

        case 64: // '@'
            return f(l);

        case 128: 
            return g(l);
        }
    }

    private AccessibilityNodeInfoCompat d(int l)
    {
        AccessibilityNodeInfoCompat accessibilitynodeinfocompat = AccessibilityNodeInfoCompat.obtain();
        accessibilitynodeinfocompat.setEnabled(true);
        accessibilitynodeinfocompat.setClassName(b);
        onPopulateNodeForVirtualView(l, accessibilitynodeinfocompat);
        if (accessibilitynodeinfocompat.getText() == null && accessibilitynodeinfocompat.getContentDescription() == null)
        {
            throw new RuntimeException("Callbacks must add text or a content description in populateNodeForVirtualViewId()");
        }
        accessibilitynodeinfocompat.getBoundsInParent(d);
        if (d.isEmpty())
        {
            throw new RuntimeException("Callbacks must set parent bounds in populateNodeForVirtualViewId()");
        }
        int i1 = accessibilitynodeinfocompat.getActions();
        if ((i1 & 0x40) != 0)
        {
            throw new RuntimeException("Callbacks must not add ACTION_ACCESSIBILITY_FOCUS in populateNodeForVirtualViewId()");
        }
        if ((i1 & 0x80) != 0)
        {
            throw new RuntimeException("Callbacks must not add ACTION_CLEAR_ACCESSIBILITY_FOCUS in populateNodeForVirtualViewId()");
        }
        accessibilitynodeinfocompat.setPackageName(h.getContext().getPackageName());
        accessibilitynodeinfocompat.setSource(h, l);
        accessibilitynodeinfocompat.setParent(h);
        int j1;
        int k1;
        if (j == l)
        {
            accessibilitynodeinfocompat.setAccessibilityFocused(true);
            accessibilitynodeinfocompat.addAction(128);
        } else
        {
            accessibilitynodeinfocompat.setAccessibilityFocused(false);
            accessibilitynodeinfocompat.addAction(64);
        }
        if (a(d))
        {
            accessibilitynodeinfocompat.setVisibleToUser(true);
            accessibilitynodeinfocompat.setBoundsInParent(d);
        }
        h.getLocationOnScreen(f);
        j1 = f[0];
        k1 = f[1];
        c.set(d);
        c.offset(j1, k1);
        accessibilitynodeinfocompat.setBoundsInScreen(c);
        return accessibilitynodeinfocompat;
    }

    private boolean e(int l)
    {
        return j == l;
    }

    private boolean f(int l)
    {
        while (!g.isEnabled() || !AccessibilityManagerCompat.isTouchExplorationEnabled(g) || e(l)) 
        {
            return false;
        }
        j = l;
        h.invalidate();
        sendEventForVirtualView(l, 32768);
        return true;
    }

    private boolean g(int l)
    {
        if (e(l))
        {
            j = 0x80000000;
            h.invalidate();
            sendEventForVirtualView(l, 0x10000);
            return true;
        } else
        {
            return false;
        }
    }

    public boolean dispatchHoverEvent(MotionEvent motionevent)
    {
        boolean flag = true;
        if (g.isEnabled() && AccessibilityManagerCompat.isTouchExplorationEnabled(g))
        {
            switch (motionevent.getAction())
            {
            case 8: // '\b'
            default:
                return false;

            case 7: // '\007'
            case 9: // '\t'
                int l = getVirtualViewAt(motionevent.getX(), motionevent.getY());
                a(l);
                if (l == 0x80000000)
                {
                    flag = false;
                }
                return flag;

            case 10: // '\n'
                break;
            }
            if (j != 0x80000000)
            {
                a(0x80000000);
                return flag;
            }
        }
        return false;
    }

    public AccessibilityNodeProviderCompat getAccessibilityNodeProvider(View view)
    {
        if (i == null)
        {
            i = new o(this, null);
        }
        return i;
    }

    public int getFocusedVirtualView()
    {
        return j;
    }

    protected abstract int getVirtualViewAt(float f1, float f2);

    protected abstract void getVisibleVirtualViews(List list);

    public void invalidateRoot()
    {
        invalidateVirtualView(-1);
    }

    public void invalidateVirtualView(int l)
    {
        sendEventForVirtualView(l, 2048);
    }

    protected abstract boolean onPerformActionForVirtualView(int l, int i1, Bundle bundle);

    protected abstract void onPopulateEventForVirtualView(int l, AccessibilityEvent accessibilityevent);

    protected abstract void onPopulateNodeForVirtualView(int l, AccessibilityNodeInfoCompat accessibilitynodeinfocompat);

    public boolean sendEventForVirtualView(int l, int i1)
    {
        android.view.ViewParent viewparent;
        if (l != 0x80000000 && g.isEnabled())
        {
            if ((viewparent = h.getParent()) != null)
            {
                AccessibilityEvent accessibilityevent = a(l, i1);
                return ViewParentCompat.requestSendAccessibilityEvent(viewparent, h, accessibilityevent);
            }
        }
        return false;
    }

}