Program: 10975
Project: 10975
Buggy source:
@Override public boolean onTouch(View v,MotionEvent event){
  hideKeyboard(false);
  final int action=event.getAction();
switch (action & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
{
      mGestureMode=GestureMode.SWIP;
      mDownXValue=event.getX();
      mDownDateValue=new Date().getTime();
      break;
    }
case MotionEvent.ACTION_UP:
{
    if (mGestureMode == GestureMode.SWIP) {
      float currentX=event.getX();
      long timeDelta=new Date().getTime() - mDownDateValue;
      if (timeDelta <= FLIP_TIME_THRESHOLD) {
        if (mViewFlipper.getChildCount() > 1) {
          if (currentX > (mDownXValue + FLIP_PIXEL_THRESHOLD)) {
            mViewFlipper.setInAnimation(AnimationManager.getInstance().getInFromLeftAnimation());
            mViewFlipper.setOutAnimation(AnimationManager.getInstance().getOutToRightAnimation());
            mViewFlipper.showPrevious();
            mCurrentWebView=mWebViews.get(mViewFlipper.getDisplayedChild());
            showToastOnTabSwitch();
            updateUI();
            return true;
          }
          if (currentX < (mDownXValue - FLIP_PIXEL_THRESHOLD)) {
            mViewFlipper.setInAnimation(AnimationManager.getInstance().getInFromRightAnimation());
            mViewFlipper.setOutAnimation(AnimationManager.getInstance().getOutToLeftAnimation());
            mViewFlipper.showNext();
            mCurrentWebView=mWebViews.get(mViewFlipper.getDisplayedChild());
            showToastOnTabSwitch();
            updateUI();
            return true;
          }
        }
      }
    }
    break;
  }
case MotionEvent.ACTION_POINTER_DOWN:
{
  mOldDistance=computeSpacing(event);
  if (mOldDistance > 10f) {
    mGestureMode=GestureMode.ZOOM;
  }
  break;
}
case MotionEvent.ACTION_MOVE:
{
if (mGestureMode == GestureMode.ZOOM) {
  float newDist=computeSpacing(event);
  if (newDist > 10f) {
    float scale=newDist / mOldDistance;
    if (scale > 1) {
      if (scale > 1.3f) {
        mCurrentWebView.zoomIn();
        mOldDistance=newDist;
      }
    }
 else {
      if (scale < 0.8f) {
        mCurrentWebView.zoomOut();
        mOldDistance=newDist;
      }
    }
  }
}
break;
}
default :
break;
}
return false;
}

Fixed version (ground truth):
@Override public boolean onTouch(View v,MotionEvent event){
  hideKeyboard(false);
  final int action=event.getAction();
switch (action & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
{
      mGestureMode=GestureMode.SWIP;
      mDownXValue=event.getX();
      mDownDateValue=new Date().getTime();
      break;
    }
case MotionEvent.ACTION_UP:
{
    if (mGestureMode == GestureMode.SWIP) {
      float currentX=event.getX();
      long timeDelta=new Date().getTime() - mDownDateValue;
      if (timeDelta <= FLIP_TIME_THRESHOLD) {
        if (mViewFlipper.getChildCount() > 1) {
          if (currentX > (mDownXValue + FLIP_PIXEL_THRESHOLD)) {
            mViewFlipper.setInAnimation(AnimationManager.getInstance().getInFromLeftAnimation());
            mViewFlipper.setOutAnimation(AnimationManager.getInstance().getOutToRightAnimation());
            mViewFlipper.showPrevious();
            mCurrentWebView=mWebViews.get(mViewFlipper.getDisplayedChild());
            showToastOnTabSwitch();
            updateUI();
            return false;
          }
          if (currentX < (mDownXValue - FLIP_PIXEL_THRESHOLD)) {
            mViewFlipper.setInAnimation(AnimationManager.getInstance().getInFromRightAnimation());
            mViewFlipper.setOutAnimation(AnimationManager.getInstance().getOutToLeftAnimation());
            mViewFlipper.showNext();
            mCurrentWebView=mWebViews.get(mViewFlipper.getDisplayedChild());
            showToastOnTabSwitch();
            updateUI();
            return false;
          }
        }
      }
    }
    break;
  }
case MotionEvent.ACTION_POINTER_DOWN:
{
  mOldDistance=computeSpacing(event);
  if (mOldDistance > 10f) {
    mGestureMode=GestureMode.ZOOM;
  }
  break;
}
case MotionEvent.ACTION_MOVE:
{
if (mGestureMode == GestureMode.ZOOM) {
  float newDist=computeSpacing(event);
  if (newDist > 10f) {
    float scale=newDist / mOldDistance;
    if (scale > 1) {
      if (scale > 1.3f) {
        mCurrentWebView.zoomIn();
        mOldDistance=newDist;
      }
    }
 else {
      if (scale < 0.8f) {
        mCurrentWebView.zoomOut();
        mOldDistance=newDist;
      }
    }
  }
}
break;
}
default :
break;
}
return false;
}