diff --git a/Completed/app/build.gradle b/Completed/app/build.gradle
index 58206f2..f16c558 100644
--- a/Completed/app/build.gradle
+++ b/Completed/app/build.gradle
@@ -16,14 +16,14 @@ limitations under the License.
apply plugin: 'com.android.application'
android {
- compileSdkVersion 27
+ compileSdkVersion 28
defaultConfig {
applicationId "com.google.devrel.ar.codelab"
minSdkVersion 24
- targetSdkVersion 27
+ targetSdkVersion 28
versionCode 1
versionName "1.0"
- testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
+ testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
@@ -39,14 +39,14 @@ android {
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
- implementation 'com.android.support:appcompat-v7:27.1.1'
- implementation 'com.android.support.constraint:constraint-layout:1.1.0'
- implementation 'com.android.support:design:27.1.1'
+ implementation 'androidx.appcompat:appcompat:1.1.0'
+ implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
+ implementation 'com.google.android.material:material:1.0.0'
testImplementation 'junit:junit:4.12'
- androidTestImplementation 'com.android.support.test:runner:1.0.2'
- androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
- implementation "com.google.ar.sceneform.ux:sceneform-ux:1.8.0"
- implementation "com.google.ar.sceneform:animation:1.8.0"
+ androidTestImplementation 'androidx.test:runner:1.2.0'
+ androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
+ implementation 'com.google.ar.sceneform.ux:sceneform-ux:1.11.0'
+ implementation 'com.google.ar.sceneform:animation:1.11.0'
}
apply plugin: 'com.google.ar.sceneform.plugin'
diff --git a/Completed/app/src/androidTest/java/com/google/devrel/ar/codelab/ExampleInstrumentedTest.java b/Completed/app/src/androidTest/java/com/google/devrel/ar/codelab/ExampleInstrumentedTest.java
index 1cad292..661b4b1 100644
--- a/Completed/app/src/androidTest/java/com/google/devrel/ar/codelab/ExampleInstrumentedTest.java
+++ b/Completed/app/src/androidTest/java/com/google/devrel/ar/codelab/ExampleInstrumentedTest.java
@@ -16,8 +16,8 @@
package com.google.devrel.ar.codelab;
import android.content.Context;
-import android.support.test.InstrumentationRegistry;
-import android.support.test.runner.AndroidJUnit4;
+import androidx.test.InstrumentationRegistry;
+import androidx.test.runner.AndroidJUnit4;
import org.junit.Test;
import org.junit.runner.RunWith;
diff --git a/Completed/app/src/main/AndroidManifest.xml b/Completed/app/src/main/AndroidManifest.xml
index 3dff2f5..2e0738f 100644
--- a/Completed/app/src/main/AndroidManifest.xml
+++ b/Completed/app/src/main/AndroidManifest.xml
@@ -28,6 +28,9 @@ limitations under the License.
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
+
+
+
-
+
diff --git a/Completed/app/src/main/assets/Cabin.sfb b/Completed/app/src/main/assets/Cabin.sfb
index 3f23606..44c2581 100644
Binary files a/Completed/app/src/main/assets/Cabin.sfb and b/Completed/app/src/main/assets/Cabin.sfb differ
diff --git a/Completed/app/src/main/assets/House.sfb b/Completed/app/src/main/assets/House.sfb
index 0054b6d..00b984a 100644
Binary files a/Completed/app/src/main/assets/House.sfb and b/Completed/app/src/main/assets/House.sfb differ
diff --git a/Completed/app/src/main/assets/andy.sfb b/Completed/app/src/main/assets/andy.sfb
index deb2a40..82dcc25 100644
Binary files a/Completed/app/src/main/assets/andy.sfb and b/Completed/app/src/main/assets/andy.sfb differ
diff --git a/Completed/app/src/main/assets/andy_dance.sfb b/Completed/app/src/main/assets/andy_dance.sfb
index f5f973f..91b5c4c 100644
Binary files a/Completed/app/src/main/assets/andy_dance.sfb and b/Completed/app/src/main/assets/andy_dance.sfb differ
diff --git a/Completed/app/src/main/assets/igloo.sfb b/Completed/app/src/main/assets/igloo.sfb
index cb3e571..c57fbd2 100644
Binary files a/Completed/app/src/main/assets/igloo.sfb and b/Completed/app/src/main/assets/igloo.sfb differ
diff --git a/Completed/app/src/main/java/com/google/devrel/ar/codelab/MainActivity.java b/Completed/app/src/main/java/com/google/devrel/ar/codelab/MainActivity.java
index 16c681e..a1acdc4 100644
--- a/Completed/app/src/main/java/com/google/devrel/ar/codelab/MainActivity.java
+++ b/Completed/app/src/main/java/com/google/devrel/ar/codelab/MainActivity.java
@@ -24,12 +24,12 @@
import android.os.Handler;
import android.os.HandlerThread;
import android.os.Looper;
-import android.support.design.widget.FloatingActionButton;
-import android.support.design.widget.Snackbar;
-import android.support.v4.content.FileProvider;
-import android.support.v7.app.AlertDialog;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.Toolbar;
+import com.google.android.material.floatingactionbutton.FloatingActionButton;
+import com.google.android.material.snackbar.Snackbar;
+import androidx.core.content.FileProvider;
+import androidx.appcompat.app.AlertDialog;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
import android.view.PixelCopy;
import android.view.SurfaceHolder;
import android.view.View;
@@ -80,10 +80,10 @@ public class MainActivity extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
- Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
+ Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
- FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
+ FloatingActionButton fab = findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
@@ -162,7 +162,6 @@ private void takePhoto() {
intent.setDataAndType(photoURI, "image/*");
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivity(intent);
-
});
snackbar.show();
} else {
@@ -194,12 +193,15 @@ private void onUpdate() {
}
}
}
+
private boolean updateTracking() {
Frame frame = fragment.getArSceneView().getArFrame();
boolean wasTracking = isTracking;
- isTracking = frame.getCamera().getTrackingState() == TrackingState.TRACKING;
+ isTracking = frame != null &&
+ frame.getCamera().getTrackingState() == TrackingState.TRACKING;
return isTracking != wasTracking;
}
+
private boolean updateHitTest() {
Frame frame = fragment.getArSceneView().getArFrame();
android.graphics.Point pt = getScreenCenter();
@@ -210,8 +212,8 @@ private boolean updateHitTest() {
hits = frame.hitTest(pt.x, pt.y);
for (HitResult hit : hits) {
Trackable trackable = hit.getTrackable();
- if ((trackable instanceof Plane &&
- ((Plane) trackable).isPoseInPolygon(hit.getHitPose()))) {
+ if (trackable instanceof Plane &&
+ ((Plane) trackable).isPoseInPolygon(hit.getHitPose())) {
isHitting = true;
break;
}
@@ -246,13 +248,14 @@ public boolean onOptionsItemSelected(MenuItem item) {
return super.onOptionsItemSelected(item);
}
+
private void initializeGallery() {
LinearLayout gallery = findViewById(R.id.gallery_layout);
ImageView andy = new ImageView(this);
andy.setImageResource(R.drawable.droid_thumb);
andy.setContentDescription("andy");
- andy.setOnClickListener(view ->{addObject( Uri.parse("andy_dance.sfb"));});
+ andy.setOnClickListener(view ->{addObject(Uri.parse("andy_dance.sfb"));});
gallery.addView(andy);
ImageView cabin = new ImageView(this);
@@ -311,7 +314,6 @@ public void addNodeToScene(Anchor anchor, ModelRenderable renderable) {
startAnimation(node, renderable);
}
-
public void startAnimation(TransformableNode node, ModelRenderable renderable){
if(renderable==null || renderable.getAnimationDataCount() == 0) {
return;
diff --git a/Completed/app/src/main/java/com/google/devrel/ar/codelab/PointerDrawable.java b/Completed/app/src/main/java/com/google/devrel/ar/codelab/PointerDrawable.java
index c2e851c..53c7143 100644
--- a/Completed/app/src/main/java/com/google/devrel/ar/codelab/PointerDrawable.java
+++ b/Completed/app/src/main/java/com/google/devrel/ar/codelab/PointerDrawable.java
@@ -19,21 +19,23 @@
import android.graphics.Color;
import android.graphics.ColorFilter;
import android.graphics.Paint;
+import android.graphics.PixelFormat;
import android.graphics.drawable.Drawable;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
public class PointerDrawable extends Drawable {
private final Paint paint = new Paint();
private boolean enabled;
+
@Override
public void draw(@NonNull Canvas canvas) {
- float cx = canvas.getWidth()/2;
- float cy = canvas.getHeight()/2;
+ float cx = canvas.getWidth() / 2;
+ float cy = canvas.getHeight() / 2;
if (enabled) {
paint.setColor(Color.GREEN);
canvas.drawCircle(cx, cy, 10, paint);
- }else {
+ } else {
paint.setColor(Color.GRAY);
canvas.drawText("X", cx, cy, paint);
}
@@ -51,8 +53,9 @@ public void setColorFilter(@Nullable ColorFilter colorFilter) {
@Override
public int getOpacity() {
- return 0;
+ return PixelFormat.UNKNOWN;
}
+
public boolean isEnabled() {
return enabled;
}
diff --git a/Completed/app/src/main/res/layout/activity_main.xml b/Completed/app/src/main/res/layout/activity_main.xml
index 09ae9fa..999e2e8 100644
--- a/Completed/app/src/main/res/layout/activity_main.xml
+++ b/Completed/app/src/main/res/layout/activity_main.xml
@@ -1,5 +1,5 @@
-
-
-
-
+
-
-
+
diff --git a/Completed/app/src/main/res/layout/content_main.xml b/Completed/app/src/main/res/layout/content_main.xml
index df2290b..1e2de95 100644
--- a/Completed/app/src/main/res/layout/content_main.xml
+++ b/Completed/app/src/main/res/layout/content_main.xml
@@ -1,5 +1,5 @@
-
+ app:layout_constraintVertical_weight="9"/>
+
-
+
diff --git a/Completed/build.gradle b/Completed/build.gradle
index 295685b..cc5952f 100644
--- a/Completed/build.gradle
+++ b/Completed/build.gradle
@@ -22,11 +22,11 @@ buildscript {
jcenter()
}
dependencies {
- classpath 'com.android.tools.build:gradle:3.4.0'
+ classpath 'com.android.tools.build:gradle:3.5.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
- classpath 'com.google.ar.sceneform:plugin:1.8.0'
+ classpath 'com.google.ar.sceneform:plugin:1.11.0'
}
}
allprojects {
diff --git a/Completed/gradle.properties b/Completed/gradle.properties
index 743d692..199d16e 100644
--- a/Completed/gradle.properties
+++ b/Completed/gradle.properties
@@ -11,3 +11,10 @@ org.gradle.jvmargs=-Xmx1536m
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true
+# AndroidX package structure to make it clearer which packages are bundled with the
+# Android operating system, and which are packaged with your app's APK
+# https://developer.android.com/topic/libraries/support-library/androidx-rn
+android.useAndroidX=true
+# Automatically convert third-party libraries to use AndroidX
+android.enableJetifier=true
+
diff --git a/Completed/gradle/wrapper/gradle-wrapper.jar b/Completed/gradle/wrapper/gradle-wrapper.jar
index 7a3265e..f6b961f 100644
Binary files a/Completed/gradle/wrapper/gradle-wrapper.jar and b/Completed/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/Completed/gradle/wrapper/gradle-wrapper.properties b/Completed/gradle/wrapper/gradle-wrapper.properties
index 724f60c..383dfd9 100644
--- a/Completed/gradle/wrapper/gradle-wrapper.properties
+++ b/Completed/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
-#Mon May 06 10:47:02 PDT 2019
+#Sat Sep 07 21:33:18 PDT 2019
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip