blob: 0b46c2fe10c3cdb6bd4373c54f01e393a07902ed [file] [log] [blame]
package org.robolectric.shadows;
import android.content.Context;
import android.os.Handler;
import android.view.GestureDetector;
import android.view.MotionEvent;
import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
import org.robolectric.annotation.RealObject;
import org.robolectric.internal.Shadow;
import static android.view.GestureDetector.OnDoubleTapListener;
import static org.robolectric.internal.Shadow.directlyOn;
import static org.robolectric.util.ReflectionHelpers.ClassParameter.from;
@SuppressWarnings({"UnusedDeclaration"})
@Implements(GestureDetector.class)
public class ShadowGestureDetector {
@RealObject
private GestureDetector realObject;
private static GestureDetector lastActiveGestureDetector;
private MotionEvent onTouchEventMotionEvent;
private GestureDetector.OnGestureListener listener;
private OnDoubleTapListener onDoubleTapListener;
public void __constructor__(Context context, GestureDetector.OnGestureListener listener, Handler handler) {
Shadow.invokeConstructor(GestureDetector.class, realObject,
from(Context.class, context),
from(GestureDetector.OnGestureListener.class, listener),
from(Handler.class, handler));
this.listener = listener;
}
@Implementation
public boolean onTouchEvent(MotionEvent ev) {
lastActiveGestureDetector = realObject;
onTouchEventMotionEvent = ev;
return directlyOn(realObject, GestureDetector.class).onTouchEvent(ev);
}
@Implementation
public void setOnDoubleTapListener(OnDoubleTapListener onDoubleTapListener) {
directlyOn(realObject, GestureDetector.class).setOnDoubleTapListener(onDoubleTapListener);
this.onDoubleTapListener = onDoubleTapListener;
}
public MotionEvent getOnTouchEventMotionEvent() {
return onTouchEventMotionEvent;
}
public void reset() {
onTouchEventMotionEvent = null;
}
public GestureDetector.OnGestureListener getListener() {
return listener;
}
public static GestureDetector getLastActiveDetector() {
return lastActiveGestureDetector;
}
public OnDoubleTapListener getOnDoubleTapListener() {
return onDoubleTapListener;
}
}