DO NOT MERGE - Merge pie-platform-release (PPRL.190705.004) into master

Bug: 136196576
Change-Id: I0b0162857a7b81f93c24a28a2e636bc19a20d3b1
diff --git a/content/documentsUi/DirectorySelection/gradle.properties b/content/documentsUi/DirectorySelection/gradle.properties
new file mode 100644
index 0000000..94f8472
--- /dev/null
+++ b/content/documentsUi/DirectorySelection/gradle.properties
@@ -0,0 +1,22 @@
+
+# Project-wide Gradle settings.
+
+# IDE (e.g. Android Studio) users:
+# Settings specified in this file will override any Gradle settings
+# configured through the IDE.
+
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+# Default value: -Xmx10248m -XX:MaxPermSize=256m
+# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
+
+# When configured, Gradle will run in incubating parallel mode.
+# 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
+
+android.useAndroidX=true
+android.enableJetifier=true
diff --git a/wearable/wear/WearMessagingApp/.gitignore b/deprecated/wearable/wear/WearMessagingApp/.gitignore
similarity index 100%
rename from wearable/wear/WearMessagingApp/.gitignore
rename to deprecated/wearable/wear/WearMessagingApp/.gitignore
diff --git a/wearable/wear/WearMessagingApp/Wearable/build.gradle b/deprecated/wearable/wear/WearMessagingApp/Wearable/build.gradle
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/build.gradle
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/build.gradle
diff --git a/wearable/wear/WearMessagingApp/Wearable/google-services.json b/deprecated/wearable/wear/WearMessagingApp/Wearable/google-services.json
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/google-services.json
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/google-services.json
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/AndroidManifest.xml b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/AndroidManifest.xml
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/AndroidManifest.xml
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/AndroidManifest.xml
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/ic_launcher-web.png b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/ic_launcher-web.png
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/ic_launcher-web.png
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/ic_launcher-web.png
Binary files differ
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/GoogleSignedInActivity.java b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/GoogleSignedInActivity.java
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/GoogleSignedInActivity.java
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/GoogleSignedInActivity.java
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/SignInActivity.java b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/SignInActivity.java
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/SignInActivity.java
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/SignInActivity.java
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/chat/ChatActivity.java b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/chat/ChatActivity.java
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/chat/ChatActivity.java
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/chat/ChatActivity.java
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/chat/ChatAdapter.java b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/chat/ChatAdapter.java
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/chat/ChatAdapter.java
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/chat/ChatAdapter.java
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/chat/MockIncomingMessageReceiver.java b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/chat/MockIncomingMessageReceiver.java
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/chat/MockIncomingMessageReceiver.java
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/chat/MockIncomingMessageReceiver.java
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/chat/ReplyToMessageIntentService.java b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/chat/ReplyToMessageIntentService.java
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/chat/ReplyToMessageIntentService.java
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/chat/ReplyToMessageIntentService.java
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/chatlist/ChatListActivity.java b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/chatlist/ChatListActivity.java
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/chatlist/ChatListActivity.java
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/chatlist/ChatListActivity.java
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/chatlist/ChatListAdapter.java b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/chatlist/ChatListAdapter.java
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/chatlist/ChatListAdapter.java
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/chatlist/ChatListAdapter.java
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/contacts/ContactsListActivity.java b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/contacts/ContactsListActivity.java
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/contacts/ContactsListActivity.java
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/contacts/ContactsListActivity.java
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/contacts/ContactsListAdapter.java b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/contacts/ContactsListAdapter.java
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/contacts/ContactsListAdapter.java
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/contacts/ContactsListAdapter.java
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/mock/MockDatabase.java b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/mock/MockDatabase.java
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/mock/MockDatabase.java
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/mock/MockDatabase.java
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/mock/MockObjectGenerator.java b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/mock/MockObjectGenerator.java
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/mock/MockObjectGenerator.java
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/mock/MockObjectGenerator.java
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/model/Chat.java b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/model/Chat.java
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/model/Chat.java
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/model/Chat.java
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/model/Message.java b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/model/Message.java
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/model/Message.java
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/model/Message.java
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/model/Profile.java b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/model/Profile.java
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/model/Profile.java
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/model/Profile.java
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/util/Constants.java b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/util/Constants.java
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/util/Constants.java
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/util/Constants.java
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/util/DividerItemDecoration.java b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/util/DividerItemDecoration.java
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/util/DividerItemDecoration.java
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/util/DividerItemDecoration.java
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/util/MenuTinter.java b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/util/MenuTinter.java
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/util/MenuTinter.java
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/util/MenuTinter.java
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/util/PrescrollToBottom.java b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/util/PrescrollToBottom.java
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/util/PrescrollToBottom.java
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/util/PrescrollToBottom.java
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/util/SchedulerHelper.java b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/util/SchedulerHelper.java
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/util/SchedulerHelper.java
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/util/SchedulerHelper.java
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/util/SharedPreferencesHelper.java b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/util/SharedPreferencesHelper.java
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/util/SharedPreferencesHelper.java
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/java/com/example/android/wearable/wear/messaging/util/SharedPreferencesHelper.java
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable-hdpi/ic_launcher.png b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable-hdpi/ic_launcher.png
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable-hdpi/ic_launcher.png
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable-mdpi/ic_launcher.png b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable-mdpi/ic_launcher.png
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable-mdpi/ic_launcher.png
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable-xhdpi/ic_launcher.png b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable-xhdpi/ic_launcher.png
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable-xhdpi/ic_launcher.png
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable-xhdpi/ic_launcher.png
Binary files differ
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable-xxhdpi/ic_launcher.png b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable-xxhdpi/ic_launcher.png
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable-xxhdpi/ic_launcher.png
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/android_logo.png b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/android_logo.png
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/android_logo.png
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/android_logo.png
Binary files differ
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ben.png b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ben.png
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ben.png
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ben.png
Binary files differ
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/circle_add.xml b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/circle_add.xml
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/circle_add.xml
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/circle_add.xml
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/default_profile.png b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/default_profile.png
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/default_profile.png
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/default_profile.png
Binary files differ
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/divider.xml b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/divider.xml
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/divider.xml
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/divider.xml
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ic_add_black_24dp.xml b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ic_add_black_24dp.xml
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ic_add_black_24dp.xml
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ic_add_black_24dp.xml
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ic_check_white_24dp.xml b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ic_check_white_24dp.xml
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ic_check_white_24dp.xml
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ic_check_white_24dp.xml
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ic_check_white_36dp.xml b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ic_check_white_36dp.xml
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ic_check_white_36dp.xml
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ic_check_white_36dp.xml
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ic_close_white_24dp.xml b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ic_close_white_24dp.xml
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ic_close_white_24dp.xml
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ic_close_white_24dp.xml
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ic_close_white_36dp.xml b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ic_close_white_36dp.xml
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ic_close_white_36dp.xml
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ic_close_white_36dp.xml
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ic_face_white_24dp.xml b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ic_face_white_24dp.xml
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ic_face_white_24dp.xml
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ic_face_white_24dp.xml
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ic_group_white_48dp.xml b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ic_group_white_48dp.xml
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ic_group_white_48dp.xml
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ic_group_white_48dp.xml
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ic_keyboard_black_24dp.xml b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ic_keyboard_black_24dp.xml
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ic_keyboard_black_24dp.xml
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ic_keyboard_black_24dp.xml
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ic_mic_black_24dp.xml b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ic_mic_black_24dp.xml
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ic_mic_black_24dp.xml
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ic_mic_black_24dp.xml
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ic_person_blue_48dp.xml b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ic_person_blue_48dp.xml
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ic_person_blue_48dp.xml
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ic_person_blue_48dp.xml
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ic_reply_white_18dp.xml b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ic_reply_white_18dp.xml
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ic_reply_white_18dp.xml
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ic_reply_white_18dp.xml
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/jane.png b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/jane.png
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/jane.png
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/jane.png
Binary files differ
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/jennifer.png b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/jennifer.png
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/jennifer.png
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/jennifer.png
Binary files differ
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/jeremy.png b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/jeremy.png
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/jeremy.png
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/jeremy.png
Binary files differ
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/lisa.png b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/lisa.png
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/lisa.png
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/lisa.png
Binary files differ
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/paul.png b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/paul.png
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/paul.png
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/paul.png
Binary files differ
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ripple_rect_40.xml b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ripple_rect_40.xml
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ripple_rect_40.xml
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ripple_rect_40.xml
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ripple_select.xml b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ripple_select.xml
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ripple_select.xml
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/ripple_select.xml
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/splash.xml b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/splash.xml
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/splash.xml
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/splash.xml
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/res/layout/action_new_chat.xml b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/layout/action_new_chat.xml
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/res/layout/action_new_chat.xml
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/layout/action_new_chat.xml
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/res/layout/activity_chat.xml b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/layout/activity_chat.xml
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/res/layout/activity_chat.xml
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/layout/activity_chat.xml
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/res/layout/activity_chat_list.xml b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/layout/activity_chat_list.xml
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/res/layout/activity_chat_list.xml
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/layout/activity_chat_list.xml
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/res/layout/activity_contacts_list.xml b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/layout/activity_contacts_list.xml
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/res/layout/activity_contacts_list.xml
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/layout/activity_contacts_list.xml
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/res/layout/activity_signin.xml b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/layout/activity_signin.xml
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/res/layout/activity_signin.xml
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/layout/activity_signin.xml
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/res/layout/chat_list_item.xml b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/layout/chat_list_item.xml
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/res/layout/chat_list_item.xml
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/layout/chat_list_item.xml
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/res/layout/chat_message.xml b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/layout/chat_message.xml
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/res/layout/chat_message.xml
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/layout/chat_message.xml
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/res/layout/contacts_list_item.xml b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/layout/contacts_list_item.xml
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/res/layout/contacts_list_item.xml
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/layout/contacts_list_item.xml
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/res/layout/drawer_chat_action.xml b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/layout/drawer_chat_action.xml
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/res/layout/drawer_chat_action.xml
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/layout/drawer_chat_action.xml
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/res/layout/drawer_check_confirmation.xml b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/layout/drawer_check_confirmation.xml
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/res/layout/drawer_check_confirmation.xml
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/layout/drawer_check_confirmation.xml
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/res/layout/list_title.xml b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/layout/list_title.xml
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/res/layout/list_title.xml
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/layout/list_title.xml
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/res/menu/chat.xml b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/menu/chat.xml
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/res/menu/chat.xml
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/menu/chat.xml
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/res/menu/contacts_list.xml b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/menu/contacts_list.xml
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/res/menu/contacts_list.xml
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/menu/contacts_list.xml
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/res/mipmap-hdpi/ic_launcher.png b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/mipmap-hdpi/ic_launcher.png
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/res/mipmap-hdpi/ic_launcher.png
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/mipmap-hdpi/ic_launcher.png
Binary files differ
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/res/mipmap-mdpi/ic_launcher.png b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/mipmap-mdpi/ic_launcher.png
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/res/mipmap-mdpi/ic_launcher.png
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/mipmap-mdpi/ic_launcher.png
Binary files differ
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/res/mipmap-xhdpi/ic_launcher.png b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/mipmap-xhdpi/ic_launcher.png
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/res/mipmap-xhdpi/ic_launcher.png
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/mipmap-xhdpi/ic_launcher.png
Binary files differ
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/res/mipmap-xxhdpi/ic_launcher.png b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/mipmap-xxhdpi/ic_launcher.png
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/res/mipmap-xxhdpi/ic_launcher.png
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/mipmap-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/mipmap-xxxhdpi/ic_launcher.png
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/res/mipmap-xxxhdpi/ic_launcher.png
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/mipmap-xxxhdpi/ic_launcher.png
Binary files differ
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/res/values/colors.xml b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/values/colors.xml
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/res/values/colors.xml
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/values/colors.xml
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/res/values/dimens.xml b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/values/dimens.xml
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/res/values/dimens.xml
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/values/dimens.xml
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/res/values/strings.xml b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/values/strings.xml
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/res/values/strings.xml
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/values/strings.xml
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/res/values/styles.xml b/deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/values/styles.xml
similarity index 100%
rename from wearable/wear/WearMessagingApp/Wearable/src/main/res/values/styles.xml
rename to deprecated/wearable/wear/WearMessagingApp/Wearable/src/main/res/values/styles.xml
diff --git a/wearable/wear/WearMessagingApp/build.gradle b/deprecated/wearable/wear/WearMessagingApp/build.gradle
similarity index 100%
rename from wearable/wear/WearMessagingApp/build.gradle
rename to deprecated/wearable/wear/WearMessagingApp/build.gradle
diff --git a/wearable/wear/WearMessagingApp/buildSrc/build.gradle b/deprecated/wearable/wear/WearMessagingApp/buildSrc/build.gradle
similarity index 100%
rename from wearable/wear/WearMessagingApp/buildSrc/build.gradle
rename to deprecated/wearable/wear/WearMessagingApp/buildSrc/build.gradle
diff --git a/wearable/wear/WearMessagingApp/gradle/wrapper/gradle-wrapper.jar b/deprecated/wearable/wear/WearMessagingApp/gradle/wrapper/gradle-wrapper.jar
similarity index 100%
rename from wearable/wear/WearMessagingApp/gradle/wrapper/gradle-wrapper.jar
rename to deprecated/wearable/wear/WearMessagingApp/gradle/wrapper/gradle-wrapper.jar
Binary files differ
diff --git a/wearable/wear/WearMessagingApp/gradle/wrapper/gradle-wrapper.properties b/deprecated/wearable/wear/WearMessagingApp/gradle/wrapper/gradle-wrapper.properties
similarity index 100%
rename from wearable/wear/WearMessagingApp/gradle/wrapper/gradle-wrapper.properties
rename to deprecated/wearable/wear/WearMessagingApp/gradle/wrapper/gradle-wrapper.properties
diff --git a/wearable/wear/WearMessagingApp/gradlew b/deprecated/wearable/wear/WearMessagingApp/gradlew
similarity index 100%
rename from wearable/wear/WearMessagingApp/gradlew
rename to deprecated/wearable/wear/WearMessagingApp/gradlew
diff --git a/wearable/wear/WearMessagingApp/gradlew.bat b/deprecated/wearable/wear/WearMessagingApp/gradlew.bat
similarity index 100%
rename from wearable/wear/WearMessagingApp/gradlew.bat
rename to deprecated/wearable/wear/WearMessagingApp/gradlew.bat
diff --git a/wearable/wear/WearMessagingApp/screenshots/chat.png b/deprecated/wearable/wear/WearMessagingApp/screenshots/chat.png
similarity index 100%
rename from wearable/wear/WearMessagingApp/screenshots/chat.png
rename to deprecated/wearable/wear/WearMessagingApp/screenshots/chat.png
Binary files differ
diff --git a/wearable/wear/WearMessagingApp/screenshots/chat_list.png b/deprecated/wearable/wear/WearMessagingApp/screenshots/chat_list.png
similarity index 100%
rename from wearable/wear/WearMessagingApp/screenshots/chat_list.png
rename to deprecated/wearable/wear/WearMessagingApp/screenshots/chat_list.png
Binary files differ
diff --git a/wearable/wear/WearMessagingApp/screenshots/contacts.png b/deprecated/wearable/wear/WearMessagingApp/screenshots/contacts.png
similarity index 100%
rename from wearable/wear/WearMessagingApp/screenshots/contacts.png
rename to deprecated/wearable/wear/WearMessagingApp/screenshots/contacts.png
Binary files differ
diff --git a/wearable/wear/WearMessagingApp/settings.gradle b/deprecated/wearable/wear/WearMessagingApp/settings.gradle
similarity index 100%
rename from wearable/wear/WearMessagingApp/settings.gradle
rename to deprecated/wearable/wear/WearMessagingApp/settings.gradle
diff --git a/wearable/wear/WearMessagingApp/template-params.xml b/deprecated/wearable/wear/WearMessagingApp/template-params.xml
similarity index 100%
rename from wearable/wear/WearMessagingApp/template-params.xml
rename to deprecated/wearable/wear/WearMessagingApp/template-params.xml
diff --git a/wearable/wear/AlwaysOn/Wearable/build.gradle b/wearable/wear/AlwaysOn/Wearable/build.gradle
index 6faf2d1..40537eb 100644
--- a/wearable/wear/AlwaysOn/Wearable/build.gradle
+++ b/wearable/wear/AlwaysOn/Wearable/build.gradle
@@ -6,7 +6,7 @@
     }
 
     dependencies {
-        classpath 'com.android.tools.build:gradle:3.3.0'
+        classpath 'com.android.tools.build:gradle:3.3.2'
     }
 }
 
