package com.metaio.sdk;

import android.annotation.TargetApi;
import android.graphics.PointF;
import android.util.FloatMath;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import com.metaio.sdk.jni.GestureHandler;
import com.metaio.sdk.jni.IMetaioSDK;

@TargetApi(9)
public class GestureHandlerAndroid extends GestureHandler
  implements View.OnTouchListener
{
  private float mDistance = 0.0F;
  private View mGLSurfaceView;
  private int mGestureMode = GESTURE_NONE;
  private boolean mPointerDown = false;
  private double mRotation = 0.0D;
  private View mWebView;

  public GestureHandlerAndroid(IMetaioSDK paramIMetaioSDK, int paramInt)
  {
    this(paramIMetaioSDK, paramInt, null, null);
  }

  public GestureHandlerAndroid(IMetaioSDK paramIMetaioSDK, int paramInt, View paramView1, View paramView2)
  {
    super(paramIMetaioSDK, paramInt);
    this.mWebView = paramView1;
    this.mGLSurfaceView = paramView2;
  }

  private PointF transformTouchCoordinates(float paramFloat1, float paramFloat2)
  {
    PointF localPointF = new PointF(paramFloat1, paramFloat2);
    if ((this.mWebView == null) || (this.mGLSurfaceView == null))
      return localPointF;
    MetaioDebug.logPrivate(3, "Original touch location: " + localPointF.x + ", " + localPointF.y);
    int[] arrayOfInt1 = new int[2];
    this.mWebView.getLocationOnScreen(arrayOfInt1);
    MetaioDebug.logPrivate(3, "WebView location: " + arrayOfInt1[0] + ", " + arrayOfInt1[1]);
    int[] arrayOfInt2 = new int[2];
    this.mGLSurfaceView.getLocationOnScreen(arrayOfInt2);
    MetaioDebug.logPrivate(3, "GLSurfaceView location: " + arrayOfInt2[0] + ", " + arrayOfInt2[1]);
    localPointF.offset(arrayOfInt1[0] - arrayOfInt2[0], arrayOfInt1[1] - arrayOfInt2[1]);
    MetaioDebug.logPrivate(3, "Offsetted touch location: " + localPointF.x + ", " + localPointF.y);
    return localPointF;
  }

  public boolean onTouch(View paramView, MotionEvent paramMotionEvent)
  {
    int i = 1;
    PointF localPointF = transformTouchCoordinates(paramMotionEvent.getX(), paramMotionEvent.getY());
    int j = (int)localPointF.x;
    int k = (int)localPointF.y;
    MetaioDebug.logPrivate(3, "GestureHandler.OnTouch: " + localPointF.x + ", " + localPointF.y);
    if (paramMotionEvent.getAction() == 0)
      touchesBegan(j, k);
    label375: 
    do
    {
      float f1;
      float f2;
      float f3;
      do
      {
        do
        {
          do
          {
            do
            {
              float f7;
              do
              {
                return false;
                if (paramMotionEvent.getAction() == i)
                {
                  touchesEnded(j, k);
                  this.mGestureMode = GESTURE_NONE;
                  return false;
                }
                if (paramMotionEvent.getAction() != 2)
                  break label375;
                if ((!this.mPointerDown) || (paramMotionEvent.getPointerCount() <= i))
                  break;
                float f4 = paramMotionEvent.getX(0) - paramMotionEvent.getX(i);
                float f5 = paramMotionEvent.getY(0) - paramMotionEvent.getY(i);
                float f6 = FloatMath.sqrt(f4 * f4 + f5 * f5);
                double d = Math.atan2(f5, f4) - this.mRotation;
                f7 = f6 / this.mDistance;
                if ((getGestures() & GESTURE_ROTATE) == GESTURE_ROTATE)
                {
                  if (((getGestures() & GESTURE_PINCH) == GESTURE_PINCH) && (Math.abs(d) < Math.toRadians(10.0D)))
                    i = 0;
                  if ((i != 0) && (this.mGestureMode == GESTURE_NONE))
                    this.mGestureMode = GESTURE_ROTATE;
                }
                if (((getGestures() & GESTURE_PINCH) == GESTURE_PINCH) && (Math.abs(f7 - 1.0F) > 0.1F) && (this.mGestureMode == GESTURE_NONE))
                  this.mGestureMode = GESTURE_PINCH;
                if (this.mGestureMode == GESTURE_ROTATE)
                {
                  handleRotateGesture((float)d);
                  return false;
                }
              }
              while (this.mGestureMode != GESTURE_PINCH);
              handlePinchGesture(f7);
              return false;
            }
            while ((getGestures() & GESTURE_DRAG) != GESTURE_DRAG);
            touchesMoved(j, k);
            return false;
            if (paramMotionEvent.getActionMasked() != 5)
              break;
          }
          while ((this.mPointerDown) || (paramMotionEvent.getPointerCount() != 2));
          MetaioDebug.logPrivate(3, "Pointer 2 down");
        }
        while (((getGestures() & GESTURE_PINCH) != GESTURE_PINCH) && ((getGestures() & GESTURE_ROTATE) != GESTURE_ROTATE));
        f1 = paramMotionEvent.getX(0) - paramMotionEvent.getX(i);
        f2 = paramMotionEvent.getY(0) - paramMotionEvent.getY(i);
        f3 = FloatMath.sqrt(f1 * f1 + f2 * f2);
      }
      while (f3 <= 10.0F);
      this.mDistance = f3;
      this.mRotation = Math.atan2(f2, f1);
      this.mPointerDown = i;
      return false;
    }
    while (paramMotionEvent.getActionMasked() != 6);
    MetaioDebug.logPrivate(3, "Pointer 2 up");
    this.mPointerDown = false;
    touchesEnded(j, k);
    return false;
  }

  public void setGLSurfaceView(View paramView)
  {
    this.mGLSurfaceView = paramView;
  }

  public void setWebView(View paramView)
  {
    this.mWebView = paramView;
  }
}

/* Location:           C:\Documents and Settings\Cesar Cabello Cea\Mis documentos\Downloads\apk-downloader\com.ikea.kompis-6_dex2jar.jar
 * Qualified Name:     com.metaio.sdk.GestureHandlerAndroid
 * JD-Core Version:    0.6.2
 */