WearAccessibilityApp - Updates to latest libraries and MessagingStyles.

Bug: 129548613
Test: Manually tested.
Change-Id: Ic1c4931459407be7fb2b9e7917d57a0a9f3a7089
diff --git a/wearable/wear/WearAccessibilityApp/Wearable/build.gradle b/wearable/wear/WearAccessibilityApp/Wearable/build.gradle
index e5ee2ff..c8e23bb 100644
--- a/wearable/wear/WearAccessibilityApp/Wearable/build.gradle
+++ b/wearable/wear/WearAccessibilityApp/Wearable/build.gradle
@@ -6,7 +6,7 @@
     }
 
     dependencies {
-        classpath 'com.android.tools.build:gradle:3.1.3'
+        classpath 'com.android.tools.build:gradle:3.3.2'
     }
 }
 
@@ -21,17 +21,19 @@
 
 dependencies {
 
-    implementation 'com.android.support:wear:27.1.0'
-    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
-    implementation 'com.android.support:appcompat-v7:27.1.0'
+    implementation 'androidx.wear:wear:1.0.0'
+    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
+    implementation 'androidx.legacy:legacy-support-v13:1.0.0'
+    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
+    implementation 'androidx.appcompat:appcompat:1.0.2'
 
 
-    implementation 'com.google.android.gms:play-services-wearable:15.0.1'
-    implementation 'com.android.support:support-v13:27.1.1'
+    implementation 'com.google.android.gms:play-services-wearable:16.0.1'
 
-    compileOnly 'com.google.android.wearable:wearable:2.3.0'
 
-    implementation 'com.google.android.support:wearable:2.3.0'
+    compileOnly 'com.google.android.wearable:wearable:2.4.0'
+
+    implementation 'com.google.android.support:wearable:2.4.0'
 
 }
 
