aboutsummaryrefslogtreecommitdiffhomepage
path: root/platform_tools
diff options
context:
space:
mode:
authorGravatar ziadb <ziadb@google.com>2018-07-27 15:23:50 -0400
committerGravatar Ziad Ben Hadj-Alouane <ziadb@google.com>2018-07-27 19:47:18 +0000
commit883ed3000e2811b494682d04296f8fce1006f16f (patch)
tree9e7e9bf1a3d9982b2c559bc2c73b951a263df2c6 /platform_tools
parentdb10ed097fea43bc02cf26b11ba1932785ff09ee (diff)
SkAR Java: fixed runtime bugs, better UI
Bug: skia: Change-Id: Ibfee885f5ed655c2f838d637406406da90f0c6fd Reviewed-on: https://skia-review.googlesource.com/144033 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/examples/helloskar/app/FingerPainting.java13
-rw-r--r--platform_tools/android/apps/skar_java/src/main/java/com/google/skar/examples/helloskar/app/HelloCanvasAR.java24
-rw-r--r--platform_tools/android/apps/skar_java/src/main/java/com/google/skar/examples/helloskar/rendering/DrawManager.java6
-rwxr-xr-xplatform_tools/android/apps/skar_java/src/main/res/drawable-xxhdpi/clear.pngbin0 -> 234 bytes
-rw-r--r--platform_tools/android/apps/skar_java/src/main/res/drawable-xxhdpi/splash.pngbin0 -> 269 bytes
-rw-r--r--platform_tools/android/apps/skar_java/src/main/res/layout/activity_main.xml3
-rw-r--r--platform_tools/android/apps/skar_java/src/main/res/menu/main_menu.xml37
-rw-r--r--platform_tools/android/apps/skar_java/src/main/res/menu/platte_bar.xml12
-rw-r--r--platform_tools/android/apps/skar_java/src/main/res/values/strings.xml12
-rw-r--r--platform_tools/android/apps/skar_java/src/main/res/values/styles.xml9
10 files changed, 59 insertions, 57 deletions
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 ac97dfbf77..48b91615d4 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
@@ -84,14 +84,14 @@ 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, GestureHelper.ScrollEvent holdTap) {
+ public boolean computeNextPoint(float[] hitLocation, float[] modelMat, 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
addPoint(new PointF(0, 0), true);
// Get model matrix of first point
- setModelMatrix(modelMatrix);
+ setModelMatrix(modelMat);
} else {
// Else, construct next point given its distance from previous point
float localDistanceScale = 1000;
@@ -111,7 +111,7 @@ public class FingerPainting {
addPoint(p, holdTap.isStartOfScroll);
}
previousGlobalPoint[0] = hitLocation[0];
- previousGlobalPoint[1] = hitLocation[1];
+ previousGlobalPoint[1] = hitLocation[2];
return true;
}
@@ -230,6 +230,8 @@ public class FingerPainting {
if (nbPts == 2) {
p.moveTo(points.get(start).x, points.get(start).y);
p.lineTo(points.get(start + 1).x, points.get(start + 1).y);
+ BuiltPath bp = new BuiltPath(p, c);
+ paths.add(bp);
} else if (nbPts >= 3) {
// Else (3 pts +), essentially run deCasteljau
p.moveTo(points.get(start).x, points.get(start).y);
@@ -243,10 +245,9 @@ public class FingerPainting {
}
p.lineTo(points.get(finish - 1).x, points.get(finish - 1).y);
+ BuiltPath bp = new BuiltPath(p, c);
+ paths.add(bp);
}
-
- BuiltPath bp = new BuiltPath(p, c);
- paths.add(bp);
}
private boolean isEmpty() { return points.isEmpty(); }
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 10527c79de..56480f671a 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
@@ -133,12 +133,14 @@ public class HelloCanvasAR extends AppCompatActivity implements GLSurfaceView.Re
// Canvas Surface View set up
arSurfaceView = findViewById(R.id.canvas_surfaceview);
+ glSurfaceView = findViewById(R.id.gl_surfaceview);
arSurfaceView.bringToFront();
arSurfaceView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
holder = arSurfaceView.getHolder();
// Set up tap listener.
tapHelper = new GestureHelper(this);
+
glSurfaceView.setOnTouchListener(tapHelper);
// Set up renderer.
@@ -308,7 +310,6 @@ public class HelloCanvasAR extends AppCompatActivity implements GLSurfaceView.Re
@Override
public void onDrawFrame(GL10 gl) {
Canvas canvas = null;
- holder = null;
// Clear screen to notify driver it should not load any pixels from previous frame.
GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT | GLES20.GL_DEPTH_BUFFER_BIT);
@@ -392,7 +393,7 @@ public class HelloCanvasAR extends AppCompatActivity implements GLSurfaceView.Re
}
} catch (Throwable t) {
// Avoid crashing the application due to unhandled exceptions.
- if (holder != null && canvas != null) {
+ if (canvas != null) {
holder.unlockCanvasAndPost(canvas);
}
Log.e(TAG, "Exception on the OpenGL thread", t);
@@ -461,7 +462,7 @@ public class HelloCanvasAR extends AppCompatActivity implements GLSurfaceView.Re
Matrix.multiplyMV(hitLocation, 0, modelMatrix, 0,
hitLocation, 0);
- if (! drawManager.fingerPainting.computeNextPoint(hitLocation, holdTap)) {
+ if (! drawManager.fingerPainting.computeNextPoint(hitLocation, modelMatrix, holdTap)) {
// Try to add the next point to the finger painting. If return value
// is false, then keep looping
continue;
@@ -523,19 +524,16 @@ public class HelloCanvasAR extends AppCompatActivity implements GLSurfaceView.Re
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_menu, menu);
+
+ menu.setGroupCheckable(R.id.menu_drawables, true, true);
return true;
}
public boolean onOptionsItemSelected(MenuItem item) {
+ item.setChecked(!item.isChecked());
switch (item.getItemId()) {
- case R.id.reset_paint:
- drawManager.fingerPainting.reset();
- return true;
case R.id.smooth_paint:
- drawManager.drawSmoothPainting = true;
- return true;
- case R.id.rough_paint:
- drawManager.drawSmoothPainting = false;
+ drawManager.drawSmoothPainting = item.isChecked();
return true;
case R.id.draw_circle:
drawManager.currentDrawabletype = DrawManager.DrawingType.circle;
@@ -543,12 +541,12 @@ public class HelloCanvasAR extends AppCompatActivity implements GLSurfaceView.Re
case R.id.draw_rect:
drawManager.currentDrawabletype = DrawManager.DrawingType.rect;
return true;
- case R.id.draw_animation:
- drawManager.currentDrawabletype = DrawManager.DrawingType.animation;
- return true;
case R.id.draw_text:
drawManager.currentDrawabletype = DrawManager.DrawingType.text;
return true;
+ case R.id.draw_animation:
+ drawManager.currentDrawabletype = DrawManager.DrawingType.animation;
+ return true;
default:
return super.onOptionsItemSelected(item);
}
diff --git a/platform_tools/android/apps/skar_java/src/main/java/com/google/skar/examples/helloskar/rendering/DrawManager.java b/platform_tools/android/apps/skar_java/src/main/java/com/google/skar/examples/helloskar/rendering/DrawManager.java
index 16310bddc1..d31c1a5dfe 100644
--- a/platform_tools/android/apps/skar_java/src/main/java/com/google/skar/examples/helloskar/rendering/DrawManager.java
+++ b/platform_tools/android/apps/skar_java/src/main/java/com/google/skar/examples/helloskar/rendering/DrawManager.java
@@ -81,7 +81,7 @@ public class DrawManager {
BitmapFactory.decodeStream(context.getAssets().open(gridDistanceTextureName));
// Set up the shader
planeShader = new BitmapShader(planeTexture, Shader.TileMode.REPEAT,
- Shader.TileMode.REPEAT););
+ Shader.TileMode.REPEAT);
}
/************ ARCore onDrawFrame() calls ********************/
@@ -136,7 +136,7 @@ public class DrawManager {
canvas.save();
canvas.setMatrix(CanvasMatrixUtil.createPerspectiveMatrix(modelMatrices.get(0),
viewMatrix, projectionMatrix, viewportWidth, viewportHeight));
- canvas.drawRoundRect(0,0, 0.5f, 0.5f, radius, radius, p);
+ canvas.drawRoundRect(0,0, 0.2f, 0.2f, radius, radius, p);
canvas.restore();
}
@@ -165,7 +165,7 @@ public class DrawManager {
Paint p = new Paint();
float textSize = 100;
p.setColorFilter(lightFilter);
- p.setARGB(255, 0, 255, 0);
+ p.setARGB(255, 255, 255, 0);
p.setTextSize(textSize);
// TODO: Remove scale matrix and scale text directly. Potential unfixed bug in versions < P
diff --git a/platform_tools/android/apps/skar_java/src/main/res/drawable-xxhdpi/clear.png b/platform_tools/android/apps/skar_java/src/main/res/drawable-xxhdpi/clear.png
new file mode 100755
index 0000000000..b3e45df41d
--- /dev/null
+++ b/platform_tools/android/apps/skar_java/src/main/res/drawable-xxhdpi/clear.png
Binary files differ
diff --git a/platform_tools/android/apps/skar_java/src/main/res/drawable-xxhdpi/splash.png b/platform_tools/android/apps/skar_java/src/main/res/drawable-xxhdpi/splash.png
new file mode 100644
index 0000000000..240b464115
--- /dev/null
+++ b/platform_tools/android/apps/skar_java/src/main/res/drawable-xxhdpi/splash.png
Binary files differ
diff --git a/platform_tools/android/apps/skar_java/src/main/res/layout/activity_main.xml b/platform_tools/android/apps/skar_java/src/main/res/layout/activity_main.xml
index a642a815ef..b6a1c7030d 100644
--- a/platform_tools/android/apps/skar_java/src/main/res/layout/activity_main.xml
+++ b/platform_tools/android/apps/skar_java/src/main/res/layout/activity_main.xml
@@ -43,12 +43,15 @@
android:id="@+id/gl_surfaceview"
android:layout_width="match_parent"
android:layout_height="match_parent" />
+
<android.support.design.widget.BottomNavigationView
android:id="@+id/palette"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
app:menu="@menu/platte_bar"
+ app:itemIconTint="@android:color/black"
+ app:itemTextColor="@android:color/black"
style="@style/BottomNavigation" />
</FrameLayout>
diff --git a/platform_tools/android/apps/skar_java/src/main/res/menu/main_menu.xml b/platform_tools/android/apps/skar_java/src/main/res/menu/main_menu.xml
index 3b96c92651..4e75bc47c7 100644
--- a/platform_tools/android/apps/skar_java/src/main/res/menu/main_menu.xml
+++ b/platform_tools/android/apps/skar_java/src/main/res/menu/main_menu.xml
@@ -17,44 +17,33 @@
-->
<menu xmlns:android="http://schemas.android.com/apk/res/android">
- <group
- android:id="@+id/menu_top">
- <item
- android:id="@+id/reset_paint"
- android:title="Reset Finger Painting"/>
- </group>
- <group
- android:id="@+id/menu_middle"
+ <group android:id="@+id/menu_painting"
android:checkableBehavior="single">
<item
android:id="@+id/smooth_paint"
- android:title="Smooth Painting" />
- <item
- android:id="@+id/rough_paint"
- android:title="Rough Painting" />
+ android:checkable="true"
+ android:checked="true"
+ android:title="@string/menu_painting_smooth" />
</group>
-
- <group
- android:id="@+id/menu_bottom"
- android:checkableBehavior="single">
-
+ <group android:id="@+id/menu_drawables">
<item
android:id="@+id/draw_circle"
- android:title="Circle" >
+ android:checked="true"
+ android:checkable="true"
+ android:title="@string/menu_drawable_circle" >
</item>
<item
android:id="@+id/draw_rect"
- android:title="Rect" >
+ android:title="@string/menu_drawable_rect" >
</item>
<item
- android:id="@+id/draw_animation"
- android:title="Animation" >
+ android:id="@+id/draw_text"
+ android:title="@string/menu_drawable_text" >
</item>
<item
- android:id="@+id/draw_text"
- android:title="Text" >
+ android:id="@+id/draw_animation"
+ android:title="@string/menu_drawable_animation" >
</item>
</group>
-
</menu> \ No newline at end of file
diff --git a/platform_tools/android/apps/skar_java/src/main/res/menu/platte_bar.xml b/platform_tools/android/apps/skar_java/src/main/res/menu/platte_bar.xml
index 0e28cae592..b20ab1ea60 100644
--- a/platform_tools/android/apps/skar_java/src/main/res/menu/platte_bar.xml
+++ b/platform_tools/android/apps/skar_java/src/main/res/menu/platte_bar.xml
@@ -19,11 +19,17 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/palette_red"
- android:title="Red" />
+ android:icon="@drawable/splash"
+ android:iconTint="@android:color/holo_red_dark"
+ android:title="@string/palette_red" />
<item
android:id="@+id/palette_green"
- android:title="Green" />
+ android:icon="@drawable/splash"
+ android:iconTint="@android:color/holo_green_dark"
+ android:title="@string/palette_green" />
<item
android:id="@+id/palette_reset"
- android:title="Reset" />
+ android:icon="@drawable/clear"
+ android:iconTint="@android:color/black"
+ android:title="@string/palette_reset" />
</menu> \ No newline at end of file
diff --git a/platform_tools/android/apps/skar_java/src/main/res/values/strings.xml b/platform_tools/android/apps/skar_java/src/main/res/values/strings.xml
index 4a74851e91..8d636f17fe 100644
--- a/platform_tools/android/apps/skar_java/src/main/res/values/strings.xml
+++ b/platform_tools/android/apps/skar_java/src/main/res/values/strings.xml
@@ -18,4 +18,16 @@
<resources>
<string name="app_name">Hello CanvasAR</string>
+
+ <!-- Palette Strings -->
+ <string name="palette_red">Red</string>
+ <string name="palette_green">Green</string>
+ <string name="palette_reset">Reset Painting</string>
+
+ <!-- Main Menu Strings -->
+ <string name="menu_painting_smooth">Smooth Painting</string>
+ <string name="menu_drawable_circle">Circle</string>
+ <string name="menu_drawable_rect">Rect</string>
+ <string name="menu_drawable_text">Text</string>
+ <string name="menu_drawable_animation">Animation</string>
</resources>
diff --git a/platform_tools/android/apps/skar_java/src/main/res/values/styles.xml b/platform_tools/android/apps/skar_java/src/main/res/values/styles.xml
index 12b2281b57..ced245f41f 100644
--- a/platform_tools/android/apps/skar_java/src/main/res/values/styles.xml
+++ b/platform_tools/android/apps/skar_java/src/main/res/values/styles.xml
@@ -33,15 +33,8 @@
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
</style>
- <style name="QText" parent="Widget.Design.BottomNavigationView">
- <item name="android:textSize">20sp</item>
- <item name="android:textColor">@android:color/holo_red_dark</item>
- <item name="android:textStyle">bold</item>
- <item name="android:typeface">sans</item>
- </style>
-
<style name="BottomNavigation" parent="Widget.Design.BottomNavigationView">
- <item name="itemBackground">@android:color/darker_gray</item>
+ <item name="itemBackground">@android:color/white</item>
</style>
</resources>