@@ -21,12 +21,12 @@
 
 dependencies {
 
-    implementation 'com.android.support:wear:27.1.1'
+    implementation 'androidx.wear:wear:1.0.0'
+    implementation 'androidx.legacy:legacy-support-v13:1.0.0'
 
 
-    implementation 'com.google.android.gms:play-services-wearable:15.0.1'
+    implementation 'com.google.android.gms:play-services-wearable:16.0.1'
 
-    implementation 'com.android.support:support-v13:28.0.0'
 
     compileOnly 'com.google.android.wearable:wearable:2.4.0'
 
@@ -52,9 +52,9 @@
         versionCode 1
         versionName "1.0"
 
-        minSdkVersion 23
+        minSdkVersion 24
 
-        targetSdkVersion 26
+        targetSdkVersion 28
 
         multiDexEnabled true
 
diff --git a/wearable/wear/AlwaysOn/Wearable/src/main/AndroidManifest.xml b/wearable/wear/AlwaysOn/Wearable/src/main/AndroidManifest.xml
index c105808..0acb7d3 100644
--- a/wearable/wear/AlwaysOn/Wearable/src/main/AndroidManifest.xml
+++ b/wearable/wear/AlwaysOn/Wearable/src/main/AndroidManifest.xml
@@ -16,8 +16,6 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
           package="com.example.android.wearable.wear.alwayson">
 
-    <uses-sdk android:minSdkVersion="20" android:targetSdkVersion="22" />
-
     <uses-permission android:name="android.permission.WAKE_LOCK" />
     <uses-permission android:name="com.android.alarm.permission.SET_ALARM"/>
 
diff --git a/wearable/wear/AlwaysOn/Wearable/src/main/java/com/example/android/wearable/wear/alwayson/MainActivity.java b/wearable/wear/AlwaysOn/Wearable/src/main/java/com/example/android/wearable/wear/alwayson/MainActivity.java
index ab61c41..a17b570 100644
--- a/wearable/wear/AlwaysOn/Wearable/src/main/java/com/example/android/wearable/wear/alwayson/MainActivity.java
+++ b/wearable/wear/AlwaysOn/Wearable/src/main/java/com/example/android/wearable/wear/alwayson/MainActivity.java
@@ -25,12 +25,13 @@
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
-import android.support.v4.app.FragmentActivity;
-import android.support.wear.ambient.AmbientModeSupport;
 import android.util.Log;
 import android.view.View;
 import android.widget.TextView;
 
+import androidx.fragment.app.FragmentActivity;
+import androidx.wear.ambient.AmbientModeSupport;
+
 import java.lang.ref.WeakReference;
 import java.text.SimpleDateFormat;
 import java.util.Date;
diff --git a/wearable/wear/AlwaysOn/Wearable/src/main/res/layout/activity_main.xml b/wearable/wear/AlwaysOn/Wearable/src/main/res/layout/activity_main.xml
index 662bbe8..487fe54 100644
--- a/wearable/wear/AlwaysOn/Wearable/src/main/res/layout/activity_main.xml
+++ b/wearable/wear/AlwaysOn/Wearable/src/main/res/layout/activity_main.xml
@@ -19,7 +19,7 @@
     which is applied as padding to the inner LinearLayout, doesn't obscure text by moving it off
     screen.
 -->
-<android.support.wear.widget.BoxInsetLayout
+<androidx.wear.widget.BoxInsetLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
     xmlns:app="http://schemas.android.com/apk/res-auto"
@@ -76,4 +76,4 @@
             android:text="Hello, draw count!"/>
 
     </LinearLayout>
-</android.support.wear.widget.BoxInsetLayout>
\ No newline at end of file
+</androidx.wear.widget.BoxInsetLayout>
\ No newline at end of file
diff --git a/wearable/wear/AlwaysOn/gradle.properties b/wearable/wear/AlwaysOn/gradle.properties
new file mode 100644
index 0000000..5465fec
--- /dev/null
+++ b/wearable/wear/AlwaysOn/gradle.properties
@@ -0,0 +1,2 @@
+android.enableJetifier=true
+android.useAndroidX=true
\ No newline at end of file
diff --git a/wearable/wear/AlwaysOn/template-params.xml b/wearable/wear/AlwaysOn/template-params.xml
index b7ad4e7..71afab0 100644
--- a/wearable/wear/AlwaysOn/template-params.xml
+++ b/wearable/wear/AlwaysOn/template-params.xml
@@ -19,11 +19,13 @@
     <group>Wearable</group>
     <package>com.example.android.wearable.wear.alwayson</package>
 
-    <minSdkVersionWear>23</minSdkVersionWear>
-    <targetSdkVersionWear>26</targetSdkVersionWear>
     <multiDexEnabled>true</multiDexEnabled>
 
-    <dependency_wearable>com.android.support:wear:27.1.1</dependency_wearable>
+    <androidX>true</androidX>
+
+    <dependency_wearable>androidx.wear:wear:1.0.0</dependency_wearable>
+
+    <dependency_wearable>androidx.legacy:legacy-support-v13:1.0.0</dependency_wearable>
 
     <strings>
         <intro>
diff --git a/wearable/wear/DataLayer/Application/src/main/AndroidManifest.xml b/wearable/wear/DataLayer/Application/src/main/AndroidManifest.xml
index ed1cec3..33e7bdb 100644
--- a/wearable/wear/DataLayer/Application/src/main/AndroidManifest.xml
+++ b/wearable/wear/DataLayer/Application/src/main/AndroidManifest.xml
@@ -17,9 +17,6 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
         package="com.example.android.wearable.datalayer" >
 
-    <uses-sdk android:minSdkVersion="18"
-              android:targetSdkVersion="23" />
-
     <uses-feature android:name="android.hardware.camera" android:required="false" />
 
     <application
diff --git a/wearable/wear/DataLayer/Application/src/main/java/com/example/android/wearable/datalayer/MainActivity.java b/wearable/wear/DataLayer/Application/src/main/java/com/example/android/wearable/datalayer/MainActivity.java
index 7673d44..014a3b3 100644
--- a/wearable/wear/DataLayer/Application/src/main/java/com/example/android/wearable/datalayer/MainActivity.java
+++ b/wearable/wear/DataLayer/Application/src/main/java/com/example/android/wearable/datalayer/MainActivity.java
@@ -25,7 +25,6 @@
 import android.os.AsyncTask;
 import android.os.Bundle;
 import android.provider.MediaStore;
-import android.support.annotation.WorkerThread;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -36,6 +35,8 @@
 import android.widget.ListView;
 import android.widget.TextView;
 
+import androidx.annotation.WorkerThread;
+
 import com.google.android.gms.tasks.OnSuccessListener;
 import com.google.android.gms.tasks.Task;
 import com.google.android.gms.tasks.Tasks;
diff --git a/wearable/wear/DataLayer/Wearable/src/main/AndroidManifest.xml b/wearable/wear/DataLayer/Wearable/src/main/AndroidManifest.xml
index 5e967aa..94afe42 100644
--- a/wearable/wear/DataLayer/Wearable/src/main/AndroidManifest.xml
+++ b/wearable/wear/DataLayer/Wearable/src/main/AndroidManifest.xml
@@ -17,8 +17,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
         package="com.example.android.wearable.datalayer" >
 
-    <uses-sdk android:minSdkVersion="23"
-              android:targetSdkVersion="26" />
+    <uses-permission android:name="android.permission.WAKE_LOCK" />
 
     <uses-feature android:name="android.hardware.type.watch" />
 
diff --git a/wearable/wear/DataLayer/Wearable/src/main/java/com/example/android/wearable/datalayer/CustomRecyclerAdapter.java b/wearable/wear/DataLayer/Wearable/src/main/java/com/example/android/wearable/datalayer/CustomRecyclerAdapter.java
index 2e46eea..4672e07 100644
--- a/wearable/wear/DataLayer/Wearable/src/main/java/com/example/android/wearable/datalayer/CustomRecyclerAdapter.java
+++ b/wearable/wear/DataLayer/Wearable/src/main/java/com/example/android/wearable/datalayer/CustomRecyclerAdapter.java
@@ -20,10 +20,6 @@
 import static com.example.android.wearable.datalayer.DataLayerScreen.TYPE_IMAGE_ASSET;
 
 import android.graphics.Bitmap;
-import android.support.annotation.NonNull;
-import android.support.v7.widget.RecyclerView;
-import android.support.v7.widget.RecyclerView.ViewHolder;
-import android.support.wear.widget.WearableRecyclerView;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -31,6 +27,11 @@
 import android.widget.ImageView;
 import android.widget.TextView;
 
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+import androidx.recyclerview.widget.RecyclerView.ViewHolder;
+import androidx.wear.widget.WearableRecyclerView;
+
 import com.example.android.wearable.datalayer.DataLayerScreen.DataLayerScreenData;
 import com.example.android.wearable.datalayer.DataLayerScreen.EventLoggingData;
 import com.example.android.wearable.datalayer.DataLayerScreen.ImageAssetData;
diff --git a/wearable/wear/DataLayer/Wearable/src/main/java/com/example/android/wearable/datalayer/DataLayerScreen.java b/wearable/wear/DataLayer/Wearable/src/main/java/com/example/android/wearable/datalayer/DataLayerScreen.java
index 23f444e..ed6388c 100644
--- a/wearable/wear/DataLayer/Wearable/src/main/java/com/example/android/wearable/datalayer/DataLayerScreen.java
+++ b/wearable/wear/DataLayer/Wearable/src/main/java/com/example/android/wearable/datalayer/DataLayerScreen.java
@@ -16,7 +16,8 @@
 package com.example.android.wearable.datalayer;
 
 import android.graphics.Bitmap;
-import android.support.v7.widget.RecyclerView.ViewHolder;
+
+import androidx.recyclerview.widget.RecyclerView.ViewHolder;
 
 /**
  * Classes representing data used for each custom {@link ViewHolder} in {@link
diff --git a/wearable/wear/DataLayer/Wearable/src/main/java/com/example/android/wearable/datalayer/MainActivity.java b/wearable/wear/DataLayer/Wearable/src/main/java/com/example/android/wearable/datalayer/MainActivity.java
index d212e51..e275f2b 100644
--- a/wearable/wear/DataLayer/Wearable/src/main/java/com/example/android/wearable/datalayer/MainActivity.java
+++ b/wearable/wear/DataLayer/Wearable/src/main/java/com/example/android/wearable/datalayer/MainActivity.java
@@ -22,17 +22,22 @@
 import android.net.Uri;
 import android.os.AsyncTask;
 import android.os.Bundle;
-import android.support.v4.app.FragmentActivity;
-import android.support.v4.content.res.ResourcesCompat;
-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.text.TextUtils;
 import android.util.Log;
 import android.view.View;
 import android.widget.Toast;
 
+import androidx.core.content.res.ResourcesCompat;
+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 com.example.android.wearable.datalayer.DataLayerScreen.CapabilityDiscoveryData;
+import com.example.android.wearable.datalayer.DataLayerScreen.DataLayerScreenData;
+import com.example.android.wearable.datalayer.DataLayerScreen.EventLoggingData;
+import com.example.android.wearable.datalayer.DataLayerScreen.ImageAssetData;
 import com.google.android.gms.tasks.OnSuccessListener;
 import com.google.android.gms.tasks.Task;
 import com.google.android.gms.tasks.Tasks;
@@ -48,11 +53,6 @@
 import com.google.android.gms.wearable.Node;
 import com.google.android.gms.wearable.Wearable;
 
-import com.example.android.wearable.datalayer.DataLayerScreen.CapabilityDiscoveryData;
-import com.example.android.wearable.datalayer.DataLayerScreen.DataLayerScreenData;
-import com.example.android.wearable.datalayer.DataLayerScreen.EventLoggingData;
-import com.example.android.wearable.datalayer.DataLayerScreen.ImageAssetData;
-
 import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.HashSet;
diff --git a/wearable/wear/DataLayer/Wearable/src/main/res/layout/main_activity.xml b/wearable/wear/DataLayer/Wearable/src/main/res/layout/main_activity.xml
index a7a3430..57f176f 100644
--- a/wearable/wear/DataLayer/Wearable/src/main/res/layout/main_activity.xml
+++ b/wearable/wear/DataLayer/Wearable/src/main/res/layout/main_activity.xml
@@ -19,10 +19,10 @@
                 android:background="@color/white">
 
 
-    <android.support.wear.widget.WearableRecyclerView
+    <androidx.wear.widget.WearableRecyclerView
         android:id="@+id/recycler_view"
         android:layout_width="match_parent"
         android:layout_height="match_parent">
 
-    </android.support.wear.widget.WearableRecyclerView>
+    </androidx.wear.widget.WearableRecyclerView>
 </RelativeLayout>
diff --git a/wearable/wear/DataLayer/Wearable/src/main/res/layout/recycler_row_event_logging.xml b/wearable/wear/DataLayer/Wearable/src/main/res/layout/recycler_row_event_logging.xml
index e010d96..7cf2fa1 100644
--- a/wearable/wear/DataLayer/Wearable/src/main/res/layout/recycler_row_event_logging.xml
+++ b/wearable/wear/DataLayer/Wearable/src/main/res/layout/recycler_row_event_logging.xml
@@ -14,7 +14,7 @@
      limitations under the License.
 -->
 
-<android.support.wear.widget.BoxInsetLayout
+<androidx.wear.widget.BoxInsetLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:id="@+id/layout"
@@ -42,4 +42,4 @@
             android:layout_height="match_parent"
             android:transcriptMode="alwaysScroll"/>
     </FrameLayout>
-</android.support.wear.widget.BoxInsetLayout>
+</androidx.wear.widget.BoxInsetLayout>
diff --git a/wearable/wear/DataLayer/gradle.properties b/wearable/wear/DataLayer/gradle.properties
index 0bc4294..94f8472 100644
--- a/wearable/wear/DataLayer/gradle.properties
+++ b/wearable/wear/DataLayer/gradle.properties
@@ -18,3 +18,5 @@
 # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
 # org.gradle.parallel=true
 
+android.useAndroidX=true
+android.enableJetifier=true
diff --git a/wearable/wear/DataLayer/template-params.xml b/wearable/wear/DataLayer/template-params.xml
index 8475001..9aee449 100644
--- a/wearable/wear/DataLayer/template-params.xml
+++ b/wearable/wear/DataLayer/template-params.xml
@@ -25,13 +25,21 @@
 
     <multiDexEnabled>true</multiDexEnabled>
 
-    <dependency>com.android.support:recyclerview-v7:27.1.1</dependency>
-    <dependency>com.android.support:percent:27.1.1</dependency>
+    <androidX>true</androidX>
 
-    <dependency_wearable>com.android.support:wear:27.1.1</dependency_wearable>
+    <dependency>androidx.legacy:legacy-support-v4:1.0.0</dependency>
+    <dependency>androidx.legacy:legacy-support-v13:1.0.0</dependency>
 
-    <dependency_wearable>com.android.support:recyclerview-v7:27.1.1</dependency_wearable>
-    <dependency_wearable>com.android.support:percent:27.1.1</dependency_wearable>
+    <dependency>androidx.cardview:cardview:1.0.0</dependency>
+    <dependency>androidx.appcompat:appcompat:1.0.2</dependency>
+    <dependency>androidx.recyclerview:recyclerview:1.0.0</dependency>
+    <dependency>androidx.percentlayout:percentlayout:1.0.0</dependency>
+
+    <dependency_wearable>androidx.wear:wear:1.0.0</dependency_wearable>
+    <dependency_wearable>androidx.recyclerview:recyclerview:1.0.0</dependency_wearable>
+    <dependency_wearable>androidx.percentlayout:percentlayout:1.0.0</dependency_wearable>
+    <dependency_wearable>androidx.legacy:legacy-support-v13:1.0.0</dependency_wearable>
+
 
     <wearable>
         <has_handheld_app>true</has_handheld_app>
diff --git a/wearable/wear/JumpingJack/Application/src/common/java/com/example/android/common/activities/SampleActivityBase.java b/wearable/wear/JumpingJack/Application/src/common/java/com/example/android/common/activities/SampleActivityBase.java
deleted file mode 100644
index 3228927..0000000
--- a/wearable/wear/JumpingJack/Application/src/common/java/com/example/android/common/activities/SampleActivityBase.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
-* Copyright 2013 The Android Open Source Project
-*
-* 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.common.activities;
-
-import android.os.Bundle;
-import android.support.v4.app.FragmentActivity;
-
-import com.example.android.common.logger.Log;
-import com.example.android.common.logger.LogWrapper;
-
-/**
- * Base launcher activity, to handle most of the common plumbing for samples.
- */
-public class SampleActivityBase extends FragmentActivity {
-
-    public static final String TAG = "SampleActivityBase";
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-    }
-
-    @Override
-    protected  void onStart() {
-        super.onStart();
-        initializeLogging();
-    }
-
-    /** Set up targets to receive log data */
-    public void initializeLogging() {
-        // Using Log, front-end to the logging chain, emulates android.util.log method signatures.
-        // Wraps Android's native log framework
-        LogWrapper logWrapper = new LogWrapper();
-        Log.setLogNode(logWrapper);
-
-        Log.i(TAG, "Ready");
-    }
-}
diff --git a/wearable/wear/JumpingJack/Application/src/common/java/com/example/android/common/logger/Log.java b/wearable/wear/JumpingJack/Application/src/common/java/com/example/android/common/logger/Log.java
deleted file mode 100644
index 17503c5..0000000
--- a/wearable/wear/JumpingJack/Application/src/common/java/com/example/android/common/logger/Log.java
+++ /dev/null
@@ -1,236 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * 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.common.logger;
-
-/**
- * Helper class for a list (or tree) of LoggerNodes.
- *
- * <p>When this is set as the head of the list,
- * an instance of it can function as a drop-in replacement for {@link android.util.Log}.
- * Most of the methods in this class server only to map a method call in Log to its equivalent
- * in LogNode.</p>
- */
-public class Log {
-    // Grabbing the native values from Android's native logging facilities,
-    // to make for easy migration and interop.
-    public static final int NONE = -1;
-    public static final int VERBOSE = android.util.Log.VERBOSE;
-    public static final int DEBUG = android.util.Log.DEBUG;
-    public static final int INFO = android.util.Log.INFO;
-    public static final int WARN = android.util.Log.WARN;
-    public static final int ERROR = android.util.Log.ERROR;
-    public static final int ASSERT = android.util.Log.ASSERT;
-
-    // Stores the beginning of the LogNode topology.
-    private static LogNode mLogNode;
-
-    /**
-     * Returns the next LogNode in the linked list.
-     */
-    public static LogNode getLogNode() {
-        return mLogNode;
-    }
-
-    /**
-     * Sets the LogNode data will be sent to.
-     */
-    public static void setLogNode(LogNode node) {
-        mLogNode = node;
-    }
-
-    /**
-     * Instructs the LogNode to print the log data provided. Other LogNodes can
-     * be chained to the end of the LogNode as desired.
-     *
-     * @param priority Log level of the data being logged. Verbose, Error, etc.
-     * @param tag Tag for for the log data. Can be used to organize log statements.
-     * @param msg The actual message to be logged.
-     * @param tr If an exception was thrown, this can be sent along for the logging facilities
-     *           to extract and print useful information.
-     */
-    public static void println(int priority, String tag, String msg, Throwable tr) {
-        if (mLogNode != null) {
-            mLogNode.println(priority, tag, msg, tr);
-        }
-    }
-
-    /**
-     * Instructs the LogNode to print the log data provided. Other LogNodes can
-     * be chained to the end of the LogNode as desired.
-     *
-     * @param priority Log level of the data being logged. Verbose, Error, etc.
-     * @param tag Tag for for the log data. Can be used to organize log statements.
-     * @param msg The actual message to be logged. The actual message to be logged.
-     */
-    public static void println(int priority, String tag, String msg) {
-        println(priority, tag, msg, null);
-    }
-
-   /**
-     * Prints a message at VERBOSE priority.
-     *
-     * @param tag Tag for for the log data. Can be used to organize log statements.
-     * @param msg The actual message to be logged.
-     * @param tr If an exception was thrown, this can be sent along for the logging facilities
-     *           to extract and print useful information.
-     */
-    public static void v(String tag, String msg, Throwable tr) {
-        println(VERBOSE, tag, msg, tr);
-    }
-
-    /**
-     * Prints a message at VERBOSE priority.
-     *
-     * @param tag Tag for for the log data. Can be used to organize log statements.
-     * @param msg The actual message to be logged.
-     */
-    public static void v(String tag, String msg) {
-        v(tag, msg, null);
-    }
-
-
-    /**
-     * Prints a message at DEBUG priority.
-     *
-     * @param tag Tag for for the log data. Can be used to organize log statements.
-     * @param msg The actual message to be logged.
-     * @param tr If an exception was thrown, this can be sent along for the logging facilities
-     *           to extract and print useful information.
-     */
-    public static void d(String tag, String msg, Throwable tr) {
-        println(DEBUG, tag, msg, tr);
-    }
-
-    /**
-     * Prints a message at DEBUG priority.
-     *
-     * @param tag Tag for for the log data. Can be used to organize log statements.
-     * @param msg The actual message to be logged.
-     */
-    public static void d(String tag, String msg) {
-        d(tag, msg, null);
-    }
-
-    /**
-     * Prints a message at INFO priority.
-     *
-     * @param tag Tag for for the log data. Can be used to organize log statements.
-     * @param msg The actual message to be logged.
-     * @param tr If an exception was thrown, this can be sent along for the logging facilities
-     *           to extract and print useful information.
-     */
-    public static void i(String tag, String msg, Throwable tr) {
-        println(INFO, tag, msg, tr);
-    }
-
-    /**
-     * Prints a message at INFO priority.
-     *
-     * @param tag Tag for for the log data. Can be used to organize log statements.
-     * @param msg The actual message to be logged.
-     */
-    public static void i(String tag, String msg) {
-        i(tag, msg, null);
-    }
-
-    /**
-     * Prints a message at WARN priority.
-     *
-     * @param tag Tag for for the log data. Can be used to organize log statements.
-     * @param msg The actual message to be logged.
-     * @param tr If an exception was thrown, this can be sent along for the logging facilities
-     *           to extract and print useful information.
-     */
-    public static void w(String tag, String msg, Throwable tr) {
-        println(WARN, tag, msg, tr);
-    }
-
-    /**
-     * Prints a message at WARN priority.
-     *
-     * @param tag Tag for for the log data. Can be used to organize log statements.
-     * @param msg The actual message to be logged.
-     */
-    public static void w(String tag, String msg) {
-        w(tag, msg, null);
-    }
-
-    /**
-     * Prints a message at WARN priority.
-     *
-     * @param tag Tag for for the log data. Can be used to organize log statements.
-     * @param tr If an exception was thrown, this can be sent along for the logging facilities
-     *           to extract and print useful information.
-     */
-    public static void w(String tag, Throwable tr) {
-        w(tag, null, tr);
-    }
-
-    /**
-     * Prints a message at ERROR priority.
-     *
-     * @param tag Tag for for the log data. Can be used to organize log statements.
-     * @param msg The actual message to be logged.
-     * @param tr If an exception was thrown, this can be sent along for the logging facilities
-     *           to extract and print useful information.
-     */
-    public static void e(String tag, String msg, Throwable tr) {
-        println(ERROR, tag, msg, tr);
-    }
-
-    /**
-     * Prints a message at ERROR priority.
-     *
-     * @param tag Tag for for the log data. Can be used to organize log statements.
-     * @param msg The actual message to be logged.
-     */
-    public static void e(String tag, String msg) {
-        e(tag, msg, null);
-    }
-
-    /**
-     * Prints a message at ASSERT priority.
-     *
-     * @param tag Tag for for the log data. Can be used to organize log statements.
-     * @param msg The actual message to be logged.
-     * @param tr If an exception was thrown, this can be sent along for the logging facilities
-     *           to extract and print useful information.
-     */
-    public static void wtf(String tag, String msg, Throwable tr) {
-        println(ASSERT, tag, msg, tr);
-    }
-
-    /**
-     * Prints a message at ASSERT priority.
-     *
-     * @param tag Tag for for the log data. Can be used to organize log statements.
-     * @param msg The actual message to be logged.
-     */
-    public static void wtf(String tag, String msg) {
-        wtf(tag, msg, null);
-    }
-
-    /**
-     * Prints a message at ASSERT priority.
-     *
-     * @param tag Tag for for the log data. Can be used to organize log statements.
-     * @param tr If an exception was thrown, this can be sent along for the logging facilities
-     *           to extract and print useful information.
-     */
-    public static void wtf(String tag, Throwable tr) {
-        wtf(tag, null, tr);
-    }
-}
diff --git a/wearable/wear/JumpingJack/Application/src/common/java/com/example/android/common/logger/LogFragment.java b/wearable/wear/JumpingJack/Application/src/common/java/com/example/android/common/logger/LogFragment.java
deleted file mode 100644
index b302acd..0000000
--- a/wearable/wear/JumpingJack/Application/src/common/java/com/example/android/common/logger/LogFragment.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
-* Copyright 2013 The Android Open Source Project
-*
-* 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.
-*/
-/*
- * Copyright 2013 The Android Open Source Project
- *
- * 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.common.logger;
-
-import android.graphics.Typeface;
-import android.os.Bundle;
-import android.support.v4.app.Fragment;
-import android.text.Editable;
-import android.text.TextWatcher;
-import android.view.Gravity;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.ScrollView;
-
-/**
- * Simple fraggment which contains a LogView and uses is to output log data it receives
- * through the LogNode interface.
- */
-public class LogFragment extends Fragment {
-
-    private LogView mLogView;
-    private ScrollView mScrollView;
-
-    public LogFragment() {}
-
-    public View inflateViews() {
-        mScrollView = new ScrollView(getActivity());
-        ViewGroup.LayoutParams scrollParams = new ViewGroup.LayoutParams(
-                ViewGroup.LayoutParams.MATCH_PARENT,
-                ViewGroup.LayoutParams.MATCH_PARENT);
-        mScrollView.setLayoutParams(scrollParams);
-
-        mLogView = new LogView(getActivity());
-        ViewGroup.LayoutParams logParams = new ViewGroup.LayoutParams(scrollParams);
-        logParams.height = ViewGroup.LayoutParams.WRAP_CONTENT;
-        mLogView.setLayoutParams(logParams);
-        mLogView.setClickable(true);
-        mLogView.setFocusable(true);
-        mLogView.setTypeface(Typeface.MONOSPACE);
-
-        // Want to set padding as 16 dips, setPadding takes pixels.  Hooray math!
-        int paddingDips = 16;
-        double scale = getResources().getDisplayMetrics().density;
-        int paddingPixels = (int) ((paddingDips * (scale)) + .5);
-        mLogView.setPadding(paddingPixels, paddingPixels, paddingPixels, paddingPixels);
-        mLogView.setCompoundDrawablePadding(paddingPixels);
-
-        mLogView.setGravity(Gravity.BOTTOM);
-        mLogView.setTextAppearance(getActivity(), android.R.style.TextAppearance_Holo_Medium);
-
-        mScrollView.addView(mLogView);
-        return mScrollView;
-    }
-
-    @Override
-    public View onCreateView(LayoutInflater inflater, ViewGroup container,
-                             Bundle savedInstanceState) {
-
-        View result = inflateViews();
-
-        mLogView.addTextChangedListener(new TextWatcher() {
-            @Override
-            public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
-
-            @Override
-            public void onTextChanged(CharSequence s, int start, int before, int count) {}
-
-            @Override
-            public void afterTextChanged(Editable s) {
-                mScrollView.fullScroll(ScrollView.FOCUS_DOWN);
-            }
-        });
-        return result;
-    }
-
-    public LogView getLogView() {
-        return mLogView;
-    }
-}
\ No newline at end of file
diff --git a/wearable/wear/JumpingJack/Application/src/common/java/com/example/android/common/logger/LogNode.java b/wearable/wear/JumpingJack/Application/src/common/java/com/example/android/common/logger/LogNode.java
deleted file mode 100644
index bc37cab..0000000
--- a/wearable/wear/JumpingJack/Application/src/common/java/com/example/android/common/logger/LogNode.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * 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.common.logger;
-
-/**
- * Basic interface for a logging system that can output to one or more targets.
- * Note that in addition to classes that will output these logs in some format,
- * one can also implement this interface over a filter and insert that in the chain,
- * such that no targets further down see certain data, or see manipulated forms of the data.
- * You could, for instance, write a "ToHtmlLoggerNode" that just converted all the log data
- * it received to HTML and sent it along to the next node in the chain, without printing it
- * anywhere.
- */
-public interface LogNode {
-
-    /**
-     * Instructs first LogNode in the list to print the log data provided.
-     * @param priority Log level of the data being logged.  Verbose, Error, etc.
-     * @param tag Tag for for the log data.  Can be used to organize log statements.
-     * @param msg The actual message to be logged. The actual message to be logged.
-     * @param tr If an exception was thrown, this can be sent along for the logging facilities
-     *           to extract and print useful information.
-     */
-    public void println(int priority, String tag, String msg, Throwable tr);
-
-}
diff --git a/wearable/wear/JumpingJack/Application/src/common/java/com/example/android/common/logger/LogView.java b/wearable/wear/JumpingJack/Application/src/common/java/com/example/android/common/logger/LogView.java
deleted file mode 100644
index c01542b..0000000
--- a/wearable/wear/JumpingJack/Application/src/common/java/com/example/android/common/logger/LogView.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * 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.common.logger;
-
-import android.app.Activity;
-import android.content.Context;
-import android.util.*;
-import android.widget.TextView;
-
-/** Simple TextView which is used to output log data received through the LogNode interface.
-*/
-public class LogView extends TextView implements LogNode {
-
-    public LogView(Context context) {
-        super(context);
-    }
-
-    public LogView(Context context, AttributeSet attrs) {
-        super(context, attrs);
-    }
-
-    public LogView(Context context, AttributeSet attrs, int defStyle) {
-        super(context, attrs, defStyle);
-    }
-
-    /**
-     * Formats the log data and prints it out to the LogView.
-     * @param priority Log level of the data being logged.  Verbose, Error, etc.
-     * @param tag Tag for for the log data.  Can be used to organize log statements.
-     * @param msg The actual message to be logged. The actual message to be logged.
-     * @param tr If an exception was thrown, this can be sent along for the logging facilities
-     *           to extract and print useful information.
-     */
-    @Override
-    public void println(int priority, String tag, String msg, Throwable tr) {
-
-        
-        String priorityStr = null;
-
-        // For the purposes of this View, we want to print the priority as readable text.
-        switch(priority) {
-            case android.util.Log.VERBOSE:
-                priorityStr = "VERBOSE";
-                break;
-            case android.util.Log.DEBUG:
-                priorityStr = "DEBUG";
-                break;
-            case android.util.Log.INFO:
-                priorityStr = "INFO";
-                break;
-            case android.util.Log.WARN:
-                priorityStr = "WARN";
-                break;
-            case android.util.Log.ERROR:
-                priorityStr = "ERROR";
-                break;
-            case android.util.Log.ASSERT:
-                priorityStr = "ASSERT";
-                break;
-            default:
-                break;
-        }
-
-        // Handily, the Log class has a facility for converting a stack trace into a usable string.
-        String exceptionStr = null;
-        if (tr != null) {
-            exceptionStr = android.util.Log.getStackTraceString(tr);
-        }
-
-        // Take the priority, tag, message, and exception, and concatenate as necessary
-        // into one usable line of text.
-        final StringBuilder outputBuilder = new StringBuilder();
-
-        String delimiter = "\t";
-        appendIfNotNull(outputBuilder, priorityStr, delimiter);
-        appendIfNotNull(outputBuilder, tag, delimiter);
-        appendIfNotNull(outputBuilder, msg, delimiter);
-        appendIfNotNull(outputBuilder, exceptionStr, delimiter);
-
-        // In case this was originally called from an AsyncTask or some other off-UI thread,
-        // make sure the update occurs within the UI thread.
-        ((Activity) getContext()).runOnUiThread( (new Thread(new Runnable() {
-            @Override
-            public void run() {
-                // Display the text we just generated within the LogView.
-                appendToLog(outputBuilder.toString());
-            }
-        })));
-
-        if (mNext != null) {
-            mNext.println(priority, tag, msg, tr);
-        }
-    }
-
-    public LogNode getNext() {
-        return mNext;
-    }
-
-    public void setNext(LogNode node) {
-        mNext = node;
-    }
-
-    /** Takes a string and adds to it, with a separator, if the bit to be added isn't null. Since
-     * the logger takes so many arguments that might be null, this method helps cut out some of the
-     * agonizing tedium of writing the same 3 lines over and over.
-     * @param source StringBuilder containing the text to append to.
-     * @param addStr The String to append
-     * @param delimiter The String to separate the source and appended strings. A tab or comma,
-     *                  for instance.
-     * @return The fully concatenated String as a StringBuilder
-     */
-    private StringBuilder appendIfNotNull(StringBuilder source, String addStr, String delimiter) {
-        if (addStr != null) {
-            if (addStr.length() == 0) {
-                delimiter = "";
-            }
-
-            return source.append(addStr).append(delimiter);
-        }
-        return source;
-    }
-
-    // The next LogNode in the chain.
-    LogNode mNext;
-
-    /** Outputs the string as a new line of log data in the LogView. */
-    public void appendToLog(String s) {
-        append("\n" + s);
-    }
-
-
-}
diff --git a/wearable/wear/JumpingJack/Application/src/common/java/com/example/android/common/logger/LogWrapper.java b/wearable/wear/JumpingJack/Application/src/common/java/com/example/android/common/logger/LogWrapper.java
deleted file mode 100644
index 16a9e7b..0000000
--- a/wearable/wear/JumpingJack/Application/src/common/java/com/example/android/common/logger/LogWrapper.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * 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.common.logger;
-
-import android.util.Log;
-
-/**
- * Helper class which wraps Android's native Log utility in the Logger interface.  This way
- * normal DDMS output can be one of the many targets receiving and outputting logs simultaneously.
- */
-public class LogWrapper implements LogNode {
-
-    // For piping:  The next node to receive Log data after this one has done its work.
-    private LogNode mNext;
-
-    /**
-     * Returns the next LogNode in the linked list.
-     */
-    public LogNode getNext() {
-        return mNext;
-    }
-
-    /**
-     * Sets the LogNode data will be sent to..
-     */
-    public void setNext(LogNode node) {
-        mNext = node;
-    }
-
-    /**
-     * Prints data out to the console using Android's native log mechanism.
-     * @param priority Log level of the data being logged.  Verbose, Error, etc.
-     * @param tag Tag for for the log data.  Can be used to organize log statements.
-     * @param msg The actual message to be logged. The actual message to be logged.
-     * @param tr If an exception was thrown, this can be sent along for the logging facilities
-     *           to extract and print useful information.
-     */
-    @Override
-    public void println(int priority, String tag, String msg, Throwable tr) {
-        // There actually are log methods that don't take a msg parameter.  For now,
-        // if that's the case, just convert null to the empty string and move on.
-        String useMsg = msg;
-        if (useMsg == null) {
-            useMsg = "";
-        }
-
-        // If an exeption was provided, convert that exception to a usable string and attach
-        // it to the end of the msg method.
-        if (tr != null) {
-            msg += "\n" + Log.getStackTraceString(tr);
-        }
-
-        // This is functionally identical to Log.x(tag, useMsg);
-        // For instance, if priority were Log.VERBOSE, this would be the same as Log.v(tag, useMsg)
-        Log.println(priority, tag, useMsg);
-
-        // If this isn't the last node in the chain, move things along.
-        if (mNext != null) {
-            mNext.println(priority, tag, msg, tr);
-        }
-    }
-}
diff --git a/wearable/wear/JumpingJack/Application/src/common/java/com/example/android/common/logger/MessageOnlyLogFilter.java b/wearable/wear/JumpingJack/Application/src/common/java/com/example/android/common/logger/MessageOnlyLogFilter.java
deleted file mode 100644
index 19967dc..0000000
--- a/wearable/wear/JumpingJack/Application/src/common/java/com/example/android/common/logger/MessageOnlyLogFilter.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * 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.common.logger;
-
-/**
- * Simple {@link LogNode} filter, removes everything except the message.
- * Useful for situations like on-screen log output where you don't want a lot of metadata displayed,
- * just easy-to-read message updates as they're happening.
- */
-public class MessageOnlyLogFilter implements LogNode {
-
-    LogNode mNext;
-
-    /**
-     * Takes the "next" LogNode as a parameter, to simplify chaining.
-     *
-     * @param next The next LogNode in the pipeline.
-     */
-    public MessageOnlyLogFilter(LogNode next) {
-        mNext = next;
-    }
-
-    public MessageOnlyLogFilter() {
-    }
-
-    @Override
-    public void println(int priority, String tag, String msg, Throwable tr) {
-        if (mNext != null) {
-            getNext().println(Log.NONE, null, msg, null);
-        }
-    }
-
-    /**
-     * Returns the next LogNode in the chain.
-     */
-    public LogNode getNext() {
-        return mNext;
-    }
-
-    /**
-     * Sets the LogNode data will be sent to..
-     */
-    public void setNext(LogNode node) {
-        mNext = node;
-    }
-
-}
diff --git a/wearable/wear/JumpingJack/Wearable/src/main/AndroidManifest.xml b/wearable/wear/JumpingJack/Wearable/src/main/AndroidManifest.xml
index 0e0475a..eff177c 100644
--- a/wearable/wear/JumpingJack/Wearable/src/main/AndroidManifest.xml
+++ b/wearable/wear/JumpingJack/Wearable/src/main/AndroidManifest.xml
@@ -17,13 +17,12 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
           package="com.example.android.wearable.jumpingjack">
 
-   <uses-sdk android:minSdkVersion="20"
-             android:targetSdkVersion="25" />
-
     <uses-feature android:name="android.hardware.type.watch" />
 
     <uses-permission android:name="android.permission.VIBRATE"/>
 
+    <uses-permission android:name="android.permission.WAKE_LOCK" />
+
     <application
             android:allowBackup="true"
             android:icon="@drawable/ic_launcher"
diff --git a/wearable/wear/JumpingJack/Wearable/src/main/java/com/example/android/wearable/jumpingjack/MainActivity.java b/wearable/wear/JumpingJack/Wearable/src/main/java/com/example/android/wearable/jumpingjack/MainActivity.java
index 8618a9d..f344cfe 100644
--- a/wearable/wear/JumpingJack/Wearable/src/main/java/com/example/android/wearable/jumpingjack/MainActivity.java
+++ b/wearable/wear/JumpingJack/Wearable/src/main/java/com/example/android/wearable/jumpingjack/MainActivity.java
@@ -16,79 +16,78 @@
 
 package com.example.android.wearable.jumpingjack;
 
-import com.example.android.wearable.jumpingjack.fragments.CounterFragment;
-import com.example.android.wearable.jumpingjack.fragments.SettingsFragment;
-
-import android.app.Activity;
 import android.content.Context;
 import android.hardware.Sensor;
 import android.hardware.SensorEvent;
 import android.hardware.SensorEventListener;
 import android.hardware.SensorManager;
 import android.os.Bundle;
-import android.os.Handler;
-import android.support.v4.view.ViewPager;
 import android.util.Log;
-import android.view.WindowManager;
 import android.widget.ImageView;
 
-import java.util.Timer;
-import java.util.TimerTask;
+import androidx.fragment.app.FragmentActivity;
+import androidx.viewpager.widget.ViewPager;
+import androidx.wear.ambient.AmbientModeSupport;
+
+import com.example.android.wearable.jumpingjack.fragments.CounterFragment;
+import com.example.android.wearable.jumpingjack.fragments.SettingsFragment;
+
+import java.util.concurrent.TimeUnit;
 
 /**
  * The main activity for the Jumping Jack application. This activity registers itself to receive
- * sensor values. Since on wearable devices a full screen activity is very short-lived, we set the
- * FLAG_KEEP_SCREEN_ON to give user adequate time for taking actions but since we don't want to
- * keep screen on for an extended period of time, there is a SCREEN_ON_TIMEOUT_MS that is enforced
- * if no interaction is discovered.
+ * sensor values.
  *
- * This activity includes a {@link android.support.v4.view.ViewPager} with two pages, one that
+ * This activity includes a {@link ViewPager} with two pages, one that
  * shows the current count and one that allows user to reset the counter. the current value of the
  * counter is persisted so that upon re-launch, the counter picks up from the last value. At any
  * stage, user can set this counter to 0.
  */
