package com.ikea.kompis;

import android.animation.Animator;
import android.animation.Animator.AnimatorListener;
import android.animation.FloatEvaluator;
import android.animation.ValueAnimator;
import android.animation.ValueAnimator.AnimatorUpdateListener;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Rect;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.VelocityTracker;
import android.view.View;
import android.view.ViewConfiguration;
import android.view.ViewGroup;
import android.view.ViewParent;
import android.view.ViewTreeObserver;
import android.view.ViewTreeObserver.OnGlobalLayoutListener;
import android.view.Window;
import android.widget.LinearLayout.LayoutParams;
import com.ikea.kompis.browse.event.KeyboardEvent;
import com.ikea.kompis.util.C.Anim;
import com.ikea.kompis.util.UiUtil;
import com.ikea.shared.util.L;
import com.squareup.otto.Bus;

public abstract class TrayActivity extends ShoppingCartActivity
{
  private static final String BUNDLE_KEY_STATUS = "BUNDLE_KEY_STATUS";
  public static final int EVENT_ANIMATION_START = 1;
  public static final int EVENT_ANIMATION_STOPPED = 2;
  private static final boolean MOVE_TRAY = false;
  private static final String TRAY_FRAGMENT_NAME = "TRAY_FRAGMENT_NAME";
  private float mAnimateFrom = 0.0F;
  private float mAnimateTo = 0.0F;
  private View mContentView = null;
  private float mCurrentX = 0.0F;
  private DragDetector mDetector;
  private final Animator.AnimatorListener mFlyAnimationListener = new Animator.AnimatorListener()
  {
    public void onAnimationCancel(Animator paramAnonymousAnimator)
    {
    }

    public void onAnimationEnd(Animator paramAnonymousAnimator)
    {
      TrayActivity.this.notifyStopped();
    }

    public void onAnimationRepeat(Animator paramAnonymousAnimator)
    {
    }

    public void onAnimationStart(Animator paramAnonymousAnimator)
    {
    }
  };
  private View mFlyinContainer = null;
  private final ViewTreeObserver.OnGlobalLayoutListener mLayoutListener = new ViewTreeObserver.OnGlobalLayoutListener()
  {
    private int retrieveStatusBarHeight()
    {
      Rect localRect = new Rect();
      TrayActivity.this.getWindow().getDecorView().getWindowVisibleDisplayFrame(localRect);
      return localRect.top;
    }

    public void onGlobalLayout()
    {
      TrayActivity.this.mContentView.getViewTreeObserver().removeGlobalOnLayoutListener(TrayActivity.this.mLayoutListener);
      TrayActivity.this.mFlyinContainer.setPadding(0, retrieveStatusBarHeight(), 0, 0);
      TrayActivity.this.syncStatus();
      TrayActivity.this.ensureAnimation();
    }
  };
  private int mMovingState = 2;
  private ValueAnimator mOpenAnimation = null;
  private ViewGroup mOurParent;
  private float mTrayWidth = 0.0F;

  private void animateTo(float paramFloat)
  {
    if (this.mCurrentX < 0.0F)
      this.mCurrentX = 0.0F;
    L.D("animate from " + this.mCurrentX + "  animate to " + paramFloat);
    ensureAnimation();
    this.mAnimateFrom = this.mCurrentX;
    this.mAnimateTo = paramFloat;
    notifyMoving();
    if (this.mAnimateFrom > this.mAnimateTo)
    {
      this.mOpenAnimation.setInterpolator(C.Anim.EASE_OUT_QUART_INTERPOLATOR);
      this.mOpenAnimation.setDuration(600L);
    }
    while (true)
    {
      this.mOpenAnimation.start();
      return;
      this.mOpenAnimation.setInterpolator(C.Anim.EASE_OUT_QUART_INTERPOLATOR);
      this.mOpenAnimation.setDuration(500L);
    }
  }

  private void ensureAnimation()
  {
    if (this.mOpenAnimation == null)
    {
      final FloatEvaluator localFloatEvaluator = new FloatEvaluator();
      this.mOpenAnimation = ValueAnimator.ofFloat(new float[] { 0.0F, 1.0F });
      this.mOpenAnimation.setDuration(500L);
      this.mOpenAnimation.addUpdateListener(new ValueAnimator.AnimatorUpdateListener()
      {
        public void onAnimationUpdate(ValueAnimator paramAnonymousValueAnimator)
        {
          float f = localFloatEvaluator.evaluate(paramAnonymousValueAnimator.getAnimatedFraction(), Float.valueOf(TrayActivity.this.mAnimateFrom), Float.valueOf(TrayActivity.this.mAnimateTo)).floatValue();
          TrayActivity.this.translateTo(f, false);
          if (TrayActivity.this.mContentView != null)
            TrayActivity.this.mContentView.getParent().requestLayout();
        }
      });
      this.mOpenAnimation.addListener(this.mFlyAnimationListener);
    }
  }

