aboutsummaryrefslogtreecommitdiffhomepage
path: root/platform_tools
diff options
context:
space:
mode:
authorGravatar liyuqian <liyuqian@google.com>2016-05-12 09:17:04 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-05-12 09:17:04 -0700
commit40d21de8b6620d724f34bdc85af1dcb593d33fe0 (patch)
tree68ffa26aeb7ebcaded71191e9f91f17c70bb3fc2 /platform_tools
parenta31312cddd51c896b34c5c3382bcf6c50632d70b (diff)
Use swipe gesture to switch between slides on Android
Diffstat (limited to 'platform_tools')
-rw-r--r--platform_tools/android/apps/viewer/src/main/java/org/skia/viewer/ViewerActivity.java43
1 files changed, 42 insertions, 1 deletions
diff --git a/platform_tools/android/apps/viewer/src/main/java/org/skia/viewer/ViewerActivity.java b/platform_tools/android/apps/viewer/src/main/java/org/skia/viewer/ViewerActivity.java
index 48cec39f48..e115de65b3 100644
--- a/platform_tools/android/apps/viewer/src/main/java/org/skia/viewer/ViewerActivity.java
+++ b/platform_tools/android/apps/viewer/src/main/java/org/skia/viewer/ViewerActivity.java
@@ -9,17 +9,50 @@ package org.skia.viewer;
import android.app.Activity;
import android.os.Bundle;
+import android.util.Log;
+import android.view.GestureDetector;
+import android.view.KeyEvent;
+import android.view.MotionEvent;
import android.view.Surface;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
+import android.view.View;
+
+public class ViewerActivity
+ extends Activity implements SurfaceHolder.Callback, View.OnTouchListener {
+ private static final float FLING_VELOCITY_THRESHOLD = 1000;
-public class ViewerActivity extends Activity implements SurfaceHolder.Callback {
private SurfaceView mView;
private ViewerApplication mApplication;
+ private GestureDetector mGestureDetector;
private native void onSurfaceCreated(long handle, Surface surface);
private native void onSurfaceChanged(long handle, Surface surface);
private native void onSurfaceDestroyed(long handle);
+ private native void onKeyPressed(long handle, int keycode);
+
+ private class GestureListener extends GestureDetector.SimpleOnGestureListener {
+ @Override
+ public boolean onDown(MotionEvent e) {
+ return true;
+ }
+
+ @Override
+ public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
+ if (Math.abs(velocityX) > Math.abs(velocityY)
+ && Math.abs(velocityX) > FLING_VELOCITY_THRESHOLD) {
+ if (velocityX > 0) {
+ // Fling right
+ onKeyPressed(mApplication.getNativeHandle(), KeyEvent.KEYCODE_SOFT_RIGHT);
+ } else {
+ // Fling left
+ onKeyPressed(mApplication.getNativeHandle(), KeyEvent.KEYCODE_SOFT_LEFT);
+ }
+ return true;
+ }
+ return false;
+ }
+ }
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -29,6 +62,9 @@ public class ViewerActivity extends Activity implements SurfaceHolder.Callback {
mApplication = (ViewerApplication) getApplication();
mView = (SurfaceView) findViewById(R.id.surfaceView);
mView.getHolder().addCallback(this);
+
+ mGestureDetector = new GestureDetector(getApplicationContext(), new GestureListener());
+ mView.setOnTouchListener(this);
}
@Override
@@ -51,4 +87,9 @@ public class ViewerActivity extends Activity implements SurfaceHolder.Callback {
onSurfaceDestroyed(mApplication.getNativeHandle());
}
}
+
+ @Override
+ public boolean onTouch(View v, MotionEvent event) {
+ return mGestureDetector.onTouchEvent(event);
+ }
}