-public class MainActivity extends Activity
-        implements SensorEventListener {
+public class MainActivity extends FragmentActivity
+        implements AmbientModeSupport.AmbientCallbackProvider, SensorEventListener {
 
     private static final String TAG = "MainActivity";
 
-    /** How long to keep the screen on when no activity is happening **/
-    private static final long SCREEN_ON_TIMEOUT_MS = 20000; // in milliseconds
-
-    /** an up-down movement that takes more than this will not be registered as such **/
-    private static final long TIME_THRESHOLD_NS = 2000000000; // in nanoseconds (= 2sec)
+    // An up-down movement that takes more than 2 seconds will not be registered (in nanoseconds).
+    private static final long TIME_THRESHOLD_NS = TimeUnit.SECONDS.toNanos(2);
 
     /**
      * Earth gravity is around 9.8 m/s^2 but user may not completely direct his/her hand vertical
-     * during the exercise so we leave some room. Basically if the x-component of gravity, as
-     * measured by the Gravity sensor, changes with a variation (delta) > GRAVITY_THRESHOLD,
-     * we consider that a successful count.
+     * during the exercise so we leave some room. Basically, if the x-component of gravity, as
+     * measured by the Gravity sensor, changes with a variation delta > 0.03 from the hand down
+     * and hand up threshold we define below, we consider that a successful count.
+     *
+     * This is a very rudimentary formula and is by no means production accurate. You will want to
+     * take into account Y and Z gravity changes to get a truly accurate jumping jack.
+     *
+     * This sample is just meant to show how to easily get sensor values and use them.
      */
-    private static final float GRAVITY_THRESHOLD = 7.0f;
+    private static final float HAND_DOWN_GRAVITY_X_THRESHOLD = -.040f;
+    private static final float HAND_UP_GRAVITY_X_THRESHOLD = -.010f;
 
     private SensorManager mSensorManager;
     private Sensor mSensor;
     private long mLastTime = 0;
-    private boolean mUp = false;
     private int mJumpCounter = 0;
+    private boolean mHandDown = true;
+
+
     private ViewPager mPager;
     private CounterFragment mCounterPage;
     private SettingsFragment mSettingPage;
     private ImageView mSecondIndicator;
     private ImageView mFirstIndicator;
-    private Timer mTimer;
-    private TimerTask mTimerTask;
-    private Handler mHandler;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        setContentView(R.layout.jj_layout);
+        setContentView(R.layout.jumping_jack_layout);
+
+        AmbientModeSupport.attach(this);
+
         setupViews();
-        mHandler = new Handler();
+
         mJumpCounter = Utils.getCounterFromPreference(this);
-        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
-        renewTimer();
         mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
         mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_GRAVITY);
     }
@@ -97,9 +96,12 @@
         mPager = findViewById(R.id.pager);
         mFirstIndicator = findViewById(R.id.indicator_0);
         mSecondIndicator = findViewById(R.id.indicator_1);
+
         final PagerAdapter adapter = new PagerAdapter(getFragmentManager());
+
         mCounterPage = new CounterFragment();
         mSettingPage = new SettingsFragment();
+
         adapter.addFragment(mCounterPage);
         adapter.addFragment(mSettingPage);
         setIndicator(0);
@@ -111,7 +113,6 @@
             @Override
             public void onPageSelected(int i) {
                 setIndicator(i);
-                renewTimer();
             }
 
             @Override
@@ -149,23 +150,29 @@
 
     @Override
     public void onAccuracyChanged(Sensor sensor, int accuracy) {
+        // No op.
     }
 
     /**
-     * A simple algorithm to detect a successful up-down movement of hand(s). The algorithm is
-     * based on the assumption that when a person is wearing the watch, the x-component of gravity
-     * as measured by the Gravity Sensor is +9.8 when the hand is downward and -9.8 when the hand
-     * is upward (signs are reversed if the watch is worn on the right hand). Since the upward or
-     * downward may not be completely accurate, we leave some room and instead of 9.8, we use
-     * GRAVITY_THRESHOLD. We also consider the up <-> down movement successful if it takes less than
-     * TIME_THRESHOLD_NS.
+     * A very simple algorithm to detect a successful up-down movement of hand(s). The algorithm
+     * is based on a delta of the handing being up vs. down and taking less than TIME_THRESHOLD_NS
+     * to happen.
+     *
+     *
+     * This algorithm isn't intended to be used in production but just to show what's possible with
+     * sensors. You will want to take into account other components (y and z) and other sensors to
+     * get a more accurate reading.
      */
