aboutsummaryrefslogtreecommitdiffhomepage
path: root/platform_tools
diff options
context:
space:
mode:
authorGravatar ziadb <ziadb@google.com>2018-07-27 11:51:34 -0400
committerGravatar Ziad Ben Hadj-Alouane <ziadb@google.com>2018-07-27 16:01:47 +0000
commit2175f1b1b7af80b7e6d45621cde417796adb4397 (patch)
treea5ebaf74d162756174456fbaf614a22c1551a123 /platform_tools
parent3c9a0c04f243f7c8ed21de8ebb666d0516ff555f (diff)
SkAR Java: minor refactoring to TapHelper (now GestureHelper)
Bug: skia: Change-Id: I1983c6cb1727e86fec91a0c9a5706f26070b1b49 Reviewed-on: https://skia-review.googlesource.com/144021 Reviewed-by: Mike Reed <reed@google.com>
Diffstat (limited to 'platform_tools')
-rw-r--r--platform_tools/android/apps/skar_java/src/main/java/com/google/skar/PaintUtil.java2
-rw-r--r--platform_tools/android/apps/skar_java/src/main/java/com/google/skar/examples/helloskar/app/CanvasARSurfaceView.java3
-rw-r--r--platform_tools/android/apps/skar_java/src/main/java/com/google/skar/examples/helloskar/app/FingerPainting.java7
-rw-r--r--platform_tools/android/apps/skar_java/src/main/java/com/google/skar/examples/helloskar/app/HelloCanvasAR.java10
-rw-r--r--platform_tools/android/apps/skar_java/src/main/java/com/google/skar/examples/helloskar/helpers/GestureHelper.java (renamed from platform_tools/android/apps/skar_java/src/main/java/com/google/skar/examples/helloskar/helpers/TapHelper.java)28
5 files changed, 29 insertions, 21 deletions
diff --git a/platform_tools/android/apps/skar_java/src/main/java/com/google/skar/PaintUtil.java b/platform_tools/android/apps/skar_java/src/main/java/com/google/skar/PaintUtil.java
index b9aaa01730..7665d365ba 100644
--- a/platform_tools/android/apps/skar_java/src/main/java/com/google/skar/PaintUtil.java
+++ b/platform_tools/android/apps/skar_java/src/main/java/com/google/skar/PaintUtil.java
@@ -35,9 +35,11 @@ public class PaintUtil {
*/
public static ColorFilter createLightCorrectionColorFilter(float[] colorCorr) {
float[] colorCorrCopy = Arrays.copyOf(colorCorr, 4);
+
for (int i = 0; i < 3; i++) {
colorCorrCopy[i] *= colorCorrCopy[3] / MIDDLE_GRAY_GAMMA;
}
+
ColorMatrix m = new ColorMatrix();
m.setScale(colorCorrCopy[0], colorCorrCopy[1], colorCorrCopy[2], 1);
return new ColorMatrixColorFilter(m);
diff --git a/platform_tools/android/apps/skar_java/src/main/java/com/google/skar/examples/helloskar/app/CanvasARSurfaceView.java b/platform_tools/android/apps/skar_java/src/main/java/com/google/skar/examples/helloskar/app/CanvasARSurfaceView.java
index 40c789d0a2..efe8acfa1d 100644
--- a/platform_tools/android/apps/skar_java/src/main/java/com/google/skar/examples/helloskar/app/CanvasARSurfaceView.java
+++ b/platform_tools/android/apps/skar_java/src/main/java/com/google/skar/examples/helloskar/app/CanvasARSurfaceView.java
@@ -57,6 +57,5 @@ public class CanvasARSurfaceView extends SurfaceView implements SurfaceHolder.Ca
}
@Override
- public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
- }
+ public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {}
}
diff --git a/platform_tools/android/apps/skar_java/src/main/java/com/google/skar/examples/helloskar/app/FingerPainting.java b/platform_tools/android/apps/skar_java/src/main/java/com/google/skar/examples/helloskar/app/FingerPainting.java
index e4aaf5784b..ac97dfbf77 100644
--- a/platform_tools/android/apps/skar_java/src/main/java/com/google/skar/examples/helloskar/app/FingerPainting.java
+++ b/platform_tools/android/apps/skar_java/src/main/java/com/google/skar/examples/helloskar/app/FingerPainting.java
@@ -19,17 +19,14 @@ package com.google.skar.examples.helloskar.app;
import android.graphics.Color;
import android.graphics.Path;
import android.graphics.PointF;
-import android.util.Log;
-import com.google.skar.examples.helloskar.helpers.TapHelper;
+import com.google.skar.examples.helloskar.helpers.GestureHelper;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.ArrayList;
-
public class FingerPainting {
public static class BuiltPath {
public Path path;
@@ -87,7 +84,7 @@ public class FingerPainting {
* @param holdTap ScrollEvent associated with the hit test that calls this function
* @return true if point was computed and added. False otherwise.
*/
- public boolean computeNextPoint(float[] hitLocation, TapHelper.ScrollEvent holdTap) {
+ public boolean computeNextPoint(float[] hitLocation, GestureHelper.ScrollEvent holdTap) {
if (isEmpty()) {
// If finger painting is empty, then first point is origin. Model matrix
// of the finger painting is the model matrix of the first point
diff --git a/platform_tools/android/apps/skar_java/src/main/java/com/google/skar/examples/helloskar/app/HelloCanvasAR.java b/platform_tools/android/apps/skar_java/src/main/java/com/google/skar/examples/helloskar/app/HelloCanvasAR.java
index d883c693a2..78791fae93 100644
--- a/platform_tools/android/apps/skar_java/src/main/java/com/google/skar/examples/helloskar/app/HelloCanvasAR.java
+++ b/platform_tools/android/apps/skar_java/src/main/java/com/google/skar/examples/helloskar/app/HelloCanvasAR.java
@@ -57,8 +57,8 @@ import com.google.ar.core.examples.java.helloskar.R;
import com.google.skar.examples.helloskar.helpers.CameraPermissionHelper;
import com.google.skar.examples.helloskar.helpers.DisplayRotationHelper;
import com.google.skar.examples.helloskar.helpers.FullScreenHelper;
+import com.google.skar.examples.helloskar.helpers.GestureHelper;
import com.google.skar.examples.helloskar.helpers.SnackbarHelper;
-import com.google.skar.examples.helloskar.helpers.TapHelper;
import com.google.skar.examples.helloskar.rendering.BackgroundRenderer;
import com.google.skar.examples.helloskar.rendering.DrawManager;
@@ -105,7 +105,7 @@ public class HelloCanvasAR extends AppCompatActivity implements GLSurfaceView.Re
private boolean installRequested;
private final SnackbarHelper messageSnackbarHelper = new SnackbarHelper();
private DisplayRotationHelper displayRotationHelper;
- private TapHelper tapHelper;
+ private GestureHelper tapHelper;
// Temporary matrix allocated here to reduce number of allocations for each frame.
private final float[] anchorMatrix = new float[16];
@@ -138,7 +138,7 @@ public class HelloCanvasAR extends AppCompatActivity implements GLSurfaceView.Re
holder = arSurfaceView.getHolder();
// Set up tap listener.
- tapHelper = new TapHelper(this);
+ tapHelper = new GestureHelper(this);
glSurfaceView.setOnTouchListener(tapHelper);
// Set up renderer.
@@ -439,9 +439,9 @@ public class HelloCanvasAR extends AppCompatActivity implements GLSurfaceView.Re
*/
private void handleHoldTaps(Frame frame, Camera camera) {
// Building finger painting
- TapHelper.ScrollEvent holdTap = tapHelper.holdPoll();
+ GestureHelper.ScrollEvent holdTap = tapHelper.holdPoll();
if (holdTap != null && camera.getTrackingState() == TrackingState.TRACKING) {
- for (HitResult hit : frame.hitTest(holdTap.e)) {
+ for (HitResult hit : frame.hitTest(holdTap.event)) {
// Check if any plane was hit, and if it was hit inside the plane polygon
Trackable trackable = hit.getTrackable();
// Creates an anchor if a plane or an oriented point was hit.
diff --git a/platform_tools/android/apps/skar_java/src/main/java/com/google/skar/examples/helloskar/helpers/TapHelper.java b/platform_tools/android/apps/skar_java/src/main/java/com/google/skar/examples/helloskar/helpers/GestureHelper.java
index 6dcfd8fb13..2cd195fdb1 100644
--- a/platform_tools/android/apps/skar_java/src/main/java/com/google/skar/examples/helloskar/helpers/TapHelper.java
+++ b/platform_tools/android/apps/skar_java/src/main/java/com/google/skar/examples/helloskar/helpers/GestureHelper.java
@@ -25,32 +25,35 @@ import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;
/**
- * Helper to detect taps using Android GestureDetector, and pass the taps between UI thread and
+ * Helper to detect gestures using Android GestureDetector, and pass the taps between UI thread and
* render thread.
*/
-public final class TapHelper implements OnTouchListener {
+
+public final class GestureHelper implements OnTouchListener {
private final GestureDetector gestureDetector;
private final BlockingQueue<MotionEvent> queuedSingleTaps = new ArrayBlockingQueue<>(16);
private final BlockingQueue<ScrollEvent> queuedFingerHold = new ArrayBlockingQueue<>(16);
private boolean isScrolling = false;
private boolean previousScroll = true;
+ // Struct holding a MotionEvent obtained from onScroll() callbacks, and a boolean evaluating to
+ // true if the MotionEven was the start of the scrolling motion
public static class ScrollEvent {
- public MotionEvent e;
+ public MotionEvent event;
public boolean isStartOfScroll;
public ScrollEvent(MotionEvent e, boolean isStartOfScroll) {
- this.e = e;
+ this.event = e;
this.isStartOfScroll = isStartOfScroll;
}
}
/**
- * Creates the tap helper.
+ * Creates the gesture helper.
*
* @param context the application's context.
*/
- public TapHelper(Context context) {
+ public GestureHelper(Context context) {
gestureDetector =
new GestureDetector(
context,
@@ -63,13 +66,15 @@ public final class TapHelper implements OnTouchListener {
}
@Override
- public boolean onScroll (MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
+ public boolean onScroll (MotionEvent e1, MotionEvent e2,
+ float distanceX, float distanceY) {
// Queue motion events when scrolling
if (e2.getPointerCount() == 1 && e1.getPointerCount() == 1) {
previousScroll = isScrolling;
isScrolling = true;
- queuedFingerHold.offer(new ScrollEvent(e2, isStartedScrolling()));
+ queuedFingerHold.offer(new ScrollEvent(e2,
+ isStartedScrolling()));
return true;
}
@@ -93,13 +98,18 @@ public final class TapHelper implements OnTouchListener {
return queuedSingleTaps.poll();
}
+ /**
+ * Polls for a scrolling motion.
+ *
+ * @return if a scrolling event was queued, a ScrollEvent for the gesture. Otherwise null
+ */
public ScrollEvent holdPoll() { return queuedFingerHold.poll(); }
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
boolean val = gestureDetector.onTouchEvent(motionEvent);
- // If finger is up + is scrolling: don't scroll anymore, and empty Touch Hold queue
+ // If finger is up + is scrolling: don't scroll anymore, and empty touch hold queue
if (motionEvent.getAction() == MotionEvent.ACTION_UP && isScrolling) {
previousScroll = true;
isScrolling = false;