  private void setTrayWidth()
  {
    float f1 = getResources().getDimensionPixelSize(2131361810);
    if (f1 > 0.0F);
    for (float f2 = f1; ; f2 = UiUtil.screenWidth(this) - getResources().getDimensionPixelSize(2131361878))
    {
      this.mTrayWidth = f2;
      if (this.mFlyinContainer == null)
        break;
      this.mFlyinContainer.findViewById(2131623966).setLayoutParams(new LinearLayout.LayoutParams((int)this.mTrayWidth, -1));
      return;
    }
    throw new RuntimeException();
  }

  private void syncStatus()
  {
    if (this.mContentView != null)
    {
      setTrayWidth();
      if (this.mStatus != BaseActivity.Status.OPEN)
        break label31;
      translateTo(this.mTrayWidth, true);
    }
    label31: 
    while (this.mStatus != BaseActivity.Status.CLOSED)
      return;
    translateTo(0.0F, true);
  }

  private void translateTo(float paramFloat, boolean paramBoolean)
  {
    if ((paramFloat < 0.0F) || (paramFloat > this.mTrayWidth));
    while ((this.mContentView == null) || (this.mOurParent == null) || (this.mFlyinContainer == null))
      return;
    this.mContentView.setTranslationX(paramFloat);
    this.mOurParent.invalidate();
    this.mCurrentX = paramFloat;
    if ((!paramBoolean) && (this.slOpening) && (UiUtil.isLandscape(this)))
    {
      moveSLTo(1.0F - paramFloat / this.mTrayWidth);
      return;
    }
    moveMSLTo(paramFloat);
  }

  public void close()
  {
    L.D(this, "close()");
    if (this.mStatus != BaseActivity.Status.CLOSED)
    {
      animateTo(0.0F);
      this.mStatus = BaseActivity.Status.CLOSED;
      if ((this.mContentView != null) && (this.mContentView.getHandler() != null))
        this.mContentView.getHandler().postDelayed(new Runnable()
        {
          public void run()
          {
            UiUtil.closeSoftKeyBoard(TrayActivity.this.mContentView);
          }
        }
        , 650L);
    }
  }

  public void closeTray()
  {
    L.D(this, "close()");
    if (this.mStatus != BaseActivity.Status.CLOSED)
    {
      animateTo(0.0F);
      this.mStatus = BaseActivity.Status.CLOSED;
    }
  }

  protected abstract Fragment createFlyinFragment();

  public boolean dispatchTouchEvent(MotionEvent paramMotionEvent)
  {
    if ((this.mDetector == null) || (!this.mNeedTray) || (isShoppingListMaximize()) || ((!interceptTouchEvent()) && ((interceptTouchEvent()) || (this.mStatus != BaseActivity.Status.OPEN))) || ((UiUtil.isLandscape(this)) && (paramMotionEvent.getX() > this.mContentView.getRight() + this.mContentView.getTranslationX())));
    while (!this.mDetector.onTouch(paramMotionEvent))
      return super.dispatchTouchEvent(paramMotionEvent);
    MotionEvent localMotionEvent = MotionEvent.obtain(paramMotionEvent);
    localMotionEvent.setAction(3);
    super.dispatchTouchEvent(localMotionEvent);
    localMotionEvent.recycle();
    return true;
  }

  public boolean isClosed()
  {
    return BaseActivity.Status.CLOSED == this.mStatus;
  }

  public boolean isOpen()
  {
    return BaseActivity.Status.OPEN == this.mStatus;
  }

  public boolean isTrayMoveable()
  {
    return this.mNeedTray;
  }

  protected void notifyMoving()
  {
    if (this.mMovingState == 2)
    {
      L.D(this, "Layer Hardware");
      this.mMovingState = 1;
      if (this.mContentView != null)
        this.mContentView.setLayerType(2, null);
    }
  }

  protected void notifyStopped()
  {
    if (this.mMovingState == 1)
    {
      L.D(this, "Layer None");
      this.mMovingState = 2;
      if (this.mContentView != null)
        this.mContentView.setLayerType(0, null);
    }
    if (this.mContentView != null)
      this.mContentView.getParent().requestLayout();
  }

  public void onBackPressed()
  {
    L.I(this, "isShoppingListMaximize  : " + isShoppingListMaximize());
    L.I(this, "isOpen  : " + isOpen());
    if (isOpen())
    {
      close();
      return;
    }
    if (isShoppingListMaximize())
    {
      closeShoppingList();
      return;
    }
    try
    {
      super.onBackPressed();
      return;
    }
    catch (IllegalStateException localIllegalStateException)
    {
      localIllegalStateException.printStackTrace();
    }
  }

  protected void onCreate(Bundle paramBundle)
  {
    super.onCreate(paramBundle);
    UiUtil.applyLocaleString(this, false);
    this.mContentView = ((View)findViewById(16908290).getParent());
    this.mContentView.getViewTreeObserver().addOnGlobalLayoutListener(this.mLayoutListener);
    this.mOurParent = ((ViewGroup)this.mContentView.getParent());
    this.mOurParent.setClipChildren(false);
    this.mFlyinContainer = LayoutInflater.from(this).inflate(2130903043, this.mOurParent, false);
    this.mOurParent.addView(this.mFlyinContainer, 0);
    if (paramBundle == null)
    {
      Fragment localFragment = createFlyinFragment();
      getSupportFragmentManager().beginTransaction().add(2131623966, localFragment, "TRAY_FRAGMENT_NAME").commit();
    }
    this.mDetector = new DragDetector(this);
  }

  protected void onDestroy()
  {
    this.mDetector.destroy();
    super.onDestroy();
  }

  public boolean onKeyDown(int paramInt, KeyEvent paramKeyEvent)
  {
    if ((paramInt == 4) && (!isPaused()))
    {
      if (isOpen())
      {
        close();
        return true;
      }
      if ((isShoppingListMaximize()) && (isSlShowing()))
      {
        closeShoppingList();
        return true;
      }
      if (getSupportFragmentManager().getBackStackEntryCount() == 0)
      {
        if (!goBack())
          return super.onKeyDown(paramInt, paramKeyEvent);
        return false;
      }
      goBack();
      return false;
    }
    return super.onKeyDown(paramInt, paramKeyEvent);
  }

  protected void onRestoreInstanceState(Bundle paramBundle)
  {
    super.onRestoreInstanceState(paramBundle);
    this.mStatus = BaseActivity.Status.valueOf(paramBundle.getString("BUNDLE_KEY_STATUS"));
    if (isShoppingListMaximize())
      this.mStatus = BaseActivity.Status.CLOSED;
  }

  protected void onSaveInstanceState(Bundle paramBundle)
  {
    paramBundle.putString("BUNDLE_KEY_STATUS", this.mStatus.toString());
    super.onSaveInstanceState(paramBundle);
  }

  public void open()
  {
    L.D(this, "open()");
    if (this.mStatus != BaseActivity.Status.OPEN)
    {
      UiUtil.closeSoftKeyBoard(this.mContentView);
      this.mBus.post(new KeyboardEvent());
      animateTo(this.mTrayWidth);
      this.mStatus = BaseActivity.Status.OPEN;
    }
  }

  public void setTrayMoveable(boolean paramBoolean)
  {
    this.mNeedTray = paramBoolean;
  }

  protected void showTray(boolean paramBoolean)
  {
    super.showTray(paramBoolean);
  }

  protected void switchTo(BaseActivity.Status paramStatus)
  {
    switch (5.$SwitchMap$com$ikea$kompis$BaseActivity$Status[paramStatus.ordinal()])
    {
    default:
      close();
      return;
    case 1:
      open();
      return;
    case 2:
    }
    close();
  }

  protected void toggle()
  {
    StringBuilder localStringBuilder = new StringBuilder().append("toggle tray. current state ");
    if (this.mStatus == BaseActivity.Status.OPEN);
    for (String str = "open"; ; str = "closed  tray active " + this.mNeedTray)
    {
      L.D(str);
      if (this.mNeedTray);
      switch (5.$SwitchMap$com$ikea$kompis$BaseActivity$Status[this.mStatus.ordinal()])
      {
      default:
        close();
        return;
      case 1:
      case 2:
      }
    }
    close();
    return;
    open();
  }

  protected void toggleTray()
  {
    toggle();
  }

  private class DragDetector
  {
    private static final int BEZEL_SWIPE_MARGIN_DP = 24;
    private static final int VEL_PX_SEC_THRESHOLD = 1000;
    private final float BEZEL_SWIPE_MARGIN;
    private boolean mDown;
    private float mStartX;
    private boolean mTracking;
    private final VelocityTracker mVTracker = VelocityTracker.obtain();

    DragDetector(Context arg2)
    {
      Context localContext;
      this.BEZEL_SWIPE_MARGIN = UiUtil.pxFromDp(localContext, 24.0F);
    }

    private void destroy()
    {
      this.mVTracker.recycle();
    }