@@ -45,9 +47,9 @@
 
 android {
 
-    compileSdkVersion 26
+    compileSdkVersion 28
 
-    buildToolsVersion "27.0.3"
+    buildToolsVersion "28.0.3"
 
     defaultConfig {
         versionCode 1
@@ -55,7 +57,7 @@
 
         minSdkVersion 24
 
-        targetSdkVersion 26
+        targetSdkVersion 28
 
         multiDexEnabled true
 
diff --git a/wearable/wear/WearAccessibilityApp/Wearable/src/main/AndroidManifest.xml b/wearable/wear/WearAccessibilityApp/Wearable/src/main/AndroidManifest.xml
index 3c7fcaf..6e936d6 100644
--- a/wearable/wear/WearAccessibilityApp/Wearable/src/main/AndroidManifest.xml
+++ b/wearable/wear/WearAccessibilityApp/Wearable/src/main/AndroidManifest.xml
@@ -17,8 +17,6 @@
 <manifest package="com.example.android.wearable.wear.wearaccessibilityapp"
           xmlns:android="http://schemas.android.com/apk/res/android">
 
-    <uses-sdk android:minSdkVersion="14"/>
-
     <uses-feature android:name="android.hardware.type.watch"/>
 
     <!-- Required for Always-on. -->
diff --git a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/AccessibilityActivity.java b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/AccessibilityActivity.java
index d982d12..319fa34 100644
--- a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/AccessibilityActivity.java
+++ b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/AccessibilityActivity.java
@@ -19,12 +19,14 @@
 import android.content.Intent;
 import android.os.Bundle;
 import android.provider.Settings;
-import android.support.wear.ambient.AmbientMode;
 import android.view.View;
 import android.view.View.OnClickListener;
 import android.widget.ImageView;
 import android.widget.TextView;
 
+import androidx.wear.ambient.AmbientMode;
+
+
 public class AccessibilityActivity extends Activity implements AmbientMode.AmbientCallbackProvider {
     @Override
     protected void onCreate(Bundle savedInstanceState) {
diff --git a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/AppItem.java b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/AppItem.java
index ee1002b..7c713c0 100644
--- a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/AppItem.java
+++ b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/AppItem.java
@@ -52,6 +52,9 @@
     }
 
     public void launchActivity(Context context) {
-        context.startActivity(new Intent(context, mClass));
+        Intent intent = new Intent(context, mClass);
+        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+
+        context.startActivity(intent);
     }
 }
diff --git a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/AppItemListViewAdapter.java b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/AppItemListViewAdapter.java
index 372f995..e82cafe 100644
--- a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/AppItemListViewAdapter.java
+++ b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/AppItemListViewAdapter.java
@@ -16,8 +16,6 @@
 package com.example.android.wearable.wear.wearaccessibilityapp;
 
 import android.content.Context;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -25,6 +23,9 @@
 import android.widget.ImageView;
 import android.widget.TextView;
 
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
 import java.util.List;
 
 public class AppItemListViewAdapter extends ArrayAdapter<AppItem> {
diff --git a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/ControlsActivity.java b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/ControlsActivity.java
index 5cb897e..91dd127 100644
--- a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/ControlsActivity.java
+++ b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/ControlsActivity.java
@@ -17,8 +17,9 @@
 
 import android.os.Bundle;
 import android.preference.PreferenceFragment;
-import android.support.v4.app.FragmentActivity;
-import android.support.wear.ambient.AmbientModeSupport;
+
+import androidx.fragment.app.FragmentActivity;
+import androidx.wear.ambient.AmbientModeSupport;
 
 public class ControlsActivity extends FragmentActivity implements
         AmbientModeSupport.AmbientCallbackProvider {
diff --git a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/DialogsActivity.java b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/DialogsActivity.java
index e17476c..41825dc 100644
--- a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/DialogsActivity.java
+++ b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/DialogsActivity.java
@@ -20,8 +20,6 @@
 import android.content.DialogInterface.OnClickListener;
 import android.content.Intent;
 import android.os.Bundle;
-import android.support.v4.app.FragmentActivity;
-import android.support.wear.ambient.AmbientModeSupport;
 import android.support.wearable.view.AcceptDenyDialog;
 import android.support.wearable.view.WearableDialogHelper.DialogBuilder;
 import android.view.LayoutInflater;
@@ -30,6 +28,9 @@
 import android.widget.ListView;
 import android.widget.TextView;
 
+import androidx.fragment.app.FragmentActivity;
+import androidx.wear.ambient.AmbientModeSupport;
+
 import java.util.ArrayList;
 import java.util.List;
 import java.util.function.Supplier;
diff --git a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/FullScreenActivity.java b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/FullScreenActivity.java
index f254e28..bee3277 100644
--- a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/FullScreenActivity.java
+++ b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/FullScreenActivity.java
@@ -16,8 +16,9 @@
 package com.example.android.wearable.wear.wearaccessibilityapp;
 
 import android.os.Bundle;
-import android.support.v4.app.FragmentActivity;
-import android.support.wear.ambient.AmbientModeSupport;
+
+import androidx.fragment.app.FragmentActivity;
+import androidx.wear.ambient.AmbientModeSupport;
 
 public class FullScreenActivity extends FragmentActivity implements
         AmbientModeSupport.AmbientCallbackProvider {
diff --git a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/GlobalNotificationBuilder.java b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/GlobalNotificationBuilder.java
index 812ed94..c77d623 100644
--- a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/GlobalNotificationBuilder.java
+++ b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/GlobalNotificationBuilder.java
@@ -15,7 +15,7 @@
  */
 package com.example.android.wearable.wear.wearaccessibilityapp;
 
-import android.support.v4.app.NotificationCompat;
+import androidx.core.app.NotificationCompat;
 
 /**
  * We use a Singleton for a global copy of the NotificationCompat.Builder to update active
diff --git a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/ImagesActivity.java b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/ImagesActivity.java
index dcb9504..f9334de 100644
--- a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/ImagesActivity.java
+++ b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/ImagesActivity.java
@@ -19,10 +19,11 @@
 import android.graphics.drawable.AnimatedVectorDrawable;
 import android.graphics.drawable.Drawable;
 import android.os.Bundle;
-import android.support.v4.app.FragmentActivity;
-import android.support.wear.ambient.AmbientModeSupport;
 import android.widget.ImageView;
 
+import androidx.fragment.app.FragmentActivity;
+import androidx.wear.ambient.AmbientModeSupport;
+
 public class ImagesActivity extends FragmentActivity implements
         AmbientModeSupport.AmbientCallbackProvider {
     private AnimatedVectorDrawable mAnimatedVectorDrawableSwipe;
diff --git a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/InLineActivity.java b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/InLineActivity.java
index 275f544..25a2011 100644
--- a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/InLineActivity.java
+++ b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/InLineActivity.java
@@ -21,8 +21,9 @@
 import android.preference.PreferenceFragment;
 import android.preference.PreferenceScreen;
 import android.preference.SwitchPreference;
-import android.support.v4.app.FragmentActivity;
-import android.support.wear.ambient.AmbientModeSupport;
+
+import androidx.fragment.app.FragmentActivity;
+import androidx.wear.ambient.AmbientModeSupport;
 
 public class InLineActivity extends FragmentActivity implements
         AmbientModeSupport.AmbientCallbackProvider {
diff --git a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/ListOfGraphicsActivity.java b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/ListOfGraphicsActivity.java
index 1d70066..e0aff85 100644
--- a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/ListOfGraphicsActivity.java
+++ b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/ListOfGraphicsActivity.java
@@ -16,14 +16,15 @@
 package com.example.android.wearable.wear.wearaccessibilityapp;
 
 import android.os.Bundle;
-import android.support.v4.app.FragmentActivity;
-import android.support.wear.ambient.AmbientModeSupport;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.widget.AdapterView;
 import android.widget.ListView;
 import android.widget.TextView;
 
+import androidx.fragment.app.FragmentActivity;
+import androidx.wear.ambient.AmbientModeSupport;
+
 import java.util.ArrayList;
 import java.util.List;
 
diff --git a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/ListViewAdapter.java b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/ListViewAdapter.java
index 41b18d8..8899b4e 100644
--- a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/ListViewAdapter.java
+++ b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/ListViewAdapter.java
@@ -16,8 +16,6 @@
 package com.example.android.wearable.wear.wearaccessibilityapp;
 
 import android.content.Context;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -25,6 +23,9 @@
 import android.widget.ImageView;
 import android.widget.TextView;
 
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
 import java.util.List;
 
 public class ListViewAdapter<T extends Item> extends ArrayAdapter<T> {
diff --git a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/ListsActivity.java b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/ListsActivity.java
index bd9d773..6680900 100644
--- a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/ListsActivity.java
+++ b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/ListsActivity.java
@@ -16,14 +16,15 @@
 package com.example.android.wearable.wear.wearaccessibilityapp;
 
 import android.os.Bundle;
-import android.support.v4.app.FragmentActivity;
-import android.support.wear.ambient.AmbientModeSupport;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.widget.AdapterView;
 import android.widget.ListView;
 import android.widget.TextView;
 
+import androidx.fragment.app.FragmentActivity;
+import androidx.wear.ambient.AmbientModeSupport;
+
 import java.util.ArrayList;
 import java.util.List;
 
diff --git a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/ListsItem.java b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/ListsItem.java
index 42e8464..57be950 100644
--- a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/ListsItem.java
+++ b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/ListsItem.java
@@ -33,6 +33,9 @@
     }
 
     public void launchActivity(Context context) {
-        context.startActivity(new Intent(context, mClass));
+        Intent intent = new Intent(context, mClass);
+        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+
+        context.startActivity(intent);
     }
 }
diff --git a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/LongListActivity.java b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/LongListActivity.java
index 4240397..c1255e6 100644
--- a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/LongListActivity.java
+++ b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/LongListActivity.java
@@ -17,14 +17,15 @@
 
 import android.os.Bundle;
 import android.os.Handler;
-import android.support.v4.app.FragmentActivity;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.v7.widget.RecyclerView;
-import android.support.wear.ambient.AmbientModeSupport;
-import android.support.wear.widget.WearableRecyclerView;
-import android.support.wear.widget.drawer.WearableActionDrawerView;
 import android.view.View;
 
+import androidx.fragment.app.FragmentActivity;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+import androidx.wear.ambient.AmbientModeSupport;
+import androidx.wear.widget.WearableRecyclerView;
+import androidx.wear.widget.drawer.WearableActionDrawerView;
+
 import com.example.android.wearable.wear.wearaccessibilityapp.LongListRecyclerViewAdapter.SwitchChangeListener;
 
 import java.util.ArrayList;
diff --git a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/LongListRecyclerViewAdapter.java b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/LongListRecyclerViewAdapter.java
index 96b273a..27681b3 100644
--- a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/LongListRecyclerViewAdapter.java
+++ b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/LongListRecyclerViewAdapter.java
@@ -16,8 +16,6 @@
 package com.example.android.wearable.wear.wearaccessibilityapp;
 
 import android.content.Context;
-import android.support.v7.widget.RecyclerView;
-import android.support.v7.widget.RecyclerView.ViewHolder;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.View.OnClickListener;
@@ -26,6 +24,9 @@
 import android.widget.Switch;
 import android.widget.TextView;
 
+import androidx.recyclerview.widget.RecyclerView;
+import androidx.recyclerview.widget.RecyclerView.ViewHolder;
+
 import java.util.List;
 
 public class LongListRecyclerViewAdapter
diff --git a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/MainActivity.java b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/MainActivity.java
index 4bbfacd..370c0e5 100644
--- a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/MainActivity.java
+++ b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/MainActivity.java
@@ -16,10 +16,11 @@
 package com.example.android.wearable.wear.wearaccessibilityapp;
 
 import android.os.Bundle;
-import android.support.v4.app.FragmentActivity;
-import android.support.wear.ambient.AmbientModeSupport;
-import android.support.wear.widget.WearableLinearLayoutManager;
-import android.support.wear.widget.WearableRecyclerView;
+
+import androidx.fragment.app.FragmentActivity;
+import androidx.wear.ambient.AmbientModeSupport;
+import androidx.wear.widget.WearableLinearLayoutManager;
+import androidx.wear.widget.WearableRecyclerView;
 
 import java.util.ArrayList;
 import java.util.List;
diff --git a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/MenuRecyclerViewAdapter.java b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/MenuRecyclerViewAdapter.java
index e536762..3e57c00 100644
--- a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/MenuRecyclerViewAdapter.java
+++ b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/MenuRecyclerViewAdapter.java
@@ -16,14 +16,15 @@
 package com.example.android.wearable.wear.wearaccessibilityapp;
 
 import android.content.Context;
-import android.support.v7.widget.RecyclerView;
-import android.support.v7.widget.RecyclerView.ViewHolder;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.ImageView;
 import android.widget.TextView;
 
+import androidx.recyclerview.widget.RecyclerView;
+import androidx.recyclerview.widget.RecyclerView.ViewHolder;
+
 import java.util.List;
 
 public class MenuRecyclerViewAdapter extends RecyclerView.Adapter<MenuRecyclerViewAdapter.Holder> {
diff --git a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/MessagingIntentService.java b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/MessagingIntentService.java
index b8e998f..980dcbc 100644
--- a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/MessagingIntentService.java
+++ b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/MessagingIntentService.java
@@ -21,12 +21,15 @@
 import android.content.Intent;
 import android.graphics.BitmapFactory;
 import android.os.Bundle;
-import android.support.v4.app.NotificationCompat;
-import android.support.v4.app.NotificationCompat.MessagingStyle;
-import android.support.v4.app.NotificationManagerCompat;
-import android.support.v4.app.RemoteInput;
 import android.util.Log;
 
+import androidx.core.app.NotificationCompat;
+import androidx.core.app.NotificationCompat.MessagingStyle;
+import androidx.core.app.NotificationManagerCompat;
+import androidx.core.app.Person;
+import androidx.core.app.RemoteInput;
+import androidx.core.content.ContextCompat;
+
 /**
  * Asynchronously handles updating messaging app posts (and active Notification) with replies from
  * user in a conversation. Notification for social app use MessagingStyle.
@@ -100,8 +103,9 @@
                     NotificationCompat.MessagingStyle.extractMessagingStyleFromNotification(
                             notification);
 
-            // Add new message to the MessagingStyle
-            messagingStyle.addMessage(replyCharSequence, System.currentTimeMillis(), null);
+            // Add new message to the MessagingStyle. Set last parameter to null for responses
+            // from user.
+            messagingStyle.addMessage(replyCharSequence, System.currentTimeMillis(), (Person) null);
 
             // Updates the Notification
             notification = notificationCompatBuilder.setStyle(messagingStyle).build();
@@ -130,51 +134,52 @@
      */
     private NotificationCompat.Builder recreateBuilderWithMessagingStyle() {
 
-        // Main steps for building a MESSAGING_STYLE notification (for more detailed comments on
-        // building this notification, check StandaloneMainActivity.java)::
+        // Main steps for building a MESSAGING_STYLE notification:
         //      0. Get your data
-        //      1. Build the MESSAGING_STYLE
-        //      2. Add support for Wear 1.+
+        //      1. Create Notification Channel for O and beyond devices (26+)
+        //      2. Build the MESSAGING_STYLE
         //      3. Set up main Intent for notification
         //      4. Set up RemoteInput (users can input directly from notification)
         //      5. Build and issue the notification
 
-        // 0. Get your data (everything unique per Notification)
+        // 0. Get your data (everything unique per Notification).
         MockDatabase.MessagingStyleCommsAppData messagingStyleCommsAppData =
-                MockDatabase.getMessagingStyleData();
+                MockDatabase.getMessagingStyleData(getApplicationContext());
 
-        // 1. Build the Notification.Style (MESSAGING_STYLE)
+        // 1. Retrieve Notification Channel for O and beyond devices (26+). We don't need to create
+        //    the NotificationChannel, since it was created the first time this Notification was
+        //    created.
+        String notificationChannelId = messagingStyleCommsAppData.getChannelId();
+
+        // 2. Build the Notification.Style (MESSAGING_STYLE).
         String contentTitle = messagingStyleCommsAppData.getContentTitle();
 
         MessagingStyle messagingStyle =
-                new NotificationCompat.MessagingStyle(messagingStyleCommsAppData.getReplayName())
+                new NotificationCompat.MessagingStyle(messagingStyleCommsAppData.getMe())
+                        /*
+                         * <p>This API's behavior was changed in SDK version
+                         * {@link Build.VERSION_CODES#P}. If your application's target version is
+                         * less than {@link Build.VERSION_CODES#P}, setting a conversation title to
+                         * a non-null value will make {@link #isGroupConversation()} return
+                         * {@code true} and passing {@code null} will make it return {@code false}.
+                         * This behavior can be overridden by calling
+                         * {@link #setGroupConversation(boolean)} regardless of SDK version.
+                         * In {@code P} and above, this method does not affect group conversation
+                         * settings.
+                         *
+                         * In our case, we use the same title.
+                         */
                         .setConversationTitle(contentTitle);
 
-        // Adds all Messages
+        // Adds all Messages.
+        // Note: Messages include the text, timestamp, and sender.
         for (MessagingStyle.Message message : messagingStyleCommsAppData.getMessages()) {
             messagingStyle.addMessage(message);
         }
 
-        // 2. Add support for Wear 1.+.
-        String fullMessageForWearVersion1 = messagingStyleCommsAppData.getFullConversation();
+        messagingStyle.setGroupConversation(messagingStyleCommsAppData.isGroupConversation());
 
-        Notification chatHistoryForWearV1 =
-                new NotificationCompat.Builder(getApplicationContext())
-                        .setStyle(
-                                new NotificationCompat.BigTextStyle()
-                                        .bigText(fullMessageForWearVersion1))
-                        .setContentTitle(contentTitle)
-                        .setSmallIcon(R.drawable.watch)
-                        .setContentText(fullMessageForWearVersion1)
-                        .build();
-
-        // Adds page with all text to support Wear 1.+.
-        NotificationCompat.WearableExtender wearableExtenderForWearVersion1 =
-                new NotificationCompat.WearableExtender()
-                        .setHintContentIntentLaunchesActivity(true)
-                        .addPage(chatHistoryForWearV1);
-
-        // 3. Set up main Intent for notification
+        // 3. Set up main Intent for notification.
         Intent notifyIntent = new Intent(this, MessagingMainActivity.class);
 
         PendingIntent mainPendingIntent =
@@ -182,58 +187,83 @@
 
         // 4. Set up a RemoteInput Action, so users can input (keyboard, drawing, voice) directly
         // from the notification without entering the app.
+
+        // Create the RemoteInput specifying this key.
         String replyLabel = getString(R.string.reply_label);
         RemoteInput remoteInput =
                 new RemoteInput.Builder(MessagingIntentService.EXTRA_REPLY)
                         .setLabel(replyLabel)
+                        // Use machine learning to create responses based on previous messages.
+                        .setChoices(messagingStyleCommsAppData.getReplyChoicesBasedOnLastMessage())
                         .build();
 
+        // Create PendingIntent for service that handles input.
         Intent replyIntent = new Intent(this, MessagingIntentService.class);
         replyIntent.setAction(MessagingIntentService.ACTION_REPLY);
         PendingIntent replyActionPendingIntent = PendingIntent.getService(this, 0, replyIntent, 0);
 
         // Enable action to appear inline on Wear 2.0 (24+). This means it will appear over the
         // lower portion of the Notification for easy action (only possible for one action).
-        final NotificationCompat.Action.WearableExtender inlineActionForWear2_0 =
+        final NotificationCompat.Action.WearableExtender inlineActionForWear2 =
                 new NotificationCompat.Action.WearableExtender()
                         .setHintDisplayActionInline(true)
                         .setHintLaunchesActivity(false);
 
         NotificationCompat.Action replyAction =
                 new NotificationCompat.Action.Builder(
-                                R.drawable.reply, replyLabel, replyActionPendingIntent)
+                        R.drawable.reply,
+                        replyLabel,
+                        replyActionPendingIntent)
                         .addRemoteInput(remoteInput)
-                        // Allows system to generate replies by context of conversation
+                        // Informs system we aren't bringing up our own custom UI for a reply
+                        // action.
+                        .setShowsUserInterface(false)
+                        // Allows system to generate replies by context of conversation.
                         .setAllowGeneratedReplies(true)
-                        // Add WearableExtender to enable inline actions
-                        .extend(inlineActionForWear2_0)
+                        // Add WearableExtender to enable inline actions.
+                        .setSemanticAction(NotificationCompat.Action.SEMANTIC_ACTION_REPLY)
+                        .extend(inlineActionForWear2)
                         .build();
 
-        // 5. Build and issue the notification
+        // 5. Build and issue the notification.
+
+        // Notification Channel Id is ignored for Android pre O (26).
         NotificationCompat.Builder notificationCompatBuilder =
-                new NotificationCompat.Builder(getApplicationContext());
+                new NotificationCompat.Builder(getApplicationContext(), notificationChannelId);
 
         GlobalNotificationBuilder.setNotificationCompatBuilderInstance(notificationCompatBuilder);
 
-        // Builds and issues notification
         notificationCompatBuilder
+                // MESSAGING_STYLE sets title and content for Wear 1.+ and Wear 2.0 devices.
                 .setStyle(messagingStyle)
                 .setContentTitle(contentTitle)
                 .setContentText(messagingStyleCommsAppData.getContentText())
                 .setSmallIcon(R.drawable.watch)
                 .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.avatar))
                 .setContentIntent(mainPendingIntent)
+                .setDefaults(NotificationCompat.DEFAULT_ALL)
+                // Set primary color (important for Wear 2.0 Notifications).
+                .setColor(ContextCompat.getColor(getApplicationContext(), R.color.background))
+
+                // Number of new notifications for API <24 (Wear 1.+) devices.
                 .setSubText(Integer.toString(messagingStyleCommsAppData.getNumberOfNewMessages()))
                 .addAction(replyAction)
                 .setCategory(Notification.CATEGORY_MESSAGE)
-                .setPriority(Notification.PRIORITY_HIGH)
-                .setVisibility(Notification.VISIBILITY_PRIVATE)
-                .extend(wearableExtenderForWearVersion1);
 
-        for (String name : messagingStyleCommsAppData.getParticipants()) {
-            notificationCompatBuilder.addPerson(name);
+                // Sets priority for 25 and below. For 26 and above, 'priority' is deprecated for
+                // 'importance' which is set in the NotificationChannel. The integers representing
+                // 'priority' are different from 'importance', so make sure you don't mix them.
+                .setPriority(messagingStyleCommsAppData.getPriority())
+
+                // Sets lock-screen visibility for 25 and below. For 26 and above, lock screen
+                // visibility is set in the NotificationChannel.
+                .setVisibility(messagingStyleCommsAppData.getChannelLockscreenVisibility());
+
+        // If the phone is in "Do not disturb" mode, the user may still be notified if the
+        // sender(s) are in a group allowed through "Do not disturb" by the user.
+        for (Person person : messagingStyleCommsAppData.getParticipants()) {
+            notificationCompatBuilder.addPerson(person.getUri());
         }
-
         return notificationCompatBuilder;
     }
 }
diff --git a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/MessagingMainActivity.java b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/MessagingMainActivity.java
index b3d6464..81fed8f 100644
--- a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/MessagingMainActivity.java
+++ b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/MessagingMainActivity.java
@@ -19,7 +19,8 @@
 import android.app.NotificationManager;
 import android.content.Context;
 import android.os.Bundle;
-import android.support.wear.ambient.AmbientMode;
+
+import androidx.wear.ambient.AmbientMode;
 
 /**
  * Template class meant to include functionality for your Messaging App. (This project's main focus
diff --git a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/MockDatabase.java b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/MockDatabase.java
index 421a719..1b70e03 100644
--- a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/MockDatabase.java
+++ b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/MockDatabase.java
@@ -16,105 +16,135 @@
 package com.example.android.wearable.wear.wearaccessibilityapp;
 
 import android.app.NotificationManager;
-import android.support.v4.app.NotificationCompat;
-import android.support.v4.app.NotificationCompat.MessagingStyle;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.net.Uri;
+
+import androidx.core.app.NotificationCompat;
+import androidx.core.app.NotificationCompat.MessagingStyle;
+import androidx.core.app.Person;
+import androidx.core.graphics.drawable.IconCompat;
 
 import java.util.ArrayList;
 
 /** Mock data for each of the Notification Style Demos. */
 public final class MockDatabase {
 
-    public static MessagingStyleCommsAppData getMessagingStyleData() {
-        return MessagingStyleCommsAppData.getInstance();
+    /**
+     * Returns object containing all information to create a Messaging.Style Notification.
+     * @param context
+     * @return
+     */
+    public static MessagingStyleCommsAppData getMessagingStyleData(Context context) {
+        return MessagingStyleCommsAppData.getInstance(context);
     }
 
     /** Represents data needed for MessagingStyle Notification. */
-    public static class MessagingStyleCommsAppData {
+    public static class MessagingStyleCommsAppData extends MockNotificationData {
 
         private static MessagingStyleCommsAppData sInstance = null;
 
-        // Standard notification values
-        protected String mContentTitle;
-        protected String mContentText;
-        protected int mPriority;
+        // Unique data for this Notification.Style:
+        private ArrayList<MessagingStyle.Message> mMessages;
+        // String of all mMessages.
+        private String mFullConversation;
+        // Name preferred when replying to chat.
+        private Person mMe;
+        private ArrayList<Person> mParticipants;
 
-        // Style notification values
-        protected ArrayList<MessagingStyle.Message> mMessages;
-        // Basically, String of all mMessages
-        protected String mFullConversation;
-        // Name preferred when replying to chat
-        protected String mReplayName;
-        protected int mNumberOfNewMessages;
-        protected ArrayList<String> mParticipants;
+        private CharSequence[] mReplyChoicesBasedOnLastMessages;
 
-        // Notification channel values (O and above):
-        protected String mChannelId;
-        protected CharSequence mChannelName;
-        protected String mChannelDescription;
-        protected int mChannelImportance;
-        protected boolean mChannelEnableVibrate;
-        protected int mChannelLockscreenVisibility;
-
-        public static MessagingStyleCommsAppData getInstance() {
+        /**
+         * Returns singleton version of Messaging.Style data.
+         */
+        public static MessagingStyleCommsAppData getInstance(Context context) {
             if (sInstance == null) {
-                sInstance = getSync();
+                sInstance = getSync(context);
             }
             return sInstance;
         }
 
-        private static synchronized MessagingStyleCommsAppData getSync() {
+        private static synchronized MessagingStyleCommsAppData getSync(Context context) {
             if (sInstance == null) {
-                sInstance = new MessagingStyleCommsAppData();
+                sInstance = new MessagingStyleCommsAppData(context);
             }
 
             return sInstance;
         }
 
-        private MessagingStyleCommsAppData() {
-            // Standard notification values
-            // Content for API <24 (M and below) devices
-            mContentTitle = "2 Messages w/ Famous McFamously";
-            mContentText = "Dude! ... You know I am a Pesce-pescetarian. :P";
+        private MessagingStyleCommsAppData(Context context) {
+            // Standard notification values:
+            // Content for API <24 (M and below) devices.
+            // Note: I am actually hardcoding these Strings based on info below. You would be
+            // pulling these values from the same source in your database. I leave this up here, so
+            // you can see the standard parts of a Notification first.
+            mContentTitle = "3 Messages w/ Famous, Wendy";
+            mContentText = "HEY, I see my house! :)";
             mPriority = NotificationCompat.PRIORITY_HIGH;
 
-            // Style notification values
+            // Create the users for the conversation.
+            // Name preferred when replying to chat.
+            mMe =
+                    new Person.Builder()
+                            .setName("Me MacDonald")
+                            .setKey("1234567890")
+                            .setUri("tel:1234567890")
+                            .setIcon(
+                                    IconCompat.createWithResource(context, R.drawable.me_macdonald))
+                            .build();
 
-            // For each message, you need the timestamp, in this case, we are using arbitrary ones.
-            long currentTime = System.currentTimeMillis();
+            Person participant1 =
+                    new Person.Builder()
+                            .setName("Famous Fryer")
+                            .setKey("9876543210")
+                            .setUri("tel:9876543210")
+                            .setIcon(
+                                    IconCompat.createWithResource(context, R.drawable.famous_fryer))
+                            .build();
 
-            mMessages = new ArrayList<>();
-            mMessages.add(
-                    new MessagingStyle.Message(
-                            "What are you doing tonight?", currentTime - 4000, "Famous"));
-            mMessages.add(
-                    new MessagingStyle.Message(
-                            "I don't know, dinner maybe?", currentTime - 3000, null));
-            mMessages.add(new MessagingStyle.Message("Sounds good.", currentTime - 2000, "Famous"));
-            mMessages.add(new MessagingStyle.Message("How about BBQ?", currentTime - 1000, null));
-            // Last two are the newest message (2) from friend
-            mMessages.add(new MessagingStyle.Message("Hey!", currentTime, "Famous"));
-            mMessages.add(
-                    new MessagingStyle.Message(
-                            "You know I am a Pesce-pescetarian. :P", currentTime, "Famous"));
-
-            // String version of the mMessages above
-            mFullConversation =
-                    "Famous: What are you doing tonight?\n\n"
-                            + "Me: I don't know, dinner maybe?\n\n"
-                            + "Famous: Sounds good.\n\n"
-                            + "Me: How about BBQ?\n\n"
-                            + "Famous: Hey!\n\n"
-                            + "Famous: You know I am a Pesce-pescetarian. :P\n\n";
-
-            mNumberOfNewMessages = 2;
-
-            // Name preferred when replying to chat
-            mReplayName = "Me";
+            Person participant2 =
+                    new Person.Builder()
+                            .setName("Wendy Wonda")
+                            .setKey("2233221122")
+                            .setUri("tel:2233221122")
+                            .setIcon(IconCompat.createWithResource(context, R.drawable.wendy_wonda))
+                            .build();
 
             // If the phone is in "Do not disturb mode, the user will still be notified if
             // the user(s) is starred as a favorite.
+            // Note: You don't need to add yourself, aka 'me', as a participant.
             mParticipants = new ArrayList<>();
-            mParticipants.add("Famous McFamously");
+            mParticipants.add(participant1);
+            mParticipants.add(participant2);
+
+            mMessages = new ArrayList<>();
+
+            // For each message, you need the timestamp. In this case, we are using arbitrary longs
+            // representing time in milliseconds.
+            mMessages.add(
+                    // When you are setting an image for a message, text does not display.
+                    new MessagingStyle.Message("", 1528490641998L, participant1)
+                            .setData(
+                                    "image/png", resourceToUri(context, R.drawable.earth)));
+
+            mMessages.add(
+                    new MessagingStyle.Message(
+                            "Visiting the moon again? :P", 1528490643998L, mMe));
+
+            mMessages.add(
+                    new MessagingStyle.Message(
+                            "HEY, I see my house!", 1528490645998L, participant2));
+
+            // String version of the mMessages above.
+            mFullConversation =
+                    "Famous: [Picture of Moon]\n\n"
+                            + "Me: Visiting the moon again? :P\n\n"
+                            + "Wendy: HEY, I see my house! :)\n\n";
+
+            // Responses based on the last messages of the conversation. You would use
+            // Machine Learning to get these (https://developers.google.com/ml-kit/).
+            mReplyChoicesBasedOnLastMessages =
+                    new CharSequence[] {"Me too!", "How's the weather?", "You have good eyesight."};
 
             // Notification channel values (for devices targeting 26 and above):
             mChannelId = "channel_messaging_1";
@@ -127,14 +157,6 @@
             mChannelLockscreenVisibility = NotificationCompat.VISIBILITY_PRIVATE;
         }
 
-        public String getContentTitle() {
-            return mContentTitle;
-        }
-
-        public String getContentText() {
-            return mContentText;
-        }
-
         public ArrayList<MessagingStyle.Message> getMessages() {
             return mMessages;
         }
@@ -143,18 +165,57 @@
             return mFullConversation;
         }
 
-        public String getReplayName() {
-            return mReplayName;
+        public Person getMe() {
+            return mMe;
         }
 
         public int getNumberOfNewMessages() {
-            return mNumberOfNewMessages;
+            return mMessages.size();
         }
 
-        public ArrayList<String> getParticipants() {
+        public ArrayList<Person> getParticipants() {
             return mParticipants;
         }
 
+        public CharSequence[] getReplyChoicesBasedOnLastMessage() {
+            return mReplyChoicesBasedOnLastMessages;
+        }
+
+        @Override
+        public String toString() {
+            return getFullConversation();
+        }
+
+        public boolean isGroupConversation() {
+            return mParticipants.size() > 1;
+        }
+    }
+
+    /** Represents standard data needed for a Notification. */
+    public abstract static class MockNotificationData {
+
+        // Standard notification values:
+        protected String mContentTitle;
+        protected String mContentText;
+        protected int mPriority;
+
+        // Notification channel values (O and above):
+        protected String mChannelId;
+        protected CharSequence mChannelName;
+        protected String mChannelDescription;
+        protected int mChannelImportance;
+        protected boolean mChannelEnableVibrate;
+        protected int mChannelLockscreenVisibility;
+
+        // Notification Standard notification get methods:
+        public String getContentTitle() {
+            return mContentTitle;
+        }
+
+        public String getContentText() {
+            return mContentText;
+        }
+
         public int getPriority() {
             return mPriority;
         }
@@ -183,10 +244,22 @@
         public int getChannelLockscreenVisibility() {
             return mChannelLockscreenVisibility;
         }
+    }
 
-        @Override
-        public String toString() {
-            return getFullConversation();
-        }
+    /**
+     * Returns URI from a resource.
+     * @param context
+     * @param resId
+     * @return
+     */
+    public static Uri resourceToUri(Context context, int resId) {
+        return Uri.parse(
+                ContentResolver.SCHEME_ANDROID_RESOURCE
+                        + "://"
+                        + context.getResources().getResourcePackageName(resId)
+                        + "/"
+                        + context.getResources().getResourceTypeName(resId)
+                        + "/"
+                        + context.getResources().getResourceEntryName(resId));
     }
 }
diff --git a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/NotificationsActivity.java b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/NotificationsActivity.java
index fd0bfeb..d573948 100644
--- a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/NotificationsActivity.java
+++ b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/NotificationsActivity.java
@@ -29,15 +29,19 @@
 import android.preference.Preference.OnPreferenceClickListener;
 import android.preference.PreferenceFragment;
 import android.preference.SwitchPreference;
-import android.support.v4.app.FragmentActivity;
-import android.support.v4.app.NotificationCompat;
-import android.support.v4.app.NotificationCompat.MessagingStyle;
-import android.support.v4.app.NotificationManagerCompat;
-import android.support.v4.app.RemoteInput;
-import android.support.v4.content.ContextCompat;
-import android.support.wear.ambient.AmbientModeSupport;
 import android.util.Log;
 
+import androidx.core.app.NotificationCompat;
+import androidx.core.app.NotificationCompat.MessagingStyle;
+import androidx.core.app.NotificationManagerCompat;
+import androidx.core.app.Person;
+import androidx.core.app.RemoteInput;
+import androidx.core.content.ContextCompat;
+import androidx.fragment.app.FragmentActivity;
+import androidx.wear.ambient.AmbientModeSupport;
+
+import com.example.android.wearable.wear.wearaccessibilityapp.util.NotificationUtil;
+
 public class NotificationsActivity extends FragmentActivity implements
         AmbientModeSupport.AmbientCallbackProvider {
 
@@ -145,7 +149,7 @@
 
             // Main steps for building a MESSAGING_STYLE notification:
             //      0. Get your data
-            //      1. Retrieve Notification Channel for O and beyond devices (26+)
+            //      1. Create/Retrieve Notification Channel for O and beyond devices (26+)
             //      2. Build the MESSAGING_STYLE
             //      3. Set up main Intent for notification
             //      4. Set up RemoteInput (users can input directly from notification)
@@ -153,46 +157,64 @@
 
             // 0. Get your data (everything unique per Notification).
             MockDatabase.MessagingStyleCommsAppData messagingStyleCommsAppData =
-                    MockDatabase.getMessagingStyleData();
+                    MockDatabase.getMessagingStyleData(getContext());
 
             // 1. Create/Retrieve Notification Channel for O and beyond devices (26+).
-            String notificationChannelId =
-                    createNotificationChannel(context, messagingStyleCommsAppData);
+            String notificationChannelId = NotificationUtil.createNotificationChannel(
+                    getContext(),
+                    messagingStyleCommsAppData);
 
-            // 2. Build the Notification.Style (MESSAGING_STYLE)
+
+            // 2. Build the Notification.Style (MESSAGING_STYLE).
             String contentTitle = messagingStyleCommsAppData.getContentTitle();
 
             MessagingStyle messagingStyle =
-                    new NotificationCompat.MessagingStyle(
-                                    messagingStyleCommsAppData.getReplayName())
-                            // You could set a different title to appear when the messaging style
-                            // is supported on device (24+) if you wish. In our case, we use the
-                            // same
-                            // title.
+                    new NotificationCompat.MessagingStyle(messagingStyleCommsAppData.getMe())
+                            /*
+                             * <p>This API's behavior was changed in SDK version
+                             * {@link Build.VERSION_CODES#P}. If your application's target version
+                             * is less than {@link Build.VERSION_CODES#P}, setting a conversation
+                             * title to a non-null value will make {@link #isGroupConversation()}
+                             * return {@code true} and passing {@code null} will make it return
+                             * {@code false}.
+                             * This behavior can be overridden by calling
+                             * {@link #setGroupConversation(boolean)} regardless of SDK version.
+                             * In {@code P} and above, this method does not affect group
+                             * conversation settings.
+                             *
+                             * In our case, we use the same title.
+                             */
                             .setConversationTitle(contentTitle);
 
-            // Adds all Messages
-            // Note: Messages include the text, timestamp, and sender
+            // Adds all Messages.
+            // Note: Messages include the text, timestamp, and sender.
             for (MessagingStyle.Message message : messagingStyleCommsAppData.getMessages()) {
                 messagingStyle.addMessage(message);
             }
 
-            // 3. Set up main Intent for notification
+            messagingStyle.setGroupConversation(messagingStyleCommsAppData.isGroupConversation());
+
+            // 3. Set up main Intent for notification.
             Intent notifyIntent = new Intent(getActivity(), MessagingMainActivity.class);
 
             PendingIntent mainPendingIntent =
                     PendingIntent.getActivity(
-                            getActivity(), 0, notifyIntent, PendingIntent.FLAG_UPDATE_CURRENT);
+                            getActivity(),
+                            0,
+                            notifyIntent,
+                            PendingIntent.FLAG_UPDATE_CURRENT
+                    );
 
             // 4. Set up a RemoteInput Action, so users can input (keyboard, drawing, voice)
             // directly from the notification without entering the app.
 
             // Create the RemoteInput specifying this key.
             String replyLabel = getString(R.string.reply_label);
-            RemoteInput remoteInput =
-                    new RemoteInput.Builder(MessagingIntentService.EXTRA_REPLY)
-                            .setLabel(replyLabel)
-                            .build();
+            RemoteInput remoteInput = new RemoteInput.Builder(MessagingIntentService.EXTRA_REPLY)
+                    .setLabel(replyLabel)
+                    // Use machine learning to create responses based on previous messages.
+                    .setChoices(messagingStyleCommsAppData.getReplyChoicesBasedOnLastMessage())
+                    .build();
 
             // Create PendingIntent for service that handles input.
             Intent replyIntent = new Intent(getActivity(), MessagingIntentService.class);
@@ -204,44 +226,55 @@
             // lower portion of the Notification for easy action (only possible for one action).
             final NotificationCompat.Action.WearableExtender inlineActionForWear2 =
                     new NotificationCompat.Action.WearableExtender()
-                            .setHintDisplayActionInline(mActionOn)
+                            .setHintDisplayActionInline(true)
                             .setHintLaunchesActivity(false);
 
             NotificationCompat.Action replyAction =
                     new NotificationCompat.Action.Builder(
-                                    R.drawable.reply, replyLabel, replyActionPendingIntent)
+                            R.drawable.reply,
+                            replyLabel,
+                            replyActionPendingIntent)
                             .addRemoteInput(remoteInput)
-                            // Allows system to generate replies by context of conversation
+                            // Informs system we aren't bringing up our own custom UI for a reply
+                            // action.
+                            .setShowsUserInterface(false)
+                            // Allows system to generate replies by context of conversation.
                             .setAllowGeneratedReplies(true)
-                            // Add WearableExtender to enable inline actions
+                            // Add WearableExtender to enable inline actions.
+                            .setSemanticAction(NotificationCompat.Action.SEMANTIC_ACTION_REPLY)
                             .extend(inlineActionForWear2)
                             .build();
 
-            // 5. Build and issue the notification
 
-            // Because we want this to be a new notification (not updating current notification),
-            // we create a new Builder. Later, we update this same notification, so we need to save
+            // 5. Build and issue the notification.
+
+            // Because we want this to be a new notification (not updating current notification), we
+            // create a new Builder. Later, we update this same notification, so we need to save
             // this Builder globally (as outlined earlier).
 
             // Notification Channel Id is ignored for Android pre O (26).
             NotificationCompat.Builder notificationCompatBuilder =
-                    new NotificationCompat.Builder(context, notificationChannelId);
+                    new NotificationCompat.Builder(
+                            context, notificationChannelId);
 
             GlobalNotificationBuilder.setNotificationCompatBuilderInstance(
                     notificationCompatBuilder);
 
-            // Builds and issues notification
             notificationCompatBuilder
                     // MESSAGING_STYLE sets title and content for Wear 1.+ and Wear 2.0 devices.
                     .setStyle(messagingStyle)
                     .setContentTitle(contentTitle)
                     .setContentText(messagingStyleCommsAppData.getContentText())
                     .setSmallIcon(R.drawable.watch)
+                    .setLargeIcon(BitmapFactory.decodeResource(
+                            getResources(),
+                            mAvatarOn ? R.drawable.avatar : R.drawable.watch))
                     .setContentIntent(mainPendingIntent)
-                    .setColor(ContextCompat.getColor(context, R.color.background))
                     .setDefaults(NotificationCompat.DEFAULT_ALL)
+                    // Set primary color (important for Wear 2.0 Notifications).
+                    .setColor(ContextCompat.getColor(context, R.color.background))
 
-                    // Number of new notifications for API <24 (Wear 1.+) devices
+                    // Number of new notifications for API <24 (Wear 1.+) devices.
                     .setSubText(
                             Integer.toString(messagingStyleCommsAppData.getNumberOfNewMessages()))
                     .addAction(replyAction)
@@ -257,14 +290,10 @@
                     // visibility is set in the NotificationChannel.
                     .setVisibility(messagingStyleCommsAppData.getChannelLockscreenVisibility());
 
-            notificationCompatBuilder.setLargeIcon(
-                    BitmapFactory.decodeResource(
-                            getResources(), mAvatarOn ? R.drawable.avatar : R.drawable.watch));
-
-            // If the phone is in "Do not disturb mode, the user will still be notified if
-            // the sender(s) is starred as a favorite.
-            for (String name : messagingStyleCommsAppData.getParticipants()) {
-                notificationCompatBuilder.addPerson(name);
+            // If the phone is in "Do not disturb" mode, the user may still be notified if the
+            // sender(s) are in a group allowed through "Do not disturb" by the user.
+            for (Person person : messagingStyleCommsAppData.getParticipants()) {
+                notificationCompatBuilder.addPerson(person.getUri());
             }
 
             Notification notification = notificationCompatBuilder.build();
diff --git a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/OpenOnPhoneAnimationActivity.java b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/OpenOnPhoneAnimationActivity.java
index acc3c53..606c3d1 100644
--- a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/OpenOnPhoneAnimationActivity.java
+++ b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/OpenOnPhoneAnimationActivity.java
@@ -19,10 +19,11 @@
 import android.graphics.drawable.AnimatedVectorDrawable;
 import android.graphics.drawable.Drawable;
 import android.os.Bundle;
-import android.support.v4.app.FragmentActivity;
-import android.support.wear.ambient.AmbientModeSupport;
 import android.widget.ImageView;
 
+import androidx.fragment.app.FragmentActivity;
+import androidx.wear.ambient.AmbientModeSupport;
+
 public class OpenOnPhoneAnimationActivity extends FragmentActivity
         implements AmbientModeSupport.AmbientCallbackProvider {
     private AnimationCallback mAnimationCallback;
diff --git a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/PhotoCarouselActivity.java b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/PhotoCarouselActivity.java
index 5fa1f8b..8828fc8 100644
--- a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/PhotoCarouselActivity.java
+++ b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/PhotoCarouselActivity.java
@@ -17,12 +17,13 @@
 
 import android.content.Intent;
 import android.os.Bundle;
-import android.support.v4.app.FragmentActivity;
-import android.support.wear.ambient.AmbientModeSupport;
 import android.view.View;
 import android.view.View.OnClickListener;
 import android.widget.ImageView;
 
+import androidx.fragment.app.FragmentActivity;
+import androidx.wear.ambient.AmbientModeSupport;
+
 public class PhotoCarouselActivity extends FragmentActivity implements
         AmbientModeSupport.AmbientCallbackProvider, OnClickListener {
 
diff --git a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/ProgressActivity.java b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/ProgressActivity.java
index 38add02..22602fe 100644
--- a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/ProgressActivity.java
+++ b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/ProgressActivity.java
@@ -16,14 +16,15 @@
 package com.example.android.wearable.wear.wearaccessibilityapp;
 
 import android.os.Bundle;
-import android.support.v4.app.FragmentActivity;
-import android.support.wear.ambient.AmbientModeSupport;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.widget.AdapterView;
 import android.widget.ListView;
 import android.widget.TextView;
 
+import androidx.fragment.app.FragmentActivity;
+import androidx.wear.ambient.AmbientModeSupport;
+
 import java.util.ArrayList;
 import java.util.List;
 
diff --git a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/RadioListActivity.java b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/RadioListActivity.java
index d5bcc8b..dcd675f 100644
--- a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/RadioListActivity.java
+++ b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/RadioListActivity.java
@@ -16,10 +16,11 @@
 package com.example.android.wearable.wear.wearaccessibilityapp;
 
 import android.os.Bundle;
-import android.support.v4.app.FragmentActivity;
-import android.support.wear.ambient.AmbientModeSupport;
 import android.widget.TextView;
 
+import androidx.fragment.app.FragmentActivity;
+import androidx.wear.ambient.AmbientModeSupport;
+
 public class RadioListActivity extends FragmentActivity implements
         AmbientModeSupport.AmbientCallbackProvider {
 
diff --git a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/ScalingScrollLayoutCallback.java b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/ScalingScrollLayoutCallback.java
index 00b4226..6b3f7ca 100644
--- a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/ScalingScrollLayoutCallback.java
+++ b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/ScalingScrollLayoutCallback.java
@@ -15,10 +15,11 @@
  */
 package com.example.android.wearable.wear.wearaccessibilityapp;
 
-import android.support.v7.widget.RecyclerView;
-import android.support.wear.widget.WearableLinearLayoutManager;
 import android.view.View;
 
+import androidx.recyclerview.widget.RecyclerView;
+import androidx.wear.widget.WearableLinearLayoutManager;
+
 public class ScalingScrollLayoutCallback extends WearableLinearLayoutManager.LayoutCallback {
 
     /** How much should we scale the icon at most. */
diff --git a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/ZoomImageActivity.java b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/ZoomImageActivity.java
index cde17b5..5bed977 100644
--- a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/ZoomImageActivity.java
+++ b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/ZoomImageActivity.java
@@ -17,10 +17,11 @@
 
 import android.content.res.Resources.NotFoundException;
 import android.os.Bundle;
-import android.support.v4.app.FragmentActivity;
-import android.support.wear.ambient.AmbientModeSupport;
 import android.widget.ImageView;
 
+import androidx.fragment.app.FragmentActivity;
+import androidx.wear.ambient.AmbientModeSupport;
+
 public class ZoomImageActivity extends FragmentActivity implements
         AmbientModeSupport.AmbientCallbackProvider {
 
diff --git a/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/util/NotificationUtil.java b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/util/NotificationUtil.java
new file mode 100644
index 0000000..bbdcbdc
--- /dev/null
+++ b/wearable/wear/WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/util/NotificationUtil.java
@@ -0,0 +1,77 @@
+/*
+ * Copyright 2018 The Android Open Source Project. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.example.android.wearable.wear.wearaccessibilityapp.util;
+
+import android.app.Notification;
+import android.app.NotificationChannel;
+import android.app.NotificationManager;
+import android.content.Context;
+import android.os.Build;
+
+import com.example.android.wearable.wear.wearaccessibilityapp.MockDatabase;
+
+/**
+ * Simplifies common {@link Notification} tasks.
+ */
+public class NotificationUtil {
+
+    /**
+     * Creates Notification Channel used for Notifications on O (26) and higher.
+     *
+     * @param context
+     * @param mockNotificationData
+     * @return
+     */
+    public static String createNotificationChannel(
+            Context context,
+            MockDatabase.MessagingStyleCommsAppData mockNotificationData) {
+
+        // NotificationChannels are required for Notifications on O (API 26) and above.
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+
+            // The id of the channel.
+            String channelId = mockNotificationData.getChannelId();
+
+            // The user-visible name of the channel.
+            CharSequence channelName = mockNotificationData.getChannelName();
+            // The user-visible description of the channel.
+            String channelDescription = mockNotificationData.getChannelDescription();
+            int channelImportance = mockNotificationData.getChannelImportance();
+            boolean channelEnableVibrate = mockNotificationData.isChannelEnableVibrate();
+            int channelLockscreenVisibility =
+                    mockNotificationData.getChannelLockscreenVisibility();
+
+            // Initializes NotificationChannel.
+            NotificationChannel notificationChannel =
+                    new NotificationChannel(channelId, channelName, channelImportance);
+            notificationChannel.setDescription(channelDescription);
+            notificationChannel.enableVibration(channelEnableVibrate);
+            notificationChannel.setLockscreenVisibility(channelLockscreenVisibility);
+
+            // Adds NotificationChannel to system. Attempting to create an existing notification
+            // channel with its original values performs no operation, so it's safe to perform the
+            // below sequence.
+            NotificationManager notificationManager =
+                    (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
+            notificationManager.createNotificationChannel(notificationChannel);
+
+            return channelId;
+        } else {
+            // Returns null for pre-O (26) devices.
+            return null;
+        }
+    }
+}
diff --git a/wearable/wear/WearAccessibilityApp/Wearable/src/main/res/drawable-hdpi/earth.png b/wearable/wear/WearAccessibilityApp/Wearable/src/main/res/drawable-hdpi/earth.png
new file mode 100644
index 0000000..13abd77
--- /dev/null
+++ b/wearable/wear/WearAccessibilityApp/Wearable/src/main/res/drawable-hdpi/earth.png
Binary files differ
diff --git a/wearable/wear/WearAccessibilityApp/Wearable/src/main/res/drawable-hdpi/famous_fryer.png b/wearable/wear/WearAccessibilityApp/Wearable/src/main/res/drawable-hdpi/famous_fryer.png
new file mode 100644
index 0000000..92204db
--- /dev/null
+++ b/wearable/wear/WearAccessibilityApp/Wearable/src/main/res/drawable-hdpi/famous_fryer.png
Binary files differ
diff --git a/wearable/wear/WearAccessibilityApp/Wearable/src/main/res/drawable-hdpi/me_macdonald.png b/wearable/wear/WearAccessibilityApp/Wearable/src/main/res/drawable-hdpi/me_macdonald.png
new file mode 100644
index 0000000..cbf4a05
--- /dev/null
+++ b/wearable/wear/WearAccessibilityApp/Wearable/src/main/res/drawable-hdpi/me_macdonald.png
Binary files differ
diff --git a/wearable/wear/WearAccessibilityApp/Wearable/src/main/res/drawable-hdpi/wendy_wonda.png b/wearable/wear/WearAccessibilityApp/Wearable/src/main/res/drawable-hdpi/wendy_wonda.png
new file mode 100644
index 0000000..3097ce1
--- /dev/null
+++ b/wearable/wear/WearAccessibilityApp/Wearable/src/main/res/drawable-hdpi/wendy_wonda.png
Binary files differ
diff --git a/wearable/wear/WearAccessibilityApp/Wearable/src/main/res/layout/activity_long_list.xml b/wearable/wear/WearAccessibilityApp/Wearable/src/main/res/layout/activity_long_list.xml
index e133f15..addc66c 100644
--- a/wearable/wear/WearAccessibilityApp/Wearable/src/main/res/layout/activity_long_list.xml
+++ b/wearable/wear/WearAccessibilityApp/Wearable/src/main/res/layout/activity_long_list.xml
@@ -14,7 +14,7 @@
  See the License for the specific language governing permissions and
  limitations under the License.
 -->
-<android.support.wear.widget.drawer.WearableDrawerLayout
+<androidx.wear.widget.drawer.WearableDrawerLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:tools="http://schemas.android.com/tools"
@@ -22,7 +22,7 @@
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     tools:deviceIds="wear">
-    <android.support.wear.widget.WearableRecyclerView
+    <androidx.wear.widget.WearableRecyclerView
         android:id="@+id/recycler_view_long_list"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
@@ -30,12 +30,12 @@
         android:paddingBottom="?android:dialogPreferredPadding"
         android:clipToPadding="false"
         android:scrollbars="vertical"/>
-    <android.support.wear.widget.drawer.WearableActionDrawerView
+    <androidx.wear.widget.drawer.WearableActionDrawerView
         android:id="@+id/action_drawer_long_list"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:visibility="invisible"
         app:actionMenu="@menu/action_drawer_menu"
         app:show_overflow_in_peek="true">
-    </android.support.wear.widget.drawer.WearableActionDrawerView>
-</android.support.wear.widget.drawer.WearableDrawerLayout>
+    </androidx.wear.widget.drawer.WearableActionDrawerView>
+</androidx.wear.widget.drawer.WearableDrawerLayout>
diff --git a/wearable/wear/WearAccessibilityApp/Wearable/src/main/res/layout/activity_main.xml b/wearable/wear/WearAccessibilityApp/Wearable/src/main/res/layout/activity_main.xml
index 2144647..6013519 100644
--- a/wearable/wear/WearAccessibilityApp/Wearable/src/main/res/layout/activity_main.xml
+++ b/wearable/wear/WearAccessibilityApp/Wearable/src/main/res/layout/activity_main.xml
@@ -14,7 +14,7 @@
  See the License for the specific language governing permissions and
  limitations under the License.
 -->
-<android.support.wear.widget.WearableRecyclerView
+<androidx.wear.widget.WearableRecyclerView
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/main_recycler_view"
     android:layout_width="match_parent"
diff --git a/wearable/wear/WearAccessibilityApp/gradle.properties b/wearable/wear/WearAccessibilityApp/gradle.properties
new file mode 100644
index 0000000..5465fec
--- /dev/null
+++ b/wearable/wear/WearAccessibilityApp/gradle.properties
@@ -0,0 +1,2 @@
+android.enableJetifier=true
+android.useAndroidX=true
\ No newline at end of file
diff --git a/wearable/wear/WearAccessibilityApp/gradle/wrapper/gradle-wrapper.properties b/wearable/wear/WearAccessibilityApp/gradle/wrapper/gradle-wrapper.properties
index 9470ad8..c68d61e 100644
--- a/wearable/wear/WearAccessibilityApp/gradle/wrapper/gradle-wrapper.properties
+++ b/wearable/wear/WearAccessibilityApp/gradle/wrapper/gradle-wrapper.properties
@@ -1,7 +1,6 @@
-#Wed Apr 10 15:27:10 PDT 2013
+#Sun Mar 31 15:27:57 PDT 2019
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
-
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip
diff --git a/wearable/wear/WearAccessibilityApp/template-params.xml b/wearable/wear/WearAccessibilityApp/template-params.xml
index 7e32902..1148f07 100644
--- a/wearable/wear/WearAccessibilityApp/template-params.xml
+++ b/wearable/wear/WearAccessibilityApp/template-params.xml
@@ -21,14 +21,18 @@
     <package>com.example.android.wearable.wear.wearaccessibilityapp</package>
 
     <minSdkVersionWear>24</minSdkVersionWear>
-    <compileSdkVersionWear>26</compileSdkVersionWear>
-    <targetSdkVersionWear>26</targetSdkVersionWear>
+    <compileSdkVersionWear>28</compileSdkVersionWear>
+    <targetSdkVersionWear>28</targetSdkVersionWear>
 
     <multiDexEnabled>true</multiDexEnabled>
 
-    <dependency_wearable>com.android.support:wear:27.1.1</dependency_wearable>
-    <dependency_wearable>com.android.support.constraint:constraint-layout:1.0.2</dependency_wearable>
-    <dependency_wearable>com.android.support:appcompat-v7:27.1.1</dependency_wearable>
+    <androidX>true</androidX>
+
+    <dependency_wearable>androidx.wear:wear:1.0.0</dependency_wearable>
+    <dependency_wearable>androidx.legacy:legacy-support-v4:1.0.0</dependency_wearable>
+    <dependency_wearable>androidx.legacy:legacy-support-v13:1.0.0</dependency_wearable>
+    <dependency_wearable>androidx.constraintlayout:constraintlayout:1.1.3</dependency_wearable>
+    <dependency_wearable>androidx.appcompat:appcompat:1.0.2</dependency_wearable>
 
 
     <strings>