diff --git a/wearable/wear/AlwaysOn/Wearable/build.gradle b/wearable/wear/AlwaysOn/Wearable/build.gradle
index 40537eb..6af719a 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.2'
+        classpath 'com.android.tools.build:gradle:3.4.2'
     }
 }
 
diff --git a/wearable/wear/AlwaysOn/gradle/wrapper/gradle-wrapper.properties b/wearable/wear/AlwaysOn/gradle/wrapper/gradle-wrapper.properties
index f941550..5408e30 100644
--- a/wearable/wear/AlwaysOn/gradle/wrapper/gradle-wrapper.properties
+++ b/wearable/wear/AlwaysOn/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,6 @@
+#Wed Jul 10 13:51:59 PDT 2019
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionUrl=https://services.gradle.org/distributions/gradle-4.10.3-all.zip
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip
diff --git a/wearable/wear/AlwaysOn/template-params.xml b/wearable/wear/AlwaysOn/template-params.xml
index 71afab0..ad57e89 100644
--- a/wearable/wear/AlwaysOn/template-params.xml
+++ b/wearable/wear/AlwaysOn/template-params.xml
@@ -42,7 +42,7 @@
     <!-- common src="logger"/ -->
 
     <metadata>
-        <status>PUBLISHED</status>
+        <status>DEPRECATED</status>
         <categories>Wearable</categories>
         <technologies>Android</technologies>
         <languages>Java</languages>
@@ -59,25 +59,17 @@
         </api_refs>
         <description>
             <![CDATA[
-A basic sample showing how to support ambient mode for native Wear apps.
+Sample moved to [github.com/android/wear-os][1].
+
+[1]: https://github.com/android/wear-os
 ]]>
         </description>
 
         <intro>
             <![CDATA[
-[WearableActivity][1] offers methods for supporting your native app staying on the screen when the Wear device enters ambient mode.
+This repo and all Wear OS samples have been moved to [github.com/android/wear-os][1]. Please check out the code there. Thank you!
 
-This example extends [WearableActivity][1] and overrides onEnterAmbient, onUpdateAmbient, and onExitAmbient to allow the simple native Wear app to support ambient mode.
-
-In ambient mode, this app follows best practices by keeping most pixels black, avoiding large blocks of white pixels, using only black and white, and disabling anti-aliasing (following the [design guidelines for Watch Faces][2]).
-
-In addition and most importantly, the app sleeps while in ambient mode for 20 seconds between any updates to conserving battery life (processor allowed to sleep). If you can hold off on updates for a full minute, you can throw away the Handler and just use onUpdateAmbient to save even more battery life.
-
-As always, you will still want to apply the [performance guidelines][3] outlined in the Watch Faces documention to your app.
-
-[1]: http://developer.android.com/reference/android/support/wearable/activity/WearableActivity.html
-[2]: https://developer.android.com/training/wearables/watch-faces/designing.html#DesignGuidelines
-[3]: https://developer.android.com/training/wearables/watch-faces/performance.html
+[1]: https://github.com/android/wear-os
 ]]>
         </intro>
     </metadata>
diff --git a/wearable/wear/DataLayer/gradle/wrapper/gradle-wrapper.properties b/wearable/wear/DataLayer/gradle/wrapper/gradle-wrapper.properties
index ae45383..5a51809 100644
--- a/wearable/wear/DataLayer/gradle/wrapper/gradle-wrapper.properties
+++ b/wearable/wear/DataLayer/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,6 @@
+#Thu Jul 11 15:56:24 PDT 2019
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.3-all.zip
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip
diff --git a/wearable/wear/DataLayer/template-params.xml b/wearable/wear/DataLayer/template-params.xml
index 9aee449..abfbf61 100644
--- a/wearable/wear/DataLayer/template-params.xml
+++ b/wearable/wear/DataLayer/template-params.xml
@@ -57,7 +57,7 @@
     <template src="base"/>
     <template src="Wear"/>
     <metadata>
-        <status>PUBLISHED</status>
+        <status>DEPRECATED</status>
         <categories>UI, Wearable</categories>
         <technologies>Android</technologies>
         <languages>Java</languages>
@@ -74,28 +74,18 @@
             <ext>gms:com.google.android.gms.wearable.WearableListenerService</ext>
         </api_refs>
         <description>