    private boolean onTouchWhenClosed(MotionEvent paramMotionEvent)
    {
      if (paramMotionEvent.getActionMasked() == 0)
        if (paramMotionEvent.getX() < this.BEZEL_SWIPE_MARGIN)
        {
          this.mStartX = paramMotionEvent.getX();
          this.mDown = true;
        }
      do
      {
        float f;
        do
        {
          return false;
          if ((!this.mDown) || (paramMotionEvent.getActionMasked() != 2))
            break;
          f = paramMotionEvent.getX() - this.mStartX;
        }
        while (Math.abs(f) <= 2 * ViewConfiguration.get(TrayActivity.this).getScaledTouchSlop());
        this.mTracking = true;
        TrayActivity.this.notifyMoving();
        TrayActivity.this.translateTo(f, false);
        return true;
      }
      while ((!this.mTracking) || (paramMotionEvent.getActionMasked() != 1));
      this.mTracking = false;
      this.mDown = false;
      int i;
      if (TrayActivity.this.mCurrentX > 0.5F * TrayActivity.this.mTrayWidth)
      {
        i = 1;
        if (i == 0)
        {
          this.mVTracker.computeCurrentVelocity(1000);
          if (this.mVTracker.getXVelocity() <= 1000.0F)
            break label198;
          i = 1;
        }
        label180: if (i == 0)
          break label203;
        TrayActivity.this.toggle();
      }
      while (true)
      {
        return true;
        i = 0;
        break;
        label198: i = 0;
        break label180;
        label203: TrayActivity.this.animateTo(0.0F);
      }
    }

    private boolean onTouchWhenOpen(MotionEvent paramMotionEvent)
    {
      boolean bool1 = false;
      if (paramMotionEvent.getActionMasked() == 0)
      {
        if (paramMotionEvent.getX() > TrayActivity.this.mTrayWidth)
          this.mDown = true;
        this.mStartX = paramMotionEvent.getX();
      }
      int i;
      do
      {
        do
        {
          return bool1;
          if ((!this.mDown) || (paramMotionEvent.getActionMasked() != 2))
            break;
          float f = paramMotionEvent.getX() - this.mStartX;
          boolean bool5 = Math.abs(f) < ViewConfiguration.get(TrayActivity.this).getScaledTouchSlop();
          bool1 = false;
          if (bool5)
          {
            this.mTracking = true;
            TrayActivity.this.notifyMoving();
            TrayActivity.this.translateTo(f + TrayActivity.this.mTrayWidth, false);
            bool1 = true;
          }
        }
        while (paramMotionEvent.getX() <= TrayActivity.this.mTrayWidth);
        return true;
        i = paramMotionEvent.getActionMasked();
        bool1 = false;
      }
      while (i != 1);
      int j;
      label249: boolean bool3;
      if (this.mTracking)
      {
        this.mTracking = false;
        if ((TrayActivity.this.mCurrentX < 0.5F * TrayActivity.this.mTrayWidth) || (Math.abs(TrayActivity.this.mCurrentX - this.mStartX) < ViewConfiguration.get(TrayActivity.this).getScaledTouchSlop()))
        {
          j = 1;
          if (j == 0)
          {
            this.mVTracker.computeCurrentVelocity(1000);
            if (this.mVTracker.getXVelocity() >= -1000.0F)
              break label278;
            j = 1;
          }
          if (j == 0)
            break label284;
          TrayActivity.this.toggle();
          label261: bool3 = true;
        }
      }
      while (true)
      {
        this.mDown = false;
        return bool3;
        j = 0;
        break;
        label278: j = 0;
        break label249;
        label284: TrayActivity.this.animateTo(TrayActivity.this.mTrayWidth);
        break label261;
        boolean bool2 = this.mDown;
        bool3 = false;
        if (bool2)
        {
          boolean bool4 = paramMotionEvent.getX() < TrayActivity.this.mTrayWidth;
          bool3 = false;
          if (bool4)
          {
            TrayActivity.this.toggle();
            bool3 = true;
          }
        }
      }
    }

    public boolean onTouch(MotionEvent paramMotionEvent)
    {
      this.mVTracker.addMovement(paramMotionEvent);
      if (TrayActivity.this.mStatus == BaseActivity.Status.OPEN)
        return onTouchWhenOpen(paramMotionEvent);
      if (TrayActivity.this.mStatus == BaseActivity.Status.CLOSED)
        return onTouchWhenClosed(paramMotionEvent);
      return false;
    }
  }
}

/* Location:           C:\Documents and Settings\Cesar Cabello Cea\Mis documentos\Downloads\apk-downloader\com.ikea.kompis-6_dex2jar.jar
 * Qualified Name:     com.ikea.kompis.TrayActivity
 * JD-Core Version:    0.6.2
 */