blob: 4df2030c3b9392d64c8866da81e5034daf49ff7e [file] [log] [blame]
package com.replica.replicaisland;
import android.content.Context;
import android.content.pm.PackageManager;
import android.view.MotionEvent;
public class MultiTouchFilter extends SingleTouchFilter {
private boolean mCheckedForMultitouch = false;
private boolean mSupportsMultitouch = false;
@Override
public void updateTouch(MotionEvent event) {
ContextParameters params = sSystemRegistry.contextParameters;
final int pointerCount = event.getPointerCount();
for (int x = 0; x < pointerCount; x++) {
final int action = event.getAction();
final int actualEvent = action & MotionEvent.ACTION_MASK;
final int id = event.getPointerId(x);
if (actualEvent == MotionEvent.ACTION_POINTER_UP ||
actualEvent == MotionEvent.ACTION_UP ||
actualEvent == MotionEvent.ACTION_CANCEL) {
BaseObject.sSystemRegistry.inputSystem.touchUp(id,
event.getX(x) * (1.0f / params.viewScaleX),
event.getY(x) * (1.0f / params.viewScaleY));
} else {
BaseObject.sSystemRegistry.inputSystem.touchDown(id,
event.getX(x) * (1.0f / params.viewScaleX),
event.getY(x) * (1.0f / params.viewScaleY));
}
}
}
@Override
public boolean supportsMultitouch(Context context) {
if (!mCheckedForMultitouch) {
PackageManager packageManager = context.getPackageManager();
mSupportsMultitouch = packageManager.hasSystemFeature("android.hardware.touchscreen.multitouch");
mCheckedForMultitouch = true;
}
return mSupportsMultitouch;
}
}