-<![CDATA[
-This sample demonstrates how to work with a WearableListenerService,
-to produce and consume DataEvents and effectively work with the DataLayer.
+            <![CDATA[
+Sample moved to [github.com/android/wear-os][1].
+
+[1]: https://github.com/android/wear-os
 ]]>
         </description>
+
         <intro>
-<![CDATA[
-This sample demonstrates how to make a handheld and an Wear device communicate
-using the [DataApi][2].
-It does this by sending a picture between connected devices.
+            <![CDATA[
+This repo and all Wear OS samples have been moved to [github.com/android/wear-os][1]. Please check out the code there. Thank you!
 
-An Activity is being used for both the connected devices which implement their parts of
-the required interfaces.
-
-It showcases how to use an [WearableListenerService][1] to consume DataEvents
-as well as implementations for various required listeners when using the [DataApi][2],
-[MessageApi][3] and [NodeApi][4].
-
-[1]: https://developer.android.com/reference/com/google/android/gms/wearable/WearableListenerService.html
-[2]: https://developer.android.com/reference/com/google/android/gms/wearable/DataApi.html
-[3]: https://developer.android.com/reference/com/google/android/gms/wearable/MessageApi.html
-[4]: https://developer.android.com/reference/com/google/android/gms/wearable/NodeApi.html
+[1]: https://github.com/android/wear-os
 ]]>
         </intro>
     </metadata>
diff --git a/wearable/wear/JumpingJack/gradle/wrapper/gradle-wrapper.properties b/wearable/wear/JumpingJack/gradle/wrapper/gradle-wrapper.properties
index ae45383..1f9211d 100644
--- a/wearable/wear/JumpingJack/gradle/wrapper/gradle-wrapper.properties
+++ b/wearable/wear/JumpingJack/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,6 @@
+#Thu Jul 11 16:23:29 PDT 2019
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.3-all.zip
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip
diff --git a/wearable/wear/JumpingJack/template-params.xml b/wearable/wear/JumpingJack/template-params.xml
index 9d802f6..dabac0a 100644
--- a/wearable/wear/JumpingJack/template-params.xml
+++ b/wearable/wear/JumpingJack/template-params.xml
@@ -36,7 +36,7 @@
     <template src="Wear"/>
 
     <metadata>
-        <status>PUBLISHED</status>
+        <status>DEPRECATED</status>
         <categories>Wearable</categories>
         <technologies>Android</technologies>
         <languages>Java</languages>
@@ -52,46 +52,18 @@
         </api_refs>
 
         <description>
-<![CDATA[
-A basic sample showing how to use the Gravity sensor on the wearable device
-by counting how many jumping jacks you have performed.
+            <![CDATA[
+Sample moved to [github.com/android/wear-os][1].
+
+[1]: https://github.com/android/wear-os
 ]]>
         </description>
 
         <intro>
-<![CDATA[
-[SensorEventListener][1] offers you methods used for receiving notifications from the
-[SensorManager][2] when sensor values have changed.
+            <![CDATA[
+This repo and all Wear OS samples have been moved to [github.com/android/wear-os][1]. Please check out the code there. Thank you!
 
-This example counts how many times Jumping Jacks are performed by detecting the value
-of the Gravity sensor by the following code:
-
-```java
-@Override
-public void onSensorChanged(SensorEvent event) {
-    detectJump(event.values[0], event.timestamp);
-}
-
-private void detectJump(float xValue, long timestamp) {
-    if ((Math.abs(xValue) > GRAVITY_THRESHOLD)) {
-        if(timestamp - mLastTime < TIME_THRESHOLD_NS && mUp != (xValue > 0)) {
-            onJumpDetected(!mUp);
-        }
-        mUp = xValue > 0;
-        mLastTime = timestamp;
-    }
-}
-```
-
-The detectJump method above assumes 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 (7.0f). We also consider the up <-> down movement successful if it takes less than
-TIME_THRESHOLD_NS (2000000000 nanoseconds).
-
-[1]: http://developer.android.com/reference/android/hardware/SensorEventListener.html
-[2]: http://developer.android.com/reference/android/hardware/SensorManager.html
+[1]: https://github.com/android/wear-os
 ]]>
         </intro>
     </metadata>
diff --git a/wearable/wear/RuntimePermissionsWear/Shared/build.gradle b/wearable/wear/RuntimePermissionsWear/Shared/build.gradle
index d11e010..c24e074 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.2'
+        classpath 'com.android.tools.build:gradle:3.4.2'
     }
 }
 
diff --git a/wearable/wear/RuntimePermissionsWear/gradle/wrapper/gradle-wrapper.properties b/wearable/wear/RuntimePermissionsWear/gradle/wrapper/gradle-wrapper.properties
index f941550..e5b245f 100644
--- a/wearable/wear/RuntimePermissionsWear/gradle/wrapper/gradle-wrapper.properties
+++ b/wearable/wear/RuntimePermissionsWear/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,6 @@
+#Thu Jul 11 16:29:00 PDT 2019
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionUrl=https://services.gradle.org/distributions/gradle-4.10.3-all.zip
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip
diff --git a/wearable/wear/RuntimePermissionsWear/template-params.xml b/wearable/wear/RuntimePermissionsWear/template-params.xml
index 0ea4c62..dd789f8 100644
--- a/wearable/wear/RuntimePermissionsWear/template-params.xml
+++ b/wearable/wear/RuntimePermissionsWear/template-params.xml
@@ -56,7 +56,7 @@
 
     <metadata>
         <!-- Values: {DRAFT | PUBLISHED | INTERNAL | DEPRECATED | SUPERCEDED} -->
-        <status>PUBLISHED</status>
+        <status>DEPRECATED</status>
         <!-- See http://go/sample-categories for details on the next 4 fields. -->
         <categories>Wearable, Permissions</categories>
         <technologies>Android</technologies>
@@ -96,40 +96,18 @@
             Avoid simply rearranging the sample's title. What does this sample actually
             accomplish, and how does it do it? -->
         <description>
-A sample that shows how you can handle remote data that requires permissions both on
-a wearable device and a mobile device.
+            <![CDATA[
+Sample moved to [github.com/android/wear-os][1].
+
+[1]: https://github.com/android/wear-os
+]]>
         </description>
 
-        <!-- Multi-paragraph introduction to sample, from an educational point-of-view.
-        Makrdown formatting allowed. This will be used to generate a mini-article for the
-        sample on DAC. -->
         <intro>
-<![CDATA[
-Steps for trying out this sample:
-* Compile and install the mobile app onto your mobile device or emulator.
-* Compile and install the wearable app onto your Wear device or emulator.
-(**Note:** wearable apps are not automatically pushed from your mobile device
-unless you build a production release, see [here][3] for more info).
-* Start the mobile or wear app. Each app contains two buttons: one for showing
-local data and another for showing remote data.
-* Click either button to view the data. Both local and remote data require
-[dangerous permissions][4] to be approved before displaying the data for
-devices running 23 or above. You will be asked to approve the access if you
-do not have the proper permissions.
-* The happy icon signifies you have access to the data while the sad icon
-signifies you do or may not have access (and may be asked to approve access).
+            <![CDATA[
+This repo and all Wear OS samples have been moved to [github.com/android/wear-os][1]. Please check out the code there. Thank you!
 
-This sample demonstrates how to access data and trigger permission approval
-on remote devices. It uses [Services][5] and the [Wearable MessageApi][2] to
-communicate between devices.
-
-To find out more about wear, visit our [developer Wear page][1].
-
-[1]: http://developer.android.com/wear/
-[2]: https://developer.android.com/reference/com/google/android/gms/wearable/MessageApi.html
-[3]: https://developer.android.com/training/wearables/apps/creating.html#Install
-[4]: http://developer.android.com/guide/topics/security/permissions.html#normal-dangerous
-[5]: http://developer.android.com/guide/components/services.html
+[1]: https://github.com/android/wear-os
 ]]>
         </intro>
     </metadata>
diff --git a/wearable/wear/SpeedTracker/gradle/wrapper/gradle-wrapper.properties b/wearable/wear/SpeedTracker/gradle/wrapper/gradle-wrapper.properties
index ae45383..9947747 100644
--- a/wearable/wear/SpeedTracker/gradle/wrapper/gradle-wrapper.properties
+++ b/wearable/wear/SpeedTracker/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,6 @@
+#Thu Jul 11 16:30:44 PDT 2019
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.3-all.zip
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip
diff --git a/wearable/wear/SpeedTracker/template-params.xml b/wearable/wear/SpeedTracker/template-params.xml
index 85dabf9..887d670 100644
--- a/wearable/wear/SpeedTracker/template-params.xml
+++ b/wearable/wear/SpeedTracker/template-params.xml
@@ -61,7 +61,7 @@
 
     <metadata>
         <!-- Values: {DRAFT | PUBLISHED | INTERNAL | DEPRECATED | SUPERCEDED} -->
-        <status>PUBLISHED</status>
+        <status>DEPRECATED</status>
         <!-- See http://go/sample-categories for details on the next 4 fields. -->
         <!-- Most samples just need to udpate the Categories field. This is a comma-
              seperated list of topic tags. Unlike the old category system, samples
@@ -112,29 +112,18 @@
             Avoid simply rearranging the sample's title. What does this sample actually
             accomplish, and how does it do it? -->
         <description>
-            Sample demonstrates recording location and speed with a Wear device in mind. Location is
-            retrieved via FusedLocatinProvider which retrieves coordinates from the phone or Wear
-            depending on whether the phone is disconnected or not and whether the Wear device has a
-            GPS chip.
+            <![CDATA[
+Sample moved to [github.com/android/wear-os][1].
+
+[1]: https://github.com/android/wear-os
+]]>
         </description>
 
-        <!-- Multi-paragraph introduction to sample, from an educational point-of-view.
-        Markdown formatting allowed. This will be used to generate a mini-article for the
-        sample on DAC. -->
         <intro>
-<![CDATA[
+            <![CDATA[
+This repo and all Wear OS samples have been moved to [github.com/android/wear-os][1]. Please check out the code there. Thank you!
 
-Steps for trying out this sample:
-* Compile and install the mobile app onto your mobile device or emulator.
-* Compile and install the wearable app onto your Wear device or emulator.
-(**Note:** wearable apps are not automatically pushed from your mobile device
-unless you build a production release, see [here][1] for more info).
-
-Sample demonstrates retrieving location and speed samples on Wear using the FusedLocationProvider.
-It also passes GPS location information back to the mobile device via the Data Layer to be rendered
-on a Map Fragment.
-
-[1]: https://developer.android.com/training/wearables/apps/creating.html#Install
+[1]: https://github.com/android/wear-os
 ]]>
         </intro>
     </metadata>
diff --git a/wearable/wear/WatchFace/gradle/wrapper/gradle-wrapper.properties b/wearable/wear/WatchFace/gradle/wrapper/gradle-wrapper.properties
index ae45383..37de7d5 100644
--- a/wearable/wear/WatchFace/gradle/wrapper/gradle-wrapper.properties
+++ b/wearable/wear/WatchFace/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,6 @@
+#Thu Jul 11 16:34:06 PDT 2019
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.3-all.zip
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip
diff --git a/wearable/wear/WatchFace/template-params.xml b/wearable/wear/WatchFace/template-params.xml
index 8bf7761..f5fab4b 100644
--- a/wearable/wear/WatchFace/template-params.xml
+++ b/wearable/wear/WatchFace/template-params.xml
@@ -60,7 +60,7 @@
     <template src="Wear"/>
 
     <metadata>
-        <status>PUBLISHED</status>
+        <status>DEPRECATED</status>
         <categories>Wearable</categories>
         <technologies>Android</technologies>
         <languages>Java</languages>
@@ -95,46 +95,18 @@
             Avoid simply rearranging the sample's title. What does this sample actually
             accomplish, and how does it do it? -->
         <description>
-            A simple sample that demonstrates watch faces and complications for Wear 2.0.
+            <![CDATA[
+Sample moved to [github.com/android/wear-os][1].
+
+[1]: https://github.com/android/wear-os
+]]>
         </description>
 
         <intro>
-<![CDATA[
-This sample demonstrates how to create watch faces for Wear.
+            <![CDATA[
+This repo and all Wear OS samples have been moved to [github.com/android/wear-os][1]. Please check out the code there. Thank you!
 
-The analog watch face covers best practices for Wear 2.0 including complications and a new
-configuration Activity for configuring both the watch face styles and the complications themselves.
-We recommend you reuse the configuration code and follow the UX patterns in your watch face's
-configuration activity. You can see a preview in the screenshots section of the README.
-
-The analog watch face has three main classes:
-
-- AnalogComplicationWatchFaceService.java (watchface folder) - Renders the watch face and active
-complications.
-
-- AnalogComplicationConfigActivity.java (config folder) - Allows user to adjust watch face settings
-(arm and background colors) and watch face complications.
-
-- AnalogComplicationConfigData.java (models folder) - Populates the configuration screen in the
-previous step by returning a list of items. Each item represents something you can customize on the
-watch face. Items include a preview of the watch face (where you can pick your complications),
-marker color, background color, unread notifications, and background image complication. You can
-extend this and add your own.
-
-
-We include several older watch faces to show best practices for Wear 1.0. If you are targeting
-older devices, you may want to review those watch faces (digital, opengl, and interactive).
-
-The digital watch face includes a watch-side and phone-side configuration example.
-
-This sample includes both a phone app and a wearable app.
-
-Because watch face apps do not have a default Activity in their project, you will need to set your
-Configurations to "Do not launch Activity" for both the Wear and Application modules. If you are
-unsure how to do this, please review the "Run Starter project" section in the
-[Google Watch Face Code Lab][1].
-
-[1]: https://codelabs.developers.google.com/codelabs/watchface/index.html
+[1]: https://github.com/android/wear-os
 ]]>
         </intro>
     </metadata>
diff --git a/wearable/wear/WearAccessibilityApp/Wearable/build.gradle b/wearable/wear/WearAccessibilityApp/Wearable/build.gradle
index c8e23bb..92e0898 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.3.2'
+        classpath 'com.android.tools.build:gradle:3.4.2'
     }
 }
 
diff --git a/wearable/wear/WearAccessibilityApp/gradle/wrapper/gradle-wrapper.properties b/wearable/wear/WearAccessibilityApp/gradle/wrapper/gradle-wrapper.properties
index c68d61e..dd5a339 100644
--- a/wearable/wear/WearAccessibilityApp/gradle/wrapper/gradle-wrapper.properties
+++ b/wearable/wear/WearAccessibilityApp/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
-#Sun Mar 31 15:27:57 PDT 2019
+#Thu Jul 11 16:36:33 PDT 2019
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip
diff --git a/wearable/wear/WearAccessibilityApp/template-params.xml b/wearable/wear/WearAccessibilityApp/template-params.xml
index 1148f07..768ce2c 100644
--- a/wearable/wear/WearAccessibilityApp/template-params.xml
+++ b/wearable/wear/WearAccessibilityApp/template-params.xml
@@ -48,7 +48,7 @@
 
     <metadata>
         <!-- Values: {DRAFT | PUBLISHED | INTERNAL | DEPRECATED | SUPERCEDED} -->
-        <status>PUBLISHED</status>
+        <status>DEPRECATED</status>
         <!-- See http://go/sample-categories for details on the next 4 fields. -->
         <!-- Most samples just need to udpate the Categories field. This is a comma-
              seperated list of topic tags. Unlike the old category system, samples
@@ -96,24 +96,19 @@
             Avoid simply rearranging the sample's title. What does this sample actually
             accomplish, and how does it do it? -->
         <description>
-            Sample demonstrates how to include accessibility support for your wearable app.
+            <![CDATA[
+Sample moved to [github.com/android/wear-os][1].
+
+[1]: https://github.com/android/wear-os
+]]>
         </description>
 
-        <!-- Multi-paragraph introduction to sample, from an educational point-of-view.
-        Makrdown formatting allowed. This will be used to generate a mini-article for the
-        sample on DAC. -->
         <intro>
-            Accessibility is an important part of any app (especially wearable apps). By
-            integrating accessible components and services, you can improve your app's usability,
-            particularly for users with disabilities.
+            <![CDATA[
+This repo and all Wear OS samples have been moved to [github.com/android/wear-os][1]. Please check out the code there. Thank you!
 
-            This sample demonstrates common UX patterns in wearable apps along with accessibility
-            support of those patterns. Be sure to review the [Accessibility Developer Checklist][1]
-            for your own app. For additional information please see our
-            [Best Practices for User Interface][2] page.
-
-            [1]: https://developer.android.com/guide/topics/ui/accessibility/checklist.html
-            [2]: https://developer.android.com/training/accessibility/index.html
+[1]: https://github.com/android/wear-os
+]]>
         </intro>
     </metadata>
 </sample>
diff --git a/wearable/wear/WearComplicationProvidersTestSuite/Wearable/build.gradle b/wearable/wear/WearComplicationProvidersTestSuite/Wearable/build.gradle
index 22b0c59..d3e6a07 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.2'
+        classpath 'com.android.tools.build:gradle:3.4.2'
     }
 }
 
diff --git a/wearable/wear/WearComplicationProvidersTestSuite/gradle/wrapper/gradle-wrapper.properties b/wearable/wear/WearComplicationProvidersTestSuite/gradle/wrapper/gradle-wrapper.properties
index f941550..4a06ae6 100644
--- a/wearable/wear/WearComplicationProvidersTestSuite/gradle/wrapper/gradle-wrapper.properties
+++ b/wearable/wear/WearComplicationProvidersTestSuite/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,6 @@
+#Tue Jul 16 15:17:43 PDT 2019
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionUrl=https://services.gradle.org/distributions/gradle-4.10.3-all.zip
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip
diff --git a/wearable/wear/WearComplicationProvidersTestSuite/template-params.xml b/wearable/wear/WearComplicationProvidersTestSuite/template-params.xml
index d7a1a0e..3b30037 100644
--- a/wearable/wear/WearComplicationProvidersTestSuite/template-params.xml
+++ b/wearable/wear/WearComplicationProvidersTestSuite/template-params.xml
@@ -48,7 +48,7 @@
 
     <metadata>
         <!-- Values: {DRAFT | PUBLISHED | INTERNAL | DEPRECATED | SUPERCEDED} -->
-        <status>PUBLISHED</status>
+        <status>DEPRECATED</status>
         <!-- See http://go/sample-categories for details on the next 4 fields. -->
         <!-- Most samples just need to udpate the Categories field. This is a comma-
              seperated list of topic tags. Unlike the old category system, samples
@@ -97,35 +97,18 @@
             Avoid simply rearranging the sample's title. What does this sample actually
             accomplish, and how does it do it? -->
         <description>
-<![CDATA[
-Complication Test Suite is a set of complication providers that provide dummy data and it can be
-used to test how different types of complications render on a watch face.
+            <![CDATA[
+Sample moved to [github.com/android/wear-os][1].
+
+[1]: https://github.com/android/wear-os
 ]]>
         </description>
 
-
         <intro>
             <![CDATA[
-Steps for trying out the sample:
-* Compile and install the wearable app onto your Wear device or emulator (for Wear scenario).
+This repo and all Wear OS samples have been moved to [github.com/android/wear-os][1]. Please check out the code there. Thank you!
 
-* This sample does not have a main Activity (just Services that provide the complication data).
-Therefore, you may see an error next to the 'Run' button. To fix, click on the
-"Wearable" dropdown next to the 'Run' button and select 'Edit Configurations'. Under the
-'Launch Options', change the 'Launch' field from 'Default APK' to 'Nothing' and save.
-
-This sample provides dummy data for testing the complications UI in your watch face. After
-selecting a type from your watch face configuration Activity, you can tap on the complications to
-see more options.
-
-The Wear app demonstrates the use of [ComplicationData][1], [ComplicationManager][2],
-[ComplicationProviderService][3], [ComplicationText][4], and [ProviderUpdateRequester][5].
-
-[1]: https://developer.android.com/reference/android/support/wearable/complications/ComplicationData.html
-[2]: https://developer.android.com/reference/android/support/wearable/complications/ComplicationManager.html
-[3]: https://developer.android.com/reference/android/support/wearable/complications/ComplicationProviderService.html
-[4]: https://developer.android.com/reference/android/support/wearable/complications/ComplicationText.html
-[5]: https://developer.android.com/reference/android/support/wearable/complications/ProviderUpdateRequester.html
+[1]: https://github.com/android/wear-os
 ]]>
         </intro>
     </metadata>
diff --git a/wearable/wear/WearDrawers/Wearable/build.gradle b/wearable/wear/WearDrawers/Wearable/build.gradle
index e116096..ad39edd 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.2'
+        classpath 'com.android.tools.build:gradle:3.4.2'
     }
 }
 
diff --git a/wearable/wear/WearDrawers/gradle/wrapper/gradle-wrapper.properties b/wearable/wear/WearDrawers/gradle/wrapper/gradle-wrapper.properties
index f941550..859bd9e 100644
--- a/wearable/wear/WearDrawers/gradle/wrapper/gradle-wrapper.properties
+++ b/wearable/wear/WearDrawers/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,6 @@
+#Tue Jul 16 15:34:08 PDT 2019
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionUrl=https://services.gradle.org/distributions/gradle-4.10.3-all.zip
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip
diff --git a/wearable/wear/WearDrawers/template-params.xml b/wearable/wear/WearDrawers/template-params.xml
index 8884098..bd3533f 100644
--- a/wearable/wear/WearDrawers/template-params.xml
+++ b/wearable/wear/WearDrawers/template-params.xml
@@ -44,7 +44,7 @@
 
     <metadata>
         <!-- Values: {DRAFT | PUBLISHED | INTERNAL | DEPRECATED | SUPERCEDED} -->
-        <status>PUBLISHED</status>
+        <status>DEPRECATED</status>
         <!-- See http://go/sample-categories for details on the next 4 fields. -->
         <!-- Most samples just need to udpate the Categories field. This is a comma-
              seperated list of topic tags. Unlike the old category system, samples
@@ -70,32 +70,20 @@
             <android>android.support.wearable.view.drawer.WearableNavigationDrawer</android>
         </api_refs>
 
-        <!-- 1-3 line description of the sample here.
-
-            Avoid simply rearranging the sample's title. What does this sample actually
-            accomplish, and how does it do it? -->
         <description>
-            A simple sample that demonstrates Navigation and Action Drawers, part of Material Design for Wear.
+            <![CDATA[
+Sample moved to [github.com/android/wear-os][1].
+
+[1]: https://github.com/android/wear-os
+]]>
         </description>
 
         <intro>
-            Steps for trying out this sample:
+            <![CDATA[
+This repo and all Wear OS samples have been moved to [github.com/android/wear-os][1]. Please check out the code there. Thank you!
 
-            * Compile and install the wearable app onto your Wear device or emulator.
-            (**Note:** You must install this app directly to your Wear device or emulator.
-            If installed on a phone, it will not be automatically pushed to a paired Wear
-            device, see [here][2] for more info).
-
-            This sample uses the planets in our solar system to demonstrate the two Wear
-            drawer components and concepts relating to [Wear][1] and [Material Design][3]:
-            * Customizes and enables screen/planet changes with the [Navigation Drawer][4]
-            * Adds customized actions to each screen using the [Action Drawer][5]
-
-            [1]: http://developer.android.com/wear/
-            [2]: https://developer.android.com/training/wearables/apps/creating.html#Install
-            [3]: http://www.google.com/design/wear
-            [4]: http://www.google.com/design/spec-wear/components/navigation-drawer.html
-            [5]: http://www.google.com/design/spec-wear/components/action-drawer.html
+[1]: https://github.com/android/wear-os
+]]>
         </intro>
     </metadata>
 </sample>
diff --git a/wearable/wear/WearHighBandwidthNetworking/Wearable/build.gradle b/wearable/wear/WearHighBandwidthNetworking/Wearable/build.gradle
index 40537eb..6af719a 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.2'
+        classpath 'com.android.tools.build:gradle:3.4.2'
     }
 }
 
diff --git a/wearable/wear/WearHighBandwidthNetworking/gradle/wrapper/gradle-wrapper.properties b/wearable/wear/WearHighBandwidthNetworking/gradle/wrapper/gradle-wrapper.properties
index f941550..9dbd799 100644
--- a/wearable/wear/WearHighBandwidthNetworking/gradle/wrapper/gradle-wrapper.properties
+++ b/wearable/wear/WearHighBandwidthNetworking/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,6 @@
+#Tue Jul 16 15:47:29 PDT 2019
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionUrl=https://services.gradle.org/distributions/gradle-4.10.3-all.zip
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip
diff --git a/wearable/wear/WearHighBandwidthNetworking/template-params.xml b/wearable/wear/WearHighBandwidthNetworking/template-params.xml
index cd65f4c..3c5c933 100644
--- a/wearable/wear/WearHighBandwidthNetworking/template-params.xml
+++ b/wearable/wear/WearHighBandwidthNetworking/template-params.xml
@@ -48,7 +48,7 @@
 
     <metadata>
         <!-- Values: {DRAFT | PUBLISHED | INTERNAL | DEPRECATED | SUPERCEDED} -->
-        <status>PUBLISHED</status>
+        <status>DEPRECATED</status>
         <!-- See http://go/sample-categories for details on the next 4 fields. -->
         <!-- Most samples just need to udpate the Categories field. This is a comma-
              seperated list of topic tags. Unlike the old category system, samples
@@ -91,52 +91,19 @@
             <android>android.net.NetworkRequest</android>
         </api_refs>
 
-        <!-- 1-3 line description of the sample here.
-
-            Avoid simply rearranging the sample's title. What does this sample actually
-            accomplish, and how does it do it? -->
         <description>
             <![CDATA[
-Sample demonstrates how to determine if a high-bandwidth network is available for use cases that
-require a minimum network bandwidth, such as streaming media or downloading large files. In
-addition, the sample demonstrates best practices for asking a user to add a new Wi-Fi network for
-high-bandwidth network operations if the bandwidth of currently available networks is inadequate.
+Sample moved to [github.com/android/wear-os][1].
+
+[1]: https://github.com/android/wear-os
 ]]>
         </description>
 
-        <!-- Multi-paragraph introduction to sample, from an educational point-of-view.
-        Makrdown formatting allowed. This will be used to generate a mini-article for the
-        sample on DAC. -->
         <intro>
             <![CDATA[
-On Wear, a high-bandwidth network is not always available, as the platform manages
-network connectivity with the goal of providing the best overall user experience, balancing network
-bandwidth and maximizing device battery life. For use cases that require high-bandwidth network
-access, such as transporting large files or streaming media, we recommend that apps:
+This repo and all Wear OS samples have been moved to [github.com/android/wear-os][1]. Please check out the code there. Thank you!
 
-1. Check for an active network, and if there is one, check its bandwidth.
-2. If there isn't an active network, or its bandwidth is insufficient, request access to an
-unmetered Wi-Fi or cellular network.
-3. If a high-bandwidth network is still not avaiable, ask the user to connect to a new Wi-Fi
-network.
-
-You can use the [ConnectivityManager][1] class to check if an active network exists, if the active
-network has sufficient bandwidth for the desired network operation, and to request an appropriate
-high-bandwidth network.
-
-In addition to requesting a high-bandwidth network, you should also ensure that you are releasing
-bound networks and cancelling any ongoing network requests when they are no longer needed.
-
-This sample demonstrates all aspects of testing, requesting, and releasing network resources to
-ensure a high-bandwidth network is available. In addition, the sample demonstrates the ideal user
-experience for guiding the user through the process of acquiring a high-bandwidth network.
-
-To try all aspects of this sample, ensure that you have removed all saved Wi-Fi networks from your
-Wear device and that it is unplugged, as Wear devices may prefer high-bandwidth networks by default
-while plugged-in. Also, you may wish to put your phone in airplane mode or turn off Bluetooth to
-simulate the Wear device running standalone.
-
-[1]: https://developer.android.com/reference/android/net/ConnectivityManager.html
+[1]: https://github.com/android/wear-os
 ]]>
         </intro>
     </metadata>
diff --git a/wearable/wear/WearNotifications/Shared/build.gradle b/wearable/wear/WearNotifications/Shared/build.gradle
index 582d65d..ee50c53 100644
--- a/wearable/wear/WearNotifications/Shared/build.gradle
+++ b/wearable/wear/WearNotifications/Shared/build.gradle
@@ -6,7 +6,7 @@
     }
 
     dependencies {
-        classpath 'com.android.tools.build:gradle:3.3.0'
+        classpath 'com.android.tools.build:gradle:3.4.2'
     }
 }
 
diff --git a/wearable/wear/WearNotifications/gradle/wrapper/gradle-wrapper.properties b/wearable/wear/WearNotifications/gradle/wrapper/gradle-wrapper.properties
index ae45383..2f5b158 100644
--- a/wearable/wear/WearNotifications/gradle/wrapper/gradle-wrapper.properties
+++ b/wearable/wear/WearNotifications/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,6 @@
+#Tue Jul 16 15:48:39 PDT 2019
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.3-all.zip
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip
diff --git a/wearable/wear/WearSpeakerSample/build.gradle b/wearable/wear/WearSpeakerSample/build.gradle
index 011fd35..c8d0018 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.2'
+        classpath 'com.android.tools.build:gradle:3.4.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/wrapper/gradle-wrapper.properties b/wearable/wear/WearSpeakerSample/gradle/wrapper/gradle-wrapper.properties
index f941550..29a0123 100644
--- a/wearable/wear/WearSpeakerSample/gradle/wrapper/gradle-wrapper.properties
+++ b/wearable/wear/WearSpeakerSample/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,6 @@
+#Tue Jul 16 15:56:25 PDT 2019
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionUrl=https://services.gradle.org/distributions/gradle-4.10.3-all.zip
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip
diff --git a/wearable/wear/WearSpeakerSample/template-params.xml b/wearable/wear/WearSpeakerSample/template-params.xml
index f07d4c5..b0af22c 100644
--- a/wearable/wear/WearSpeakerSample/template-params.xml
+++ b/wearable/wear/WearSpeakerSample/template-params.xml
@@ -35,7 +35,7 @@
 
     <metadata>
         <!-- Values: {DRAFT | PUBLISHED | INTERNAL | DEPRECATED | SUPERCEDED} -->
-        <status>PUBLISHED</status>
+        <status>DEPRECATED</status>
         <!-- See http://go/sample-categories for details on the next 4 fields. -->
         <categories>Wearable</categories>
         <technologies>Android</technologies>
@@ -58,27 +58,20 @@
           <android>android.media.AudioTrack</android>
           <android>android.media.AudioRecord</android>
         </api_refs>
-
-        <!-- 1-3 line description of the sample here.
-
-            Avoid simply rearranging the sample's title. What does this sample actually
-            accomplish, and how does it do it? -->
         <description>
-<![CDATA[
-A sample that shows how you can record voice using the microphone on a wearable and
-play the recorded voice or an mp3 file, if the wearable device has a built-in speaker.
+            <![CDATA[
+Sample moved to [github.com/android/wear-os][1].
 
-This sample doesn't have any companion phone app so you need to install this directly
-on your watch (using "adb").
+[1]: https://github.com/android/wear-os
 ]]>
         </description>
 
-        <!-- Multi-paragraph introduction to sample, from an educational point-of-view.
-        Makrdown formatting allowed. This will be used to generate a mini-article for the
-        sample on DAC. -->
-        <!-- <intro>
-<![CDATA[
+        <intro>
+            <![CDATA[
+This repo and all Wear OS samples have been moved to [github.com/android/wear-os][1]. Please check out the code there. Thank you!
+
+[1]: https://github.com/android/wear-os
 ]]>
-        </intro> -->
+        </intro>
     </metadata>
 </sample>
diff --git a/wearable/wear/WearVerifyRemoteApp/Wearable/build.gradle b/wearable/wear/WearVerifyRemoteApp/Wearable/build.gradle
index 9723e86..8d5be30 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.2'
+        classpath 'com.android.tools.build:gradle:3.4.2'
     }
 }
 
diff --git a/wearable/wear/WearVerifyRemoteApp/gradle/wrapper/gradle-wrapper.properties b/wearable/wear/WearVerifyRemoteApp/gradle/wrapper/gradle-wrapper.properties
index f941550..8d3156c 100644
--- a/wearable/wear/WearVerifyRemoteApp/gradle/wrapper/gradle-wrapper.properties
+++ b/wearable/wear/WearVerifyRemoteApp/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,6 @@
+#Tue Jul 16 15:57:44 PDT 2019
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionUrl=https://services.gradle.org/distributions/gradle-4.10.3-all.zip
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip
diff --git a/wearable/wear/WearVerifyRemoteApp/template-params.xml b/wearable/wear/WearVerifyRemoteApp/template-params.xml
index f5b8273..57106b5 100644
--- a/wearable/wear/WearVerifyRemoteApp/template-params.xml
+++ b/wearable/wear/WearVerifyRemoteApp/template-params.xml
@@ -56,7 +56,7 @@
 
     <metadata>
         <!-- Values: {DRAFT | PUBLISHED | INTERNAL | DEPRECATED | SUPERCEDED} -->
-        <status>PUBLISHED</status>
+        <status>DEPRECATED</status>
         <!-- See http://go/sample-categories for details on the next 4 fields. -->
         <!-- Most samples just need to udpate the Categories field. This is a comma-
              seperated list of topic tags. Unlike the old category system, samples
@@ -94,40 +94,19 @@
             <android>com.google.android.wearable.playstore.PlayStoreAvailability</android>
         </api_refs>
 
-        <!-- 1-3 line description of the sample here.
-
-            Avoid simply rearranging the sample's title. What does this sample actually
-            accomplish, and how does it do it? -->
         <description>
-<![CDATA[
-Sample demonstrates best practices for checking if connected mobile device has your app installed
-from a Wear 2.+ standalone app and the other way around.
+            <![CDATA[
+Sample moved to [github.com/android/wear-os][1].
+
+[1]: https://github.com/android/wear-os
 ]]>
         </description>
 
-        <!-- Multi-paragraph introduction to sample, from an educational point-of-view.
-        Makrdown formatting allowed. This will be used to generate a mini-article for the
-        sample on DAC. -->
         <intro>
             <![CDATA[
-Steps for trying out the sample:
-* Compile and install the mobile app onto your mobile device or emulator (for mobile
-scenario).
-* Compile and install the wearable app onto your Wear device or emulator (for Wear
-scenario).
+This repo and all Wear OS samples have been moved to [github.com/android/wear-os][1]. Please check out the code there. Thank you!
 
-This sample demonstrate best practices for using PlayStoreAvailability and RemoteIntent to check
-if the mobile version of your app exists from within your Standalone Wear 2.+ app and the other
-way around. Scenarios:
-
-1. Launch Wear standalone app to verify if the mobile version is installed. If it is not, you will
-be able to open the Play Store on the remote mobile device from the app (if it has the Play Store).
-
-2. Launch Mobile app to verify if the Wear version is installed. If it is not, you will
-be able to open the Play Store on the remote Wear device from the app.
-
-Although there are two apps (Mobile and Wear), each should be looked at as a separate, standalone
-apps/experiences.
+[1]: https://github.com/android/wear-os
 ]]>
         </intro>
     </metadata>
diff --git a/wearable/wear/XYZTouristAttractions/gradle/wrapper/gradle-wrapper.properties b/wearable/wear/XYZTouristAttractions/gradle/wrapper/gradle-wrapper.properties
index ae45383..65b546b 100644
--- a/wearable/wear/XYZTouristAttractions/gradle/wrapper/gradle-wrapper.properties
+++ b/wearable/wear/XYZTouristAttractions/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,6 @@
+#Tue Jul 16 15:59:29 PDT 2019
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.3-all.zip
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip
diff --git a/wearable/wear/XYZTouristAttractions/template-params.xml b/wearable/wear/XYZTouristAttractions/template-params.xml
index 801b839..8fa0171 100644
--- a/wearable/wear/XYZTouristAttractions/template-params.xml
+++ b/wearable/wear/XYZTouristAttractions/template-params.xml
@@ -76,7 +76,7 @@
 
     <metadata>
         <!-- Values: {DRAFT | PUBLISHED | INTERNAL | DEPRECATED | SUPERCEDED} -->
-        <status>PUBLISHED</status>
+        <status>DEPRECATED</status>
         <!-- See http://go/sample-categories for details on the next 4 fields. -->
         <categories>Wearable, Location, Notification</categories>
         <technologies>Android</technologies>
@@ -121,107 +121,19 @@
             <android>android.support.wearable.view.ActionPage</android>
         </api_refs>
 
-        <!-- 1-3 line description of the sample here.
-
-            Avoid simply rearranging the sample's title. What does this sample actually
-            accomplish, and how does it do it? -->
         <description>
-This sample aims to be as close to a real world example of a mobile
-and Wear app combination as possible. It has a more refined design
-and also provides a practical example of how a mobile app would
-interact and communicate with its wear counterpart.
+            <![CDATA[
+Sample moved to [github.com/android/wear-os][1].
 
-The app itself is modeled after a hypothetical tourist attractions
-app that notifies the user when they are in close proximity to
-notable points of interest.
-
-The Wear component shows tourist attraction images and summary
-information, and provides quick actions for nearby tourist
-attractions in a [GridViewPager](http://developer.android.com/reference/android/support/wearable/view/GridViewPager.html)
-UI component.
+[1]: https://github.com/android/wear-os
+]]>
         </description>
 
-        <!-- Multi-paragraph introduction to sample, from an educational point-of-view.
-        Makrdown formatting allowed. This will be used to generate a mini-article for the
-        sample on DAC. -->
         <intro>
-<![CDATA[
-Steps for trying out this sample:
-* Compile and install the mobile app onto your mobile device or emulator.
-* Compile and install the wearable app onto your Wear device or emulator.
-(**Note:** wearable apps are not automatically pushed from your mobile device
-unless you build a production release, see [here][22] for more info).
-* Start the mobile app and use the overflow menu options to test either a
-notification enhanced for Wear, or the full wearable application (unless
-you're physically in Sydney in which case the geofence should trigger
-automatically). Note that the first time you trigger either the notification
-or the wearable app it may take 20-30 seconds to show up as it needs to
-transfer the image assets to the wearable (in practice this delay won't be
-noticeable to users as they will only be notified once the data has been sent).
+            <![CDATA[
+This repo and all Wear OS samples have been moved to [github.com/android/wear-os][1]. Please check out the code there. Thank you!
 
-This sample aims to demonstrate a number of different Android APIs and concepts
-relating to [Wear][1] and location using [Google Play Services][2]:
-* Trigger a mobile notification that uses [WearableExtender][3] to customize the
-display on the wearable
-* Transmit data from the mobile app to the wearable (including binary blobs
-such as photos) using the [Wearable DataApi][4]
-* Synchronize notification dismissal across mobile and wearable apps via the
-[Wearable MessageApi][5]
-* Trigger actions on the mobile app via the wearable app (eg. start walking
-navigation) via the [Wearable MessageApi][5]
-* Locate the user via the [Google Location APIs][6] and the
-[FusedLocationProviderApi][7]
-* Set up and trigger location [geofences][8] using the
-[Google Location APIs][6]
-
-The sample also focuses on providing a simple, yet clean design and UI for both
-mobile and wearable apps with an extra level of visual polish compared to a
-traditional code sample.
-
-Some of the UI widgets and design patterns used in the mobile app include:
-* Use of Material theme including definition of primary and accent colors
-* [AppCompat][9] usage for Material theme backward compatibility
-* Metrics and keylines based on the [Material guidelines][10]
-* Window content and activity transitions based on the
-[Material guidelines][11]
-* Use of the [RecyclerView][12] widget
-* CoordinatorLayout[23] and FloatingActionButton[24] from the Design Support library[25]
-* Material animations such as activity and shared element transitions
-
-The wearable app uses a number of techniques and UI widgets as well:
-* Full screen app built off [GridViewPager][13] and [DotsPageIndicator][14]
-* Support for square and round screens (with and without insets) using
-[WatchViewStub][15] and [OnApplyWindowInsetsListener][16]
-* Use of a variety of other widgets from the [Wearable UI Library][17]
-([DismissOverlayView][18], [ConfirmationActivity][19],
-[CardScrollView][20], [CircledImageView][21], [ActionPage][26])
-
-[1]: http://developer.android.com/wear/
-[2]: https://developer.android.com/google/play-services/
-[3]: https://developer.android.com/reference/android/support/v4/app/NotificationCompat.WearableExtender.html
-[4]: https://developer.android.com/reference/com/google/android/gms/wearable/DataApi.html
-[5]: https://developer.android.com/reference/com/google/android/gms/wearable/MessageApi.html
-[6]: https://developer.android.com/google/play-services/location.html
-[7]: https://developer.android.com/reference/com/google/android/gms/location/FusedLocationProviderApi.html
-[8]: https://developer.android.com/reference/com/google/android/gms/location/Geofence.html
-[9]: https://developer.android.com/tools/support-library/features.html#v7-appcompat
-[10]: http://www.google.com/design/spec/layout/metrics-keylines.html
-[11]: http://www.google.com/design/spec/animation/meaningful-transitions.html
-[12]: https://developer.android.com/reference/android/support/v7/widget/RecyclerView.html
-[13]: http://developer.android.com/reference/android/support/wearable/view/GridViewPager.html
-[14]: http://developer.android.com/reference/android/support/wearable/view/DotsPageIndicator.html
-[15]: http://developer.android.com/reference/android/support/wearable/view/WatchViewStub.html
-[16]: http://developer.android.com/reference/android/view/View.OnApplyWindowInsetsListener.html
-[17]: https://developer.android.com/training/wearables/apps/layouts.html#UiLibrary
-[18]: http://developer.android.com/reference/android/support/wearable/view/DismissOverlayView.html
-[19]: http://developer.android.com/reference/android/support/wearable/activity/ConfirmationActivity.html
-[20]: http://developer.android.com/reference/android/support/wearable/view/CardScrollView.html
-[21]: http://developer.android.com/reference/android/support/wearable/view/CircledImageView.html
-[22]: https://developer.android.com/training/wearables/apps/creating.html#Install
-[23]: https://developer.android.com/reference/android/support/design/widget/CoordinatorLayout.html
-[24]: https://developer.android.com/reference/android/support/design/widget/FloatingActionButton.html
-[25]: http://android-developers.blogspot.com/2015/05/android-design-support-library.html
-[26]: http://developer.android.com/reference/android/support/wearable/view/ActionPage.html
+[1]: https://github.com/android/wear-os
 ]]>
         </intro>
     </metadata>