-    private void detectJump(float xValue, long timestamp) {
-        if ((Math.abs(xValue) > GRAVITY_THRESHOLD)) {
-            if(timestamp - mLastTime < TIME_THRESHOLD_NS && mUp != (xValue > 0)) {
-                onJumpDetected(!mUp);
+    private void detectJump(float xGravity, long timestamp) {
+
+        if ((xGravity <= HAND_DOWN_GRAVITY_X_THRESHOLD)
+                || (xGravity >= HAND_UP_GRAVITY_X_THRESHOLD)) {
+
+            if (timestamp - mLastTime < TIME_THRESHOLD_NS) {
+                // Hand is down when yValue is negative.
+                onJumpDetected(xGravity <= HAND_DOWN_GRAVITY_X_THRESHOLD);
             }
-            mUp = xValue > 0;
+
             mLastTime = timestamp;
         }
     }
@@ -173,14 +180,16 @@
     /**
      * Called on detection of a successful down -> up or up -> down movement of hand.
      */
-    private void onJumpDetected(boolean up) {
-        // we only count a pair of up and down as one successful movement
-        if (up) {
-            return;
+    private void onJumpDetected(boolean handDown) {
+        if (mHandDown != handDown) {
+            mHandDown = handDown;
+
+            // Only count when the hand is down (means the hand has gone up, then down).
+            if (mHandDown) {
+                mJumpCounter++;
+                setCounter(mJumpCounter);
+            }
         }
-        mJumpCounter++;
-        setCounter(mJumpCounter);
-        renewTimer();
     }
 
     /**
@@ -188,6 +197,7 @@
      * reaches a multiple of 10.
      */
     private void setCounter(int i) {
+        mJumpCounter = i;
         mCounterPage.setCounter(i);
         Utils.saveCounterToPreference(this, i);
         if (i > 0 && i % 10 == 0) {
@@ -197,44 +207,6 @@
 
     public void resetCounter() {
         setCounter(0);
-        renewTimer();
-    }
-
-    /**
-     * Starts a timer to clear the flag FLAG_KEEP_SCREEN_ON.
-     */
-    private void renewTimer() {
-        if (null != mTimer) {
-            mTimer.cancel();
-        }
-        mTimerTask = new TimerTask() {
-            @Override
-            public void run() {
-                if (Log.isLoggable(TAG, Log.DEBUG)) {
-                    Log.d(TAG,
-                            "Removing the FLAG_KEEP_SCREEN_ON flag to allow going to background");
-                }
-                resetFlag();
-            }
-        };
-        mTimer = new Timer();
-        mTimer.schedule(mTimerTask, SCREEN_ON_TIMEOUT_MS);
-    }
-
-    /**
-     * Resets the FLAG_KEEP_SCREEN_ON flag so activity can go into background.
-     */
-    private void resetFlag() {
-        mHandler.post(new Runnable() {
-            @Override
-            public void run() {
-                if (Log.isLoggable(TAG, Log.DEBUG)) {
-                    Log.d(TAG, "Resetting FLAG_KEEP_SCREEN_ON flag to allow going to background");
-                }
-                getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
-                finish();
-            }
-        });
     }
 
     /**
@@ -254,4 +226,35 @@
     }
 
 
+    @Override
+    public AmbientModeSupport.AmbientCallback getAmbientCallback() {
+        return new MyAmbientCallback();
+    }
+
+    /** Customizes appearance for Ambient mode. (We don't do anything minus default.) */
+    private class MyAmbientCallback extends AmbientModeSupport.AmbientCallback {
+        /** Prepares the UI for ambient mode. */
+        @Override
+        public void onEnterAmbient(Bundle ambientDetails) {
+            super.onEnterAmbient(ambientDetails);
+        }
+
+        /**
+         * Updates the display in ambient mode on the standard interval. Since we're using a custom
+         * refresh cycle, this method does NOT update the data in the display. Rather, this method
+         * simply updates the positioning of the data in the screen to avoid burn-in, if the display
+         * requires it.
+         */
+        @Override
+        public void onUpdateAmbient() {
+            super.onUpdateAmbient();
+        }
+
+        /** Restores the UI to active (non-ambient) mode. */
+        @Override
+        public void onExitAmbient() {
+            super.onExitAmbient();
+        }
+    }
+
 }
diff --git a/wearable/wear/JumpingJack/Wearable/src/main/java/com/example/android/wearable/jumpingjack/PagerAdapter.java b/wearable/wear/JumpingJack/Wearable/src/main/java/com/example/android/wearable/jumpingjack/PagerAdapter.java
index f7ac2b0..d4532e7 100644
--- a/wearable/wear/JumpingJack/Wearable/src/main/java/com/example/android/wearable/jumpingjack/PagerAdapter.java
+++ b/wearable/wear/JumpingJack/Wearable/src/main/java/com/example/android/wearable/jumpingjack/PagerAdapter.java
@@ -18,13 +18,15 @@
 
 import android.app.Fragment;
 import android.app.FragmentManager;
-import android.support.v13.app.FragmentPagerAdapter;
+
+import androidx.legacy.app.FragmentPagerAdapter;
+import androidx.viewpager.widget.ViewPager;
 
 import java.util.ArrayList;
 import java.util.List;
 
 /**
- * A simple adapter for the {@link android.support.v4.view.ViewPager}
+ * A simple adapter for the {@link ViewPager}
  */
 public class PagerAdapter extends FragmentPagerAdapter {
 
diff --git a/wearable/wear/JumpingJack/Wearable/src/main/res/layout/jj_layout.xml b/wearable/wear/JumpingJack/Wearable/src/main/res/layout/jumping_jack_layout.xml
similarity index 97%
rename from wearable/wear/JumpingJack/Wearable/src/main/res/layout/jj_layout.xml
rename to wearable/wear/JumpingJack/Wearable/src/main/res/layout/jumping_jack_layout.xml
index 73af6e3..0d0a67b 100644
--- a/wearable/wear/JumpingJack/Wearable/src/main/res/layout/jj_layout.xml
+++ b/wearable/wear/JumpingJack/Wearable/src/main/res/layout/jumping_jack_layout.xml
@@ -19,7 +19,7 @@
     android:layout_height="match_parent"
     android:background="@color/white">
 
-    <android.support.v4.view.ViewPager
+    <androidx.viewpager.widget.ViewPager
         xmlns:android="http://schemas.android.com/apk/res/android"
         android:id="@+id/pager"
         android:layout_width="match_parent"
diff --git a/wearable/wear/JumpingJack/gradle.properties b/wearable/wear/JumpingJack/gradle.properties
new file mode 100644
index 0000000..5465fec
--- /dev/null
+++ b/wearable/wear/JumpingJack/gradle.properties
@@ -0,0 +1,2 @@
+android.enableJetifier=true
+android.useAndroidX=true
\ No newline at end of file
diff --git a/wearable/wear/JumpingJack/template-params.xml b/wearable/wear/JumpingJack/template-params.xml
index d746b2c..9d802f6 100644
--- a/wearable/wear/JumpingJack/template-params.xml
+++ b/wearable/wear/JumpingJack/template-params.xml
@@ -34,8 +34,6 @@
 
     <template src="base-build"/>
     <template src="Wear"/>
-    <common src="logger"/>
-    <common src="activities"/>
 
     <metadata>
         <status>PUBLISHED</status>
diff --git a/wearable/wear/RuntimePermissionsWear/Application/src/main/AndroidManifest.xml b/wearable/wear/RuntimePermissionsWear/Application/src/main/AndroidManifest.xml
index d8a6a28..b8edf30 100644
--- a/wearable/wear/RuntimePermissionsWear/Application/src/main/AndroidManifest.xml
+++ b/wearable/wear/RuntimePermissionsWear/Application/src/main/AndroidManifest.xml
@@ -20,10 +20,6 @@
     android:versionCode="1"
     android:versionName="1.0">
 
-    <uses-sdk
-        android:minSdkVersion="18"
-        android:targetSdkVersion="23" />
-
     <!-- Permissions for phone. -->
     <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
 
diff --git a/wearable/wear/RuntimePermissionsWear/Application/src/main/java/com/example/android/wearable/runtimepermissions/IncomingRequestPhoneService.java b/wearable/wear/RuntimePermissionsWear/Application/src/main/java/com/example/android/wearable/runtimepermissions/IncomingRequestPhoneService.java
index 2c036cd..023665e 100644
--- a/wearable/wear/RuntimePermissionsWear/Application/src/main/java/com/example/android/wearable/runtimepermissions/IncomingRequestPhoneService.java
+++ b/wearable/wear/RuntimePermissionsWear/Application/src/main/java/com/example/android/wearable/runtimepermissions/IncomingRequestPhoneService.java
@@ -20,11 +20,11 @@
 import android.content.Intent;
 import android.content.pm.PackageManager;
 import android.os.Environment;
-import android.support.v4.app.ActivityCompat;
 import android.util.Log;
 
-import com.example.android.wearable.runtimepermissions.common.Constants;
+import androidx.core.app.ActivityCompat;
 
+import com.example.android.wearable.runtimepermissions.common.Constants;
 import com.google.android.gms.tasks.OnCompleteListener;
 import com.google.android.gms.tasks.Task;
 import com.google.android.gms.wearable.DataMap;
diff --git a/wearable/wear/RuntimePermissionsWear/Application/src/main/java/com/example/android/wearable/runtimepermissions/MainPhoneActivity.java b/wearable/wear/RuntimePermissionsWear/Application/src/main/java/com/example/android/wearable/runtimepermissions/MainPhoneActivity.java
index d2c3ea1..c915d48 100644
--- a/wearable/wear/RuntimePermissionsWear/Application/src/main/java/com/example/android/wearable/runtimepermissions/MainPhoneActivity.java
+++ b/wearable/wear/RuntimePermissionsWear/Application/src/main/java/com/example/android/wearable/runtimepermissions/MainPhoneActivity.java
@@ -20,18 +20,18 @@
 import android.app.Activity;
 import android.content.Intent;
 import android.content.pm.PackageManager;
+import android.os.Bundle;
 import android.os.Environment;
 import android.os.Looper;
-import android.support.v4.app.ActivityCompat;
-import android.support.v7.app.AppCompatActivity;
-import android.os.Bundle;
 import android.util.Log;
 import android.view.View;
 import android.widget.Button;
 import android.widget.TextView;
 
-import com.example.android.wearable.runtimepermissions.common.Constants;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.app.ActivityCompat;
 
+import com.example.android.wearable.runtimepermissions.common.Constants;
 import com.google.android.gms.tasks.OnCompleteListener;
 import com.google.android.gms.tasks.Task;
 import com.google.android.gms.wearable.CapabilityClient;
diff --git a/wearable/wear/RuntimePermissionsWear/Application/src/main/java/com/example/android/wearable/runtimepermissions/PhonePermissionRequestActivity.java b/wearable/wear/RuntimePermissionsWear/Application/src/main/java/com/example/android/wearable/runtimepermissions/PhonePermissionRequestActivity.java
index 0b10e35..f27b3a9 100644
--- a/wearable/wear/RuntimePermissionsWear/Application/src/main/java/com/example/android/wearable/runtimepermissions/PhonePermissionRequestActivity.java
+++ b/wearable/wear/RuntimePermissionsWear/Application/src/main/java/com/example/android/wearable/runtimepermissions/PhonePermissionRequestActivity.java
@@ -20,12 +20,13 @@
 import android.content.Intent;
 import android.content.pm.PackageManager;
 import android.os.Bundle;
-import android.support.annotation.NonNull;
-import android.support.v4.app.ActivityCompat;
-import android.support.v7.app.AppCompatActivity;
 import android.util.Log;
 import android.view.View;
 
+import androidx.annotation.NonNull;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.app.ActivityCompat;
+
 /**
  * This is a simple splash screen (activity) for giving more details on why the user should approve
  * phone permissions for storage. If they choose to move forward, the permission screen
diff --git a/wearable/wear/RuntimePermissionsWear/Application/src/main/java/com/example/android/wearable/runtimepermissions/WearPermissionRequestActivity.java b/wearable/wear/RuntimePermissionsWear/Application/src/main/java/com/example/android/wearable/runtimepermissions/WearPermissionRequestActivity.java
index 3340ef6..0a63e9e 100644
--- a/wearable/wear/RuntimePermissionsWear/Application/src/main/java/com/example/android/wearable/runtimepermissions/WearPermissionRequestActivity.java
+++ b/wearable/wear/RuntimePermissionsWear/Application/src/main/java/com/example/android/wearable/runtimepermissions/WearPermissionRequestActivity.java
@@ -18,11 +18,12 @@
 
 import android.app.Activity;
 import android.os.Bundle;
-import android.support.v4.app.ActivityCompat;
-import android.support.v7.app.AppCompatActivity;
 import android.util.Log;
 import android.view.View;
 
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.app.ActivityCompat;
+
 /**
  * This is a simple splash screen (activity) for giving more details on why the user should approve
  * phone permissions for storage. If they choose to move forward, the permission screen
diff --git a/wearable/wear/RuntimePermissionsWear/Shared/build.gradle b/wearable/wear/RuntimePermissionsWear/Shared/build.gradle
index c8b3782..d11e010 100644
--- a/wearable/wear/RuntimePermissionsWear/Shared/build.gradle
+++ b/wearable/wear/RuntimePermissionsWear/Shared/build.gradle
@@ -6,7 +6,7 @@
     }
 
     dependencies {
-        classpath 'com.android.tools.build:gradle:3.3.0'
+        classpath 'com.android.tools.build:gradle:3.3.2'
     }
 }
 
diff --git a/wearable/wear/RuntimePermissionsWear/Wearable/src/main/AndroidManifest.xml b/wearable/wear/RuntimePermissionsWear/Wearable/src/main/AndroidManifest.xml
index 385d3ce..e56ec85 100644
--- a/wearable/wear/RuntimePermissionsWear/Wearable/src/main/AndroidManifest.xml
+++ b/wearable/wear/RuntimePermissionsWear/Wearable/src/main/AndroidManifest.xml
@@ -20,10 +20,6 @@
     <uses-permission android:name="android.permission.WAKE_LOCK" />
     <uses-permission android:name="android.permission.BODY_SENSORS" />
 
-    <uses-sdk
-        android:minSdkVersion="21"
-        android:targetSdkVersion="23" />
-
     <application
         android:allowBackup="true"
         android:icon="@mipmap/ic_launcher"
diff --git a/wearable/wear/RuntimePermissionsWear/Wearable/src/main/java/com/example/android/wearable/runtimepermissions/IncomingRequestWearService.java b/wearable/wear/RuntimePermissionsWear/Wearable/src/main/java/com/example/android/wearable/runtimepermissions/IncomingRequestWearService.java
index 408b470..6c4c82e 100644
--- a/wearable/wear/RuntimePermissionsWear/Wearable/src/main/java/com/example/android/wearable/runtimepermissions/IncomingRequestWearService.java
+++ b/wearable/wear/RuntimePermissionsWear/Wearable/src/main/java/com/example/android/wearable/runtimepermissions/IncomingRequestWearService.java
@@ -21,11 +21,11 @@
 import android.content.pm.PackageManager;
 import android.hardware.Sensor;
 import android.hardware.SensorManager;
-import android.support.v4.app.ActivityCompat;
 import android.util.Log;
 
-import com.example.android.wearable.runtimepermissions.common.Constants;
+import androidx.core.app.ActivityCompat;
 
+import com.example.android.wearable.runtimepermissions.common.Constants;
 import com.google.android.gms.tasks.OnCompleteListener;
 import com.google.android.gms.tasks.Task;
 import com.google.android.gms.wearable.CapabilityClient;
diff --git a/wearable/wear/RuntimePermissionsWear/Wearable/src/main/java/com/example/android/wearable/runtimepermissions/MainWearActivity.java b/wearable/wear/RuntimePermissionsWear/Wearable/src/main/java/com/example/android/wearable/runtimepermissions/MainWearActivity.java
index 685f200..1f26f03 100644
--- a/wearable/wear/RuntimePermissionsWear/Wearable/src/main/java/com/example/android/wearable/runtimepermissions/MainWearActivity.java
+++ b/wearable/wear/RuntimePermissionsWear/Wearable/src/main/java/com/example/android/wearable/runtimepermissions/MainWearActivity.java
@@ -23,16 +23,16 @@
 import android.hardware.SensorManager;
 import android.os.Bundle;
 import android.os.Looper;
-import android.support.v4.app.ActivityCompat;
-import android.support.v4.app.FragmentActivity;
-import android.support.wear.ambient.AmbientModeSupport;
 import android.util.Log;
 import android.view.View;
 import android.widget.Button;
 import android.widget.TextView;
 
-import com.example.android.wearable.runtimepermissions.common.Constants;
+import androidx.core.app.ActivityCompat;
+import androidx.fragment.app.FragmentActivity;
+import androidx.wear.ambient.AmbientModeSupport;
 
+import com.example.android.wearable.runtimepermissions.common.Constants;
 import com.google.android.gms.tasks.OnCompleteListener;
 import com.google.android.gms.tasks.Task;
 import com.google.android.gms.wearable.CapabilityClient;
diff --git a/wearable/wear/RuntimePermissionsWear/Wearable/src/main/res/layout/activity_main.xml b/wearable/wear/RuntimePermissionsWear/Wearable/src/main/res/layout/activity_main.xml
index b0e9034..f6c4af7 100644
--- a/wearable/wear/RuntimePermissionsWear/Wearable/src/main/res/layout/activity_main.xml
+++ b/wearable/wear/RuntimePermissionsWear/Wearable/src/main/res/layout/activity_main.xml
@@ -12,7 +12,7 @@
   limitations under the License.
   -->
 
-<android.support.wear.widget.BoxInsetLayout
+<androidx.wear.widget.BoxInsetLayout
     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"
@@ -62,4 +62,4 @@
             android:text="@string/hello_wear_activity_main" />
     </LinearLayout>
 
-</android.support.wear.widget.BoxInsetLayout>
+</androidx.wear.widget.BoxInsetLayout>
diff --git a/wearable/wear/RuntimePermissionsWear/Wearable/src/main/res/layout/activity_request_permission_on_phone.xml b/wearable/wear/RuntimePermissionsWear/Wearable/src/main/res/layout/activity_request_permission_on_phone.xml
index f96d80b..7df1bb6 100644
--- a/wearable/wear/RuntimePermissionsWear/Wearable/src/main/res/layout/activity_request_permission_on_phone.xml
+++ b/wearable/wear/RuntimePermissionsWear/Wearable/src/main/res/layout/activity_request_permission_on_phone.xml
@@ -12,7 +12,7 @@
   limitations under the License.
   -->
 
-<android.support.wear.widget.BoxInsetLayout
+<androidx.wear.widget.BoxInsetLayout
     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"
@@ -40,7 +40,7 @@
             android:paddingRight="6dp"
             android:textColor="#000000"/>
 
-        <android.support.v4.widget.Space
+        <androidx.legacy.widget.Space
             android:layout_width="18dp"
             android:layout_height="18dp"/>
 
@@ -57,7 +57,7 @@
                 app:circle_color="#0086D4"
                 android:src="@drawable/ic_cc_open_on_phone"/>
 
-            <android.support.v4.widget.Space
+            <androidx.legacy.widget.Space
                 android:layout_width="8dp"
                 android:layout_height="8dp"/>
 
@@ -71,4 +71,4 @@
                 android:textColor="#0086D4"/>
         </LinearLayout>
     </LinearLayout>
-</android.support.wear.widget.BoxInsetLayout>
\ No newline at end of file
+</androidx.wear.widget.BoxInsetLayout>
\ No newline at end of file
diff --git a/wearable/wear/RuntimePermissionsWear/gradle.properties b/wearable/wear/RuntimePermissionsWear/gradle.properties
new file mode 100644
index 0000000..94f8472
--- /dev/null
+++ b/wearable/wear/RuntimePermissionsWear/gradle.properties
@@ -0,0 +1,22 @@
+
+# Project-wide Gradle settings.
+
+# IDE (e.g. Android Studio) users:
+# Settings specified in this file will override any Gradle settings
+# configured through the IDE.
+
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+# Default value: -Xmx10248m -XX:MaxPermSize=256m
+# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
+
+# When configured, Gradle will run in incubating parallel mode.
+# 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
+
+android.useAndroidX=true
+android.enableJetifier=true
diff --git a/wearable/wear/RuntimePermissionsWear/template-params.xml b/wearable/wear/RuntimePermissionsWear/template-params.xml
index 420265f..0ea4c62 100644
--- a/wearable/wear/RuntimePermissionsWear/template-params.xml
+++ b/wearable/wear/RuntimePermissionsWear/template-params.xml
@@ -21,20 +21,25 @@
     <package>com.example.android.wearable.runtimepermissions</package>
 
     <minSdk>18</minSdk>
-    <targetSdkVersion>27</targetSdkVersion>
+    <targetSdkVersion>28</targetSdkVersion>
 
     <minSdkVersionWear>23</minSdkVersionWear>
-    <targetSdkVersionWear>26</targetSdkVersionWear>
+    <targetSdkVersionWear>28</targetSdkVersionWear>
     <multiDexEnabled>true</multiDexEnabled>
 
     <wearable>
         <has_handheld_app>true</has_handheld_app>
     </wearable>
 
-    <dependency>com.android.support:appcompat-v7:27.1.1</dependency>
-    <dependency>com.android.support:design:27.1.1</dependency>
+    <androidX>true</androidX>
 
-    <dependency_wearable>com.android.support:wear:27.1.1</dependency_wearable>
+    <dependency>androidx.appcompat:appcompat:1.0.2</dependency>
+    <dependency>com.google.android.material:material:1.0.0</dependency>
+    <dependency>androidx.legacy:legacy-support-v13:1.0.0</dependency>
+
+    <dependency_wearable>androidx.wear:wear:1.0.0</dependency_wearable>
+    <dependency_wearable>androidx.legacy:legacy-support-v13:1.0.0</dependency_wearable>
+
 
     <strings>
         <intro>
diff --git a/wearable/wear/SpeedTracker/Application/src/main/AndroidManifest.xml b/wearable/wear/SpeedTracker/Application/src/main/AndroidManifest.xml
index bf86a10..09bf9d1 100644
--- a/wearable/wear/SpeedTracker/Application/src/main/AndroidManifest.xml
+++ b/wearable/wear/SpeedTracker/Application/src/main/AndroidManifest.xml
@@ -3,10 +3,6 @@
     package="com.example.android.wearable.speedtracker" >
 
 
-    <uses-sdk
-        android:minSdkVersion="18"
-        android:targetSdkVersion="25" />
-
     <!-- BEGIN_INCLUDE(manifest) -->
 
     <!-- Note that all required permissions are declared here in the Android manifest.
diff --git a/wearable/wear/SpeedTracker/Application/src/main/java/com/example/android/wearable/speedtracker/PhoneMainActivity.java b/wearable/wear/SpeedTracker/Application/src/main/java/com/example/android/wearable/speedtracker/PhoneMainActivity.java
index b915d26..4f9ea72 100644
--- a/wearable/wear/SpeedTracker/Application/src/main/java/com/example/android/wearable/speedtracker/PhoneMainActivity.java
+++ b/wearable/wear/SpeedTracker/Application/src/main/java/com/example/android/wearable/speedtracker/PhoneMainActivity.java
@@ -16,25 +16,25 @@
 
 package com.example.android.wearable.speedtracker;
 
-import com.google.android.gms.maps.CameraUpdateFactory;
-import com.google.android.gms.maps.GoogleMap;
-import com.google.android.gms.maps.SupportMapFragment;
-import com.google.android.gms.maps.OnMapReadyCallback;
-import com.google.android.gms.maps.model.LatLng;
-import com.google.android.gms.maps.model.LatLngBounds;
-import com.google.android.gms.maps.model.PolylineOptions;
-
 import android.app.DatePickerDialog;
 import android.os.AsyncTask;
 import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
 import android.text.format.DateUtils;
 import android.util.Log;
 import android.view.View;
 import android.widget.DatePicker;
 import android.widget.TextView;
 
+import androidx.appcompat.app.AppCompatActivity;
+
 import com.example.android.wearable.speedtracker.common.LocationEntry;
+import com.google.android.gms.maps.CameraUpdateFactory;
+import com.google.android.gms.maps.GoogleMap;
+import com.google.android.gms.maps.OnMapReadyCallback;
+import com.google.android.gms.maps.SupportMapFragment;
+import com.google.android.gms.maps.model.LatLng;
+import com.google.android.gms.maps.model.LatLngBounds;
+import com.google.android.gms.maps.model.PolylineOptions;
 
 import java.util.ArrayList;
 import java.util.Calendar;
diff --git a/wearable/wear/SpeedTracker/Wearable/src/main/AndroidManifest.xml b/wearable/wear/SpeedTracker/Wearable/src/main/AndroidManifest.xml
index feb2b81..9b16916 100644
--- a/wearable/wear/SpeedTracker/Wearable/src/main/AndroidManifest.xml
+++ b/wearable/wear/SpeedTracker/Wearable/src/main/AndroidManifest.xml
@@ -22,10 +22,6 @@
     <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
     <uses-permission android:name="android.permission.WAKE_LOCK" />
 
-    <uses-sdk
-        android:minSdkVersion="20"
-        android:targetSdkVersion="25" />
-
     <application
         android:allowBackup="true"
         android:icon="@drawable/ic_launcher"
diff --git a/wearable/wear/SpeedTracker/Wearable/src/main/java/com/example/android/wearable/speedtracker/WearableMainActivity.java b/wearable/wear/SpeedTracker/Wearable/src/main/java/com/example/android/wearable/speedtracker/WearableMainActivity.java
index c2e180c..1437549 100644
--- a/wearable/wear/SpeedTracker/Wearable/src/main/java/com/example/android/wearable/speedtracker/WearableMainActivity.java
+++ b/wearable/wear/SpeedTracker/Wearable/src/main/java/com/example/android/wearable/speedtracker/WearableMainActivity.java
@@ -16,18 +16,6 @@
 
 package com.example.android.wearable.speedtracker;
 
-import com.google.android.gms.common.ConnectionResult;
-import com.google.android.gms.common.api.GoogleApiClient;
-import com.google.android.gms.common.api.ResultCallback;
-import com.google.android.gms.common.api.Status;
-import com.google.android.gms.location.LocationListener;
-import com.google.android.gms.location.LocationRequest;
-import com.google.android.gms.location.LocationServices;
-import com.google.android.gms.wearable.DataApi;
-import com.google.android.gms.wearable.PutDataMapRequest;
-import com.google.android.gms.wearable.PutDataRequest;
-import com.google.android.gms.wearable.Wearable;
-
 import android.Manifest;
 import android.annotation.SuppressLint;
 import android.app.AlertDialog;
@@ -39,18 +27,30 @@
 import android.os.Bundle;
 import android.os.Handler;
 import android.preference.PreferenceManager;
-import android.support.annotation.NonNull;
-import android.support.v4.app.ActivityCompat;
-import android.support.v4.app.FragmentActivity;
-import android.support.v4.content.ContextCompat;
-import android.support.wear.ambient.AmbientModeSupport;
 import android.util.Log;
 import android.view.View;
 import android.widget.ImageView;
 import android.widget.TextView;
 
+import androidx.annotation.NonNull;
+import androidx.core.app.ActivityCompat;
+import androidx.core.content.ContextCompat;
+import androidx.fragment.app.FragmentActivity;
+import androidx.wear.ambient.AmbientModeSupport;
+
 import com.example.android.wearable.speedtracker.common.Constants;
 import com.example.android.wearable.speedtracker.common.LocationEntry;
+import com.google.android.gms.common.ConnectionResult;
+import com.google.android.gms.common.api.GoogleApiClient;
+import com.google.android.gms.common.api.ResultCallback;
+import com.google.android.gms.common.api.Status;
+import com.google.android.gms.location.LocationListener;
+import com.google.android.gms.location.LocationRequest;
+import com.google.android.gms.location.LocationServices;
+import com.google.android.gms.wearable.DataApi;
+import com.google.android.gms.wearable.PutDataMapRequest;
+import com.google.android.gms.wearable.PutDataRequest;
+import com.google.android.gms.wearable.Wearable;
 
 import java.util.Calendar;
 import java.util.concurrent.TimeUnit;
diff --git a/wearable/wear/SpeedTracker/Wearable/src/main/res/layout/speed_picker_activity.xml b/wearable/wear/SpeedTracker/Wearable/src/main/res/layout/speed_picker_activity.xml
index 2706211..8862db2 100644
--- a/wearable/wear/SpeedTracker/Wearable/src/main/res/layout/speed_picker_activity.xml
+++ b/wearable/wear/SpeedTracker/Wearable/src/main/res/layout/speed_picker_activity.xml
@@ -14,7 +14,7 @@
      limitations under the License.
 -->
 
-<android.support.wear.widget.BoxInsetLayout
+<androidx.wear.widget.BoxInsetLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:background="@android:color/black"
@@ -44,4 +44,4 @@
             android:layout_alignParentTop="true"
             android:text="@string/speed_limit_header"/>
     </RelativeLayout>
-</android.support.wear.widget.BoxInsetLayout>
\ No newline at end of file
+</androidx.wear.widget.BoxInsetLayout>
\ No newline at end of file
diff --git a/wearable/wear/SpeedTracker/gradle.properties b/wearable/wear/SpeedTracker/gradle.properties
index 5d08ba7..94f8472 100644
--- a/wearable/wear/SpeedTracker/gradle.properties
+++ b/wearable/wear/SpeedTracker/gradle.properties
@@ -1,3 +1,4 @@
+
 # Project-wide Gradle settings.
 
 # IDE (e.g. Android Studio) users:
@@ -15,4 +16,7 @@
 # When configured, Gradle will run in incubating parallel mode.
 # 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
\ No newline at end of file
+# org.gradle.parallel=true
+
+android.useAndroidX=true
+android.enableJetifier=true
diff --git a/wearable/wear/SpeedTracker/template-params.xml b/wearable/wear/SpeedTracker/template-params.xml
index d4d05ca..85dabf9 100644
--- a/wearable/wear/SpeedTracker/template-params.xml
+++ b/wearable/wear/SpeedTracker/template-params.xml
@@ -29,12 +29,16 @@
         <has_handheld_app>true</has_handheld_app>
     </wearable>
 
-    <dependency>com.android.support:design:27.1.1</dependency>
-    <dependency_wearable>com.android.support:wear:27.1.1</dependency_wearable>
+    <androidX>true</androidX>
 
-    <dependency>com.google.android.gms:play-services-maps</dependency>
-    <dependency>com.google.android.gms:play-services-location</dependency>
-    <dependency_wearable>com.google.android.gms:play-services-location</dependency_wearable>
+    <dependency>com.google.android.material:material:1.0.0</dependency>
+    <dependency>androidx.legacy:legacy-support-v13:1.0.0</dependency>
+    <dependency>com.google.android.gms:play-services-maps:16.1.0</dependency>
+    <dependency>com.google.android.gms:play-services-location:16.0.0</dependency>
+
+    <dependency_wearable>androidx.wear:wear:1.0.0</dependency_wearable>
+    <dependency_wearable>androidx.legacy:legacy-support-v13:1.0.0</dependency_wearable>
+    <dependency_wearable>com.google.android.gms:play-services-location:16.0.0</dependency_wearable>
 
     <strings>
         <intro>
diff --git a/wearable/wear/WatchFace/Wearable/src/main/java/com/example/android/wearable/watchface/config/AnalogComplicationConfigActivity.java b/wearable/wear/WatchFace/Wearable/src/main/java/com/example/android/wearable/watchface/config/AnalogComplicationConfigActivity.java
index 19e469a..48c6751 100644
--- a/wearable/wear/WatchFace/Wearable/src/main/java/com/example/android/wearable/watchface/config/AnalogComplicationConfigActivity.java
+++ b/wearable/wear/WatchFace/Wearable/src/main/java/com/example/android/wearable/watchface/config/AnalogComplicationConfigActivity.java
@@ -18,12 +18,13 @@
 import android.app.Activity;
 import android.content.Intent;
 import android.os.Bundle;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.wear.widget.WearableRecyclerView;
 import android.support.wearable.complications.ComplicationProviderInfo;
 import android.support.wearable.complications.ProviderChooserIntent;
 import android.util.Log;
 
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.wear.widget.WearableRecyclerView;
+
 import com.example.android.wearable.watchface.R;
 import com.example.android.wearable.watchface.model.AnalogComplicationConfigData;
 import com.example.android.wearable.watchface.watchface.AnalogComplicationWatchFaceService;
diff --git a/wearable/wear/WatchFace/Wearable/src/main/java/com/example/android/wearable/watchface/config/AnalogComplicationConfigRecyclerViewAdapter.java b/wearable/wear/WatchFace/Wearable/src/main/java/com/example/android/wearable/watchface/config/AnalogComplicationConfigRecyclerViewAdapter.java
index 4ee10b5..cabaaca 100644
--- a/wearable/wear/WatchFace/Wearable/src/main/java/com/example/android/wearable/watchface/config/AnalogComplicationConfigRecyclerViewAdapter.java
+++ b/wearable/wear/WatchFace/Wearable/src/main/java/com/example/android/wearable/watchface/config/AnalogComplicationConfigRecyclerViewAdapter.java
@@ -27,8 +27,6 @@
 import android.graphics.PorterDuff;
 import android.graphics.PorterDuffColorFilter;
 import android.graphics.drawable.Drawable;
-import android.support.annotation.Nullable;
-import android.support.v7.widget.RecyclerView;
 import android.support.wearable.complications.ComplicationHelperActivity;
 import android.support.wearable.complications.ComplicationProviderInfo;
 import android.support.wearable.complications.ProviderInfoRetriever;
@@ -45,6 +43,9 @@
 import android.widget.Switch;
 import android.widget.Toast;
 
+import androidx.annotation.Nullable;
+import androidx.recyclerview.widget.RecyclerView;
+
 import com.example.android.wearable.watchface.R;
 import com.example.android.wearable.watchface.model.AnalogComplicationConfigData.BackgroundComplicationConfigItem;
 import com.example.android.wearable.watchface.model.AnalogComplicationConfigData.ColorConfigItem;
diff --git a/wearable/wear/WatchFace/Wearable/src/main/java/com/example/android/wearable/watchface/config/ColorSelectionActivity.java b/wearable/wear/WatchFace/Wearable/src/main/java/com/example/android/wearable/watchface/config/ColorSelectionActivity.java
index 3bbfeec..68cd088 100644
--- a/wearable/wear/WatchFace/Wearable/src/main/java/com/example/android/wearable/watchface/config/ColorSelectionActivity.java
+++ b/wearable/wear/WatchFace/Wearable/src/main/java/com/example/android/wearable/watchface/config/ColorSelectionActivity.java
@@ -17,16 +17,16 @@
 
 import android.app.Activity;
 import android.os.Bundle;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.wear.widget.WearableRecyclerView;
+
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.wear.widget.WearableRecyclerView;
 
 import com.example.android.wearable.watchface.R;
 import com.example.android.wearable.watchface.model.AnalogComplicationConfigData;
 
 /**
  * Allows user to select color for something on the watch face (background, highlight,etc.) and
- * saves it to {@link android.content.SharedPreferences} in
- * {@link android.support.v7.widget.RecyclerView.Adapter}.
+ * saves it to {@link android.content.SharedPreferences} in RecyclerView.Adapter.
  */
 public class ColorSelectionActivity extends Activity {
 
diff --git a/wearable/wear/WatchFace/Wearable/src/main/java/com/example/android/wearable/watchface/config/ColorSelectionRecyclerViewAdapter.java b/wearable/wear/WatchFace/Wearable/src/main/java/com/example/android/wearable/watchface/config/ColorSelectionRecyclerViewAdapter.java
index 0c7fa51..1aba859 100644
--- a/wearable/wear/WatchFace/Wearable/src/main/java/com/example/android/wearable/watchface/config/ColorSelectionRecyclerViewAdapter.java
+++ b/wearable/wear/WatchFace/Wearable/src/main/java/com/example/android/wearable/watchface/config/ColorSelectionRecyclerViewAdapter.java
@@ -18,13 +18,14 @@
 import android.app.Activity;
 import android.content.Context;
 import android.content.SharedPreferences;
-import android.support.v7.widget.RecyclerView;
 import android.support.wearable.view.CircledImageView;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 
+import androidx.recyclerview.widget.RecyclerView;
+
 import com.example.android.wearable.watchface.R;
 
 import java.util.ArrayList;
diff --git a/wearable/wear/WatchFace/Wearable/src/main/java/com/example/android/wearable/watchface/config/DigitalWatchFaceWearableConfigActivity.java b/wearable/wear/WatchFace/Wearable/src/main/java/com/example/android/wearable/watchface/config/DigitalWatchFaceWearableConfigActivity.java
index 274a826..23f795d 100644
--- a/wearable/wear/WatchFace/Wearable/src/main/java/com/example/android/wearable/watchface/config/DigitalWatchFaceWearableConfigActivity.java
+++ b/wearable/wear/WatchFace/Wearable/src/main/java/com/example/android/wearable/watchface/config/DigitalWatchFaceWearableConfigActivity.java
@@ -22,8 +22,6 @@
 import android.content.Context;
 import android.graphics.Color;
 import android.os.Bundle;
-import android.support.v7.widget.RecyclerView;
-import android.support.wear.widget.BoxInsetLayout;
 import android.support.wearable.view.CircledImageView;
 import android.support.wearable.view.WearableListView;
 import android.util.Log;
@@ -33,15 +31,17 @@
 import android.widget.LinearLayout;
 import android.widget.TextView;
 
+import androidx.recyclerview.widget.RecyclerView;
+import androidx.wear.widget.BoxInsetLayout;
+
+import com.example.android.wearable.watchface.R;
+import com.example.android.wearable.watchface.util.DigitalWatchFaceUtil;
+import com.example.android.wearable.watchface.watchface.DigitalWatchFaceService;
 import com.google.android.gms.common.ConnectionResult;
 import com.google.android.gms.common.api.GoogleApiClient;
 import com.google.android.gms.wearable.DataMap;
 import com.google.android.gms.wearable.Wearable;
 
-import com.example.android.wearable.watchface.watchface.DigitalWatchFaceService;
-import com.example.android.wearable.watchface.util.DigitalWatchFaceUtil;
-import com.example.android.wearable.watchface.R;
-
 /**
  * The watch-side config activity for {@link DigitalWatchFaceService}, which allows for setting the
  * background color.
diff --git a/wearable/wear/WatchFace/Wearable/src/main/java/com/example/android/wearable/watchface/model/AnalogComplicationConfigData.java b/wearable/wear/WatchFace/Wearable/src/main/java/com/example/android/wearable/watchface/model/AnalogComplicationConfigData.java
index 067a3cd..324fe82 100644
--- a/wearable/wear/WatchFace/Wearable/src/main/java/com/example/android/wearable/watchface/model/AnalogComplicationConfigData.java
+++ b/wearable/wear/WatchFace/Wearable/src/main/java/com/example/android/wearable/watchface/model/AnalogComplicationConfigData.java
@@ -17,13 +17,14 @@
 
 import android.content.Context;
 import android.graphics.Color;
-import android.support.v7.widget.RecyclerView.ViewHolder;
-import android.support.v7.widget.RecyclerView;
+
+import androidx.recyclerview.widget.RecyclerView;
+import androidx.recyclerview.widget.RecyclerView.ViewHolder;
 
 import com.example.android.wearable.watchface.R;
+import com.example.android.wearable.watchface.config.AnalogComplicationConfigActivity;
 import com.example.android.wearable.watchface.config.AnalogComplicationConfigRecyclerViewAdapter;
 import com.example.android.wearable.watchface.config.ColorSelectionActivity;
-import com.example.android.wearable.watchface.config.AnalogComplicationConfigActivity;
 import com.example.android.wearable.watchface.watchface.AnalogComplicationWatchFaceService;
 
 import java.util.ArrayList;
diff --git a/wearable/wear/WatchFace/Wearable/src/main/java/com/example/android/wearable/watchface/watchface/DigitalWatchFaceService.java b/wearable/wear/WatchFace/Wearable/src/main/java/com/example/android/wearable/watchface/watchface/DigitalWatchFaceService.java
index 6392b5a..5b9472f 100644
--- a/wearable/wear/WatchFace/Wearable/src/main/java/com/example/android/wearable/watchface/watchface/DigitalWatchFaceService.java
+++ b/wearable/wear/WatchFace/Wearable/src/main/java/com/example/android/wearable/watchface/watchface/DigitalWatchFaceService.java
@@ -28,7 +28,6 @@
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
-import android.support.v4.content.ContextCompat;
 import android.support.wearable.watchface.CanvasWatchFaceService;
 import android.support.wearable.watchface.WatchFaceService;
 import android.support.wearable.watchface.WatchFaceStyle;
@@ -37,6 +36,10 @@
 import android.view.SurfaceHolder;
 import android.view.WindowInsets;
 
+import androidx.core.content.ContextCompat;
+
+import com.example.android.wearable.watchface.R;
+import com.example.android.wearable.watchface.util.DigitalWatchFaceUtil;
 import com.google.android.gms.common.ConnectionResult;
 import com.google.android.gms.common.api.GoogleApiClient;
 import com.google.android.gms.wearable.DataApi;
@@ -47,9 +50,6 @@
 import com.google.android.gms.wearable.DataMapItem;
 import com.google.android.gms.wearable.Wearable;
 
-import com.example.android.wearable.watchface.util.DigitalWatchFaceUtil;
-import com.example.android.wearable.watchface.R;
-
 import java.text.SimpleDateFormat;
 import java.util.Calendar;
 import java.util.Date;
diff --git a/wearable/wear/WatchFace/Wearable/src/main/res/layout/activity_analog_complication_config.xml b/wearable/wear/WatchFace/Wearable/src/main/res/layout/activity_analog_complication_config.xml
index dea517e..708af82 100644
--- a/wearable/wear/WatchFace/Wearable/src/main/res/layout/activity_analog_complication_config.xml
+++ b/wearable/wear/WatchFace/Wearable/src/main/res/layout/activity_analog_complication_config.xml
@@ -21,7 +21,7 @@
     android:background="@color/dark_grey"
     android:paddingStart="@dimen/activity_config_padding"
     android:paddingEnd="@dimen/activity_config_padding">
-    <android.support.wear.widget.WearableRecyclerView
+    <androidx.wear.widget.WearableRecyclerView
         android:id="@+id/wearable_recycler_view"
         android:layout_height="wrap_content"
         android:layout_width="match_parent" />
diff --git a/wearable/wear/WatchFace/Wearable/src/main/res/layout/activity_color_selection_config.xml b/wearable/wear/WatchFace/Wearable/src/main/res/layout/activity_color_selection_config.xml
index 8780ca3..0ec2406 100644
--- a/wearable/wear/WatchFace/Wearable/src/main/res/layout/activity_color_selection_config.xml
+++ b/wearable/wear/WatchFace/Wearable/src/main/res/layout/activity_color_selection_config.xml
@@ -23,7 +23,7 @@
     android:paddingLeft="@dimen/activity_horizontal_margin"
     android:paddingRight="@dimen/activity_horizontal_margin"
     tools:context="com.example.android.wearable.watchface.config.ColorSelectionActivity">
-    <android.support.wear.widget.WearableRecyclerView
+    <androidx.wear.widget.WearableRecyclerView
         android:id="@+id/wearable_recycler_view"
         android:layout_height="wrap_content"
         android:layout_width="match_parent" />
diff --git a/wearable/wear/WatchFace/Wearable/src/main/res/layout/activity_digital_config.xml b/wearable/wear/WatchFace/Wearable/src/main/res/layout/activity_digital_config.xml
index 9ec9949..e32839c 100644
--- a/wearable/wear/WatchFace/Wearable/src/main/res/layout/activity_digital_config.xml
+++ b/wearable/wear/WatchFace/Wearable/src/main/res/layout/activity_digital_config.xml
@@ -13,7 +13,7 @@
  See the License for the specific language governing permissions and
  limitations under the License.
 -->
-<android.support.wear.widget.BoxInsetLayout
+<androidx.wear.widget.BoxInsetLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:id="@+id/content"
@@ -37,4 +37,4 @@
         android:layout_height="match_parent"
         android:background="@android:color/transparent"
         app:boxedEdges="left|right"/>
-</android.support.wear.widget.BoxInsetLayout>
+</androidx.wear.widget.BoxInsetLayout>
diff --git a/wearable/wear/WatchFace/gradle.properties b/wearable/wear/WatchFace/gradle.properties
index 0bc4294..94f8472 100644
--- a/wearable/wear/WatchFace/gradle.properties
+++ b/wearable/wear/WatchFace/gradle.properties
@@ -18,3 +18,5 @@
 # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
 # org.gradle.parallel=true
 
+android.useAndroidX=true
+android.enableJetifier=true
diff --git a/wearable/wear/WatchFace/template-params.xml b/wearable/wear/WatchFace/template-params.xml
index 981bd16..8bf7761 100644
--- a/wearable/wear/WatchFace/template-params.xml
+++ b/wearable/wear/WatchFace/template-params.xml
@@ -31,11 +31,17 @@
 
     <multiDexEnabled>true</multiDexEnabled>
 
+    <androidX>true</androidX>
 
+    <dependency>androidx.legacy:legacy-support-v4:1.0.0</dependency>
+    <dependency>androidx.legacy:legacy-support-v13:1.0.0</dependency>
+    <dependency>androidx.cardview:cardview:1.0.0</dependency>
+    <dependency>androidx.appcompat:appcompat:1.0.2</dependency>
     <dependency>com.google.android.support:wearable:2.4.0</dependency>
-    <dependency_wearable>com.android.support:palette-v7:28.0.0</dependency_wearable>
-    <dependency_wearable>com.android.support:wear:28.0.0</dependency_wearable>
 
+    <dependency_wearable>androidx.palette:palette:1.0.0</dependency_wearable>
+    <dependency_wearable>androidx.wear:wear:1.0.0</dependency_wearable>
+    <dependency_wearable>androidx.legacy:legacy-support-v13:1.0.0</dependency_wearable>
 
     <wearable>
         <has_handheld_app>true</has_handheld_app>
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/WearMessagingApp/Wearable/src/main/res/drawable/jeremy.png b/wearable/wear/WearAccessibilityApp/Wearable/src/main/res/drawable-hdpi/famous_fryer.png
similarity index 100%
copy from wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/jeremy.png
copy to wearable/wear/WearAccessibilityApp/Wearable/src/main/res/drawable-hdpi/famous_fryer.png
Binary files differ
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/jane.png b/wearable/wear/WearAccessibilityApp/Wearable/src/main/res/drawable-hdpi/me_macdonald.png
similarity index 100%
copy from wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/jane.png
copy to wearable/wear/WearAccessibilityApp/Wearable/src/main/res/drawable-hdpi/me_macdonald.png
Binary files differ
diff --git a/wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/jennifer.png b/wearable/wear/WearAccessibilityApp/Wearable/src/main/res/drawable-hdpi/wendy_wonda.png
similarity index 100%
copy from wearable/wear/WearMessagingApp/Wearable/src/main/res/drawable/jennifer.png
copy to 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>
diff --git a/wearable/wear/WearComplicationProvidersTestSuite/Wearable/build.gradle b/wearable/wear/WearComplicationProvidersTestSuite/Wearable/build.gradle
index ad67745..22b0c59 100644
--- a/wearable/wear/WearComplicationProvidersTestSuite/Wearable/build.gradle
+++ b/wearable/wear/WearComplicationProvidersTestSuite/Wearable/build.gradle
@@ -6,7 +6,7 @@
     }
 
     dependencies {
-        classpath 'com.android.tools.build:gradle:3.3.0'
+        classpath 'com.android.tools.build:gradle:3.3.2'
     }
 }
 
@@ -21,12 +21,12 @@
 
 dependencies {
 
-    implementation 'com.android.support:appcompat-v7:27.1.1'
+    implementation 'androidx.appcompat:appcompat:1.0.2'
+    implementation 'androidx.legacy:legacy-support-v13:1.0.0'
 
 
-    implementation 'com.google.android.gms:play-services-wearable:15.0.1'
+    implementation 'com.google.android.gms:play-services-wearable:16.0.1'
 
-    implementation 'com.android.support:support-v13:28.0.0'
 
     compileOnly 'com.google.android.wearable:wearable:2.4.0'
 
@@ -54,7 +54,7 @@
 
         minSdkVersion 23
 
-        targetSdkVersion 26
+        targetSdkVersion 28
 
 
     }
diff --git a/wearable/wear/WearComplicationProvidersTestSuite/gradle.properties b/wearable/wear/WearComplicationProvidersTestSuite/gradle.properties
new file mode 100644
index 0000000..5465fec
--- /dev/null
+++ b/wearable/wear/WearComplicationProvidersTestSuite/gradle.properties
@@ -0,0 +1,2 @@
+android.enableJetifier=true
+android.useAndroidX=true
\ No newline at end of file
diff --git a/wearable/wear/WearComplicationProvidersTestSuite/template-params.xml b/wearable/wear/WearComplicationProvidersTestSuite/template-params.xml
index 1e39f80..d7a1a0e 100644
--- a/wearable/wear/WearComplicationProvidersTestSuite/template-params.xml
+++ b/wearable/wear/WearComplicationProvidersTestSuite/template-params.xml
@@ -20,16 +20,19 @@
     <package>com.example.android.wearable.wear.wearcomplicationproviderstestsuite</package>
 
     <minSdk>18</minSdk>
-    <targetSdkVersion>27</targetSdkVersion>
+    <targetSdkVersion>28</targetSdkVersion>
 
     <minSdkVersionWear>23</minSdkVersionWear>
-    <targetSdkVersionWear>26</targetSdkVersionWear>
+    <targetSdkVersionWear>28</targetSdkVersionWear>
 
     <wearable>
         <has_handheld_app>false</has_handheld_app>
     </wearable>
 
-    <dependency_wearable>com.android.support:appcompat-v7:27.1.1</dependency_wearable>
+    <androidX>true</androidX>
+
+    <dependency_wearable>androidx.appcompat:appcompat:1.0.2</dependency_wearable>
+    <dependency_wearable>androidx.legacy:legacy-support-v13:1.0.0</dependency_wearable>
 
     <strings>
         <intro>
diff --git a/wearable/wear/WearDrawers/Wearable/build.gradle b/wearable/wear/WearDrawers/Wearable/build.gradle
index 6faf2d1..e116096 100644
--- a/wearable/wear/WearDrawers/Wearable/build.gradle
+++ b/wearable/wear/WearDrawers/Wearable/build.gradle
@@ -6,7 +6,7 @@
     }
 
     dependencies {
-        classpath 'com.android.tools.build:gradle:3.3.0'
+        classpath 'com.android.tools.build:gradle:3.3.2'
     }
 }
 
@@ -21,12 +21,12 @@
 
 dependencies {
 
-    implementation 'com.android.support:wear:27.1.1'
+    implementation 'androidx.wear:wear:1.0.0'
+    implementation 'androidx.legacy:legacy-support-v13:1.0.0'
 
 
-    implementation 'com.google.android.gms:play-services-wearable:15.0.1'
+    implementation 'com.google.android.gms:play-services-wearable:16.0.1'
 
-    implementation 'com.android.support:support-v13:28.0.0'
 
     compileOnly 'com.google.android.wearable:wearable:2.4.0'
 
@@ -54,7 +54,7 @@
 
         minSdkVersion 23
 
-        targetSdkVersion 26
+        targetSdkVersion 28
 
         multiDexEnabled true
 
diff --git a/wearable/wear/WearDrawers/Wearable/src/main/java/com/example/android/wearable/wear/weardrawers/MainActivity.java b/wearable/wear/WearDrawers/Wearable/src/main/java/com/example/android/wearable/wear/weardrawers/MainActivity.java
index 88d71f5..55ce198 100644
--- a/wearable/wear/WearDrawers/Wearable/src/main/java/com/example/android/wearable/wear/weardrawers/MainActivity.java
+++ b/wearable/wear/WearDrawers/Wearable/src/main/java/com/example/android/wearable/wear/weardrawers/MainActivity.java
@@ -23,10 +23,6 @@
 import android.graphics.ColorMatrixColorFilter;
 import android.graphics.drawable.Drawable;
 import android.os.Bundle;
-import android.support.v4.app.FragmentActivity;
-import android.support.wear.ambient.AmbientModeSupport;
-import android.support.wear.widget.drawer.WearableActionDrawerView;
-import android.support.wear.widget.drawer.WearableNavigationDrawerView;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.MenuItem;
@@ -35,6 +31,11 @@
 import android.widget.ImageView;
 import android.widget.Toast;
 
+import androidx.fragment.app.FragmentActivity;
+import androidx.wear.ambient.AmbientModeSupport;
+import androidx.wear.widget.drawer.WearableActionDrawerView;
+import androidx.wear.widget.drawer.WearableNavigationDrawerView;
+
 import java.util.ArrayList;
 
 /**
diff --git a/wearable/wear/WearDrawers/Wearable/src/main/res/layout/activity_main.xml b/wearable/wear/WearDrawers/Wearable/src/main/res/layout/activity_main.xml
index 02b1397..607b059 100644
--- a/wearable/wear/WearDrawers/Wearable/src/main/res/layout/activity_main.xml
+++ b/wearable/wear/WearDrawers/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.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"
@@ -24,7 +24,7 @@
     android:background="@color/black"
     tools:context="com.example.android.wearable.wear.weardrawers.MainActivity">
 
-    <android.support.v4.widget.NestedScrollView
+    <androidx.core.widget.NestedScrollView
         android:id="@+id/content"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
@@ -35,20 +35,20 @@
             android:layout_width="match_parent"
             android:layout_height="match_parent" />
 
-    </android.support.v4.widget.NestedScrollView>
+    </androidx.core.widget.NestedScrollView>
 
-    <android.support.wear.widget.drawer.WearableNavigationDrawerView
+    <androidx.wear.widget.drawer.WearableNavigationDrawerView
         android:id="@+id/top_navigation_drawer"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:background="@color/grey"
         app:navigationStyle="multiPage" />
 
-    <android.support.wear.widget.drawer.WearableActionDrawerView
+    <androidx.wear.widget.drawer.WearableActionDrawerView
         android:id="@+id/bottom_action_drawer"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:background="@color/grey"
         app:actionMenu="@menu/action_drawer_menu" />
 
-</android.support.wear.widget.drawer.WearableDrawerLayout>
\ No newline at end of file
+</androidx.wear.widget.drawer.WearableDrawerLayout>
\ No newline at end of file
diff --git a/wearable/wear/WearDrawers/gradle.properties b/wearable/wear/WearDrawers/gradle.properties
new file mode 100644
index 0000000..5465fec
--- /dev/null
+++ b/wearable/wear/WearDrawers/gradle.properties
@@ -0,0 +1,2 @@
+android.enableJetifier=true
+android.useAndroidX=true
\ No newline at end of file
diff --git a/wearable/wear/WearDrawers/template-params.xml b/wearable/wear/WearDrawers/template-params.xml
index 190f780..8884098 100644
--- a/wearable/wear/WearDrawers/template-params.xml
+++ b/wearable/wear/WearDrawers/template-params.xml
@@ -21,11 +21,15 @@
     <package>com.example.android.wearable.wear.weardrawers</package>
 
     <minSdkVersionWear>23</minSdkVersionWear>
-    <targetSdkVersionWear>26</targetSdkVersionWear>
+    <targetSdkVersionWear>28</targetSdkVersionWear>
 
     <multiDexEnabled>true</multiDexEnabled>
 
-    <dependency_wearable>com.android.support:wear:27.1.1</dependency_wearable>
+    <androidX>true</androidX>
+
+    <dependency_wearable>androidx.wear:wear:1.0.0</dependency_wearable>
+
+    <dependency_wearable>androidx.legacy:legacy-support-v13:1.0.0</dependency_wearable>
 
     <strings>
         <intro>
diff --git a/wearable/wear/WearHighBandwidthNetworking/Wearable/build.gradle b/wearable/wear/WearHighBandwidthNetworking/Wearable/build.gradle
index e278157..40537eb 100644
--- a/wearable/wear/WearHighBandwidthNetworking/Wearable/build.gradle
+++ b/wearable/wear/WearHighBandwidthNetworking/Wearable/build.gradle
@@ -6,7 +6,7 @@
     }
 
     dependencies {
-        classpath 'com.android.tools.build:gradle:3.3.0'
+        classpath 'com.android.tools.build:gradle:3.3.2'
     }
 }
 
@@ -21,12 +21,12 @@
 
 dependencies {
 
-    implementation 'com.android.support:wear:27.1.1'
+    implementation 'androidx.wear:wear:1.0.0'
+    implementation 'androidx.legacy:legacy-support-v13:1.0.0'
 
 
-    implementation 'com.google.android.gms:play-services-wearable:15.0.1'
+    implementation 'com.google.android.gms:play-services-wearable:16.0.1'
 
-    implementation 'com.android.support:support-v13:28.0.0'
 
     compileOnly 'com.google.android.wearable:wearable:2.4.0'
 
@@ -54,7 +54,7 @@
 
         minSdkVersion 24
 
-        targetSdkVersion 26
+        targetSdkVersion 28
 
         multiDexEnabled true
 
diff --git a/wearable/wear/WearHighBandwidthNetworking/Wearable/src/main/res/layout/activity_main.xml b/wearable/wear/WearHighBandwidthNetworking/Wearable/src/main/res/layout/activity_main.xml
index 6bbf514..99a9d20 100644
--- a/wearable/wear/WearHighBandwidthNetworking/Wearable/src/main/res/layout/activity_main.xml
+++ b/wearable/wear/WearHighBandwidthNetworking/Wearable/src/main/res/layout/activity_main.xml
@@ -46,7 +46,7 @@
 
     </RelativeLayout>
 
-    <android.support.wear.widget.BoxInsetLayout
+    <androidx.wear.widget.BoxInsetLayout
         android:layout_width="match_parent"
         android:layout_height="match_parent">
 
@@ -97,5 +97,5 @@
                 android:visibility="gone" />
 
         </RelativeLayout>
-    </android.support.wear.widget.BoxInsetLayout>
+    </androidx.wear.widget.BoxInsetLayout>
 </LinearLayout>
\ No newline at end of file
diff --git a/wearable/wear/WearHighBandwidthNetworking/gradle.properties b/wearable/wear/WearHighBandwidthNetworking/gradle.properties
new file mode 100644
index 0000000..5465fec
--- /dev/null
+++ b/wearable/wear/WearHighBandwidthNetworking/gradle.properties
@@ -0,0 +1,2 @@
+android.enableJetifier=true
+android.useAndroidX=true
\ No newline at end of file
diff --git a/wearable/wear/WearHighBandwidthNetworking/template-params.xml b/wearable/wear/WearHighBandwidthNetworking/template-params.xml
index 2437325..cd65f4c 100644
--- a/wearable/wear/WearHighBandwidthNetworking/template-params.xml
+++ b/wearable/wear/WearHighBandwidthNetworking/template-params.xml
@@ -17,21 +17,20 @@
 
 <sample>
     <name>WearHighBandwidthNetworking</name>
-    <group>Wearable</group>  <!-- This field will be deprecated in the future
-                            and replaced with the "categories" tags below. -->
+    <group>Wearable</group>
     <package>com.example.android.wearable.wear.wearhighbandwidthnetworking</package>
 
     <!-- change minSdk if needed-->
     <minSdk>24</minSdk>
     <minSdkVersionWear>24</minSdkVersionWear>
-    <targetSdkVersion>26</targetSdkVersion>
-    <targetSdkVersionWear>26</targetSdkVersionWear>
+    <targetSdkVersion>28</targetSdkVersion>
+    <targetSdkVersionWear>28</targetSdkVersionWear>
     <multiDexEnabled>true</multiDexEnabled>
 
-    <!-- Include additional dependencies here.-->
-    <!-- dependency>com.google.android.gms:play-services:5.0.+</dependency -->
-    <dependency_wearable>com.android.support:wear:27.1.1</dependency_wearable>
+    <androidX>true</androidX>
 
+    <dependency_wearable>androidx.wear:wear:1.0.0</dependency_wearable>
+    <dependency_wearable>androidx.legacy:legacy-support-v13:1.0.0</dependency_wearable>
 
     <strings>
         <intro>
diff --git a/wearable/wear/WearSpeakerSample/build.gradle b/wearable/wear/WearSpeakerSample/build.gradle
index 6c94f10..011fd35 100644
--- a/wearable/wear/WearSpeakerSample/build.gradle
+++ b/wearable/wear/WearSpeakerSample/build.gradle
@@ -22,7 +22,7 @@
         jcenter()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:3.3.0'
+        classpath 'com.android.tools.build:gradle:3.3.2'
 
         // NOTE: Do not place your application dependencies here; they belong
         // in the individual module build.gradle files
diff --git a/wearable/wear/WearSpeakerSample/gradle.properties b/wearable/wear/WearSpeakerSample/gradle.properties
index 1d3591c..915f0e6 100644
--- a/wearable/wear/WearSpeakerSample/gradle.properties
+++ b/wearable/wear/WearSpeakerSample/gradle.properties
@@ -15,4 +15,6 @@
 # When configured, Gradle will run in incubating parallel mode.
 # 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
\ No newline at end of file
+# org.gradle.parallel=true
+android.enableJetifier=true
+android.useAndroidX=true
\ No newline at end of file
diff --git a/wearable/wear/WearSpeakerSample/wear/build.gradle b/wearable/wear/WearSpeakerSample/wear/build.gradle
index 08c92f4..b1557a8 100644
--- a/wearable/wear/WearSpeakerSample/wear/build.gradle
+++ b/wearable/wear/WearSpeakerSample/wear/build.gradle
@@ -18,13 +18,12 @@
 
 
 android {
-    compileSdkVersion 26
-    buildToolsVersion '27.0.3'
+    compileSdkVersion 28
 
     defaultConfig {
         applicationId "com.example.android.wearable.speaker"
         minSdkVersion 23
-        targetSdkVersion 26
+        targetSdkVersion 28
         versionCode 1
         versionName "1.0"
     }
@@ -38,16 +37,16 @@
 
 dependencies {
 
-    implementation 'com.android.support:wear:27.1.1'
-    implementation 'com.android.support:animated-vector-drawable:27.1.1'
-    implementation 'com.android.support:support-media-compat:27.1.1'
+    implementation 'androidx.wear:wear:1.0.0'
+    implementation 'androidx.vectordrawable:vectordrawable-animated:1.0.0'
+    implementation 'androidx.media:media:1.0.1'
 
-    implementation 'com.android.support:percent:27.1.1'
+    implementation 'androidx.percentlayout:percentlayout:1.0.0'
 
-    implementation 'com.google.android.gms:play-services-wearable:15.0.1'
-    implementation 'com.android.support:appcompat-v7:27.1.1'
-    implementation 'com.android.support:support-v4:27.1.1'
+    implementation 'com.google.android.gms:play-services-wearable:16.0.1'
+    implementation 'androidx.appcompat:appcompat:1.0.2'
+    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
 
-    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'
 }
diff --git a/wearable/wear/WearSpeakerSample/wear/src/main/java/com/example/android/wearable/speaker/MainActivity.java b/wearable/wear/WearSpeakerSample/wear/src/main/java/com/example/android/wearable/speaker/MainActivity.java
index 72813b4..defe9d1 100644
--- a/wearable/wear/WearSpeakerSample/wear/src/main/java/com/example/android/wearable/speaker/MainActivity.java
+++ b/wearable/wear/WearSpeakerSample/wear/src/main/java/com/example/android/wearable/speaker/MainActivity.java
@@ -26,10 +26,6 @@
 import android.os.Build;
 import android.os.Bundle;
 import android.os.CountDownTimer;
-import android.support.v4.app.ActivityCompat;
-import android.support.v4.app.FragmentActivity;
-import android.support.v4.content.ContextCompat;
-import android.support.wear.ambient.AmbientModeSupport;
 import android.util.Log;
 import android.view.View;
 import android.widget.ImageView;
@@ -37,6 +33,11 @@
 import android.widget.RelativeLayout;
 import android.widget.Toast;
 
+import androidx.core.app.ActivityCompat;
+import androidx.core.content.ContextCompat;
+import androidx.fragment.app.FragmentActivity;
+import androidx.wear.ambient.AmbientModeSupport;
+
 import java.util.concurrent.TimeUnit;
 
 /**
diff --git a/wearable/wear/WearVerifyRemoteApp/Application/src/main/java/com/example/android/wearable/wear/wearverifyremoteapp/MainMobileActivity.java b/wearable/wear/WearVerifyRemoteApp/Application/src/main/java/com/example/android/wearable/wear/wearverifyremoteapp/MainMobileActivity.java
index e9e9a49..7e81582 100644
--- a/wearable/wear/WearVerifyRemoteApp/Application/src/main/java/com/example/android/wearable/wear/wearverifyremoteapp/MainMobileActivity.java
+++ b/wearable/wear/WearVerifyRemoteApp/Application/src/main/java/com/example/android/wearable/wear/wearverifyremoteapp/MainMobileActivity.java
@@ -20,13 +20,14 @@
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.ResultReceiver;
-import android.support.v7.app.AppCompatActivity;
 import android.util.Log;
 import android.view.View;
 import android.widget.Button;
 import android.widget.TextView;
 import android.widget.Toast;
 
+import androidx.appcompat.app.AppCompatActivity;
+
 import com.google.android.gms.tasks.OnCompleteListener;
 import com.google.android.gms.tasks.Task;
 import com.google.android.gms.wearable.CapabilityClient;
diff --git a/wearable/wear/WearVerifyRemoteApp/Wearable/build.gradle b/wearable/wear/WearVerifyRemoteApp/Wearable/build.gradle
index 7833099..9723e86 100644
--- a/wearable/wear/WearVerifyRemoteApp/Wearable/build.gradle
+++ b/wearable/wear/WearVerifyRemoteApp/Wearable/build.gradle
@@ -6,7 +6,7 @@
     }
 
     dependencies {
-        classpath 'com.android.tools.build:gradle:3.3.0'
+        classpath 'com.android.tools.build:gradle:3.3.2'
     }
 }
 
@@ -21,12 +21,12 @@
 
 dependencies {
 
-    implementation 'com.android.support:wear:28.0.0'
+    implementation 'androidx.wear:wear:1.0.0'
+    implementation 'androidx.legacy:legacy-support-v13:1.0.0'
 
 
-    implementation 'com.google.android.gms:play-services-wearable:15.0.1'
+    implementation 'com.google.android.gms:play-services-wearable:16.0.1'
 
-    implementation 'com.android.support:support-v13:28.0.0'
 
     compileOnly 'com.google.android.wearable:wearable:2.4.0'
 
diff --git a/wearable/wear/WearVerifyRemoteApp/Wearable/src/main/java/com/example/android/wearable/wear/wearverifyremoteapp/MainWearActivity.java b/wearable/wear/WearVerifyRemoteApp/Wearable/src/main/java/com/example/android/wearable/wear/wearverifyremoteapp/MainWearActivity.java
index 6521b09..3a6318d 100644
--- a/wearable/wear/WearVerifyRemoteApp/Wearable/src/main/java/com/example/android/wearable/wear/wearverifyremoteapp/MainWearActivity.java
+++ b/wearable/wear/WearVerifyRemoteApp/Wearable/src/main/java/com/example/android/wearable/wear/wearverifyremoteapp/MainWearActivity.java
@@ -20,8 +20,6 @@
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.ResultReceiver;
-import android.support.v4.app.FragmentActivity;
-import android.support.wear.ambient.AmbientModeSupport;
 import android.support.wearable.phone.PhoneDeviceType;
 import android.support.wearable.view.ConfirmationOverlay;
 import android.util.Log;
@@ -29,6 +27,9 @@
 import android.widget.Button;
 import android.widget.TextView;
 
+import androidx.fragment.app.FragmentActivity;
+import androidx.wear.ambient.AmbientModeSupport;
+
 import com.google.android.gms.tasks.OnCompleteListener;
 import com.google.android.gms.tasks.Task;
 import com.google.android.gms.wearable.CapabilityClient;
diff --git a/wearable/wear/WearVerifyRemoteApp/gradle.properties b/wearable/wear/WearVerifyRemoteApp/gradle.properties
index 0bc4294..94f8472 100644
--- a/wearable/wear/WearVerifyRemoteApp/gradle.properties
+++ b/wearable/wear/WearVerifyRemoteApp/gradle.properties
@@ -18,3 +18,5 @@
 # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
 # org.gradle.parallel=true
 
+android.useAndroidX=true
+android.enableJetifier=true
diff --git a/wearable/wear/WearVerifyRemoteApp/template-params.xml b/wearable/wear/WearVerifyRemoteApp/template-params.xml
index c1a8420..f5b8273 100644
--- a/wearable/wear/WearVerifyRemoteApp/template-params.xml
+++ b/wearable/wear/WearVerifyRemoteApp/template-params.xml
@@ -30,13 +30,17 @@
         <has_handheld_app>true</has_handheld_app>
     </wearable>
 
+
+    <androidX>true</androidX>
+
+    <dependency>androidx.legacy:legacy-support-v4:1.0.0</dependency>
+    <dependency>androidx.legacy:legacy-support-v13:1.0.0</dependency>
+    <dependency>androidx.cardview:cardview:1.0.0</dependency>
+    <dependency>androidx.appcompat:appcompat:1.0.2</dependency>
     <dependency>com.google.android.support:wearable:2.4.0</dependency>
 
-
-    <dependency_wearable>com.android.support:wear:28.0.0</dependency_wearable>
-
-    <!-- Include additional dependencies here.-->
-    <!-- dependency>com.google.android.gms:play-services:5.0.+</dependency -->
+    <dependency_wearable>androidx.wear:wear:1.0.0</dependency_wearable>
+    <dependency_wearable>androidx.legacy:legacy-support-v13:1.0.0</dependency_wearable>
 
     <strings>
         <intro>
diff --git a/wearable/wear/XYZTouristAttractions/Application/src/main/java/com/example/android/xyztouristattractions/service/ListenerService.java b/wearable/wear/XYZTouristAttractions/Application/src/main/java/com/example/android/xyztouristattractions/service/ListenerService.java
index c8a5790..5ca339d 100644
--- a/wearable/wear/XYZTouristAttractions/Application/src/main/java/com/example/android/xyztouristattractions/service/ListenerService.java
+++ b/wearable/wear/XYZTouristAttractions/Application/src/main/java/com/example/android/xyztouristattractions/service/ListenerService.java
@@ -20,10 +20,10 @@
 import android.net.Uri;
 import android.util.Log;
 
+import com.example.android.xyztouristattractions.common.Constants;
 import com.example.android.xyztouristattractions.ui.DetailActivity;
 import com.google.android.gms.wearable.MessageEvent;
 import com.google.android.gms.wearable.WearableListenerService;
-import com.example.android.xyztouristattractions.common.Constants;
 
 /**
  * A Wear listener service, used to receive inbound messages from
diff --git a/wearable/wear/XYZTouristAttractions/Application/src/main/java/com/example/android/xyztouristattractions/service/UtilityReceiver.java b/wearable/wear/XYZTouristAttractions/Application/src/main/java/com/example/android/xyztouristattractions/service/UtilityReceiver.java
index 0a10ba2..ca673a9 100644
--- a/wearable/wear/XYZTouristAttractions/Application/src/main/java/com/example/android/xyztouristattractions/service/UtilityReceiver.java
+++ b/wearable/wear/XYZTouristAttractions/Application/src/main/java/com/example/android/xyztouristattractions/service/UtilityReceiver.java
@@ -18,7 +18,8 @@
 
 import android.content.Context;
 import android.content.Intent;
-import android.support.v4.content.WakefulBroadcastReceiver;
+
+import androidx.legacy.content.WakefulBroadcastReceiver;
 
 /**
  * A simply utility receiver used to ensure the device stays awake for the
diff --git a/wearable/wear/XYZTouristAttractions/Application/src/main/java/com/example/android/xyztouristattractions/service/UtilityService.java b/wearable/wear/XYZTouristAttractions/Application/src/main/java/com/example/android/xyztouristattractions/service/UtilityService.java
index 07e36f7..05337e9 100644
--- a/wearable/wear/XYZTouristAttractions/Application/src/main/java/com/example/android/xyztouristattractions/service/UtilityService.java
+++ b/wearable/wear/XYZTouristAttractions/Application/src/main/java/com/example/android/xyztouristattractions/service/UtilityService.java
@@ -24,12 +24,17 @@
 import android.content.IntentFilter;
 import android.graphics.Bitmap;
 import android.location.Location;
-import android.support.v4.app.NotificationCompat;
-import android.support.v4.app.NotificationManagerCompat;
-import android.support.v4.content.ContextCompat;
-import android.support.v4.content.LocalBroadcastManager;
 import android.util.Log;
 
+import androidx.core.app.NotificationCompat;
+import androidx.core.app.NotificationManagerCompat;
+import androidx.core.content.ContextCompat;
+import androidx.localbroadcastmanager.content.LocalBroadcastManager;
+
+import static com.example.android.xyztouristattractions.provider.TouristAttractions.ATTRACTIONS;
+import static com.google.android.gms.location.LocationServices.FusedLocationApi;
+import static com.google.android.gms.location.LocationServices.GeofencingApi;
+
 import com.bumptech.glide.Glide;
 import com.bumptech.glide.load.engine.DiskCacheStrategy;
 import com.example.android.xyztouristattractions.R;
@@ -60,10 +65,6 @@
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.TimeUnit;
 
-import static com.example.android.xyztouristattractions.provider.TouristAttractions.ATTRACTIONS;
-import static com.google.android.gms.location.LocationServices.FusedLocationApi;
-import static com.google.android.gms.location.LocationServices.GeofencingApi;
-
 /**
  * A utility IntentService, used for a variety of asynchronous background
  * operations that do not necessarily need to be tied to a UI.
diff --git a/wearable/wear/XYZTouristAttractions/Application/src/main/java/com/example/android/xyztouristattractions/ui/AttractionListActivity.java b/wearable/wear/XYZTouristAttractions/Application/src/main/java/com/example/android/xyztouristattractions/ui/AttractionListActivity.java
index 8c23f3d..5a9df8f 100644
--- a/wearable/wear/XYZTouristAttractions/Application/src/main/java/com/example/android/xyztouristattractions/ui/AttractionListActivity.java
+++ b/wearable/wear/XYZTouristAttractions/Application/src/main/java/com/example/android/xyztouristattractions/ui/AttractionListActivity.java
@@ -19,18 +19,19 @@
 import android.Manifest;
 import android.content.pm.PackageManager;
 import android.os.Bundle;
-import android.support.design.widget.Snackbar;
-import android.support.v4.app.ActivityCompat;
-import android.support.v7.app.AlertDialog;
-import android.support.v7.app.AppCompatActivity;
 import android.view.Menu;
 import android.view.MenuItem;
 import android.view.View;
 import android.widget.Toast;
 
+import androidx.appcompat.app.AlertDialog;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.app.ActivityCompat;
+
 import com.example.android.xyztouristattractions.R;
 import com.example.android.xyztouristattractions.common.Utils;
 import com.example.android.xyztouristattractions.service.UtilityService;
+import com.google.android.material.snackbar.Snackbar;
 
 /**
  * The main tourist attraction activity screen which contains a list of
diff --git a/wearable/wear/XYZTouristAttractions/Application/src/main/java/com/example/android/xyztouristattractions/ui/AttractionListFragment.java b/wearable/wear/XYZTouristAttractions/Application/src/main/java/com/example/android/xyztouristattractions/ui/AttractionListFragment.java
index 71439b1..240bab2 100644
--- a/wearable/wear/XYZTouristAttractions/Application/src/main/java/com/example/android/xyztouristattractions/ui/AttractionListFragment.java
+++ b/wearable/wear/XYZTouristAttractions/Application/src/main/java/com/example/android/xyztouristattractions/ui/AttractionListFragment.java
@@ -21,9 +21,6 @@
 import android.content.Intent;
 import android.location.Location;
 import android.os.Bundle;
-import android.support.v4.app.Fragment;
-import android.support.v4.content.LocalBroadcastManager;
-import android.support.v7.widget.RecyclerView;
 import android.text.TextUtils;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -31,6 +28,12 @@
 import android.widget.ImageView;
 import android.widget.TextView;
 
+import androidx.fragment.app.Fragment;
+import androidx.localbroadcastmanager.content.LocalBroadcastManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import static com.example.android.xyztouristattractions.provider.TouristAttractions.ATTRACTIONS;
+
 import com.bumptech.glide.Glide;
 import com.bumptech.glide.load.engine.DiskCacheStrategy;
 import com.example.android.xyztouristattractions.R;
@@ -47,8 +50,6 @@
 import java.util.Comparator;
 import java.util.List;
 
-import static com.example.android.xyztouristattractions.provider.TouristAttractions.ATTRACTIONS;
-
 /**
  * The main tourist attraction fragment which contains a list of attractions
  * sorted by distance (contained inside
diff --git a/wearable/wear/XYZTouristAttractions/Application/src/main/java/com/example/android/xyztouristattractions/ui/AttractionsRecyclerView.java b/wearable/wear/XYZTouristAttractions/Application/src/main/java/com/example/android/xyztouristattractions/ui/AttractionsRecyclerView.java
index cca3bf1..67516f3 100644
--- a/wearable/wear/XYZTouristAttractions/Application/src/main/java/com/example/android/xyztouristattractions/ui/AttractionsRecyclerView.java
+++ b/wearable/wear/XYZTouristAttractions/Application/src/main/java/com/example/android/xyztouristattractions/ui/AttractionsRecyclerView.java
@@ -17,10 +17,11 @@
 package com.example.android.xyztouristattractions.ui;
 
 import android.content.Context;
-import android.support.v7.widget.RecyclerView;
 import android.util.AttributeSet;
 import android.view.View;
 
+import androidx.recyclerview.widget.RecyclerView;
+
 /**
  * Simple RecyclerView subclass that supports providing an empty view (which
  * is displayed when the adapter has no data and hidden otherwise).
diff --git a/wearable/wear/XYZTouristAttractions/Application/src/main/java/com/example/android/xyztouristattractions/ui/DetailActivity.java b/wearable/wear/XYZTouristAttractions/Application/src/main/java/com/example/android/xyztouristattractions/ui/DetailActivity.java
index 3950785..612002a 100644
--- a/wearable/wear/XYZTouristAttractions/Application/src/main/java/com/example/android/xyztouristattractions/ui/DetailActivity.java
+++ b/wearable/wear/XYZTouristAttractions/Application/src/main/java/com/example/android/xyztouristattractions/ui/DetailActivity.java
@@ -22,11 +22,12 @@
 import android.content.Intent;
 import android.os.Build;
 import android.os.Bundle;
-import android.support.v4.app.ActivityCompat;
-import android.support.v4.app.ActivityOptionsCompat;
-import android.support.v7.app.AppCompatActivity;
 import android.view.View;
 
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.app.ActivityCompat;
+import androidx.core.app.ActivityOptionsCompat;
+
 import com.example.android.xyztouristattractions.R;
 
 /**
diff --git a/wearable/wear/XYZTouristAttractions/Application/src/main/java/com/example/android/xyztouristattractions/ui/DetailFragment.java b/wearable/wear/XYZTouristAttractions/Application/src/main/java/com/example/android/xyztouristattractions/ui/DetailFragment.java
index 1ab7326..d5adb20 100644
--- a/wearable/wear/XYZTouristAttractions/Application/src/main/java/com/example/android/xyztouristattractions/ui/DetailFragment.java
+++ b/wearable/wear/XYZTouristAttractions/Application/src/main/java/com/example/android/xyztouristattractions/ui/DetailFragment.java
@@ -21,9 +21,6 @@
 import android.net.Uri;
 import android.os.Build;
 import android.os.Bundle;
-import android.support.design.widget.FloatingActionButton;
-import android.support.v4.app.Fragment;
-import android.support.v4.app.NavUtils;
 import android.text.TextUtils;
 import android.view.LayoutInflater;
 import android.view.MenuItem;
@@ -32,6 +29,11 @@
 import android.widget.ImageView;
 import android.widget.TextView;
 
+import androidx.core.app.NavUtils;
+import androidx.fragment.app.Fragment;
+
+import static com.example.android.xyztouristattractions.provider.TouristAttractions.ATTRACTIONS;
+
 import com.bumptech.glide.Glide;
 import com.bumptech.glide.load.engine.DiskCacheStrategy;
 import com.example.android.xyztouristattractions.R;
@@ -39,12 +41,11 @@
 import com.example.android.xyztouristattractions.common.Constants;
 import com.example.android.xyztouristattractions.common.Utils;
 import com.google.android.gms.maps.model.LatLng;
+import com.google.android.material.floatingactionbutton.FloatingActionButton;
 
 import java.util.List;
 import java.util.Map;
 
-import static com.example.android.xyztouristattractions.provider.TouristAttractions.ATTRACTIONS;
-
 /**
  * The tourist attraction detail fragment which contains the details of a
  * a single attraction (contained inside
diff --git a/wearable/wear/XYZTouristAttractions/Application/src/main/res/layout/activity_main.xml b/wearable/wear/XYZTouristAttractions/Application/src/main/res/layout/activity_main.xml
index 17c9f66..0406eeb 100644
--- a/wearable/wear/XYZTouristAttractions/Application/src/main/res/layout/activity_main.xml
+++ b/wearable/wear/XYZTouristAttractions/Application/src/main/res/layout/activity_main.xml
@@ -14,7 +14,7 @@
   limitations under the License.
   -->
 
-<android.support.design.widget.CoordinatorLayout
+<androidx.coordinatorlayout.widget.CoordinatorLayout
 
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
@@ -23,4 +23,4 @@
     android:layout_height="match_parent"
     tools:context=".MainActivity">
 
-</android.support.design.widget.CoordinatorLayout>
\ No newline at end of file
+</androidx.coordinatorlayout.widget.CoordinatorLayout>
\ No newline at end of file
diff --git a/wearable/wear/XYZTouristAttractions/Application/src/main/res/layout/fragment_detail.xml b/wearable/wear/XYZTouristAttractions/Application/src/main/res/layout/fragment_detail.xml
index 6e280fd..0cbc1fd 100644
--- a/wearable/wear/XYZTouristAttractions/Application/src/main/res/layout/fragment_detail.xml
+++ b/wearable/wear/XYZTouristAttractions/Application/src/main/res/layout/fragment_detail.xml
@@ -16,7 +16,7 @@
   limitations under the License.
   -->
 
-<android.support.design.widget.CoordinatorLayout
+<androidx.coordinatorlayout.widget.CoordinatorLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
@@ -87,7 +87,7 @@
 
     </LinearLayout>
 
-    <android.support.design.widget.FloatingActionButton
+    <com.google.android.material.floatingactionbutton.FloatingActionButton
         android:id="@+id/mapFab"
         android:layout_height="wrap_content"
         android:layout_width="wrap_content"
@@ -98,4 +98,4 @@
         android:layout_marginStart="@dimen/fab_margin"
         android:clickable="true" />
 
-</android.support.design.widget.CoordinatorLayout>
\ No newline at end of file
+</androidx.coordinatorlayout.widget.CoordinatorLayout>
\ No newline at end of file
diff --git a/wearable/wear/XYZTouristAttractions/Shared/src/main/java/com/example/android/xyztouristattractions/common/Utils.java b/wearable/wear/XYZTouristAttractions/Shared/src/main/java/com/example/android/xyztouristattractions/common/Utils.java
index 6fa5129..f11abec 100644
--- a/wearable/wear/XYZTouristAttractions/Shared/src/main/java/com/example/android/xyztouristattractions/common/Utils.java
+++ b/wearable/wear/XYZTouristAttractions/Shared/src/main/java/com/example/android/xyztouristattractions/common/Utils.java
@@ -25,10 +25,11 @@
 import android.graphics.Point;
 import android.graphics.Rect;
 import android.preference.PreferenceManager;
-import android.support.v4.content.ContextCompat;
 import android.util.Log;
 import android.view.Display;
 
+import androidx.core.content.ContextCompat;
+
 import com.google.android.gms.common.api.GoogleApiClient;
 import com.google.android.gms.maps.model.LatLng;
 import com.google.android.gms.wearable.Asset;
diff --git a/wearable/wear/XYZTouristAttractions/Wearable/src/main/java/com/example/android/xyztouristattractions/service/ListenerService.java b/wearable/wear/XYZTouristAttractions/Wearable/src/main/java/com/example/android/xyztouristattractions/service/ListenerService.java
index ea071f0..f629781 100644
--- a/wearable/wear/XYZTouristAttractions/Wearable/src/main/java/com/example/android/xyztouristattractions/service/ListenerService.java
+++ b/wearable/wear/XYZTouristAttractions/Wearable/src/main/java/com/example/android/xyztouristattractions/service/ListenerService.java
@@ -21,10 +21,11 @@
 import android.content.Intent;
 import android.graphics.Bitmap;
 import android.net.Uri;
-import android.support.v4.app.NotificationCompat;
-import android.support.v4.app.NotificationManagerCompat;
 import android.util.Log;
 
+import androidx.core.app.NotificationCompat;
+import androidx.core.app.NotificationManagerCompat;
+
 import com.example.android.xyztouristattractions.R;
 import com.example.android.xyztouristattractions.common.Constants;
 import com.example.android.xyztouristattractions.common.Utils;
diff --git a/wearable/wear/XYZTouristAttractions/Wearable/src/main/java/com/example/android/xyztouristattractions/ui/AttractionsActivity.java b/wearable/wear/XYZTouristAttractions/Wearable/src/main/java/com/example/android/xyztouristattractions/ui/AttractionsActivity.java
index 64d28bc..8642226 100644
--- a/wearable/wear/XYZTouristAttractions/Wearable/src/main/java/com/example/android/xyztouristattractions/ui/AttractionsActivity.java
+++ b/wearable/wear/XYZTouristAttractions/Wearable/src/main/java/com/example/android/xyztouristattractions/ui/AttractionsActivity.java
@@ -22,7 +22,6 @@
 import android.net.Uri;
 import android.os.AsyncTask;
 import android.os.Bundle;
-import android.support.v4.view.GestureDetectorCompat;
 import android.support.wearable.view.DismissOverlayView;
 import android.support.wearable.view.DotsPageIndicator;
 import android.support.wearable.view.GridViewPager;
@@ -34,6 +33,8 @@
 import android.widget.FrameLayout;
 import android.widget.ProgressBar;
 
+import androidx.core.view.GestureDetectorCompat;
+
 import com.example.android.xyztouristattractions.R;
 import com.example.android.xyztouristattractions.common.Attraction;
 import com.example.android.xyztouristattractions.common.Constants;
diff --git a/wearable/wear/XYZTouristAttractions/gradle.properties b/wearable/wear/XYZTouristAttractions/gradle.properties
index 0bc4294..94f8472 100644
--- a/wearable/wear/XYZTouristAttractions/gradle.properties
+++ b/wearable/wear/XYZTouristAttractions/gradle.properties
@@ -18,3 +18,5 @@
 # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
 # org.gradle.parallel=true
 
+android.useAndroidX=true
+android.enableJetifier=true
diff --git a/wearable/wear/XYZTouristAttractions/template-params.xml b/wearable/wear/XYZTouristAttractions/template-params.xml
index d505fe8..801b839 100644
--- a/wearable/wear/XYZTouristAttractions/template-params.xml
+++ b/wearable/wear/XYZTouristAttractions/template-params.xml
@@ -28,21 +28,28 @@
         <has_handheld_app>true</has_handheld_app>
     </wearable>
 
+    <androidX>true</androidX>
 
     <dependency>com.google.maps.android:android-maps-utils:0.5</dependency>
     <dependency>com.github.bumptech.glide:glide:3.7.0</dependency>
-    <dependency>com.android.support:appcompat-v7:28.0.0</dependency>
-    <dependency>com.android.support:recyclerview-v7:28.0.0</dependency>
-    <dependency>com.android.support:design:28.0.0</dependency>
-    <dependency>com.google.android.gms:play-services-maps:16.0.0</dependency>
+    <dependency>androidx.appcompat:appcompat:1.0.2</dependency>
+    <dependency>androidx.legacy:legacy-support-v13:1.0.0</dependency>
+    <dependency>androidx.recyclerview:recyclerview:1.0.0</dependency>
+    <dependency>com.google.android.material:material:1.0.0</dependency>
+
+    <dependency>com.google.android.gms:play-services-maps:16.1.0</dependency>
     <dependency>com.google.android.gms:play-services-location:16.0.0</dependency>
 
-    <dependency_shared>com.android.support:support-v13:28.0.0</dependency_shared>
-    <dependency_shared>com.google.android.gms:play-services-wearable:15.0.1</dependency_shared>
-    <dependency_shared>com.google.android.gms:play-services-maps:16.0.0</dependency_shared>
+
+    <dependency_shared>androidx.legacy:legacy-support-v13:1.0.0</dependency_shared>
+    <dependency_shared>com.google.android.gms:play-services-wearable:16.0.1</dependency_shared>
+    <dependency_shared>com.google.android.gms:play-services-maps:16.1.0</dependency_shared>
     <dependency_shared>com.google.maps.android:android-maps-utils:0.5</dependency_shared>
 
-    <dependency_wearable>com.google.android.gms:play-services-maps:16.0.0</dependency_wearable>
+
+    <dependency_wearable>androidx.wear:wear:1.0.0</dependency_wearable>
+    <dependency_wearable>androidx.legacy:legacy-support-v13:1.0.0</dependency_wearable>
+    <dependency_wearable>com.google.android.gms:play-services-maps:16.1.0</dependency_wearable>
 
 
     <strings>