Update wear samples prebuilts for lmp-docs

Porting wear samples from klp-modular-docs as of commit
67660d44402e398f19b6e4c975039cdea65aa7ea.

Affected samples:
- AgendaData
- DataLayer
- DelayedConfirmation
- ElizaChat
- EmbeddedApp
- FindMyPhone
- Flashlight
- Geofencing
- GridViewPager
- JumpingJack
- Notifications
- Quiz
- RecipeAssistant
- SkeletonWearableApp
- SpeedTracker
- SynchronizedNotifications
- Timer
- WatchViewStub

Change-Id: I2b9bd570853e706c30a4ff9f09bf3def9cffc92b
diff --git a/prebuilts/gradle/AgendaData/Application/build.gradle b/prebuilts/gradle/AgendaData/Application/build.gradle
index 41fc623..0c6e001 100644
--- a/prebuilts/gradle/AgendaData/Application/build.gradle
+++ b/prebuilts/gradle/AgendaData/Application/build.gradle
@@ -16,7 +16,6 @@
 
     compile 'com.google.android.gms:play-services:5.0.+'
     compile 'com.android.support:support-v13:20.0.+'
-    compile project(':Shared')
     wearApp project(':Wearable')
 
 }
diff --git a/prebuilts/gradle/AgendaData/Application/src/main/AndroidManifest.xml b/prebuilts/gradle/AgendaData/Application/src/main/AndroidManifest.xml
index b5bebc3..284e0e6 100644
--- a/prebuilts/gradle/AgendaData/Application/src/main/AndroidManifest.xml
+++ b/prebuilts/gradle/AgendaData/Application/src/main/AndroidManifest.xml
@@ -15,10 +15,10 @@
 -->
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-          package="com.example.android.agendadata">
+          package="com.example.android.wearable.agendadata">
 
-    <uses-sdk android:minSdkVersion="19"
-        android:targetSdkVersion="19" />
+    <uses-sdk android:minSdkVersion="18"
+        android:targetSdkVersion="20" />
 
     <uses-permission android:name="android.permission.READ_CALENDAR" />
     <uses-permission android:name="android.permission.READ_CONTACTS" />
@@ -34,7 +34,7 @@
                 android:value="@integer/google_play_services_version" />
 
         <activity
-                android:name="com.example.android.agendadata.MainActivity"
+                android:name="com.example.android.wearable.agendadata.MainActivity"
                 android:label="@string/app_name"
                 android:configChanges="keyboardHidden|orientation|screenSize">
             <intent-filter>
@@ -43,6 +43,6 @@
             </intent-filter>
         </activity>
 
-        <service android:name="com.example.android.agendadata.CalendarQueryService"/>
+        <service android:name="com.example.android.wearable.agendadata.CalendarQueryService"/>
     </application>
 </manifest>
diff --git a/prebuilts/gradle/AgendaData/Application/src/main/java/com/example/android/common/activities/SampleActivityBase.java b/prebuilts/gradle/AgendaData/Application/src/main/java/com/example/android/common/activities/SampleActivityBase.java
deleted file mode 100644
index 3228927..0000000
--- a/prebuilts/gradle/AgendaData/Application/src/main/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/prebuilts/gradle/AgendaData/Application/src/main/java/com/example/android/common/logger/Log.java b/prebuilts/gradle/AgendaData/Application/src/main/java/com/example/android/common/logger/Log.java
deleted file mode 100644
index 17503c5..0000000
--- a/prebuilts/gradle/AgendaData/Application/src/main/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/prebuilts/gradle/AgendaData/Application/src/main/java/com/example/android/common/logger/LogFragment.java b/prebuilts/gradle/AgendaData/Application/src/main/java/com/example/android/common/logger/LogFragment.java
deleted file mode 100644
index b302acd..0000000
--- a/prebuilts/gradle/AgendaData/Application/src/main/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/prebuilts/gradle/AgendaData/Application/src/main/java/com/example/android/common/logger/LogNode.java b/prebuilts/gradle/AgendaData/Application/src/main/java/com/example/android/common/logger/LogNode.java
deleted file mode 100644
index bc37cab..0000000
--- a/prebuilts/gradle/AgendaData/Application/src/main/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/prebuilts/gradle/AgendaData/Application/src/main/java/com/example/android/common/logger/LogView.java b/prebuilts/gradle/AgendaData/Application/src/main/java/com/example/android/common/logger/LogView.java
deleted file mode 100644
index c01542b..0000000
--- a/prebuilts/gradle/AgendaData/Application/src/main/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/prebuilts/gradle/AgendaData/Application/src/main/java/com/example/android/common/logger/LogWrapper.java b/prebuilts/gradle/AgendaData/Application/src/main/java/com/example/android/common/logger/LogWrapper.java
deleted file mode 100644
index 16a9e7b..0000000
--- a/prebuilts/gradle/AgendaData/Application/src/main/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/prebuilts/gradle/AgendaData/Application/src/main/java/com/example/android/common/logger/MessageOnlyLogFilter.java b/prebuilts/gradle/AgendaData/Application/src/main/java/com/example/android/common/logger/MessageOnlyLogFilter.java
deleted file mode 100644
index 19967dc..0000000
--- a/prebuilts/gradle/AgendaData/Application/src/main/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/prebuilts/gradle/AgendaData/Application/src/main/java/com/example/android/agendadata/CalendarQueryService.java b/prebuilts/gradle/AgendaData/Application/src/main/java/com/example/android/wearable/agendadata/CalendarQueryService.java
similarity index 91%
rename from prebuilts/gradle/AgendaData/Application/src/main/java/com/example/android/agendadata/CalendarQueryService.java
rename to prebuilts/gradle/AgendaData/Application/src/main/java/com/example/android/wearable/agendadata/CalendarQueryService.java
index fe7fa27..c39a5ed 100644
--- a/prebuilts/gradle/AgendaData/Application/src/main/java/com/example/android/agendadata/CalendarQueryService.java
+++ b/prebuilts/gradle/AgendaData/Application/src/main/java/com/example/android/wearable/agendadata/CalendarQueryService.java
@@ -14,21 +14,21 @@
  * limitations under the License.
  */
 
-package com.example.android.agendadata;
+package com.example.android.wearable.agendadata;
 
 
-import static com.example.android.agendadata.Constants.TAG;
-import static com.example.android.agendadata.Constants.CONNECTION_TIME_OUT_MS;
-import static com.example.android.agendadata.Constants.CAL_DATA_ITEM_PATH_PREFIX;
-import static com.example.android.agendadata.Constants.ALL_DAY;
-import static com.example.android.agendadata.Constants.BEGIN;
-import static com.example.android.agendadata.Constants.DATA_ITEM_URI;
-import static com.example.android.agendadata.Constants.DESCRIPTION;
-import static com.example.android.agendadata.Constants.END;
-import static com.example.android.agendadata.Constants.EVENT_ID;
-import static com.example.android.agendadata.Constants.ID;
-import static com.example.android.agendadata.Constants.PROFILE_PIC;
-import static com.example.android.agendadata.Constants.TITLE;
+import static com.example.android.wearable.agendadata.Constants.TAG;
+import static com.example.android.wearable.agendadata.Constants.CONNECTION_TIME_OUT_MS;
+import static com.example.android.wearable.agendadata.Constants.CAL_DATA_ITEM_PATH_PREFIX;
+import static com.example.android.wearable.agendadata.Constants.ALL_DAY;
+import static com.example.android.wearable.agendadata.Constants.BEGIN;
+import static com.example.android.wearable.agendadata.Constants.DATA_ITEM_URI;
+import static com.example.android.wearable.agendadata.Constants.DESCRIPTION;
+import static com.example.android.wearable.agendadata.Constants.END;
+import static com.example.android.wearable.agendadata.Constants.EVENT_ID;
+import static com.example.android.wearable.agendadata.Constants.ID;
+import static com.example.android.wearable.agendadata.Constants.PROFILE_PIC;
+import static com.example.android.wearable.agendadata.Constants.TITLE;
 
 import android.app.IntentService;
 import android.content.ContentResolver;
diff --git a/prebuilts/gradle/AgendaData/Application/src/main/java/com/example/android/agendadata/Constants.java b/prebuilts/gradle/AgendaData/Application/src/main/java/com/example/android/wearable/agendadata/Constants.java
similarity index 96%
rename from prebuilts/gradle/AgendaData/Application/src/main/java/com/example/android/agendadata/Constants.java
rename to prebuilts/gradle/AgendaData/Application/src/main/java/com/example/android/wearable/agendadata/Constants.java
index d66e7ca..6dc6952 100644
--- a/prebuilts/gradle/AgendaData/Application/src/main/java/com/example/android/agendadata/Constants.java
+++ b/prebuilts/gradle/AgendaData/Application/src/main/java/com/example/android/wearable/agendadata/Constants.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.agendadata;
+package com.example.android.wearable.agendadata;
 
 /** Constants used in companion app. */
 public final class Constants {
diff --git a/prebuilts/gradle/AgendaData/Application/src/main/java/com/example/android/agendadata/MainActivity.java b/prebuilts/gradle/AgendaData/Application/src/main/java/com/example/android/wearable/agendadata/MainActivity.java
similarity index 98%
rename from prebuilts/gradle/AgendaData/Application/src/main/java/com/example/android/agendadata/MainActivity.java
rename to prebuilts/gradle/AgendaData/Application/src/main/java/com/example/android/wearable/agendadata/MainActivity.java
index e999fde..8e4063d 100644
--- a/prebuilts/gradle/AgendaData/Application/src/main/java/com/example/android/agendadata/MainActivity.java
+++ b/prebuilts/gradle/AgendaData/Application/src/main/java/com/example/android/wearable/agendadata/MainActivity.java
@@ -14,9 +14,9 @@
  * limitations under the License.
  */
 
-package com.example.android.agendadata;
+package com.example.android.wearable.agendadata;
 
-import static com.example.android.agendadata.Constants.TAG;
+import static com.example.android.wearable.agendadata.Constants.TAG;
 
 import android.app.Activity;
 import android.content.Intent;
diff --git a/prebuilts/gradle/AgendaData/README-wear.txt b/prebuilts/gradle/AgendaData/README-wear.txt
deleted file mode 100644
index 17523d7..0000000
--- a/prebuilts/gradle/AgendaData/README-wear.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-<#--
-        Copyright 2014 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.
--->
-
-Steps to use Wear template on top of an existing sample:
-- In template-params.xml.ftl:
-    - Add the following template:
-        <template src="Wear"/>
-
-- Refresh your project (./gradlew refresh)
-- Add Wearable-specific code to Wearable directory
-- Add code to be shared among the main application and the wearable to Shared
-  directory
-
-Note that you still need the main application sample code. This is usually
-achieved by adding another template, like "base" for example.
-
-
diff --git a/prebuilts/gradle/AgendaData/Shared/build.gradle b/prebuilts/gradle/AgendaData/Shared/build.gradle
deleted file mode 100644
index e6ddb59..0000000
--- a/prebuilts/gradle/AgendaData/Shared/build.gradle
+++ /dev/null
@@ -1,35 +0,0 @@
-buildscript {
-    repositories {
-        mavenCentral()
-    }
-
-    dependencies {
-        classpath 'com.android.tools.build:gradle:0.12.+'
-    }
-}
-
-apply plugin: 'android-library'
-
-// The sample build uses multiple directories to
-// keep boilerplate and common code separate from
-// the main sample code.
-List<String> dirs = [
-    'main',     // main sample code; look here for the interesting stuff.
-    'common',   // components that are reused by multiple samples
-    'template'] // boilerplate code that is generated by the sample template process
-
-android {
-    compileSdkVersion 20
-
-    buildToolsVersion '20'
-
-    sourceSets {
-        main {
-            dirs.each { dir ->
-                java.srcDirs "src/${dir}/java"
-                res.srcDirs "src/${dir}/res"
-            }
-        }
-
-    }
-}
diff --git a/prebuilts/gradle/AgendaData/Shared/src/main/AndroidManifest.xml b/prebuilts/gradle/AgendaData/Shared/src/main/AndroidManifest.xml
deleted file mode 100644
index 07bc153..0000000
--- a/prebuilts/gradle/AgendaData/Shared/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- 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.
--->
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.example.android.agendadata.common">
-
-    <application android:allowBackup="true"
-        android:label="@string/app_name">
-    </application>
-
-</manifest>
diff --git a/prebuilts/gradle/AgendaData/Shared/src/main/res/values/strings.xml b/prebuilts/gradle/AgendaData/Shared/src/main/res/values/strings.xml
deleted file mode 100644
index 0f2bb90..0000000
--- a/prebuilts/gradle/AgendaData/Shared/src/main/res/values/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2014 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.
--->
-<resources>
-    <string name="app_name">Shared</string>
-</resources>
diff --git a/prebuilts/gradle/AgendaData/Wearable/build.gradle b/prebuilts/gradle/AgendaData/Wearable/build.gradle
index b8151b1..864b2fd 100644
--- a/prebuilts/gradle/AgendaData/Wearable/build.gradle
+++ b/prebuilts/gradle/AgendaData/Wearable/build.gradle
@@ -16,7 +16,6 @@
     compile 'com.google.android.gms:play-services-wearable:5.0.+'
     compile 'com.android.support:support-v13:20.0.+'
     compile 'com.google.android.support:wearable:1.0.+'
-    compile project(':Shared')
 }
 
 // The sample build uses multiple directories to
diff --git a/prebuilts/gradle/AgendaData/Wearable/src/main/AndroidManifest.xml b/prebuilts/gradle/AgendaData/Wearable/src/main/AndroidManifest.xml
index c91f09c..f2576af 100644
--- a/prebuilts/gradle/AgendaData/Wearable/src/main/AndroidManifest.xml
+++ b/prebuilts/gradle/AgendaData/Wearable/src/main/AndroidManifest.xml
@@ -15,7 +15,7 @@
 -->
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-        package="com.example.android.agendadata" >
+        package="com.example.android.wearable.agendadata" >
 
     <uses-sdk android:minSdkVersion="20"
         android:targetSdkVersion="20" />
@@ -32,13 +32,13 @@
                 android:value="@integer/google_play_services_version" />
 
         <service
-                android:name="com.example.android.agendadata.HomeListenerService" >
+                android:name="com.example.android.wearable.agendadata.HomeListenerService" >
             <intent-filter>
                 <action android:name="com.google.android.gms.wearable.BIND_LISTENER" />
             </intent-filter>
         </service>
 
-        <service android:name="com.example.android.agendadata.DeleteService"/>
+        <service android:name="com.example.android.wearable.agendadata.DeleteService"/>
 
         <activity android:name="android.support.wearable.activity.ConfirmationActivity"/>
 
diff --git a/prebuilts/gradle/AgendaData/Wearable/src/main/java/com/example/android/agendadata/Constants.java b/prebuilts/gradle/AgendaData/Wearable/src/main/java/com/example/android/wearable/agendadata/Constants.java
similarity index 95%
rename from prebuilts/gradle/AgendaData/Wearable/src/main/java/com/example/android/agendadata/Constants.java
rename to prebuilts/gradle/AgendaData/Wearable/src/main/java/com/example/android/wearable/agendadata/Constants.java
index 5b51751..176a21e 100644
--- a/prebuilts/gradle/AgendaData/Wearable/src/main/java/com/example/android/agendadata/Constants.java
+++ b/prebuilts/gradle/AgendaData/Wearable/src/main/java/com/example/android/wearable/agendadata/Constants.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.agendadata;
+package com.example.android.wearable.agendadata;
 
 /** Constants used in wearable app. */
 public final class Constants {
diff --git a/prebuilts/gradle/AgendaData/Wearable/src/main/java/com/example/android/agendadata/DeleteService.java b/prebuilts/gradle/AgendaData/Wearable/src/main/java/com/example/android/wearable/agendadata/DeleteService.java
similarity index 95%
rename from prebuilts/gradle/AgendaData/Wearable/src/main/java/com/example/android/agendadata/DeleteService.java
rename to prebuilts/gradle/AgendaData/Wearable/src/main/java/com/example/android/wearable/agendadata/DeleteService.java
index 7c6bb9b..86aafe0 100644
--- a/prebuilts/gradle/AgendaData/Wearable/src/main/java/com/example/android/agendadata/DeleteService.java
+++ b/prebuilts/gradle/AgendaData/Wearable/src/main/java/com/example/android/wearable/agendadata/DeleteService.java
@@ -14,10 +14,10 @@
  * limitations under the License.
  */
 
-package com.example.android.agendadata;
+package com.example.android.wearable.agendadata;
 
-import static com.example.android.agendadata.Constants.TAG;
-import static com.example.android.agendadata.Constants.EXTRA_SILENT;
+import static com.example.android.wearable.agendadata.Constants.TAG;
+import static com.example.android.wearable.agendadata.Constants.EXTRA_SILENT;
 
 import android.app.IntentService;
 import android.content.Intent;
diff --git a/prebuilts/gradle/AgendaData/Wearable/src/main/java/com/example/android/agendadata/HomeListenerService.java b/prebuilts/gradle/AgendaData/Wearable/src/main/java/com/example/android/wearable/agendadata/HomeListenerService.java
similarity index 91%
rename from prebuilts/gradle/AgendaData/Wearable/src/main/java/com/example/android/agendadata/HomeListenerService.java
rename to prebuilts/gradle/AgendaData/Wearable/src/main/java/com/example/android/wearable/agendadata/HomeListenerService.java
index 7a46911..ef47977 100644
--- a/prebuilts/gradle/AgendaData/Wearable/src/main/java/com/example/android/agendadata/HomeListenerService.java
+++ b/prebuilts/gradle/AgendaData/Wearable/src/main/java/com/example/android/wearable/agendadata/HomeListenerService.java
@@ -14,17 +14,17 @@
  * limitations under the License.
  */
 
-package com.example.android.agendadata;
+package com.example.android.wearable.agendadata;
 
-import static com.example.android.agendadata.Constants.TAG;
-import static com.example.android.agendadata.Constants.EXTRA_SILENT;
+import static com.example.android.wearable.agendadata.Constants.TAG;
+import static com.example.android.wearable.agendadata.Constants.EXTRA_SILENT;
 
-import static com.example.android.agendadata.Constants.ALL_DAY;
-import static com.example.android.agendadata.Constants.BEGIN;
-import static com.example.android.agendadata.Constants.DESCRIPTION;
-import static com.example.android.agendadata.Constants.END;
-import static com.example.android.agendadata.Constants.PROFILE_PIC;
-import static com.example.android.agendadata.Constants.TITLE;
+import static com.example.android.wearable.agendadata.Constants.ALL_DAY;
+import static com.example.android.wearable.agendadata.Constants.BEGIN;
+import static com.example.android.wearable.agendadata.Constants.DESCRIPTION;
+import static com.example.android.wearable.agendadata.Constants.END;
+import static com.example.android.wearable.agendadata.Constants.PROFILE_PIC;
+import static com.example.android.wearable.agendadata.Constants.TITLE;
 
 import android.app.Notification;
 import android.app.NotificationManager;
diff --git a/prebuilts/gradle/AgendaData/screenshots/companion_agenda_data.png b/prebuilts/gradle/AgendaData/screenshots/companion_agenda_data.png
new file mode 100644
index 0000000..c39503b
--- /dev/null
+++ b/prebuilts/gradle/AgendaData/screenshots/companion_agenda_data.png
Binary files differ
diff --git a/prebuilts/gradle/AgendaData/screenshots/dummy_calendar_event.png b/prebuilts/gradle/AgendaData/screenshots/dummy_calendar_event.png
new file mode 100644
index 0000000..074c56b
--- /dev/null
+++ b/prebuilts/gradle/AgendaData/screenshots/dummy_calendar_event.png
Binary files differ
diff --git a/prebuilts/gradle/AgendaData/settings.gradle b/prebuilts/gradle/AgendaData/settings.gradle
index 8522c57..19d00ac 100644
--- a/prebuilts/gradle/AgendaData/settings.gradle
+++ b/prebuilts/gradle/AgendaData/settings.gradle
@@ -1 +1 @@
-include ':Application', ':Wearable', ':Shared'
+include ':Application', ':Wearable'
diff --git a/prebuilts/gradle/DataLayer/Application/build.gradle b/prebuilts/gradle/DataLayer/Application/build.gradle
index 41fc623..0c6e001 100644
--- a/prebuilts/gradle/DataLayer/Application/build.gradle
+++ b/prebuilts/gradle/DataLayer/Application/build.gradle
@@ -16,7 +16,6 @@
 
     compile 'com.google.android.gms:play-services:5.0.+'
     compile 'com.android.support:support-v13:20.0.+'
-    compile project(':Shared')
     wearApp project(':Wearable')
 
 }
diff --git a/prebuilts/gradle/DataLayer/Application/src/main/AndroidManifest.xml b/prebuilts/gradle/DataLayer/Application/src/main/AndroidManifest.xml
index f382b25..821bc11 100644
--- a/prebuilts/gradle/DataLayer/Application/src/main/AndroidManifest.xml
+++ b/prebuilts/gradle/DataLayer/Application/src/main/AndroidManifest.xml
@@ -15,10 +15,10 @@
 -->
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-        package="com.example.android.datalayer" >
+        package="com.example.android.wearable.datalayer" >
 
-    <uses-sdk android:minSdkVersion="19"
-              android:targetSdkVersion="19" />
+    <uses-sdk android:minSdkVersion="18"
+              android:targetSdkVersion="20" />
 
     <uses-feature android:name="android.hardware.camera" android:required="false" />
 
diff --git a/prebuilts/gradle/DataLayer/Application/src/main/java/com/example/android/common/activities/SampleActivityBase.java b/prebuilts/gradle/DataLayer/Application/src/main/java/com/example/android/common/activities/SampleActivityBase.java
deleted file mode 100644
index 3228927..0000000
--- a/prebuilts/gradle/DataLayer/Application/src/main/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/prebuilts/gradle/DataLayer/Application/src/main/java/com/example/android/common/logger/Log.java b/prebuilts/gradle/DataLayer/Application/src/main/java/com/example/android/common/logger/Log.java
deleted file mode 100644
index 17503c5..0000000
--- a/prebuilts/gradle/DataLayer/Application/src/main/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/prebuilts/gradle/DataLayer/Application/src/main/java/com/example/android/common/logger/LogFragment.java b/prebuilts/gradle/DataLayer/Application/src/main/java/com/example/android/common/logger/LogFragment.java
deleted file mode 100644
index b302acd..0000000
--- a/prebuilts/gradle/DataLayer/Application/src/main/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/prebuilts/gradle/DataLayer/Application/src/main/java/com/example/android/common/logger/LogNode.java b/prebuilts/gradle/DataLayer/Application/src/main/java/com/example/android/common/logger/LogNode.java
deleted file mode 100644
index bc37cab..0000000
--- a/prebuilts/gradle/DataLayer/Application/src/main/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/prebuilts/gradle/DataLayer/Application/src/main/java/com/example/android/common/logger/LogView.java b/prebuilts/gradle/DataLayer/Application/src/main/java/com/example/android/common/logger/LogView.java
deleted file mode 100644
index c01542b..0000000
--- a/prebuilts/gradle/DataLayer/Application/src/main/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/prebuilts/gradle/DataLayer/Application/src/main/java/com/example/android/common/logger/LogWrapper.java b/prebuilts/gradle/DataLayer/Application/src/main/java/com/example/android/common/logger/LogWrapper.java
deleted file mode 100644
index 16a9e7b..0000000
--- a/prebuilts/gradle/DataLayer/Application/src/main/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/prebuilts/gradle/DataLayer/Application/src/main/java/com/example/android/common/logger/MessageOnlyLogFilter.java b/prebuilts/gradle/DataLayer/Application/src/main/java/com/example/android/common/logger/MessageOnlyLogFilter.java
deleted file mode 100644
index 19967dc..0000000
--- a/prebuilts/gradle/DataLayer/Application/src/main/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/prebuilts/gradle/DataLayer/Application/src/main/java/com/example/android/datalayer/MainActivity.java b/prebuilts/gradle/DataLayer/Application/src/main/java/com/example/android/wearable/datalayer/MainActivity.java
similarity index 99%
rename from prebuilts/gradle/DataLayer/Application/src/main/java/com/example/android/datalayer/MainActivity.java
rename to prebuilts/gradle/DataLayer/Application/src/main/java/com/example/android/wearable/datalayer/MainActivity.java
index d94261d..23bc696 100644
--- a/prebuilts/gradle/DataLayer/Application/src/main/java/com/example/android/datalayer/MainActivity.java
+++ b/prebuilts/gradle/DataLayer/Application/src/main/java/com/example/android/wearable/datalayer/MainActivity.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.datalayer;
+package com.example.android.wearable.datalayer;
 
 import android.app.Activity;
 import android.content.Context;
diff --git a/prebuilts/gradle/DataLayer/README-wear.txt b/prebuilts/gradle/DataLayer/README-wear.txt
deleted file mode 100644
index 17523d7..0000000
--- a/prebuilts/gradle/DataLayer/README-wear.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-<#--
-        Copyright 2014 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.
--->
-
-Steps to use Wear template on top of an existing sample:
-- In template-params.xml.ftl:
-    - Add the following template:
-        <template src="Wear"/>
-
-- Refresh your project (./gradlew refresh)
-- Add Wearable-specific code to Wearable directory
-- Add code to be shared among the main application and the wearable to Shared
-  directory
-
-Note that you still need the main application sample code. This is usually
-achieved by adding another template, like "base" for example.
-
-
diff --git a/prebuilts/gradle/DataLayer/Shared/build.gradle b/prebuilts/gradle/DataLayer/Shared/build.gradle
deleted file mode 100644
index e6ddb59..0000000
--- a/prebuilts/gradle/DataLayer/Shared/build.gradle
+++ /dev/null
@@ -1,35 +0,0 @@
-buildscript {
-    repositories {
-        mavenCentral()
-    }
-
-    dependencies {
-        classpath 'com.android.tools.build:gradle:0.12.+'
-    }
-}
-
-apply plugin: 'android-library'
-
-// The sample build uses multiple directories to
-// keep boilerplate and common code separate from
-// the main sample code.
-List<String> dirs = [
-    'main',     // main sample code; look here for the interesting stuff.
-    'common',   // components that are reused by multiple samples
-    'template'] // boilerplate code that is generated by the sample template process
-
-android {
-    compileSdkVersion 20
-
-    buildToolsVersion '20'
-
-    sourceSets {
-        main {
-            dirs.each { dir ->
-                java.srcDirs "src/${dir}/java"
-                res.srcDirs "src/${dir}/res"
-            }
-        }
-
-    }
-}
diff --git a/prebuilts/gradle/DataLayer/Shared/src/main/AndroidManifest.xml b/prebuilts/gradle/DataLayer/Shared/src/main/AndroidManifest.xml
deleted file mode 100644
index b7d03bf..0000000
--- a/prebuilts/gradle/DataLayer/Shared/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- 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.
--->
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.example.android.datalayer.common">
-
-    <application android:allowBackup="true"
-        android:label="@string/app_name">
-    </application>
-
-</manifest>
diff --git a/prebuilts/gradle/DataLayer/Shared/src/main/res/values/strings.xml b/prebuilts/gradle/DataLayer/Shared/src/main/res/values/strings.xml
deleted file mode 100644
index 0f2bb90..0000000
--- a/prebuilts/gradle/DataLayer/Shared/src/main/res/values/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2014 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.
--->
-<resources>
-    <string name="app_name">Shared</string>
-</resources>
diff --git a/prebuilts/gradle/DataLayer/Wearable/build.gradle b/prebuilts/gradle/DataLayer/Wearable/build.gradle
index b8151b1..864b2fd 100644
--- a/prebuilts/gradle/DataLayer/Wearable/build.gradle
+++ b/prebuilts/gradle/DataLayer/Wearable/build.gradle
@@ -16,7 +16,6 @@
     compile 'com.google.android.gms:play-services-wearable:5.0.+'
     compile 'com.android.support:support-v13:20.0.+'
     compile 'com.google.android.support:wearable:1.0.+'
-    compile project(':Shared')
 }
 
 // The sample build uses multiple directories to
diff --git a/prebuilts/gradle/DataLayer/Wearable/src/main/AndroidManifest.xml b/prebuilts/gradle/DataLayer/Wearable/src/main/AndroidManifest.xml
index 7bde39a..38c0798 100644
--- a/prebuilts/gradle/DataLayer/Wearable/src/main/AndroidManifest.xml
+++ b/prebuilts/gradle/DataLayer/Wearable/src/main/AndroidManifest.xml
@@ -15,7 +15,7 @@
 -->
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-        package="com.example.android.datalayer" >
+        package="com.example.android.wearable.datalayer" >
 
     <uses-sdk android:minSdkVersion="20"
               android:targetSdkVersion="20" />
@@ -47,7 +47,7 @@
                 <category android:name="android.intent.category.LAUNCHER"/>
             </intent-filter>
             <intent-filter>
-                <action android:name="com.example.android.datalayer.EXAMPLE"/>
+                <action android:name="com.example.android.wearable.datalayer.EXAMPLE"/>
                 <category android:name="android.intent.category.DEFAULT"/>
             </intent-filter>
         </activity>
diff --git a/prebuilts/gradle/DataLayer/Wearable/src/main/java/com/example/android/datalayer/DataLayerListenerService.java b/prebuilts/gradle/DataLayer/Wearable/src/main/java/com/example/android/wearable/datalayer/DataLayerListenerService.java
similarity index 98%
rename from prebuilts/gradle/DataLayer/Wearable/src/main/java/com/example/android/datalayer/DataLayerListenerService.java
rename to prebuilts/gradle/DataLayer/Wearable/src/main/java/com/example/android/wearable/datalayer/DataLayerListenerService.java
index 9356f39..64abaf5 100644
--- a/prebuilts/gradle/DataLayer/Wearable/src/main/java/com/example/android/datalayer/DataLayerListenerService.java
+++ b/prebuilts/gradle/DataLayer/Wearable/src/main/java/com/example/android/wearable/datalayer/DataLayerListenerService.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.datalayer;
+package com.example.android.wearable.datalayer;
 
 import android.content.Intent;
 import android.net.Uri;
diff --git a/prebuilts/gradle/DataLayer/Wearable/src/main/java/com/example/android/datalayer/MainActivity.java b/prebuilts/gradle/DataLayer/Wearable/src/main/java/com/example/android/wearable/datalayer/MainActivity.java
similarity index 98%
rename from prebuilts/gradle/DataLayer/Wearable/src/main/java/com/example/android/datalayer/MainActivity.java
rename to prebuilts/gradle/DataLayer/Wearable/src/main/java/com/example/android/wearable/datalayer/MainActivity.java
index 5f763b8..b312135 100644
--- a/prebuilts/gradle/DataLayer/Wearable/src/main/java/com/example/android/datalayer/MainActivity.java
+++ b/prebuilts/gradle/DataLayer/Wearable/src/main/java/com/example/android/wearable/datalayer/MainActivity.java
@@ -14,9 +14,9 @@
  * limitations under the License.
  */
 
-package com.example.android.datalayer;
+package com.example.android.wearable.datalayer;
 
-import static com.example.android.datalayer.DataLayerListenerService.LOGD;
+import static com.example.android.wearable.datalayer.DataLayerListenerService.LOGD;
 
 import android.app.Activity;
 import android.content.Context;
diff --git a/prebuilts/gradle/DataLayer/screenshots/phone_image.png b/prebuilts/gradle/DataLayer/screenshots/phone_image.png
new file mode 100644
index 0000000..e045b65
--- /dev/null
+++ b/prebuilts/gradle/DataLayer/screenshots/phone_image.png
Binary files differ
diff --git a/prebuilts/gradle/DataLayer/screenshots/wearable_background_image.png b/prebuilts/gradle/DataLayer/screenshots/wearable_background_image.png
new file mode 100644
index 0000000..7826180
--- /dev/null
+++ b/prebuilts/gradle/DataLayer/screenshots/wearable_background_image.png
Binary files differ
diff --git a/prebuilts/gradle/DataLayer/settings.gradle b/prebuilts/gradle/DataLayer/settings.gradle
index 8522c57..19d00ac 100644
--- a/prebuilts/gradle/DataLayer/settings.gradle
+++ b/prebuilts/gradle/DataLayer/settings.gradle
@@ -1 +1 @@
-include ':Application', ':Wearable', ':Shared'
+include ':Application', ':Wearable'
diff --git a/prebuilts/gradle/DelayedConfirmation/Application/build.gradle b/prebuilts/gradle/DelayedConfirmation/Application/build.gradle
index 41fc623..0c6e001 100644
--- a/prebuilts/gradle/DelayedConfirmation/Application/build.gradle
+++ b/prebuilts/gradle/DelayedConfirmation/Application/build.gradle
@@ -16,7 +16,6 @@
 
     compile 'com.google.android.gms:play-services:5.0.+'
     compile 'com.android.support:support-v13:20.0.+'
-    compile project(':Shared')
     wearApp project(':Wearable')
 
 }
diff --git a/prebuilts/gradle/DelayedConfirmation/Application/src/main/AndroidManifest.xml b/prebuilts/gradle/DelayedConfirmation/Application/src/main/AndroidManifest.xml
index 115ebec..20b7aab 100644
--- a/prebuilts/gradle/DelayedConfirmation/Application/src/main/AndroidManifest.xml
+++ b/prebuilts/gradle/DelayedConfirmation/Application/src/main/AndroidManifest.xml
@@ -15,10 +15,10 @@
 -->
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-        package="com.example.android.delayedconfirmation" >
+        package="com.example.android.wearable.delayedconfirmation" >
 
-    <uses-sdk android:minSdkVersion="19"
-        android:targetSdkVersion="19" />
+    <uses-sdk android:minSdkVersion="18"
+        android:targetSdkVersion="20" />
 
     <application
             android:allowBackup="true"
diff --git a/prebuilts/gradle/DelayedConfirmation/Application/src/main/java/com/example/android/common/activities/SampleActivityBase.java b/prebuilts/gradle/DelayedConfirmation/Application/src/main/java/com/example/android/common/activities/SampleActivityBase.java
deleted file mode 100644
index 3228927..0000000
--- a/prebuilts/gradle/DelayedConfirmation/Application/src/main/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/prebuilts/gradle/DelayedConfirmation/Application/src/main/java/com/example/android/common/logger/Log.java b/prebuilts/gradle/DelayedConfirmation/Application/src/main/java/com/example/android/common/logger/Log.java
deleted file mode 100644
index 17503c5..0000000
--- a/prebuilts/gradle/DelayedConfirmation/Application/src/main/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/prebuilts/gradle/DelayedConfirmation/Application/src/main/java/com/example/android/common/logger/LogFragment.java b/prebuilts/gradle/DelayedConfirmation/Application/src/main/java/com/example/android/common/logger/LogFragment.java
deleted file mode 100644
index b302acd..0000000
--- a/prebuilts/gradle/DelayedConfirmation/Application/src/main/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/prebuilts/gradle/DelayedConfirmation/Application/src/main/java/com/example/android/common/logger/LogNode.java b/prebuilts/gradle/DelayedConfirmation/Application/src/main/java/com/example/android/common/logger/LogNode.java
deleted file mode 100644
index bc37cab..0000000
--- a/prebuilts/gradle/DelayedConfirmation/Application/src/main/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/prebuilts/gradle/DelayedConfirmation/Application/src/main/java/com/example/android/common/logger/LogView.java b/prebuilts/gradle/DelayedConfirmation/Application/src/main/java/com/example/android/common/logger/LogView.java
deleted file mode 100644
index c01542b..0000000
--- a/prebuilts/gradle/DelayedConfirmation/Application/src/main/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/prebuilts/gradle/DelayedConfirmation/Application/src/main/java/com/example/android/common/logger/LogWrapper.java b/prebuilts/gradle/DelayedConfirmation/Application/src/main/java/com/example/android/common/logger/LogWrapper.java
deleted file mode 100644
index 16a9e7b..0000000
--- a/prebuilts/gradle/DelayedConfirmation/Application/src/main/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/prebuilts/gradle/DelayedConfirmation/Application/src/main/java/com/example/android/common/logger/MessageOnlyLogFilter.java b/prebuilts/gradle/DelayedConfirmation/Application/src/main/java/com/example/android/common/logger/MessageOnlyLogFilter.java
deleted file mode 100644
index 19967dc..0000000
--- a/prebuilts/gradle/DelayedConfirmation/Application/src/main/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/prebuilts/gradle/DelayedConfirmation/Application/src/main/java/com/example/android/delayedconfirmation/MainActivity.java b/prebuilts/gradle/DelayedConfirmation/Application/src/main/java/com/example/android/wearable/delayedconfirmation/MainActivity.java
similarity index 98%
rename from prebuilts/gradle/DelayedConfirmation/Application/src/main/java/com/example/android/delayedconfirmation/MainActivity.java
rename to prebuilts/gradle/DelayedConfirmation/Application/src/main/java/com/example/android/wearable/delayedconfirmation/MainActivity.java
index 6fe681f..3ffda53 100644
--- a/prebuilts/gradle/DelayedConfirmation/Application/src/main/java/com/example/android/delayedconfirmation/MainActivity.java
+++ b/prebuilts/gradle/DelayedConfirmation/Application/src/main/java/com/example/android/wearable/delayedconfirmation/MainActivity.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.delayedconfirmation;
+package com.example.android.wearable.delayedconfirmation;
 
 import android.app.Activity;
 import android.os.Bundle;
diff --git a/prebuilts/gradle/DelayedConfirmation/README-wear.txt b/prebuilts/gradle/DelayedConfirmation/README-wear.txt
deleted file mode 100644
index 17523d7..0000000
--- a/prebuilts/gradle/DelayedConfirmation/README-wear.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-<#--
-        Copyright 2014 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.
--->
-
-Steps to use Wear template on top of an existing sample:
-- In template-params.xml.ftl:
-    - Add the following template:
-        <template src="Wear"/>
-
-- Refresh your project (./gradlew refresh)
-- Add Wearable-specific code to Wearable directory
-- Add code to be shared among the main application and the wearable to Shared
-  directory
-
-Note that you still need the main application sample code. This is usually
-achieved by adding another template, like "base" for example.
-
-
diff --git a/prebuilts/gradle/DelayedConfirmation/Shared/build.gradle b/prebuilts/gradle/DelayedConfirmation/Shared/build.gradle
deleted file mode 100644
index e6ddb59..0000000
--- a/prebuilts/gradle/DelayedConfirmation/Shared/build.gradle
+++ /dev/null
@@ -1,35 +0,0 @@
-buildscript {
-    repositories {
-        mavenCentral()
-    }
-
-    dependencies {
-        classpath 'com.android.tools.build:gradle:0.12.+'
-    }
-}
-
-apply plugin: 'android-library'
-
-// The sample build uses multiple directories to
-// keep boilerplate and common code separate from
-// the main sample code.
-List<String> dirs = [
-    'main',     // main sample code; look here for the interesting stuff.
-    'common',   // components that are reused by multiple samples
-    'template'] // boilerplate code that is generated by the sample template process
-
-android {
-    compileSdkVersion 20
-
-    buildToolsVersion '20'
-
-    sourceSets {
-        main {
-            dirs.each { dir ->
-                java.srcDirs "src/${dir}/java"
-                res.srcDirs "src/${dir}/res"
-            }
-        }
-
-    }
-}
diff --git a/prebuilts/gradle/DelayedConfirmation/Shared/src/main/AndroidManifest.xml b/prebuilts/gradle/DelayedConfirmation/Shared/src/main/AndroidManifest.xml
deleted file mode 100644
index 2c9b669..0000000
--- a/prebuilts/gradle/DelayedConfirmation/Shared/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- 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.
--->
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.example.android.delayedconfirmation.common">
-
-    <application android:allowBackup="true"
-        android:label="@string/app_name">
-    </application>
-
-</manifest>
diff --git a/prebuilts/gradle/DelayedConfirmation/Shared/src/main/res/values/strings.xml b/prebuilts/gradle/DelayedConfirmation/Shared/src/main/res/values/strings.xml
deleted file mode 100644
index 0f2bb90..0000000
--- a/prebuilts/gradle/DelayedConfirmation/Shared/src/main/res/values/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2014 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.
--->
-<resources>
-    <string name="app_name">Shared</string>
-</resources>
diff --git a/prebuilts/gradle/DelayedConfirmation/Wearable/build.gradle b/prebuilts/gradle/DelayedConfirmation/Wearable/build.gradle
index b8151b1..864b2fd 100644
--- a/prebuilts/gradle/DelayedConfirmation/Wearable/build.gradle
+++ b/prebuilts/gradle/DelayedConfirmation/Wearable/build.gradle
@@ -16,7 +16,6 @@
     compile 'com.google.android.gms:play-services-wearable:5.0.+'
     compile 'com.android.support:support-v13:20.0.+'
     compile 'com.google.android.support:wearable:1.0.+'
-    compile project(':Shared')
 }
 
 // The sample build uses multiple directories to
diff --git a/prebuilts/gradle/DelayedConfirmation/Wearable/src/main/AndroidManifest.xml b/prebuilts/gradle/DelayedConfirmation/Wearable/src/main/AndroidManifest.xml
index a220008..b73af62 100644
--- a/prebuilts/gradle/DelayedConfirmation/Wearable/src/main/AndroidManifest.xml
+++ b/prebuilts/gradle/DelayedConfirmation/Wearable/src/main/AndroidManifest.xml
@@ -15,7 +15,7 @@
 -->
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-        package="com.example.android.delayedconfirmation" >
+        package="com.example.android.wearable.delayedconfirmation" >
 
     <uses-sdk android:minSdkVersion="20"
         android:targetSdkVersion="20" />
diff --git a/prebuilts/gradle/DelayedConfirmation/Wearable/src/main/java/com/example/android/delayedconfirmation/MainActivity.java b/prebuilts/gradle/DelayedConfirmation/Wearable/src/main/java/com/example/android/wearable/delayedconfirmation/MainActivity.java
similarity index 98%
rename from prebuilts/gradle/DelayedConfirmation/Wearable/src/main/java/com/example/android/delayedconfirmation/MainActivity.java
rename to prebuilts/gradle/DelayedConfirmation/Wearable/src/main/java/com/example/android/wearable/delayedconfirmation/MainActivity.java
index 2e169c7..f9b126d 100644
--- a/prebuilts/gradle/DelayedConfirmation/Wearable/src/main/java/com/example/android/delayedconfirmation/MainActivity.java
+++ b/prebuilts/gradle/DelayedConfirmation/Wearable/src/main/java/com/example/android/wearable/delayedconfirmation/MainActivity.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.delayedconfirmation;
+package com.example.android.wearable.delayedconfirmation;
 
 import android.app.Activity;
 import android.app.Notification;
diff --git a/prebuilts/gradle/DelayedConfirmation/Wearable/src/main/java/com/example/android/delayedconfirmation/WearableMessageListenerService.java b/prebuilts/gradle/DelayedConfirmation/Wearable/src/main/java/com/example/android/wearable/delayedconfirmation/WearableMessageListenerService.java
similarity index 95%
rename from prebuilts/gradle/DelayedConfirmation/Wearable/src/main/java/com/example/android/delayedconfirmation/WearableMessageListenerService.java
rename to prebuilts/gradle/DelayedConfirmation/Wearable/src/main/java/com/example/android/wearable/delayedconfirmation/WearableMessageListenerService.java
index 0032fda..bb2ec91 100644
--- a/prebuilts/gradle/DelayedConfirmation/Wearable/src/main/java/com/example/android/delayedconfirmation/WearableMessageListenerService.java
+++ b/prebuilts/gradle/DelayedConfirmation/Wearable/src/main/java/com/example/android/wearable/delayedconfirmation/WearableMessageListenerService.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.delayedconfirmation;
+package com.example.android.wearable.delayedconfirmation;
 
 import android.content.Intent;
 
diff --git a/prebuilts/gradle/DelayedConfirmation/screenshots/companion_delayed_confirmation.png b/prebuilts/gradle/DelayedConfirmation/screenshots/companion_delayed_confirmation.png
new file mode 100644
index 0000000..b1b61a4
--- /dev/null
+++ b/prebuilts/gradle/DelayedConfirmation/screenshots/companion_delayed_confirmation.png
Binary files differ
diff --git a/prebuilts/gradle/DelayedConfirmation/screenshots/delayed_confirmation_box_inset_all.png b/prebuilts/gradle/DelayedConfirmation/screenshots/delayed_confirmation_box_inset_all.png
new file mode 100644
index 0000000..9119dd3
--- /dev/null
+++ b/prebuilts/gradle/DelayedConfirmation/screenshots/delayed_confirmation_box_inset_all.png
Binary files differ
diff --git a/prebuilts/gradle/DelayedConfirmation/screenshots/delayed_confirmation_box_inset_top.png b/prebuilts/gradle/DelayedConfirmation/screenshots/delayed_confirmation_box_inset_top.png
new file mode 100644
index 0000000..6d2da70
--- /dev/null
+++ b/prebuilts/gradle/DelayedConfirmation/screenshots/delayed_confirmation_box_inset_top.png
Binary files differ
diff --git a/prebuilts/gradle/DelayedConfirmation/screenshots/delayed_confirmation_notification.png b/prebuilts/gradle/DelayedConfirmation/screenshots/delayed_confirmation_notification.png
new file mode 100644
index 0000000..936bcaf
--- /dev/null
+++ b/prebuilts/gradle/DelayedConfirmation/screenshots/delayed_confirmation_notification.png
Binary files differ
diff --git a/prebuilts/gradle/DelayedConfirmation/settings.gradle b/prebuilts/gradle/DelayedConfirmation/settings.gradle
index 8522c57..19d00ac 100644
--- a/prebuilts/gradle/DelayedConfirmation/settings.gradle
+++ b/prebuilts/gradle/DelayedConfirmation/settings.gradle
@@ -1 +1 @@
-include ':Application', ':Wearable', ':Shared'
+include ':Application', ':Wearable'
diff --git a/prebuilts/gradle/ElizaChat/Application/build.gradle b/prebuilts/gradle/ElizaChat/Application/build.gradle
index c50e592..75a4852 100644
--- a/prebuilts/gradle/ElizaChat/Application/build.gradle
+++ b/prebuilts/gradle/ElizaChat/Application/build.gradle
@@ -13,7 +13,7 @@
 
 dependencies {
 
-    // Add the support lib that is appropriate for SDK 20
+    // Add the support lib that is appropriate for SDK 18
     compile "com.android.support:support-v13:20.+"
 
 
diff --git a/prebuilts/gradle/ElizaChat/Application/src/main/AndroidManifest.xml b/prebuilts/gradle/ElizaChat/Application/src/main/AndroidManifest.xml
index e653fa9..98d4d73 100644
--- a/prebuilts/gradle/ElizaChat/Application/src/main/AndroidManifest.xml
+++ b/prebuilts/gradle/ElizaChat/Application/src/main/AndroidManifest.xml
@@ -15,10 +15,10 @@
 -->
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.example.android.elizachat" >
+    package="com.example.android.wearable.elizachat" >
 
-    <uses-sdk android:minSdkVersion="19"
-              android:targetSdkVersion="19" />
+    <uses-sdk android:minSdkVersion="18"
+              android:targetSdkVersion="20" />
 
     <application
         android:allowBackup="true"
@@ -36,8 +36,8 @@
         <service
             android:name=".ResponderService">
             <intent-filter>
-                <action android:name="com.example.android.elizachat.REPLY" />
-                <action android:name="com.example.android.elizachat.CONVERSATION" />
+                <action android:name="com.example.android.wearable.elizachat.REPLY" />
+                <action android:name="com.example.android.wearable.elizachat.CONVERSATION" />
             </intent-filter>
         </service>
     </application>
diff --git a/prebuilts/gradle/ElizaChat/Application/src/main/java/com/example/android/common/activities/SampleActivityBase.java b/prebuilts/gradle/ElizaChat/Application/src/main/java/com/example/android/common/activities/SampleActivityBase.java
deleted file mode 100644
index 3228927..0000000
--- a/prebuilts/gradle/ElizaChat/Application/src/main/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/prebuilts/gradle/ElizaChat/Application/src/main/java/com/example/android/common/logger/Log.java b/prebuilts/gradle/ElizaChat/Application/src/main/java/com/example/android/common/logger/Log.java
deleted file mode 100644
index 17503c5..0000000
--- a/prebuilts/gradle/ElizaChat/Application/src/main/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/prebuilts/gradle/ElizaChat/Application/src/main/java/com/example/android/common/logger/LogFragment.java b/prebuilts/gradle/ElizaChat/Application/src/main/java/com/example/android/common/logger/LogFragment.java
deleted file mode 100644
index b302acd..0000000
--- a/prebuilts/gradle/ElizaChat/Application/src/main/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/prebuilts/gradle/ElizaChat/Application/src/main/java/com/example/android/common/logger/LogNode.java b/prebuilts/gradle/ElizaChat/Application/src/main/java/com/example/android/common/logger/LogNode.java
deleted file mode 100644
index bc37cab..0000000
--- a/prebuilts/gradle/ElizaChat/Application/src/main/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/prebuilts/gradle/ElizaChat/Application/src/main/java/com/example/android/common/logger/LogView.java b/prebuilts/gradle/ElizaChat/Application/src/main/java/com/example/android/common/logger/LogView.java
deleted file mode 100644
index c01542b..0000000
--- a/prebuilts/gradle/ElizaChat/Application/src/main/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/prebuilts/gradle/ElizaChat/Application/src/main/java/com/example/android/common/logger/LogWrapper.java b/prebuilts/gradle/ElizaChat/Application/src/main/java/com/example/android/common/logger/LogWrapper.java
deleted file mode 100644
index 16a9e7b..0000000
--- a/prebuilts/gradle/ElizaChat/Application/src/main/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/prebuilts/gradle/ElizaChat/Application/src/main/java/com/example/android/common/logger/MessageOnlyLogFilter.java b/prebuilts/gradle/ElizaChat/Application/src/main/java/com/example/android/common/logger/MessageOnlyLogFilter.java
deleted file mode 100644
index 19967dc..0000000
--- a/prebuilts/gradle/ElizaChat/Application/src/main/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/prebuilts/gradle/ElizaChat/Application/src/main/java/com/example/android/elizachat/ElizaResponder.java b/prebuilts/gradle/ElizaChat/Application/src/main/java/com/example/android/wearable/elizachat/ElizaResponder.java
similarity index 99%
rename from prebuilts/gradle/ElizaChat/Application/src/main/java/com/example/android/elizachat/ElizaResponder.java
rename to prebuilts/gradle/ElizaChat/Application/src/main/java/com/example/android/wearable/elizachat/ElizaResponder.java
index e87f6de..e6c0542 100644
--- a/prebuilts/gradle/ElizaChat/Application/src/main/java/com/example/android/elizachat/ElizaResponder.java
+++ b/prebuilts/gradle/ElizaChat/Application/src/main/java/com/example/android/wearable/elizachat/ElizaResponder.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.elizachat;
+package com.example.android.wearable.elizachat;
 
 import android.text.TextUtils;
 
diff --git a/prebuilts/gradle/ElizaChat/Application/src/main/java/com/example/android/elizachat/MainActivity.java b/prebuilts/gradle/ElizaChat/Application/src/main/java/com/example/android/wearable/elizachat/MainActivity.java
similarity index 95%
rename from prebuilts/gradle/ElizaChat/Application/src/main/java/com/example/android/elizachat/MainActivity.java
rename to prebuilts/gradle/ElizaChat/Application/src/main/java/com/example/android/wearable/elizachat/MainActivity.java
index 421dcb8..982e3de 100644
--- a/prebuilts/gradle/ElizaChat/Application/src/main/java/com/example/android/elizachat/MainActivity.java
+++ b/prebuilts/gradle/ElizaChat/Application/src/main/java/com/example/android/wearable/elizachat/MainActivity.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.elizachat;
+package com.example.android.wearable.elizachat;
 
 import android.app.Activity;
 import android.content.BroadcastReceiver;
@@ -35,10 +35,10 @@
 
     public static final String EXTRA_MESSAGE = "message";
 
-    public static final String ACTION_NOTIFY = "com.example.android.elizachat.NOTIFY";
+    public static final String ACTION_NOTIFY = "com.example.android.wearable.elizachat.NOTIFY";
 
     public static final String ACTION_GET_CONVERSATION
-            = "com.example.android.elizachat.CONVERSATION";
+            = "com.example.android.wearable.elizachat.CONVERSATION";
 
     private BroadcastReceiver mReceiver;
 
diff --git a/prebuilts/gradle/ElizaChat/Application/src/main/java/com/example/android/elizachat/ResponderService.java b/prebuilts/gradle/ElizaChat/Application/src/main/java/com/example/android/wearable/elizachat/ResponderService.java
similarity index 97%
rename from prebuilts/gradle/ElizaChat/Application/src/main/java/com/example/android/elizachat/ResponderService.java
rename to prebuilts/gradle/ElizaChat/Application/src/main/java/com/example/android/wearable/elizachat/ResponderService.java
index 6d6cd9a..3bef19c 100644
--- a/prebuilts/gradle/ElizaChat/Application/src/main/java/com/example/android/elizachat/ResponderService.java
+++ b/prebuilts/gradle/ElizaChat/Application/src/main/java/com/example/android/wearable/elizachat/ResponderService.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.elizachat;
+package com.example.android.wearable.elizachat;
 
 import android.app.Notification;
 import android.app.PendingIntent;
@@ -36,9 +36,9 @@
  */
 public class ResponderService extends Service {
 
-    public static final String ACTION_INCOMING = "com.example.android.elizachat.INCOMING";
+    public static final String ACTION_INCOMING = "com.example.android.wearable.elizachat.INCOMING";
 
-    public static final String ACTION_RESPONSE = "com.example.android.elizachat.REPLY";
+    public static final String ACTION_RESPONSE = "com.example.android.wearable.elizachat.REPLY";
 
     public static final String EXTRA_REPLY = "reply";
 
diff --git a/prebuilts/gradle/ElizaChat/Shared/src/main/AndroidManifest.xml b/prebuilts/gradle/ElizaChat/Shared/src/main/AndroidManifest.xml
deleted file mode 100644
index 9c02d59..0000000
--- a/prebuilts/gradle/ElizaChat/Shared/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- 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.
--->
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.example.android.elizachat.common">
-
-    <application android:allowBackup="true"
-        android:label="@string/app_name">
-    </application>
-
-</manifest>
diff --git a/prebuilts/gradle/ElizaChat/Shared/src/main/res/values/strings.xml b/prebuilts/gradle/ElizaChat/Shared/src/main/res/values/strings.xml
deleted file mode 100644
index 0f2bb90..0000000
--- a/prebuilts/gradle/ElizaChat/Shared/src/main/res/values/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2014 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.
--->
-<resources>
-    <string name="app_name">Shared</string>
-</resources>
diff --git a/prebuilts/gradle/ElizaChat/screenshots/companion_eliza_chat.png b/prebuilts/gradle/ElizaChat/screenshots/companion_eliza_chat.png
new file mode 100644
index 0000000..b7fd266
--- /dev/null
+++ b/prebuilts/gradle/ElizaChat/screenshots/companion_eliza_chat.png
Binary files differ
diff --git a/prebuilts/gradle/ElizaChat/screenshots/companion_eliza_chat_response.png b/prebuilts/gradle/ElizaChat/screenshots/companion_eliza_chat_response.png
new file mode 100644
index 0000000..cea063c
--- /dev/null
+++ b/prebuilts/gradle/ElizaChat/screenshots/companion_eliza_chat_response.png
Binary files differ
diff --git a/prebuilts/gradle/ElizaChat/screenshots/wearable_eliza_notification.png b/prebuilts/gradle/ElizaChat/screenshots/wearable_eliza_notification.png
new file mode 100644
index 0000000..c5ced49
--- /dev/null
+++ b/prebuilts/gradle/ElizaChat/screenshots/wearable_eliza_notification.png
Binary files differ
diff --git a/prebuilts/gradle/ElizaChat/screenshots/wearable_voice_reply.png b/prebuilts/gradle/ElizaChat/screenshots/wearable_voice_reply.png
new file mode 100644
index 0000000..032e037
--- /dev/null
+++ b/prebuilts/gradle/ElizaChat/screenshots/wearable_voice_reply.png
Binary files differ
diff --git a/prebuilts/gradle/EmbeddedApp/Application/build.gradle b/prebuilts/gradle/EmbeddedApp/Application/build.gradle
index 41fc623..0c6e001 100644
--- a/prebuilts/gradle/EmbeddedApp/Application/build.gradle
+++ b/prebuilts/gradle/EmbeddedApp/Application/build.gradle
@@ -16,7 +16,6 @@
 
     compile 'com.google.android.gms:play-services:5.0.+'
     compile 'com.android.support:support-v13:20.0.+'
-    compile project(':Shared')
     wearApp project(':Wearable')
 
 }
diff --git a/prebuilts/gradle/EmbeddedApp/Application/src/main/AndroidManifest.xml b/prebuilts/gradle/EmbeddedApp/Application/src/main/AndroidManifest.xml
index 2d266f2..eb2e01c 100644
--- a/prebuilts/gradle/EmbeddedApp/Application/src/main/AndroidManifest.xml
+++ b/prebuilts/gradle/EmbeddedApp/Application/src/main/AndroidManifest.xml
@@ -15,8 +15,8 @@
 -->
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.example.android.embeddedapp" >
-    <uses-sdk android:minSdkVersion="18" android:targetSdkVersion="19" />
+    package="com.example.android.wearable.embeddedapp" >
+    <uses-sdk android:minSdkVersion="18" android:targetSdkVersion="20" />
     <application
         android:allowBackup="true"
         android:icon="@drawable/ic_launcher"
diff --git a/prebuilts/gradle/EmbeddedApp/Application/src/main/java/com/example/android/common/activities/SampleActivityBase.java b/prebuilts/gradle/EmbeddedApp/Application/src/main/java/com/example/android/common/activities/SampleActivityBase.java
deleted file mode 100644
index 3228927..0000000
--- a/prebuilts/gradle/EmbeddedApp/Application/src/main/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/prebuilts/gradle/EmbeddedApp/Application/src/main/java/com/example/android/common/logger/Log.java b/prebuilts/gradle/EmbeddedApp/Application/src/main/java/com/example/android/common/logger/Log.java
deleted file mode 100644
index 17503c5..0000000
--- a/prebuilts/gradle/EmbeddedApp/Application/src/main/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/prebuilts/gradle/EmbeddedApp/Application/src/main/java/com/example/android/common/logger/LogFragment.java b/prebuilts/gradle/EmbeddedApp/Application/src/main/java/com/example/android/common/logger/LogFragment.java
deleted file mode 100644
index b302acd..0000000
--- a/prebuilts/gradle/EmbeddedApp/Application/src/main/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/prebuilts/gradle/EmbeddedApp/Application/src/main/java/com/example/android/common/logger/LogNode.java b/prebuilts/gradle/EmbeddedApp/Application/src/main/java/com/example/android/common/logger/LogNode.java
deleted file mode 100644
index bc37cab..0000000
--- a/prebuilts/gradle/EmbeddedApp/Application/src/main/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/prebuilts/gradle/EmbeddedApp/Application/src/main/java/com/example/android/common/logger/LogView.java b/prebuilts/gradle/EmbeddedApp/Application/src/main/java/com/example/android/common/logger/LogView.java
deleted file mode 100644
index c01542b..0000000
--- a/prebuilts/gradle/EmbeddedApp/Application/src/main/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/prebuilts/gradle/EmbeddedApp/Application/src/main/java/com/example/android/common/logger/LogWrapper.java b/prebuilts/gradle/EmbeddedApp/Application/src/main/java/com/example/android/common/logger/LogWrapper.java
deleted file mode 100644
index 16a9e7b..0000000
--- a/prebuilts/gradle/EmbeddedApp/Application/src/main/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/prebuilts/gradle/EmbeddedApp/Application/src/main/java/com/example/android/common/logger/MessageOnlyLogFilter.java b/prebuilts/gradle/EmbeddedApp/Application/src/main/java/com/example/android/common/logger/MessageOnlyLogFilter.java
deleted file mode 100644
index 19967dc..0000000
--- a/prebuilts/gradle/EmbeddedApp/Application/src/main/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/prebuilts/gradle/EmbeddedApp/Application/src/main/java/com/example/android/embeddedapp/PhoneActivity.java b/prebuilts/gradle/EmbeddedApp/Application/src/main/java/com/example/android/wearable/embeddedapp/PhoneActivity.java
similarity index 94%
rename from prebuilts/gradle/EmbeddedApp/Application/src/main/java/com/example/android/embeddedapp/PhoneActivity.java
rename to prebuilts/gradle/EmbeddedApp/Application/src/main/java/com/example/android/wearable/embeddedapp/PhoneActivity.java
index de95938..5a2f5ca 100644
--- a/prebuilts/gradle/EmbeddedApp/Application/src/main/java/com/example/android/embeddedapp/PhoneActivity.java
+++ b/prebuilts/gradle/EmbeddedApp/Application/src/main/java/com/example/android/wearable/embeddedapp/PhoneActivity.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.embeddedapp;
+package com.example.android.wearable.embeddedapp;
 
 import android.app.Activity;
 import android.os.Bundle;
diff --git a/prebuilts/gradle/EmbeddedApp/README-wear.txt b/prebuilts/gradle/EmbeddedApp/README-wear.txt
deleted file mode 100644
index 17523d7..0000000
--- a/prebuilts/gradle/EmbeddedApp/README-wear.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-<#--
-        Copyright 2014 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.
--->
-
-Steps to use Wear template on top of an existing sample:
-- In template-params.xml.ftl:
-    - Add the following template:
-        <template src="Wear"/>
-
-- Refresh your project (./gradlew refresh)
-- Add Wearable-specific code to Wearable directory
-- Add code to be shared among the main application and the wearable to Shared
-  directory
-
-Note that you still need the main application sample code. This is usually
-achieved by adding another template, like "base" for example.
-
-
diff --git a/prebuilts/gradle/EmbeddedApp/Shared/build.gradle b/prebuilts/gradle/EmbeddedApp/Shared/build.gradle
deleted file mode 100644
index e6ddb59..0000000
--- a/prebuilts/gradle/EmbeddedApp/Shared/build.gradle
+++ /dev/null
@@ -1,35 +0,0 @@
-buildscript {
-    repositories {
-        mavenCentral()
-    }
-
-    dependencies {
-        classpath 'com.android.tools.build:gradle:0.12.+'
-    }
-}
-
-apply plugin: 'android-library'
-
-// The sample build uses multiple directories to
-// keep boilerplate and common code separate from
-// the main sample code.
-List<String> dirs = [
-    'main',     // main sample code; look here for the interesting stuff.
-    'common',   // components that are reused by multiple samples
-    'template'] // boilerplate code that is generated by the sample template process
-
-android {
-    compileSdkVersion 20
-
-    buildToolsVersion '20'
-
-    sourceSets {
-        main {
-            dirs.each { dir ->
-                java.srcDirs "src/${dir}/java"
-                res.srcDirs "src/${dir}/res"
-            }
-        }
-
-    }
-}
diff --git a/prebuilts/gradle/EmbeddedApp/Shared/src/main/AndroidManifest.xml b/prebuilts/gradle/EmbeddedApp/Shared/src/main/AndroidManifest.xml
deleted file mode 100644
index f026bc5..0000000
--- a/prebuilts/gradle/EmbeddedApp/Shared/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- 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.
--->
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.example.android.embeddedapp.common">
-
-    <application android:allowBackup="true"
-        android:label="@string/app_name">
-    </application>
-
-</manifest>
diff --git a/prebuilts/gradle/EmbeddedApp/Shared/src/main/res/values/strings.xml b/prebuilts/gradle/EmbeddedApp/Shared/src/main/res/values/strings.xml
deleted file mode 100644
index 0f2bb90..0000000
--- a/prebuilts/gradle/EmbeddedApp/Shared/src/main/res/values/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2014 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.
--->
-<resources>
-    <string name="app_name">Shared</string>
-</resources>
diff --git a/prebuilts/gradle/EmbeddedApp/Wearable/build.gradle b/prebuilts/gradle/EmbeddedApp/Wearable/build.gradle
index b8151b1..864b2fd 100644
--- a/prebuilts/gradle/EmbeddedApp/Wearable/build.gradle
+++ b/prebuilts/gradle/EmbeddedApp/Wearable/build.gradle
@@ -16,7 +16,6 @@
     compile 'com.google.android.gms:play-services-wearable:5.0.+'
     compile 'com.android.support:support-v13:20.0.+'
     compile 'com.google.android.support:wearable:1.0.+'
-    compile project(':Shared')
 }
 
 // The sample build uses multiple directories to
diff --git a/prebuilts/gradle/EmbeddedApp/Wearable/src/main/AndroidManifest.xml b/prebuilts/gradle/EmbeddedApp/Wearable/src/main/AndroidManifest.xml
index fd07d3c..2c1d52c 100644
--- a/prebuilts/gradle/EmbeddedApp/Wearable/src/main/AndroidManifest.xml
+++ b/prebuilts/gradle/EmbeddedApp/Wearable/src/main/AndroidManifest.xml
@@ -15,7 +15,7 @@
 -->
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.example.android.embeddedapp" >
+    package="com.example.android.wearable.embeddedapp" >
 
     <uses-sdk android:minSdkVersion="20"
               android:targetSdkVersion="20" />
diff --git a/prebuilts/gradle/EmbeddedApp/Wearable/src/main/java/com/example/android/embeddedapp/WearableActivity.java b/prebuilts/gradle/EmbeddedApp/Wearable/src/main/java/com/example/android/wearable/embeddedapp/WearableActivity.java
similarity index 94%
rename from prebuilts/gradle/EmbeddedApp/Wearable/src/main/java/com/example/android/embeddedapp/WearableActivity.java
rename to prebuilts/gradle/EmbeddedApp/Wearable/src/main/java/com/example/android/wearable/embeddedapp/WearableActivity.java
index 1ae0c1f..3703f34 100644
--- a/prebuilts/gradle/EmbeddedApp/Wearable/src/main/java/com/example/android/embeddedapp/WearableActivity.java
+++ b/prebuilts/gradle/EmbeddedApp/Wearable/src/main/java/com/example/android/wearable/embeddedapp/WearableActivity.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.embeddedapp;
+package com.example.android.wearable.embeddedapp;
 
 import android.app.Activity;
 import android.os.Bundle;
diff --git a/prebuilts/gradle/EmbeddedApp/screenshots/embedded_wearable_app.png b/prebuilts/gradle/EmbeddedApp/screenshots/embedded_wearable_app.png
new file mode 100644
index 0000000..414afe5
--- /dev/null
+++ b/prebuilts/gradle/EmbeddedApp/screenshots/embedded_wearable_app.png
Binary files differ
diff --git a/prebuilts/gradle/EmbeddedApp/screenshots/phone_app.png b/prebuilts/gradle/EmbeddedApp/screenshots/phone_app.png
new file mode 100644
index 0000000..46c3d89
--- /dev/null
+++ b/prebuilts/gradle/EmbeddedApp/screenshots/phone_app.png
Binary files differ
diff --git a/prebuilts/gradle/EmbeddedApp/settings.gradle b/prebuilts/gradle/EmbeddedApp/settings.gradle
index 8522c57..19d00ac 100644
--- a/prebuilts/gradle/EmbeddedApp/settings.gradle
+++ b/prebuilts/gradle/EmbeddedApp/settings.gradle
@@ -1 +1 @@
-include ':Application', ':Wearable', ':Shared'
+include ':Application', ':Wearable'
diff --git a/prebuilts/gradle/FindMyPhone/Application/build.gradle b/prebuilts/gradle/FindMyPhone/Application/build.gradle
index 41fc623..0c6e001 100644
--- a/prebuilts/gradle/FindMyPhone/Application/build.gradle
+++ b/prebuilts/gradle/FindMyPhone/Application/build.gradle
@@ -16,7 +16,6 @@
 
     compile 'com.google.android.gms:play-services:5.0.+'
     compile 'com.android.support:support-v13:20.0.+'
-    compile project(':Shared')
     wearApp project(':Wearable')
 
 }
diff --git a/prebuilts/gradle/FindMyPhone/Application/src/main/AndroidManifest.xml b/prebuilts/gradle/FindMyPhone/Application/src/main/AndroidManifest.xml
index 5ca8c8a..0427025 100644
--- a/prebuilts/gradle/FindMyPhone/Application/src/main/AndroidManifest.xml
+++ b/prebuilts/gradle/FindMyPhone/Application/src/main/AndroidManifest.xml
@@ -15,10 +15,10 @@
 -->
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-          package="com.example.android.findphone">
+          package="com.example.android.wearable.findphone">
 
-    <uses-sdk android:minSdkVersion="19"
-              android:targetSdkVersion="19" />
+    <uses-sdk android:minSdkVersion="18"
+              android:targetSdkVersion="20" />
 
     <uses-permission android:name="android.permission.VIBRATE" />
     <application
@@ -32,7 +32,7 @@
                 android:value="@integer/google_play_services_version" />
 
         <service
-            android:name="com.example.android.findphone.SoundAlarmListenerService" >
+            android:name="com.example.android.wearable.findphone.SoundAlarmListenerService" >
             <intent-filter>
                 <action android:name="com.google.android.gms.wearable.BIND_LISTENER" />
             </intent-filter>
diff --git a/prebuilts/gradle/FindMyPhone/Application/src/main/java/com/example/android/common/activities/SampleActivityBase.java b/prebuilts/gradle/FindMyPhone/Application/src/main/java/com/example/android/common/activities/SampleActivityBase.java
deleted file mode 100644
index 3228927..0000000
--- a/prebuilts/gradle/FindMyPhone/Application/src/main/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/prebuilts/gradle/FindMyPhone/Application/src/main/java/com/example/android/common/logger/Log.java b/prebuilts/gradle/FindMyPhone/Application/src/main/java/com/example/android/common/logger/Log.java
deleted file mode 100644
index 17503c5..0000000
--- a/prebuilts/gradle/FindMyPhone/Application/src/main/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/prebuilts/gradle/FindMyPhone/Application/src/main/java/com/example/android/common/logger/LogFragment.java b/prebuilts/gradle/FindMyPhone/Application/src/main/java/com/example/android/common/logger/LogFragment.java
deleted file mode 100644
index b302acd..0000000
--- a/prebuilts/gradle/FindMyPhone/Application/src/main/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/prebuilts/gradle/FindMyPhone/Application/src/main/java/com/example/android/common/logger/LogNode.java b/prebuilts/gradle/FindMyPhone/Application/src/main/java/com/example/android/common/logger/LogNode.java
deleted file mode 100644
index bc37cab..0000000
--- a/prebuilts/gradle/FindMyPhone/Application/src/main/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/prebuilts/gradle/FindMyPhone/Application/src/main/java/com/example/android/common/logger/LogView.java b/prebuilts/gradle/FindMyPhone/Application/src/main/java/com/example/android/common/logger/LogView.java
deleted file mode 100644
index c01542b..0000000
--- a/prebuilts/gradle/FindMyPhone/Application/src/main/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/prebuilts/gradle/FindMyPhone/Application/src/main/java/com/example/android/common/logger/LogWrapper.java b/prebuilts/gradle/FindMyPhone/Application/src/main/java/com/example/android/common/logger/LogWrapper.java
deleted file mode 100644
index 16a9e7b..0000000
--- a/prebuilts/gradle/FindMyPhone/Application/src/main/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/prebuilts/gradle/FindMyPhone/Application/src/main/java/com/example/android/common/logger/MessageOnlyLogFilter.java b/prebuilts/gradle/FindMyPhone/Application/src/main/java/com/example/android/common/logger/MessageOnlyLogFilter.java
deleted file mode 100644
index 19967dc..0000000
--- a/prebuilts/gradle/FindMyPhone/Application/src/main/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/prebuilts/gradle/FindMyPhone/Application/src/main/java/com/example/android/findphone/SoundAlarmListenerService.java b/prebuilts/gradle/FindMyPhone/Application/src/main/java/com/example/android/wearable/findphone/SoundAlarmListenerService.java
similarity index 98%
rename from prebuilts/gradle/FindMyPhone/Application/src/main/java/com/example/android/findphone/SoundAlarmListenerService.java
rename to prebuilts/gradle/FindMyPhone/Application/src/main/java/com/example/android/wearable/findphone/SoundAlarmListenerService.java
index 106a47a..c89db9d 100644
--- a/prebuilts/gradle/FindMyPhone/Application/src/main/java/com/example/android/findphone/SoundAlarmListenerService.java
+++ b/prebuilts/gradle/FindMyPhone/Application/src/main/java/com/example/android/wearable/findphone/SoundAlarmListenerService.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.findphone;
+package com.example.android.wearable.findphone;
 
 import android.media.AudioManager;
 import android.media.MediaPlayer;
diff --git a/prebuilts/gradle/FindMyPhone/README-wear.txt b/prebuilts/gradle/FindMyPhone/README-wear.txt
deleted file mode 100644
index 17523d7..0000000
--- a/prebuilts/gradle/FindMyPhone/README-wear.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-<#--
-        Copyright 2014 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.
--->
-
-Steps to use Wear template on top of an existing sample:
-- In template-params.xml.ftl:
-    - Add the following template:
-        <template src="Wear"/>
-
-- Refresh your project (./gradlew refresh)
-- Add Wearable-specific code to Wearable directory
-- Add code to be shared among the main application and the wearable to Shared
-  directory
-
-Note that you still need the main application sample code. This is usually
-achieved by adding another template, like "base" for example.
-
-
diff --git a/prebuilts/gradle/FindMyPhone/Shared/build.gradle b/prebuilts/gradle/FindMyPhone/Shared/build.gradle
deleted file mode 100644
index e6ddb59..0000000
--- a/prebuilts/gradle/FindMyPhone/Shared/build.gradle
+++ /dev/null
@@ -1,35 +0,0 @@
-buildscript {
-    repositories {
-        mavenCentral()
-    }
-
-    dependencies {
-        classpath 'com.android.tools.build:gradle:0.12.+'
-    }
-}
-
-apply plugin: 'android-library'
-
-// The sample build uses multiple directories to
-// keep boilerplate and common code separate from
-// the main sample code.
-List<String> dirs = [
-    'main',     // main sample code; look here for the interesting stuff.
-    'common',   // components that are reused by multiple samples
-    'template'] // boilerplate code that is generated by the sample template process
-
-android {
-    compileSdkVersion 20
-
-    buildToolsVersion '20'
-
-    sourceSets {
-        main {
-            dirs.each { dir ->
-                java.srcDirs "src/${dir}/java"
-                res.srcDirs "src/${dir}/res"
-            }
-        }
-
-    }
-}
diff --git a/prebuilts/gradle/FindMyPhone/Shared/src/main/AndroidManifest.xml b/prebuilts/gradle/FindMyPhone/Shared/src/main/AndroidManifest.xml
deleted file mode 100644
index 80efe2e..0000000
--- a/prebuilts/gradle/FindMyPhone/Shared/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- 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.
--->
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.example.android.findphone.common">
-
-    <application android:allowBackup="true"
-        android:label="@string/app_name">
-    </application>
-
-</manifest>
diff --git a/prebuilts/gradle/FindMyPhone/Shared/src/main/res/values/strings.xml b/prebuilts/gradle/FindMyPhone/Shared/src/main/res/values/strings.xml
deleted file mode 100644
index 0f2bb90..0000000
--- a/prebuilts/gradle/FindMyPhone/Shared/src/main/res/values/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2014 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.
--->
-<resources>
-    <string name="app_name">Shared</string>
-</resources>
diff --git a/prebuilts/gradle/FindMyPhone/Wearable/build.gradle b/prebuilts/gradle/FindMyPhone/Wearable/build.gradle
index b8151b1..864b2fd 100644
--- a/prebuilts/gradle/FindMyPhone/Wearable/build.gradle
+++ b/prebuilts/gradle/FindMyPhone/Wearable/build.gradle
@@ -16,7 +16,6 @@
     compile 'com.google.android.gms:play-services-wearable:5.0.+'
     compile 'com.android.support:support-v13:20.0.+'
     compile 'com.google.android.support:wearable:1.0.+'
-    compile project(':Shared')
 }
 
 // The sample build uses multiple directories to
diff --git a/prebuilts/gradle/FindMyPhone/Wearable/src/main/AndroidManifest.xml b/prebuilts/gradle/FindMyPhone/Wearable/src/main/AndroidManifest.xml
index b81dd33..fd6d274 100644
--- a/prebuilts/gradle/FindMyPhone/Wearable/src/main/AndroidManifest.xml
+++ b/prebuilts/gradle/FindMyPhone/Wearable/src/main/AndroidManifest.xml
@@ -15,7 +15,7 @@
 -->
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.example.android.findphone" >
+    package="com.example.android.wearable.findphone" >
 
     <uses-sdk android:minSdkVersion="20"
               android:targetSdkVersion="20" />
@@ -39,7 +39,7 @@
             </intent-filter>
         </service>
 
-        <service android:name="com.example.android.findphone.FindPhoneService"/>
+        <service android:name="com.example.android.wearable.findphone.FindPhoneService"/>
 
         <activity
                 android:name=".FindPhoneActivity"
diff --git a/prebuilts/gradle/FindMyPhone/Wearable/src/main/java/com/example/android/findphone/DisconnectListenerService.java b/prebuilts/gradle/FindMyPhone/Wearable/src/main/java/com/example/android/wearable/findphone/DisconnectListenerService.java
similarity index 97%
rename from prebuilts/gradle/FindMyPhone/Wearable/src/main/java/com/example/android/findphone/DisconnectListenerService.java
rename to prebuilts/gradle/FindMyPhone/Wearable/src/main/java/com/example/android/wearable/findphone/DisconnectListenerService.java
index 749a38d..42237de 100644
--- a/prebuilts/gradle/FindMyPhone/Wearable/src/main/java/com/example/android/findphone/DisconnectListenerService.java
+++ b/prebuilts/gradle/FindMyPhone/Wearable/src/main/java/com/example/android/wearable/findphone/DisconnectListenerService.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.findphone;
+package com.example.android.wearable.findphone;
 
 import android.app.Notification;
 import android.app.NotificationManager;
diff --git a/prebuilts/gradle/FindMyPhone/Wearable/src/main/java/com/example/android/findphone/FindPhoneActivity.java b/prebuilts/gradle/FindMyPhone/Wearable/src/main/java/com/example/android/wearable/findphone/FindPhoneActivity.java
similarity index 98%
rename from prebuilts/gradle/FindMyPhone/Wearable/src/main/java/com/example/android/findphone/FindPhoneActivity.java
rename to prebuilts/gradle/FindMyPhone/Wearable/src/main/java/com/example/android/wearable/findphone/FindPhoneActivity.java
index 8251bab..d4eb18b 100644
--- a/prebuilts/gradle/FindMyPhone/Wearable/src/main/java/com/example/android/findphone/FindPhoneActivity.java
+++ b/prebuilts/gradle/FindMyPhone/Wearable/src/main/java/com/example/android/wearable/findphone/FindPhoneActivity.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.findphone;
+package com.example.android.wearable.findphone;
 
 import android.app.Activity;
 import android.app.Notification;
diff --git a/prebuilts/gradle/FindMyPhone/Wearable/src/main/java/com/example/android/findphone/FindPhoneService.java b/prebuilts/gradle/FindMyPhone/Wearable/src/main/java/com/example/android/wearable/findphone/FindPhoneService.java
similarity index 98%
rename from prebuilts/gradle/FindMyPhone/Wearable/src/main/java/com/example/android/findphone/FindPhoneService.java
rename to prebuilts/gradle/FindMyPhone/Wearable/src/main/java/com/example/android/wearable/findphone/FindPhoneService.java
index cb9f961..e5fa6c0 100644
--- a/prebuilts/gradle/FindMyPhone/Wearable/src/main/java/com/example/android/findphone/FindPhoneService.java
+++ b/prebuilts/gradle/FindMyPhone/Wearable/src/main/java/com/example/android/wearable/findphone/FindPhoneService.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.findphone;
+package com.example.android.wearable.findphone;
 
 import android.app.IntentService;
 import android.content.Intent;
diff --git a/prebuilts/gradle/FindMyPhone/screenshots/find_my_phone_activity.png b/prebuilts/gradle/FindMyPhone/screenshots/find_my_phone_activity.png
new file mode 100644
index 0000000..8cff992
--- /dev/null
+++ b/prebuilts/gradle/FindMyPhone/screenshots/find_my_phone_activity.png
Binary files differ
diff --git a/prebuilts/gradle/FindMyPhone/screenshots/find_my_phone_notification.png b/prebuilts/gradle/FindMyPhone/screenshots/find_my_phone_notification.png
new file mode 100644
index 0000000..a8ed867
--- /dev/null
+++ b/prebuilts/gradle/FindMyPhone/screenshots/find_my_phone_notification.png
Binary files differ
diff --git a/prebuilts/gradle/FindMyPhone/settings.gradle b/prebuilts/gradle/FindMyPhone/settings.gradle
index 8522c57..19d00ac 100644
--- a/prebuilts/gradle/FindMyPhone/settings.gradle
+++ b/prebuilts/gradle/FindMyPhone/settings.gradle
@@ -1 +1 @@
-include ':Application', ':Wearable', ':Shared'
+include ':Application', ':Wearable'
diff --git a/prebuilts/gradle/Flashlight/Application/build.gradle b/prebuilts/gradle/Flashlight/Application/build.gradle
index 41fc623..0c6e001 100644
--- a/prebuilts/gradle/Flashlight/Application/build.gradle
+++ b/prebuilts/gradle/Flashlight/Application/build.gradle
@@ -16,7 +16,6 @@
 
     compile 'com.google.android.gms:play-services:5.0.+'
     compile 'com.android.support:support-v13:20.0.+'
-    compile project(':Shared')
     wearApp project(':Wearable')
 
 }
diff --git a/prebuilts/gradle/Flashlight/Application/src/main/AndroidManifest.xml b/prebuilts/gradle/Flashlight/Application/src/main/AndroidManifest.xml
index 2710313..73d1d52 100644
--- a/prebuilts/gradle/Flashlight/Application/src/main/AndroidManifest.xml
+++ b/prebuilts/gradle/Flashlight/Application/src/main/AndroidManifest.xml
@@ -16,10 +16,10 @@
 -->
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.example.android.flashlight">
+    package="com.example.android.wearable.flashlight">
 
-    <uses-sdk android:minSdkVersion="19"
-              android:targetSdkVersion="19" />
+    <uses-sdk android:minSdkVersion="18"
+              android:targetSdkVersion="20" />
 
     <application android:allowBackup="true"
         android:label="@string/app_name">
diff --git a/prebuilts/gradle/Flashlight/README-wear.txt b/prebuilts/gradle/Flashlight/README-wear.txt
deleted file mode 100644
index 17523d7..0000000
--- a/prebuilts/gradle/Flashlight/README-wear.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-<#--
-        Copyright 2014 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.
--->
-
-Steps to use Wear template on top of an existing sample:
-- In template-params.xml.ftl:
-    - Add the following template:
-        <template src="Wear"/>
-
-- Refresh your project (./gradlew refresh)
-- Add Wearable-specific code to Wearable directory
-- Add code to be shared among the main application and the wearable to Shared
-  directory
-
-Note that you still need the main application sample code. This is usually
-achieved by adding another template, like "base" for example.
-
-
diff --git a/prebuilts/gradle/Flashlight/Shared/build.gradle b/prebuilts/gradle/Flashlight/Shared/build.gradle
deleted file mode 100644
index e6ddb59..0000000
--- a/prebuilts/gradle/Flashlight/Shared/build.gradle
+++ /dev/null
@@ -1,35 +0,0 @@
-buildscript {
-    repositories {
-        mavenCentral()
-    }
-
-    dependencies {
-        classpath 'com.android.tools.build:gradle:0.12.+'
-    }
-}
-
-apply plugin: 'android-library'
-
-// The sample build uses multiple directories to
-// keep boilerplate and common code separate from
-// the main sample code.
-List<String> dirs = [
-    'main',     // main sample code; look here for the interesting stuff.
-    'common',   // components that are reused by multiple samples
-    'template'] // boilerplate code that is generated by the sample template process
-
-android {
-    compileSdkVersion 20
-
-    buildToolsVersion '20'
-
-    sourceSets {
-        main {
-            dirs.each { dir ->
-                java.srcDirs "src/${dir}/java"
-                res.srcDirs "src/${dir}/res"
-            }
-        }
-
-    }
-}
diff --git a/prebuilts/gradle/Flashlight/Shared/src/main/AndroidManifest.xml b/prebuilts/gradle/Flashlight/Shared/src/main/AndroidManifest.xml
deleted file mode 100644
index c7893c7..0000000
--- a/prebuilts/gradle/Flashlight/Shared/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- 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.
--->
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.example.android.flashlight.common">
-
-    <application android:allowBackup="true"
-        android:label="@string/app_name">
-    </application>
-
-</manifest>
diff --git a/prebuilts/gradle/Flashlight/Shared/src/main/res/values/strings.xml b/prebuilts/gradle/Flashlight/Shared/src/main/res/values/strings.xml
deleted file mode 100644
index 0f2bb90..0000000
--- a/prebuilts/gradle/Flashlight/Shared/src/main/res/values/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2014 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.
--->
-<resources>
-    <string name="app_name">Shared</string>
-</resources>
diff --git a/prebuilts/gradle/Flashlight/Wearable/build.gradle b/prebuilts/gradle/Flashlight/Wearable/build.gradle
index b8151b1..864b2fd 100644
--- a/prebuilts/gradle/Flashlight/Wearable/build.gradle
+++ b/prebuilts/gradle/Flashlight/Wearable/build.gradle
@@ -16,7 +16,6 @@
     compile 'com.google.android.gms:play-services-wearable:5.0.+'
     compile 'com.android.support:support-v13:20.0.+'
     compile 'com.google.android.support:wearable:1.0.+'
-    compile project(':Shared')
 }
 
 // The sample build uses multiple directories to
diff --git a/prebuilts/gradle/Flashlight/Wearable/src/main/AndroidManifest.xml b/prebuilts/gradle/Flashlight/Wearable/src/main/AndroidManifest.xml
index f22e1ab..1800e76 100644
--- a/prebuilts/gradle/Flashlight/Wearable/src/main/AndroidManifest.xml
+++ b/prebuilts/gradle/Flashlight/Wearable/src/main/AndroidManifest.xml
@@ -15,7 +15,7 @@
 -->
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-          package="com.example.android.flashlight" >
+          package="com.example.android.wearable.flashlight" >
 
     <uses-sdk android:minSdkVersion="20"
               android:targetSdkVersion="20" />
diff --git a/prebuilts/gradle/Flashlight/Wearable/src/main/java/com/example/android/flashlight/MainActivity.java b/prebuilts/gradle/Flashlight/Wearable/src/main/java/com/example/android/wearable/flashlight/MainActivity.java
similarity index 98%
rename from prebuilts/gradle/Flashlight/Wearable/src/main/java/com/example/android/flashlight/MainActivity.java
rename to prebuilts/gradle/Flashlight/Wearable/src/main/java/com/example/android/wearable/flashlight/MainActivity.java
index 9e4bae5..f87cae8 100644
--- a/prebuilts/gradle/Flashlight/Wearable/src/main/java/com/example/android/flashlight/MainActivity.java
+++ b/prebuilts/gradle/Flashlight/Wearable/src/main/java/com/example/android/wearable/flashlight/MainActivity.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.flashlight;
+package com.example.android.wearable.flashlight;
 
 import android.app.Activity;
 import android.app.Fragment;
diff --git a/prebuilts/gradle/Flashlight/Wearable/src/main/java/com/example/android/flashlight/PartyLightView.java b/prebuilts/gradle/Flashlight/Wearable/src/main/java/com/example/android/wearable/flashlight/PartyLightView.java
similarity index 98%
rename from prebuilts/gradle/Flashlight/Wearable/src/main/java/com/example/android/flashlight/PartyLightView.java
rename to prebuilts/gradle/Flashlight/Wearable/src/main/java/com/example/android/wearable/flashlight/PartyLightView.java
index 02247d6..33f061e 100644
--- a/prebuilts/gradle/Flashlight/Wearable/src/main/java/com/example/android/flashlight/PartyLightView.java
+++ b/prebuilts/gradle/Flashlight/Wearable/src/main/java/com/example/android/wearable/flashlight/PartyLightView.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.flashlight;
+package com.example.android.wearable.flashlight;
 
 import android.animation.ArgbEvaluator;
 import android.content.Context;
diff --git a/prebuilts/gradle/Flashlight/screenshots/flashlight.png b/prebuilts/gradle/Flashlight/screenshots/flashlight.png
new file mode 100644
index 0000000..02fca20
--- /dev/null
+++ b/prebuilts/gradle/Flashlight/screenshots/flashlight.png
Binary files differ
diff --git a/prebuilts/gradle/Flashlight/screenshots/party_mode.gif b/prebuilts/gradle/Flashlight/screenshots/party_mode.gif
new file mode 100644
index 0000000..8258b7d
--- /dev/null
+++ b/prebuilts/gradle/Flashlight/screenshots/party_mode.gif
Binary files differ
diff --git a/prebuilts/gradle/Flashlight/settings.gradle b/prebuilts/gradle/Flashlight/settings.gradle
index 8522c57..19d00ac 100644
--- a/prebuilts/gradle/Flashlight/settings.gradle
+++ b/prebuilts/gradle/Flashlight/settings.gradle
@@ -1 +1 @@
-include ':Application', ':Wearable', ':Shared'
+include ':Application', ':Wearable'
diff --git a/prebuilts/gradle/Geofencing/Application/build.gradle b/prebuilts/gradle/Geofencing/Application/build.gradle
index 41fc623..0c6e001 100644
--- a/prebuilts/gradle/Geofencing/Application/build.gradle
+++ b/prebuilts/gradle/Geofencing/Application/build.gradle
@@ -16,7 +16,6 @@
 
     compile 'com.google.android.gms:play-services:5.0.+'
     compile 'com.android.support:support-v13:20.0.+'
-    compile project(':Shared')
     wearApp project(':Wearable')
 
 }
diff --git a/prebuilts/gradle/Geofencing/Application/src/main/AndroidManifest.xml b/prebuilts/gradle/Geofencing/Application/src/main/AndroidManifest.xml
index 519aa14..b5b57f6 100644
--- a/prebuilts/gradle/Geofencing/Application/src/main/AndroidManifest.xml
+++ b/prebuilts/gradle/Geofencing/Application/src/main/AndroidManifest.xml
@@ -15,10 +15,10 @@
 -->
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-          package="com.example.android.geofencing">
+          package="com.example.android.wearable.geofencing">
 
-    <uses-sdk android:minSdkVersion="19"
-              android:targetSdkVersion="19" />
+    <uses-sdk android:minSdkVersion="18"
+              android:targetSdkVersion="20" />
 
     <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
 
diff --git a/prebuilts/gradle/Geofencing/Application/src/main/java/com/example/android/common/activities/SampleActivityBase.java b/prebuilts/gradle/Geofencing/Application/src/main/java/com/example/android/common/activities/SampleActivityBase.java
deleted file mode 100644
index 3228927..0000000
--- a/prebuilts/gradle/Geofencing/Application/src/main/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/prebuilts/gradle/Geofencing/Application/src/main/java/com/example/android/common/logger/Log.java b/prebuilts/gradle/Geofencing/Application/src/main/java/com/example/android/common/logger/Log.java
deleted file mode 100644
index 17503c5..0000000
--- a/prebuilts/gradle/Geofencing/Application/src/main/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/prebuilts/gradle/Geofencing/Application/src/main/java/com/example/android/common/logger/LogFragment.java b/prebuilts/gradle/Geofencing/Application/src/main/java/com/example/android/common/logger/LogFragment.java
deleted file mode 100644
index b302acd..0000000
--- a/prebuilts/gradle/Geofencing/Application/src/main/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/prebuilts/gradle/Geofencing/Application/src/main/java/com/example/android/common/logger/LogNode.java b/prebuilts/gradle/Geofencing/Application/src/main/java/com/example/android/common/logger/LogNode.java
deleted file mode 100644
index bc37cab..0000000
--- a/prebuilts/gradle/Geofencing/Application/src/main/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/prebuilts/gradle/Geofencing/Application/src/main/java/com/example/android/common/logger/LogView.java b/prebuilts/gradle/Geofencing/Application/src/main/java/com/example/android/common/logger/LogView.java
deleted file mode 100644
index c01542b..0000000
--- a/prebuilts/gradle/Geofencing/Application/src/main/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/prebuilts/gradle/Geofencing/Application/src/main/java/com/example/android/common/logger/LogWrapper.java b/prebuilts/gradle/Geofencing/Application/src/main/java/com/example/android/common/logger/LogWrapper.java
deleted file mode 100644
index 16a9e7b..0000000
--- a/prebuilts/gradle/Geofencing/Application/src/main/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/prebuilts/gradle/Geofencing/Application/src/main/java/com/example/android/common/logger/MessageOnlyLogFilter.java b/prebuilts/gradle/Geofencing/Application/src/main/java/com/example/android/common/logger/MessageOnlyLogFilter.java
deleted file mode 100644
index 19967dc..0000000
--- a/prebuilts/gradle/Geofencing/Application/src/main/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/prebuilts/gradle/Geofencing/Application/src/main/java/com/example/android/geofencing/Constants.java b/prebuilts/gradle/Geofencing/Application/src/main/java/com/example/android/wearable/geofencing/Constants.java
similarity index 98%
rename from prebuilts/gradle/Geofencing/Application/src/main/java/com/example/android/geofencing/Constants.java
rename to prebuilts/gradle/Geofencing/Application/src/main/java/com/example/android/wearable/geofencing/Constants.java
index b90aa3b..6da9151 100644
--- a/prebuilts/gradle/Geofencing/Application/src/main/java/com/example/android/geofencing/Constants.java
+++ b/prebuilts/gradle/Geofencing/Application/src/main/java/com/example/android/wearable/geofencing/Constants.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.geofencing;
+package com.example.android.wearable.geofencing;
 
 import android.net.Uri;
 
diff --git a/prebuilts/gradle/Geofencing/Application/src/main/java/com/example/android/geofencing/GeofenceTransitionsIntentService.java b/prebuilts/gradle/Geofencing/Application/src/main/java/com/example/android/wearable/geofencing/GeofenceTransitionsIntentService.java
similarity index 90%
rename from prebuilts/gradle/Geofencing/Application/src/main/java/com/example/android/geofencing/GeofenceTransitionsIntentService.java
rename to prebuilts/gradle/Geofencing/Application/src/main/java/com/example/android/wearable/geofencing/GeofenceTransitionsIntentService.java
index 1af7bc6..5d1ea48 100644
--- a/prebuilts/gradle/Geofencing/Application/src/main/java/com/example/android/geofencing/GeofenceTransitionsIntentService.java
+++ b/prebuilts/gradle/Geofencing/Application/src/main/java/com/example/android/wearable/geofencing/GeofenceTransitionsIntentService.java
@@ -14,13 +14,13 @@
  * limitations under the License.
  */
 
-package com.example.android.geofencing;
+package com.example.android.wearable.geofencing;
 
-import static com.example.android.geofencing.Constants.CONNECTION_TIME_OUT_MS;
-import static com.example.android.geofencing.Constants.GEOFENCE_DATA_ITEM_PATH;
-import static com.example.android.geofencing.Constants.GEOFENCE_DATA_ITEM_URI;
-import static com.example.android.geofencing.Constants.KEY_GEOFENCE_ID;
-import static com.example.android.geofencing.Constants.TAG;
+import static com.example.android.wearable.geofencing.Constants.CONNECTION_TIME_OUT_MS;
+import static com.example.android.wearable.geofencing.Constants.GEOFENCE_DATA_ITEM_PATH;
+import static com.example.android.wearable.geofencing.Constants.GEOFENCE_DATA_ITEM_URI;
+import static com.example.android.wearable.geofencing.Constants.KEY_GEOFENCE_ID;
+import static com.example.android.wearable.geofencing.Constants.TAG;
 
 import android.app.IntentService;
 import android.content.Intent;
diff --git a/prebuilts/gradle/Geofencing/Application/src/main/java/com/example/android/geofencing/MainActivity.java b/prebuilts/gradle/Geofencing/Application/src/main/java/com/example/android/wearable/geofencing/MainActivity.java
similarity index 89%
rename from prebuilts/gradle/Geofencing/Application/src/main/java/com/example/android/geofencing/MainActivity.java
rename to prebuilts/gradle/Geofencing/Application/src/main/java/com/example/android/wearable/geofencing/MainActivity.java
index 67dcd07..baef217 100644
--- a/prebuilts/gradle/Geofencing/Application/src/main/java/com/example/android/geofencing/MainActivity.java
+++ b/prebuilts/gradle/Geofencing/Application/src/main/java/com/example/android/wearable/geofencing/MainActivity.java
@@ -14,19 +14,19 @@
  * limitations under the License.
  */
 
-package com.example.android.geofencing;
+package com.example.android.wearable.geofencing;
 
-import static com.example.android.geofencing.Constants.ANDROID_BUILDING_ID;
-import static com.example.android.geofencing.Constants.ANDROID_BUILDING_LATITUDE;
-import static com.example.android.geofencing.Constants.ANDROID_BUILDING_LONGITUDE;
-import static com.example.android.geofencing.Constants.ANDROID_BUILDING_RADIUS_METERS;
-import static com.example.android.geofencing.Constants.CONNECTION_FAILURE_RESOLUTION_REQUEST;
-import static com.example.android.geofencing.Constants.GEOFENCE_EXPIRATION_TIME;
-import static com.example.android.geofencing.Constants.TAG;
-import static com.example.android.geofencing.Constants.YERBA_BUENA_ID;
-import static com.example.android.geofencing.Constants.YERBA_BUENA_LATITUDE;
-import static com.example.android.geofencing.Constants.YERBA_BUENA_LONGITUDE;
-import static com.example.android.geofencing.Constants.YERBA_BUENA_RADIUS_METERS;
+import static com.example.android.wearable.geofencing.Constants.ANDROID_BUILDING_ID;
+import static com.example.android.wearable.geofencing.Constants.ANDROID_BUILDING_LATITUDE;
+import static com.example.android.wearable.geofencing.Constants.ANDROID_BUILDING_LONGITUDE;
+import static com.example.android.wearable.geofencing.Constants.ANDROID_BUILDING_RADIUS_METERS;
+import static com.example.android.wearable.geofencing.Constants.CONNECTION_FAILURE_RESOLUTION_REQUEST;
+import static com.example.android.wearable.geofencing.Constants.GEOFENCE_EXPIRATION_TIME;
+import static com.example.android.wearable.geofencing.Constants.TAG;
+import static com.example.android.wearable.geofencing.Constants.YERBA_BUENA_ID;
+import static com.example.android.wearable.geofencing.Constants.YERBA_BUENA_LATITUDE;
+import static com.example.android.wearable.geofencing.Constants.YERBA_BUENA_LONGITUDE;
+import static com.example.android.wearable.geofencing.Constants.YERBA_BUENA_RADIUS_METERS;
 
 import android.app.Activity;
 import android.app.PendingIntent;
diff --git a/prebuilts/gradle/Geofencing/Application/src/main/java/com/example/android/geofencing/SimpleGeofence.java b/prebuilts/gradle/Geofencing/Application/src/main/java/com/example/android/wearable/geofencing/SimpleGeofence.java
similarity index 97%
rename from prebuilts/gradle/Geofencing/Application/src/main/java/com/example/android/geofencing/SimpleGeofence.java
rename to prebuilts/gradle/Geofencing/Application/src/main/java/com/example/android/wearable/geofencing/SimpleGeofence.java
index 8e17526..50f02c3 100644
--- a/prebuilts/gradle/Geofencing/Application/src/main/java/com/example/android/geofencing/SimpleGeofence.java
+++ b/prebuilts/gradle/Geofencing/Application/src/main/java/com/example/android/wearable/geofencing/SimpleGeofence.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.geofencing;
+package com.example.android.wearable.geofencing;
 
 import com.google.android.gms.location.Geofence;
 
diff --git a/prebuilts/gradle/Geofencing/Application/src/main/java/com/example/android/geofencing/SimpleGeofenceStore.java b/prebuilts/gradle/Geofencing/Application/src/main/java/com/example/android/wearable/geofencing/SimpleGeofenceStore.java
similarity index 86%
rename from prebuilts/gradle/Geofencing/Application/src/main/java/com/example/android/geofencing/SimpleGeofenceStore.java
rename to prebuilts/gradle/Geofencing/Application/src/main/java/com/example/android/wearable/geofencing/SimpleGeofenceStore.java
index fcdf8f8..47584f5 100644
--- a/prebuilts/gradle/Geofencing/Application/src/main/java/com/example/android/geofencing/SimpleGeofenceStore.java
+++ b/prebuilts/gradle/Geofencing/Application/src/main/java/com/example/android/wearable/geofencing/SimpleGeofenceStore.java
@@ -14,17 +14,17 @@
  * limitations under the License.
  */
 
-package com.example.android.geofencing;
+package com.example.android.wearable.geofencing;
 
-import static com.example.android.geofencing.Constants.INVALID_FLOAT_VALUE;
-import static com.example.android.geofencing.Constants.INVALID_INT_VALUE;
-import static com.example.android.geofencing.Constants.INVALID_LONG_VALUE;
-import static com.example.android.geofencing.Constants.KEY_EXPIRATION_DURATION;
-import static com.example.android.geofencing.Constants.KEY_LATITUDE;
-import static com.example.android.geofencing.Constants.KEY_LONGITUDE;
-import static com.example.android.geofencing.Constants.KEY_PREFIX;
-import static com.example.android.geofencing.Constants.KEY_RADIUS;
-import static com.example.android.geofencing.Constants.KEY_TRANSITION_TYPE;
+import static com.example.android.wearable.geofencing.Constants.INVALID_FLOAT_VALUE;
+import static com.example.android.wearable.geofencing.Constants.INVALID_INT_VALUE;
+import static com.example.android.wearable.geofencing.Constants.INVALID_LONG_VALUE;
+import static com.example.android.wearable.geofencing.Constants.KEY_EXPIRATION_DURATION;
+import static com.example.android.wearable.geofencing.Constants.KEY_LATITUDE;
+import static com.example.android.wearable.geofencing.Constants.KEY_LONGITUDE;
+import static com.example.android.wearable.geofencing.Constants.KEY_PREFIX;
+import static com.example.android.wearable.geofencing.Constants.KEY_RADIUS;
+import static com.example.android.wearable.geofencing.Constants.KEY_TRANSITION_TYPE;
 
 import android.content.Context;
 import android.content.SharedPreferences;
diff --git a/prebuilts/gradle/Geofencing/README-wear.txt b/prebuilts/gradle/Geofencing/README-wear.txt
deleted file mode 100644
index 17523d7..0000000
--- a/prebuilts/gradle/Geofencing/README-wear.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-<#--
-        Copyright 2014 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.
--->
-
-Steps to use Wear template on top of an existing sample:
-- In template-params.xml.ftl:
-    - Add the following template:
-        <template src="Wear"/>
-
-- Refresh your project (./gradlew refresh)
-- Add Wearable-specific code to Wearable directory
-- Add code to be shared among the main application and the wearable to Shared
-  directory
-
-Note that you still need the main application sample code. This is usually
-achieved by adding another template, like "base" for example.
-
-
diff --git a/prebuilts/gradle/Geofencing/Shared/build.gradle b/prebuilts/gradle/Geofencing/Shared/build.gradle
deleted file mode 100644
index e6ddb59..0000000
--- a/prebuilts/gradle/Geofencing/Shared/build.gradle
+++ /dev/null
@@ -1,35 +0,0 @@
-buildscript {
-    repositories {
-        mavenCentral()
-    }
-
-    dependencies {
-        classpath 'com.android.tools.build:gradle:0.12.+'
-    }
-}
-
-apply plugin: 'android-library'
-
-// The sample build uses multiple directories to
-// keep boilerplate and common code separate from
-// the main sample code.
-List<String> dirs = [
-    'main',     // main sample code; look here for the interesting stuff.
-    'common',   // components that are reused by multiple samples
-    'template'] // boilerplate code that is generated by the sample template process
-
-android {
-    compileSdkVersion 20
-
-    buildToolsVersion '20'
-
-    sourceSets {
-        main {
-            dirs.each { dir ->
-                java.srcDirs "src/${dir}/java"
-                res.srcDirs "src/${dir}/res"
-            }
-        }
-
-    }
-}
diff --git a/prebuilts/gradle/Geofencing/Shared/src/main/AndroidManifest.xml b/prebuilts/gradle/Geofencing/Shared/src/main/AndroidManifest.xml
deleted file mode 100644
index 2b60180..0000000
--- a/prebuilts/gradle/Geofencing/Shared/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- 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.
--->
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.example.android.geofencing.common">
-
-    <application android:allowBackup="true"
-        android:label="@string/app_name">
-    </application>
-
-</manifest>
diff --git a/prebuilts/gradle/Geofencing/Shared/src/main/res/values/strings.xml b/prebuilts/gradle/Geofencing/Shared/src/main/res/values/strings.xml
deleted file mode 100644
index 0f2bb90..0000000
--- a/prebuilts/gradle/Geofencing/Shared/src/main/res/values/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2014 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.
--->
-<resources>
-    <string name="app_name">Shared</string>
-</resources>
diff --git a/prebuilts/gradle/Geofencing/Wearable/build.gradle b/prebuilts/gradle/Geofencing/Wearable/build.gradle
index b8151b1..864b2fd 100644
--- a/prebuilts/gradle/Geofencing/Wearable/build.gradle
+++ b/prebuilts/gradle/Geofencing/Wearable/build.gradle
@@ -16,7 +16,6 @@
     compile 'com.google.android.gms:play-services-wearable:5.0.+'
     compile 'com.android.support:support-v13:20.0.+'
     compile 'com.google.android.support:wearable:1.0.+'
-    compile project(':Shared')
 }
 
 // The sample build uses multiple directories to
diff --git a/prebuilts/gradle/Geofencing/Wearable/src/main/AndroidManifest.xml b/prebuilts/gradle/Geofencing/Wearable/src/main/AndroidManifest.xml
index 85c41cd..97ce90e 100644
--- a/prebuilts/gradle/Geofencing/Wearable/src/main/AndroidManifest.xml
+++ b/prebuilts/gradle/Geofencing/Wearable/src/main/AndroidManifest.xml
@@ -15,7 +15,7 @@
 -->
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-        package="com.example.android.geofencing" >
+        package="com.example.android.wearable.geofencing" >
 
     <uses-sdk android:minSdkVersion="20"
               android:targetSdkVersion="20" />
@@ -32,7 +32,7 @@
                 android:value="@integer/google_play_services_version" />
 
         <service
-                android:name="com.example.android.geofencing.HomeListenerService" >
+                android:name="com.example.android.wearable.geofencing.HomeListenerService" >
             <intent-filter>
                 <action android:name="com.google.android.gms.wearable.BIND_LISTENER" />
             </intent-filter>
diff --git a/prebuilts/gradle/Geofencing/Wearable/src/main/java/com/example/android/geofencing/CheckInAndDeleteDataItemsService.java b/prebuilts/gradle/Geofencing/Wearable/src/main/java/com/example/android/wearable/geofencing/CheckInAndDeleteDataItemsService.java
similarity index 91%
rename from prebuilts/gradle/Geofencing/Wearable/src/main/java/com/example/android/geofencing/CheckInAndDeleteDataItemsService.java
rename to prebuilts/gradle/Geofencing/Wearable/src/main/java/com/example/android/wearable/geofencing/CheckInAndDeleteDataItemsService.java
index 1cc9baf..7b8ba11 100644
--- a/prebuilts/gradle/Geofencing/Wearable/src/main/java/com/example/android/geofencing/CheckInAndDeleteDataItemsService.java
+++ b/prebuilts/gradle/Geofencing/Wearable/src/main/java/com/example/android/wearable/geofencing/CheckInAndDeleteDataItemsService.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.geofencing;
+package com.example.android.wearable.geofencing;
 
 import com.google.android.gms.common.ConnectionResult;
 import com.google.android.gms.common.api.GoogleApiClient;
@@ -31,11 +31,11 @@
 
 import java.util.concurrent.TimeUnit;
 
-import static com.example.android.geofencing.Constants.ACTION_CHECK_IN;
-import static com.example.android.geofencing.Constants.ACTION_DELETE_DATA_ITEM;
-import static com.example.android.geofencing.Constants.CONNECTION_TIME_OUT_MS;
-import static com.example.android.geofencing.Constants.NOTIFICATION_ID;
-import static com.example.android.geofencing.Constants.TAG;
+import static com.example.android.wearable.geofencing.Constants.ACTION_CHECK_IN;
+import static com.example.android.wearable.geofencing.Constants.ACTION_DELETE_DATA_ITEM;
+import static com.example.android.wearable.geofencing.Constants.CONNECTION_TIME_OUT_MS;
+import static com.example.android.wearable.geofencing.Constants.NOTIFICATION_ID;
+import static com.example.android.wearable.geofencing.Constants.TAG;
 
 /**
  * Handles "Check In" action on the location-based notification. Also deletes orphan DataItems
diff --git a/prebuilts/gradle/Geofencing/Wearable/src/main/java/com/example/android/geofencing/Constants.java b/prebuilts/gradle/Geofencing/Wearable/src/main/java/com/example/android/wearable/geofencing/Constants.java
similarity index 96%
rename from prebuilts/gradle/Geofencing/Wearable/src/main/java/com/example/android/geofencing/Constants.java
rename to prebuilts/gradle/Geofencing/Wearable/src/main/java/com/example/android/wearable/geofencing/Constants.java
index 23ee99e..ef6e8c6 100644
--- a/prebuilts/gradle/Geofencing/Wearable/src/main/java/com/example/android/geofencing/Constants.java
+++ b/prebuilts/gradle/Geofencing/Wearable/src/main/java/com/example/android/wearable/geofencing/Constants.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.geofencing;
+package com.example.android.wearable.geofencing;
 
 /** Constants used in wearable app. */
 public final class Constants {
diff --git a/prebuilts/gradle/Geofencing/Wearable/src/main/java/com/example/android/geofencing/HomeListenerService.java b/prebuilts/gradle/Geofencing/Wearable/src/main/java/com/example/android/wearable/geofencing/HomeListenerService.java
similarity index 90%
rename from prebuilts/gradle/Geofencing/Wearable/src/main/java/com/example/android/geofencing/HomeListenerService.java
rename to prebuilts/gradle/Geofencing/Wearable/src/main/java/com/example/android/wearable/geofencing/HomeListenerService.java
index b0b1b13..415fc46 100644
--- a/prebuilts/gradle/Geofencing/Wearable/src/main/java/com/example/android/geofencing/HomeListenerService.java
+++ b/prebuilts/gradle/Geofencing/Wearable/src/main/java/com/example/android/wearable/geofencing/HomeListenerService.java
@@ -14,15 +14,15 @@
  * limitations under the License.
  */
 
-package com.example.android.geofencing;
+package com.example.android.wearable.geofencing;
 
-import static com.example.android.geofencing.Constants.ACTION_CHECK_IN;
-import static com.example.android.geofencing.Constants.ACTION_DELETE_DATA_ITEM;
-import static com.example.android.geofencing.Constants.ANDROID_BUILDING_ID;
-import static com.example.android.geofencing.Constants.KEY_GEOFENCE_ID;
-import static com.example.android.geofencing.Constants.NOTIFICATION_ID;
-import static com.example.android.geofencing.Constants.TAG;
-import static com.example.android.geofencing.Constants.YERBA_BUENA_ID;
+import static com.example.android.wearable.geofencing.Constants.ACTION_CHECK_IN;
+import static com.example.android.wearable.geofencing.Constants.ACTION_DELETE_DATA_ITEM;
+import static com.example.android.wearable.geofencing.Constants.ANDROID_BUILDING_ID;
+import static com.example.android.wearable.geofencing.Constants.KEY_GEOFENCE_ID;
+import static com.example.android.wearable.geofencing.Constants.NOTIFICATION_ID;
+import static com.example.android.wearable.geofencing.Constants.TAG;
+import static com.example.android.wearable.geofencing.Constants.YERBA_BUENA_ID;
 
 import android.app.Notification;
 import android.app.Notification.Action;
diff --git a/prebuilts/gradle/Geofencing/screenshots/android_building_check_in.png b/prebuilts/gradle/Geofencing/screenshots/android_building_check_in.png
new file mode 100644
index 0000000..5101e77
--- /dev/null
+++ b/prebuilts/gradle/Geofencing/screenshots/android_building_check_in.png
Binary files differ
diff --git a/prebuilts/gradle/Geofencing/settings.gradle b/prebuilts/gradle/Geofencing/settings.gradle
index 8522c57..19d00ac 100644
--- a/prebuilts/gradle/Geofencing/settings.gradle
+++ b/prebuilts/gradle/Geofencing/settings.gradle
@@ -1 +1 @@
-include ':Application', ':Wearable', ':Shared'
+include ':Application', ':Wearable'
diff --git a/prebuilts/gradle/GridViewPager/Application/build.gradle b/prebuilts/gradle/GridViewPager/Application/build.gradle
index 41fc623..0c6e001 100644
--- a/prebuilts/gradle/GridViewPager/Application/build.gradle
+++ b/prebuilts/gradle/GridViewPager/Application/build.gradle
@@ -16,7 +16,6 @@
 
     compile 'com.google.android.gms:play-services:5.0.+'
     compile 'com.android.support:support-v13:20.0.+'
-    compile project(':Shared')
     wearApp project(':Wearable')
 
 }
diff --git a/prebuilts/gradle/GridViewPager/Application/src/main/AndroidManifest.xml b/prebuilts/gradle/GridViewPager/Application/src/main/AndroidManifest.xml
index eaa91d7..add48f1 100644
--- a/prebuilts/gradle/GridViewPager/Application/src/main/AndroidManifest.xml
+++ b/prebuilts/gradle/GridViewPager/Application/src/main/AndroidManifest.xml
@@ -16,10 +16,10 @@
 -->
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.example.android.gridviewpager">
+    package="com.example.android.wearable.gridviewpager">
 
-    <uses-sdk android:minSdkVersion="19"
-              android:targetSdkVersion="19" />
+    <uses-sdk android:minSdkVersion="18"
+              android:targetSdkVersion="20" />
 
     <application android:allowBackup="true"
         android:label="@string/app_name">
diff --git a/prebuilts/gradle/GridViewPager/Application/src/main/java/com/example/android/common/activities/SampleActivityBase.java b/prebuilts/gradle/GridViewPager/Application/src/main/java/com/example/android/common/activities/SampleActivityBase.java
deleted file mode 100644
index 3228927..0000000
--- a/prebuilts/gradle/GridViewPager/Application/src/main/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/prebuilts/gradle/GridViewPager/Application/src/main/java/com/example/android/common/logger/Log.java b/prebuilts/gradle/GridViewPager/Application/src/main/java/com/example/android/common/logger/Log.java
deleted file mode 100644
index 17503c5..0000000
--- a/prebuilts/gradle/GridViewPager/Application/src/main/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/prebuilts/gradle/GridViewPager/Application/src/main/java/com/example/android/common/logger/LogFragment.java b/prebuilts/gradle/GridViewPager/Application/src/main/java/com/example/android/common/logger/LogFragment.java
deleted file mode 100644
index b302acd..0000000
--- a/prebuilts/gradle/GridViewPager/Application/src/main/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/prebuilts/gradle/GridViewPager/Application/src/main/java/com/example/android/common/logger/LogNode.java b/prebuilts/gradle/GridViewPager/Application/src/main/java/com/example/android/common/logger/LogNode.java
deleted file mode 100644
index bc37cab..0000000
--- a/prebuilts/gradle/GridViewPager/Application/src/main/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/prebuilts/gradle/GridViewPager/Application/src/main/java/com/example/android/common/logger/LogView.java b/prebuilts/gradle/GridViewPager/Application/src/main/java/com/example/android/common/logger/LogView.java
deleted file mode 100644
index c01542b..0000000
--- a/prebuilts/gradle/GridViewPager/Application/src/main/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/prebuilts/gradle/GridViewPager/Application/src/main/java/com/example/android/common/logger/LogWrapper.java b/prebuilts/gradle/GridViewPager/Application/src/main/java/com/example/android/common/logger/LogWrapper.java
deleted file mode 100644
index 16a9e7b..0000000
--- a/prebuilts/gradle/GridViewPager/Application/src/main/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/prebuilts/gradle/GridViewPager/Application/src/main/java/com/example/android/common/logger/MessageOnlyLogFilter.java b/prebuilts/gradle/GridViewPager/Application/src/main/java/com/example/android/common/logger/MessageOnlyLogFilter.java
deleted file mode 100644
index 19967dc..0000000
--- a/prebuilts/gradle/GridViewPager/Application/src/main/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/prebuilts/gradle/GridViewPager/README-wear.txt b/prebuilts/gradle/GridViewPager/README-wear.txt
deleted file mode 100644
index 17523d7..0000000
--- a/prebuilts/gradle/GridViewPager/README-wear.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-<#--
-        Copyright 2014 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.
--->
-
-Steps to use Wear template on top of an existing sample:
-- In template-params.xml.ftl:
-    - Add the following template:
-        <template src="Wear"/>
-
-- Refresh your project (./gradlew refresh)
-- Add Wearable-specific code to Wearable directory
-- Add code to be shared among the main application and the wearable to Shared
-  directory
-
-Note that you still need the main application sample code. This is usually
-achieved by adding another template, like "base" for example.
-
-
diff --git a/prebuilts/gradle/GridViewPager/Shared/build.gradle b/prebuilts/gradle/GridViewPager/Shared/build.gradle
deleted file mode 100644
index e6ddb59..0000000
--- a/prebuilts/gradle/GridViewPager/Shared/build.gradle
+++ /dev/null
@@ -1,35 +0,0 @@
-buildscript {
-    repositories {
-        mavenCentral()
-    }
-
-    dependencies {
-        classpath 'com.android.tools.build:gradle:0.12.+'
-    }
-}
-
-apply plugin: 'android-library'
-
-// The sample build uses multiple directories to
-// keep boilerplate and common code separate from
-// the main sample code.
-List<String> dirs = [
-    'main',     // main sample code; look here for the interesting stuff.
-    'common',   // components that are reused by multiple samples
-    'template'] // boilerplate code that is generated by the sample template process
-
-android {
-    compileSdkVersion 20
-
-    buildToolsVersion '20'
-
-    sourceSets {
-        main {
-            dirs.each { dir ->
-                java.srcDirs "src/${dir}/java"
-                res.srcDirs "src/${dir}/res"
-            }
-        }
-
-    }
-}
diff --git a/prebuilts/gradle/GridViewPager/Shared/src/main/AndroidManifest.xml b/prebuilts/gradle/GridViewPager/Shared/src/main/AndroidManifest.xml
deleted file mode 100644
index 1be08aa..0000000
--- a/prebuilts/gradle/GridViewPager/Shared/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- 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.
--->
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.example.android.gridviewpager.common">
-
-    <application android:allowBackup="true"
-        android:label="@string/app_name">
-    </application>
-
-</manifest>
diff --git a/prebuilts/gradle/GridViewPager/Shared/src/main/res/values/strings.xml b/prebuilts/gradle/GridViewPager/Shared/src/main/res/values/strings.xml
deleted file mode 100644
index 0f2bb90..0000000
--- a/prebuilts/gradle/GridViewPager/Shared/src/main/res/values/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2014 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.
--->
-<resources>
-    <string name="app_name">Shared</string>
-</resources>
diff --git a/prebuilts/gradle/GridViewPager/Wearable/build.gradle b/prebuilts/gradle/GridViewPager/Wearable/build.gradle
index b8151b1..864b2fd 100644
--- a/prebuilts/gradle/GridViewPager/Wearable/build.gradle
+++ b/prebuilts/gradle/GridViewPager/Wearable/build.gradle
@@ -16,7 +16,6 @@
     compile 'com.google.android.gms:play-services-wearable:5.0.+'
     compile 'com.android.support:support-v13:20.0.+'
     compile 'com.google.android.support:wearable:1.0.+'
-    compile project(':Shared')
 }
 
 // The sample build uses multiple directories to
diff --git a/prebuilts/gradle/GridViewPager/Wearable/src/main/AndroidManifest.xml b/prebuilts/gradle/GridViewPager/Wearable/src/main/AndroidManifest.xml
index baadee2..3f9c4b1 100644
--- a/prebuilts/gradle/GridViewPager/Wearable/src/main/AndroidManifest.xml
+++ b/prebuilts/gradle/GridViewPager/Wearable/src/main/AndroidManifest.xml
@@ -15,7 +15,7 @@
 -->
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.example.android.gridviewpager" >
+    package="com.example.android.wearable.gridviewpager" >
 
     <uses-sdk android:minSdkVersion="20"
               android:targetSdkVersion="20" />
@@ -28,7 +28,7 @@
         android:label="@string/app_name"
         android:theme="@android:style/Theme.DeviceDefault.Light" >
         <activity
-            android:name="com.example.android.gridviewpager.MainActivity"
+            android:name="com.example.android.wearable.gridviewpager.MainActivity"
             android:label="@string/app_name" >
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
diff --git a/prebuilts/gradle/GridViewPager/Wearable/src/main/java/com/example/android/gridviewpager/MainActivity.java b/prebuilts/gradle/GridViewPager/Wearable/src/main/java/com/example/android/wearable/gridviewpager/MainActivity.java
similarity index 97%
rename from prebuilts/gradle/GridViewPager/Wearable/src/main/java/com/example/android/gridviewpager/MainActivity.java
rename to prebuilts/gradle/GridViewPager/Wearable/src/main/java/com/example/android/wearable/gridviewpager/MainActivity.java
index 0ca304e..20751a3 100644
--- a/prebuilts/gradle/GridViewPager/Wearable/src/main/java/com/example/android/gridviewpager/MainActivity.java
+++ b/prebuilts/gradle/GridViewPager/Wearable/src/main/java/com/example/android/wearable/gridviewpager/MainActivity.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.gridviewpager;
+package com.example.android.wearable.gridviewpager;
 
 import android.app.Activity;
 import android.content.res.Resources;
diff --git a/prebuilts/gradle/GridViewPager/Wearable/src/main/java/com/example/android/gridviewpager/SampleGridPagerAdapter.java b/prebuilts/gradle/GridViewPager/Wearable/src/main/java/com/example/android/wearable/gridviewpager/SampleGridPagerAdapter.java
similarity index 98%
rename from prebuilts/gradle/GridViewPager/Wearable/src/main/java/com/example/android/gridviewpager/SampleGridPagerAdapter.java
rename to prebuilts/gradle/GridViewPager/Wearable/src/main/java/com/example/android/wearable/gridviewpager/SampleGridPagerAdapter.java
index c9dde07..8f9bcf9 100644
--- a/prebuilts/gradle/GridViewPager/Wearable/src/main/java/com/example/android/gridviewpager/SampleGridPagerAdapter.java
+++ b/prebuilts/gradle/GridViewPager/Wearable/src/main/java/com/example/android/wearable/gridviewpager/SampleGridPagerAdapter.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.gridviewpager;
+package com.example.android.wearable.gridviewpager;
 
 import android.app.Fragment;
 import android.app.FragmentManager;
diff --git a/prebuilts/gradle/GridViewPager/screenshots/grid_view_pager.gif b/prebuilts/gradle/GridViewPager/screenshots/grid_view_pager.gif
new file mode 100644
index 0000000..f70dafc
--- /dev/null
+++ b/prebuilts/gradle/GridViewPager/screenshots/grid_view_pager.gif
Binary files differ
diff --git a/prebuilts/gradle/GridViewPager/settings.gradle b/prebuilts/gradle/GridViewPager/settings.gradle
index 8522c57..19d00ac 100644
--- a/prebuilts/gradle/GridViewPager/settings.gradle
+++ b/prebuilts/gradle/GridViewPager/settings.gradle
@@ -1 +1 @@
-include ':Application', ':Wearable', ':Shared'
+include ':Application', ':Wearable'
diff --git a/prebuilts/gradle/JumpingJack/Application/build.gradle b/prebuilts/gradle/JumpingJack/Application/build.gradle
index 41fc623..0c6e001 100644
--- a/prebuilts/gradle/JumpingJack/Application/build.gradle
+++ b/prebuilts/gradle/JumpingJack/Application/build.gradle
@@ -16,7 +16,6 @@
 
     compile 'com.google.android.gms:play-services:5.0.+'
     compile 'com.android.support:support-v13:20.0.+'
-    compile project(':Shared')
     wearApp project(':Wearable')
 
 }
diff --git a/prebuilts/gradle/JumpingJack/Application/src/main/AndroidManifest.xml b/prebuilts/gradle/JumpingJack/Application/src/main/AndroidManifest.xml
index 652f895..f7a0efd 100644
--- a/prebuilts/gradle/JumpingJack/Application/src/main/AndroidManifest.xml
+++ b/prebuilts/gradle/JumpingJack/Application/src/main/AndroidManifest.xml
@@ -16,10 +16,10 @@
 -->
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.example.android.jumpingjack">
+    package="com.example.android.wearable.jumpingjack">
 
-    <uses-sdk android:minSdkVersion="19"
-              android:targetSdkVersion="19" />
+    <uses-sdk android:minSdkVersion="18"
+              android:targetSdkVersion="20" />
 
     <application android:allowBackup="true"
         android:label="@string/app_name">
diff --git a/prebuilts/gradle/JumpingJack/README-wear.txt b/prebuilts/gradle/JumpingJack/README-wear.txt
deleted file mode 100644
index 17523d7..0000000
--- a/prebuilts/gradle/JumpingJack/README-wear.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-<#--
-        Copyright 2014 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.
--->
-
-Steps to use Wear template on top of an existing sample:
-- In template-params.xml.ftl:
-    - Add the following template:
-        <template src="Wear"/>
-
-- Refresh your project (./gradlew refresh)
-- Add Wearable-specific code to Wearable directory
-- Add code to be shared among the main application and the wearable to Shared
-  directory
-
-Note that you still need the main application sample code. This is usually
-achieved by adding another template, like "base" for example.
-
-
diff --git a/prebuilts/gradle/JumpingJack/Shared/build.gradle b/prebuilts/gradle/JumpingJack/Shared/build.gradle
deleted file mode 100644
index e6ddb59..0000000
--- a/prebuilts/gradle/JumpingJack/Shared/build.gradle
+++ /dev/null
@@ -1,35 +0,0 @@
-buildscript {
-    repositories {
-        mavenCentral()
-    }
-
-    dependencies {
-        classpath 'com.android.tools.build:gradle:0.12.+'
-    }
-}
-
-apply plugin: 'android-library'
-
-// The sample build uses multiple directories to
-// keep boilerplate and common code separate from
-// the main sample code.
-List<String> dirs = [
-    'main',     // main sample code; look here for the interesting stuff.
-    'common',   // components that are reused by multiple samples
-    'template'] // boilerplate code that is generated by the sample template process
-
-android {
-    compileSdkVersion 20
-
-    buildToolsVersion '20'
-
-    sourceSets {
-        main {
-            dirs.each { dir ->
-                java.srcDirs "src/${dir}/java"
-                res.srcDirs "src/${dir}/res"
-            }
-        }
-
-    }
-}
diff --git a/prebuilts/gradle/JumpingJack/Shared/src/main/AndroidManifest.xml b/prebuilts/gradle/JumpingJack/Shared/src/main/AndroidManifest.xml
deleted file mode 100644
index 7ba3326..0000000
--- a/prebuilts/gradle/JumpingJack/Shared/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- 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.
--->
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.example.android.jumpingjack.common">
-
-    <application android:allowBackup="true"
-        android:label="@string/app_name">
-    </application>
-
-</manifest>
diff --git a/prebuilts/gradle/JumpingJack/Shared/src/main/res/values/strings.xml b/prebuilts/gradle/JumpingJack/Shared/src/main/res/values/strings.xml
deleted file mode 100644
index 0f2bb90..0000000
--- a/prebuilts/gradle/JumpingJack/Shared/src/main/res/values/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2014 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.
--->
-<resources>
-    <string name="app_name">Shared</string>
-</resources>
diff --git a/prebuilts/gradle/JumpingJack/Wearable/build.gradle b/prebuilts/gradle/JumpingJack/Wearable/build.gradle
index b8151b1..864b2fd 100644
--- a/prebuilts/gradle/JumpingJack/Wearable/build.gradle
+++ b/prebuilts/gradle/JumpingJack/Wearable/build.gradle
@@ -16,7 +16,6 @@
     compile 'com.google.android.gms:play-services-wearable:5.0.+'
     compile 'com.android.support:support-v13:20.0.+'
     compile 'com.google.android.support:wearable:1.0.+'
-    compile project(':Shared')
 }
 
 // The sample build uses multiple directories to
diff --git a/prebuilts/gradle/JumpingJack/Wearable/src/main/AndroidManifest.xml b/prebuilts/gradle/JumpingJack/Wearable/src/main/AndroidManifest.xml
index e0448d9..f123f77 100644
--- a/prebuilts/gradle/JumpingJack/Wearable/src/main/AndroidManifest.xml
+++ b/prebuilts/gradle/JumpingJack/Wearable/src/main/AndroidManifest.xml
@@ -15,7 +15,7 @@
 -->
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-          package="com.example.android.jumpingjack">
+          package="com.example.android.wearable.jumpingjack">
 
    <uses-sdk android:minSdkVersion="20"
              android:targetSdkVersion="20" />
diff --git a/prebuilts/gradle/JumpingJack/Wearable/src/main/java/com/example/android/jumpingjack/MainActivity.java b/prebuilts/gradle/JumpingJack/Wearable/src/main/java/com/example/android/wearable/jumpingjack/MainActivity.java
similarity index 97%
rename from prebuilts/gradle/JumpingJack/Wearable/src/main/java/com/example/android/jumpingjack/MainActivity.java
rename to prebuilts/gradle/JumpingJack/Wearable/src/main/java/com/example/android/wearable/jumpingjack/MainActivity.java
index 4fe2e79..cdaaf6e 100644
--- a/prebuilts/gradle/JumpingJack/Wearable/src/main/java/com/example/android/jumpingjack/MainActivity.java
+++ b/prebuilts/gradle/JumpingJack/Wearable/src/main/java/com/example/android/wearable/jumpingjack/MainActivity.java
@@ -14,10 +14,10 @@
  * limitations under the License.
  */
 
-package com.example.android.jumpingjack;
+package com.example.android.wearable.jumpingjack;
 
-import com.example.android.jumpingjack.fragments.CounterFragment;
-import com.example.android.jumpingjack.fragments.SettingsFragment;
+import com.example.android.wearable.jumpingjack.fragments.CounterFragment;
+import com.example.android.wearable.jumpingjack.fragments.SettingsFragment;
 
 import android.app.Activity;
 import android.content.Context;
diff --git a/prebuilts/gradle/JumpingJack/Wearable/src/main/java/com/example/android/jumpingjack/PagerAdapter.java b/prebuilts/gradle/JumpingJack/Wearable/src/main/java/com/example/android/wearable/jumpingjack/PagerAdapter.java
similarity index 96%
rename from prebuilts/gradle/JumpingJack/Wearable/src/main/java/com/example/android/jumpingjack/PagerAdapter.java
rename to prebuilts/gradle/JumpingJack/Wearable/src/main/java/com/example/android/wearable/jumpingjack/PagerAdapter.java
index 47fe86c..f7ac2b0 100644
--- a/prebuilts/gradle/JumpingJack/Wearable/src/main/java/com/example/android/jumpingjack/PagerAdapter.java
+++ b/prebuilts/gradle/JumpingJack/Wearable/src/main/java/com/example/android/wearable/jumpingjack/PagerAdapter.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.jumpingjack;
+package com.example.android.wearable.jumpingjack;
 
 import android.app.Fragment;
 import android.app.FragmentManager;
diff --git a/prebuilts/gradle/JumpingJack/Wearable/src/main/java/com/example/android/jumpingjack/Utils.java b/prebuilts/gradle/JumpingJack/Wearable/src/main/java/com/example/android/wearable/jumpingjack/Utils.java
similarity index 97%
rename from prebuilts/gradle/JumpingJack/Wearable/src/main/java/com/example/android/jumpingjack/Utils.java
rename to prebuilts/gradle/JumpingJack/Wearable/src/main/java/com/example/android/wearable/jumpingjack/Utils.java
index 90fc296..4db66c9 100644
--- a/prebuilts/gradle/JumpingJack/Wearable/src/main/java/com/example/android/jumpingjack/Utils.java
+++ b/prebuilts/gradle/JumpingJack/Wearable/src/main/java/com/example/android/wearable/jumpingjack/Utils.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.jumpingjack;
+package com.example.android.wearable.jumpingjack;
 
 import android.content.Context;
 import android.content.SharedPreferences;
diff --git a/prebuilts/gradle/JumpingJack/Wearable/src/main/java/com/example/android/jumpingjack/fragments/CounterFragment.java b/prebuilts/gradle/JumpingJack/Wearable/src/main/java/com/example/android/wearable/jumpingjack/fragments/CounterFragment.java
similarity index 94%
rename from prebuilts/gradle/JumpingJack/Wearable/src/main/java/com/example/android/jumpingjack/fragments/CounterFragment.java
rename to prebuilts/gradle/JumpingJack/Wearable/src/main/java/com/example/android/wearable/jumpingjack/fragments/CounterFragment.java
index aa6fa53..c55eb9b 100644
--- a/prebuilts/gradle/JumpingJack/Wearable/src/main/java/com/example/android/jumpingjack/fragments/CounterFragment.java
+++ b/prebuilts/gradle/JumpingJack/Wearable/src/main/java/com/example/android/wearable/jumpingjack/fragments/CounterFragment.java
@@ -14,10 +14,10 @@
  * limitations under the License.
  */
 
-package com.example.android.jumpingjack.fragments;
+package com.example.android.wearable.jumpingjack.fragments;
 
-import com.example.android.jumpingjack.R;
-import com.example.android.jumpingjack.Utils;
+import com.example.android.wearable.jumpingjack.R;
+import com.example.android.wearable.jumpingjack.Utils;
 
 import android.app.Fragment;
 import android.graphics.drawable.Drawable;
diff --git a/prebuilts/gradle/JumpingJack/Wearable/src/main/java/com/example/android/jumpingjack/fragments/SettingsFragment.java b/prebuilts/gradle/JumpingJack/Wearable/src/main/java/com/example/android/wearable/jumpingjack/fragments/SettingsFragment.java
similarity index 90%
rename from prebuilts/gradle/JumpingJack/Wearable/src/main/java/com/example/android/jumpingjack/fragments/SettingsFragment.java
rename to prebuilts/gradle/JumpingJack/Wearable/src/main/java/com/example/android/wearable/jumpingjack/fragments/SettingsFragment.java
index 0ef7a43..fffe8fb 100644
--- a/prebuilts/gradle/JumpingJack/Wearable/src/main/java/com/example/android/jumpingjack/fragments/SettingsFragment.java
+++ b/prebuilts/gradle/JumpingJack/Wearable/src/main/java/com/example/android/wearable/jumpingjack/fragments/SettingsFragment.java
@@ -14,10 +14,10 @@
  * limitations under the License.
  */
 
-package com.example.android.jumpingjack.fragments;
+package com.example.android.wearable.jumpingjack.fragments;
 
-import com.example.android.jumpingjack.MainActivity;
-import com.example.android.jumpingjack.R;
+import com.example.android.wearable.jumpingjack.MainActivity;
+import com.example.android.wearable.jumpingjack.R;
 
 import android.app.Fragment;
 import android.os.Bundle;
diff --git a/prebuilts/gradle/JumpingJack/screenshots/jumping_jack.gif b/prebuilts/gradle/JumpingJack/screenshots/jumping_jack.gif
new file mode 100644
index 0000000..86c4faa
--- /dev/null
+++ b/prebuilts/gradle/JumpingJack/screenshots/jumping_jack.gif
Binary files differ
diff --git a/prebuilts/gradle/JumpingJack/settings.gradle b/prebuilts/gradle/JumpingJack/settings.gradle
index 8522c57..19d00ac 100644
--- a/prebuilts/gradle/JumpingJack/settings.gradle
+++ b/prebuilts/gradle/JumpingJack/settings.gradle
@@ -1 +1 @@
-include ':Application', ':Wearable', ':Shared'
+include ':Application', ':Wearable'
diff --git a/prebuilts/gradle/Notifications/Application/build.gradle b/prebuilts/gradle/Notifications/Application/build.gradle
index 41fc623..0c6e001 100644
--- a/prebuilts/gradle/Notifications/Application/build.gradle
+++ b/prebuilts/gradle/Notifications/Application/build.gradle
@@ -16,7 +16,6 @@
 
     compile 'com.google.android.gms:play-services:5.0.+'
     compile 'com.android.support:support-v13:20.0.+'
-    compile project(':Shared')
     wearApp project(':Wearable')
 
 }
diff --git a/prebuilts/gradle/Notifications/Application/src/main/AndroidManifest.xml b/prebuilts/gradle/Notifications/Application/src/main/AndroidManifest.xml
index 005d745..c7b2da7 100644
--- a/prebuilts/gradle/Notifications/Application/src/main/AndroidManifest.xml
+++ b/prebuilts/gradle/Notifications/Application/src/main/AndroidManifest.xml
@@ -15,11 +15,11 @@
 -->
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-        package="com.example.android.notifications" >
+        package="com.example.android.support.wearable.notifications" >
 
 
-    <uses-sdk android:minSdkVersion="19"
-              android:targetSdkVersion="19" />
+    <uses-sdk android:minSdkVersion="18"
+              android:targetSdkVersion="20" />
 
     <application
             android:allowBackup="true"
@@ -40,9 +40,9 @@
         <receiver android:name=".NotificationIntentReceiver"
                 android:exported="false">
             <intent-filter>
-                <action android:name="com.example.android.notifications.ACTION_EXAMPLE" />
-                <action android:name="com.example.android.notifications.ACTION_ENABLE_MESSAGES" />
-                <action android:name="com.example.android.notifications.ACTION_DISABLE_MESSAGES" />
+                <action android:name="com.example.android.support.wearable.notifications.ACTION_EXAMPLE" />
+                <action android:name="com.example.android.support.wearable.notifications.ACTION_ENABLE_MESSAGES" />
+                <action android:name="com.example.android.support.wearable.notifications.ACTION_DISABLE_MESSAGES" />
             </intent-filter>
         </receiver>
 
diff --git a/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/common/activities/SampleActivityBase.java b/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/common/activities/SampleActivityBase.java
deleted file mode 100644
index 3228927..0000000
--- a/prebuilts/gradle/Notifications/Application/src/main/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/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/common/logger/Log.java b/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/common/logger/Log.java
deleted file mode 100644
index 17503c5..0000000
--- a/prebuilts/gradle/Notifications/Application/src/main/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/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/common/logger/LogFragment.java b/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/common/logger/LogFragment.java
deleted file mode 100644
index b302acd..0000000
--- a/prebuilts/gradle/Notifications/Application/src/main/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/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/common/logger/LogNode.java b/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/common/logger/LogNode.java
deleted file mode 100644
index bc37cab..0000000
--- a/prebuilts/gradle/Notifications/Application/src/main/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/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/common/logger/LogView.java b/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/common/logger/LogView.java
deleted file mode 100644
index c01542b..0000000
--- a/prebuilts/gradle/Notifications/Application/src/main/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/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/common/logger/LogWrapper.java b/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/common/logger/LogWrapper.java
deleted file mode 100644
index 16a9e7b..0000000
--- a/prebuilts/gradle/Notifications/Application/src/main/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/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/common/logger/MessageOnlyLogFilter.java b/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/common/logger/MessageOnlyLogFilter.java
deleted file mode 100644
index 19967dc..0000000
--- a/prebuilts/gradle/Notifications/Application/src/main/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/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/notifications/ActionsPreset.java b/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/ActionsPreset.java
similarity index 94%
rename from prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/notifications/ActionsPreset.java
rename to prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/ActionsPreset.java
index 32be1a6..a550912 100644
--- a/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/notifications/ActionsPreset.java
+++ b/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/ActionsPreset.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.notifications;
+package com.example.android.support.wearable.notifications;
 
 import android.content.Context;
 import android.support.v4.app.NotificationCompat;
diff --git a/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/notifications/ActionsPresets.java b/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/ActionsPresets.java
similarity index 98%
rename from prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/notifications/ActionsPresets.java
rename to prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/ActionsPresets.java
index 2481ac8..ff639dc 100644
--- a/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/notifications/ActionsPresets.java
+++ b/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/ActionsPresets.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.notifications;
+package com.example.android.support.wearable.notifications;
 
 import android.content.Context;
 import android.support.v4.app.NotificationCompat;
diff --git a/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/notifications/BackgroundPickers.java b/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/BackgroundPickers.java
similarity index 98%
rename from prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/notifications/BackgroundPickers.java
rename to prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/BackgroundPickers.java
index 69263b2..aedd548 100644
--- a/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/notifications/BackgroundPickers.java
+++ b/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/BackgroundPickers.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.notifications;
+package com.example.android.support.wearable.notifications;
 
 import android.content.Context;
 import android.content.res.Resources;
diff --git a/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/notifications/MainActivity.java b/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/MainActivity.java
similarity index 99%
rename from prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/notifications/MainActivity.java
rename to prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/MainActivity.java
index 22b1059..c2be395 100644
--- a/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/notifications/MainActivity.java
+++ b/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/MainActivity.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.notifications;
+package com.example.android.support.wearable.notifications;
 
 import android.app.Activity;
 import android.app.Notification;
diff --git a/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/notifications/NamedPreset.java b/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/NamedPreset.java
similarity index 93%
rename from prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/notifications/NamedPreset.java
rename to prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/NamedPreset.java
index b97bcb9..afc5f16 100644
--- a/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/notifications/NamedPreset.java
+++ b/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/NamedPreset.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.notifications;
+package com.example.android.support.wearable.notifications;
 
 /**
  * Base class for presets that have a simple name to display.
diff --git a/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/notifications/NotificationIntentReceiver.java b/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/NotificationIntentReceiver.java
similarity index 87%
rename from prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/notifications/NotificationIntentReceiver.java
rename to prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/NotificationIntentReceiver.java
index 8dabb34..39a1c78 100644
--- a/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/notifications/NotificationIntentReceiver.java
+++ b/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/NotificationIntentReceiver.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.notifications;
+package com.example.android.support.wearable.notifications;
 
 import android.content.BroadcastReceiver;
 import android.content.Context;
@@ -28,11 +28,11 @@
  */
 public class NotificationIntentReceiver extends BroadcastReceiver {
     public static final String ACTION_EXAMPLE =
-            "com.example.android.notifications.ACTION_EXAMPLE";
+            "com.example.android.support.wearable.notifications.ACTION_EXAMPLE";
     public static final String ACTION_ENABLE_MESSAGES =
-            "com.example.android.notifications.ACTION_ENABLE_MESSAGES";
+            "com.example.android.support.wearable.notifications.ACTION_ENABLE_MESSAGES";
     public static final String ACTION_DISABLE_MESSAGES =
-            "com.example.android.notifications.ACTION_DISABLE_MESSAGES";
+            "com.example.android.support.wearable.notifications.ACTION_DISABLE_MESSAGES";
 
     private boolean mEnableMessages = true;
 
diff --git a/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/notifications/NotificationPreset.java b/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/NotificationPreset.java
similarity index 97%
rename from prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/notifications/NotificationPreset.java
rename to prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/NotificationPreset.java
index 3ab792b..a0dff18 100644
--- a/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/notifications/NotificationPreset.java
+++ b/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/NotificationPreset.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.notifications;
+package com.example.android.support.wearable.notifications;
 
 import android.app.Notification;
 import android.content.Context;
diff --git a/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/notifications/NotificationPresets.java b/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/NotificationPresets.java
similarity index 99%
rename from prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/notifications/NotificationPresets.java
rename to prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/NotificationPresets.java
index b6fe24a..e175d11 100644
--- a/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/notifications/NotificationPresets.java
+++ b/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/NotificationPresets.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.notifications;
+package com.example.android.support.wearable.notifications;
 
 import android.app.Notification;
 import android.content.Context;
diff --git a/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/notifications/NotificationUtil.java b/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/NotificationUtil.java
similarity index 86%
rename from prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/notifications/NotificationUtil.java
rename to prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/NotificationUtil.java
index b5c43e5..389b90a 100644
--- a/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/notifications/NotificationUtil.java
+++ b/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/NotificationUtil.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.notifications;
+package com.example.android.support.wearable.notifications;
 
 import android.app.PendingIntent;
 import android.content.Context;
@@ -22,9 +22,9 @@
 
 public class NotificationUtil {
     public static final String EXTRA_MESSAGE =
-            "com.example.android.notifications.MESSAGE";
+            "com.example.android.support.wearable.notifications.MESSAGE";
     public static final String EXTRA_REPLY =
-            "com.example.android.notifications.REPLY";
+            "com.example.android.support.wearable.notifications.REPLY";
 
     public static PendingIntent getExamplePendingIntent(Context context, int messageResId) {
         Intent intent = new Intent(NotificationIntentReceiver.ACTION_EXAMPLE)
diff --git a/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/notifications/PriorityPreset.java b/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/PriorityPreset.java
similarity index 94%
rename from prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/notifications/PriorityPreset.java
rename to prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/PriorityPreset.java
index eaddb83..b4298fd 100644
--- a/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/notifications/PriorityPreset.java
+++ b/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/PriorityPreset.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.notifications;
+package com.example.android.support.wearable.notifications;
 
 import android.support.v4.app.NotificationCompat;
 
diff --git a/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/notifications/PriorityPresets.java b/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/PriorityPresets.java
similarity index 96%
rename from prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/notifications/PriorityPresets.java
rename to prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/PriorityPresets.java
index 7d1ed7c..c33b59d 100644
--- a/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/notifications/PriorityPresets.java
+++ b/prebuilts/gradle/Notifications/Application/src/main/java/com/example/android/support/wearable/notifications/PriorityPresets.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.notifications;
+package com.example.android.support.wearable.notifications;
 
 import android.app.Notification;
 import android.support.v4.app.NotificationCompat;
diff --git a/prebuilts/gradle/Notifications/README-wear.txt b/prebuilts/gradle/Notifications/README-wear.txt
deleted file mode 100644
index 17523d7..0000000
--- a/prebuilts/gradle/Notifications/README-wear.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-<#--
-        Copyright 2014 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.
--->
-
-Steps to use Wear template on top of an existing sample:
-- In template-params.xml.ftl:
-    - Add the following template:
-        <template src="Wear"/>
-
-- Refresh your project (./gradlew refresh)
-- Add Wearable-specific code to Wearable directory
-- Add code to be shared among the main application and the wearable to Shared
-  directory
-
-Note that you still need the main application sample code. This is usually
-achieved by adding another template, like "base" for example.
-
-
diff --git a/prebuilts/gradle/Notifications/Shared/build.gradle b/prebuilts/gradle/Notifications/Shared/build.gradle
deleted file mode 100644
index e6ddb59..0000000
--- a/prebuilts/gradle/Notifications/Shared/build.gradle
+++ /dev/null
@@ -1,35 +0,0 @@
-buildscript {
-    repositories {
-        mavenCentral()
-    }
-
-    dependencies {
-        classpath 'com.android.tools.build:gradle:0.12.+'
-    }
-}
-
-apply plugin: 'android-library'
-
-// The sample build uses multiple directories to
-// keep boilerplate and common code separate from
-// the main sample code.
-List<String> dirs = [
-    'main',     // main sample code; look here for the interesting stuff.
-    'common',   // components that are reused by multiple samples
-    'template'] // boilerplate code that is generated by the sample template process
-
-android {
-    compileSdkVersion 20
-
-    buildToolsVersion '20'
-
-    sourceSets {
-        main {
-            dirs.each { dir ->
-                java.srcDirs "src/${dir}/java"
-                res.srcDirs "src/${dir}/res"
-            }
-        }
-
-    }
-}
diff --git a/prebuilts/gradle/Notifications/Shared/src/main/AndroidManifest.xml b/prebuilts/gradle/Notifications/Shared/src/main/AndroidManifest.xml
deleted file mode 100644
index 0054143..0000000
--- a/prebuilts/gradle/Notifications/Shared/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- 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.
--->
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.example.android.notifications.common">
-
-    <application android:allowBackup="true"
-        android:label="@string/app_name">
-    </application>
-
-</manifest>
diff --git a/prebuilts/gradle/Notifications/Shared/src/main/res/values/strings.xml b/prebuilts/gradle/Notifications/Shared/src/main/res/values/strings.xml
deleted file mode 100644
index 0f2bb90..0000000
--- a/prebuilts/gradle/Notifications/Shared/src/main/res/values/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2014 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.
--->
-<resources>
-    <string name="app_name">Shared</string>
-</resources>
diff --git a/prebuilts/gradle/Notifications/Wearable/build.gradle b/prebuilts/gradle/Notifications/Wearable/build.gradle
index b8151b1..864b2fd 100644
--- a/prebuilts/gradle/Notifications/Wearable/build.gradle
+++ b/prebuilts/gradle/Notifications/Wearable/build.gradle
@@ -16,7 +16,6 @@
     compile 'com.google.android.gms:play-services-wearable:5.0.+'
     compile 'com.android.support:support-v13:20.0.+'
     compile 'com.google.android.support:wearable:1.0.+'
-    compile project(':Shared')
 }
 
 // The sample build uses multiple directories to
diff --git a/prebuilts/gradle/Notifications/Wearable/src/main/AndroidManifest.xml b/prebuilts/gradle/Notifications/Wearable/src/main/AndroidManifest.xml
index 99640f5..57cd7c4 100644
--- a/prebuilts/gradle/Notifications/Wearable/src/main/AndroidManifest.xml
+++ b/prebuilts/gradle/Notifications/Wearable/src/main/AndroidManifest.xml
@@ -15,7 +15,7 @@
 -->
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-        package="com.example.android.notifications" >
+        package="com.example.android.support.wearable.notifications" >
 
     <uses-sdk android:minSdkVersion="20"
         android:targetSdkVersion="20" />
diff --git a/prebuilts/gradle/Notifications/Wearable/src/main/java/com/example/android/notifications/AnimatedNotificationDisplayActivity.java b/prebuilts/gradle/Notifications/Wearable/src/main/java/com/example/android/support/wearable/notifications/AnimatedNotificationDisplayActivity.java
similarity index 98%
rename from prebuilts/gradle/Notifications/Wearable/src/main/java/com/example/android/notifications/AnimatedNotificationDisplayActivity.java
rename to prebuilts/gradle/Notifications/Wearable/src/main/java/com/example/android/support/wearable/notifications/AnimatedNotificationDisplayActivity.java
index f14acef..2e0b2ee 100644
--- a/prebuilts/gradle/Notifications/Wearable/src/main/java/com/example/android/notifications/AnimatedNotificationDisplayActivity.java
+++ b/prebuilts/gradle/Notifications/Wearable/src/main/java/com/example/android/support/wearable/notifications/AnimatedNotificationDisplayActivity.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.notifications;
+package com.example.android.support.wearable.notifications;
 
 import android.animation.Animator;
 import android.animation.AnimatorListenerAdapter;
diff --git a/prebuilts/gradle/Notifications/Wearable/src/main/java/com/example/android/notifications/BasicNotificationDisplayActivity.java b/prebuilts/gradle/Notifications/Wearable/src/main/java/com/example/android/support/wearable/notifications/BasicNotificationDisplayActivity.java
similarity index 95%
rename from prebuilts/gradle/Notifications/Wearable/src/main/java/com/example/android/notifications/BasicNotificationDisplayActivity.java
rename to prebuilts/gradle/Notifications/Wearable/src/main/java/com/example/android/support/wearable/notifications/BasicNotificationDisplayActivity.java
index a6cc5fb..d029f43 100644
--- a/prebuilts/gradle/Notifications/Wearable/src/main/java/com/example/android/notifications/BasicNotificationDisplayActivity.java
+++ b/prebuilts/gradle/Notifications/Wearable/src/main/java/com/example/android/support/wearable/notifications/BasicNotificationDisplayActivity.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.notifications;
+package com.example.android.support.wearable.notifications;
 
 import android.app.Activity;
 import android.os.Bundle;
diff --git a/prebuilts/gradle/Notifications/Wearable/src/main/java/com/example/android/notifications/MainActivity.java b/prebuilts/gradle/Notifications/Wearable/src/main/java/com/example/android/support/wearable/notifications/MainActivity.java
similarity index 98%
rename from prebuilts/gradle/Notifications/Wearable/src/main/java/com/example/android/notifications/MainActivity.java
rename to prebuilts/gradle/Notifications/Wearable/src/main/java/com/example/android/support/wearable/notifications/MainActivity.java
index fe7e134..d564e13 100644
--- a/prebuilts/gradle/Notifications/Wearable/src/main/java/com/example/android/notifications/MainActivity.java
+++ b/prebuilts/gradle/Notifications/Wearable/src/main/java/com/example/android/support/wearable/notifications/MainActivity.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.notifications;
+package com.example.android.support.wearable.notifications;
 
 import android.app.Activity;
 import android.app.Notification;
diff --git a/prebuilts/gradle/Notifications/Wearable/src/main/java/com/example/android/notifications/NotificationPreset.java b/prebuilts/gradle/Notifications/Wearable/src/main/java/com/example/android/support/wearable/notifications/NotificationPreset.java
similarity index 94%
rename from prebuilts/gradle/Notifications/Wearable/src/main/java/com/example/android/notifications/NotificationPreset.java
rename to prebuilts/gradle/Notifications/Wearable/src/main/java/com/example/android/support/wearable/notifications/NotificationPreset.java
index db15467..d6570d5 100644
--- a/prebuilts/gradle/Notifications/Wearable/src/main/java/com/example/android/notifications/NotificationPreset.java
+++ b/prebuilts/gradle/Notifications/Wearable/src/main/java/com/example/android/support/wearable/notifications/NotificationPreset.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.notifications;
+package com.example.android.support.wearable.notifications;
 
 import android.app.Notification;
 import android.content.Context;
diff --git a/prebuilts/gradle/Notifications/Wearable/src/main/java/com/example/android/notifications/NotificationPresets.java b/prebuilts/gradle/Notifications/Wearable/src/main/java/com/example/android/support/wearable/notifications/NotificationPresets.java
similarity index 99%
rename from prebuilts/gradle/Notifications/Wearable/src/main/java/com/example/android/notifications/NotificationPresets.java
rename to prebuilts/gradle/Notifications/Wearable/src/main/java/com/example/android/support/wearable/notifications/NotificationPresets.java
index 04a4d15..5578659 100644
--- a/prebuilts/gradle/Notifications/Wearable/src/main/java/com/example/android/notifications/NotificationPresets.java
+++ b/prebuilts/gradle/Notifications/Wearable/src/main/java/com/example/android/support/wearable/notifications/NotificationPresets.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.notifications;
+package com.example.android.support.wearable.notifications;
 
 import android.app.Notification;
 import android.app.PendingIntent;
diff --git a/prebuilts/gradle/Notifications/Wearable/src/main/java/com/example/android/notifications/WearableListItemLayout.java b/prebuilts/gradle/Notifications/Wearable/src/main/java/com/example/android/support/wearable/notifications/WearableListItemLayout.java
similarity index 97%
rename from prebuilts/gradle/Notifications/Wearable/src/main/java/com/example/android/notifications/WearableListItemLayout.java
rename to prebuilts/gradle/Notifications/Wearable/src/main/java/com/example/android/support/wearable/notifications/WearableListItemLayout.java
index cb08a9c..773dfe4 100644
--- a/prebuilts/gradle/Notifications/Wearable/src/main/java/com/example/android/notifications/WearableListItemLayout.java
+++ b/prebuilts/gradle/Notifications/Wearable/src/main/java/com/example/android/support/wearable/notifications/WearableListItemLayout.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.notifications;
+package com.example.android.support.wearable.notifications;
 
 import android.content.Context;
 import android.graphics.drawable.GradientDrawable;
diff --git a/prebuilts/gradle/Notifications/screenshots/basic-menu.png b/prebuilts/gradle/Notifications/screenshots/basic-menu.png
new file mode 100644
index 0000000..75c29cc
--- /dev/null
+++ b/prebuilts/gradle/Notifications/screenshots/basic-menu.png
Binary files differ
diff --git a/prebuilts/gradle/Notifications/screenshots/basic.png b/prebuilts/gradle/Notifications/screenshots/basic.png
new file mode 100644
index 0000000..9e13b09
--- /dev/null
+++ b/prebuilts/gradle/Notifications/screenshots/basic.png
Binary files differ
diff --git a/prebuilts/gradle/Notifications/screenshots/bottom-aligned.png b/prebuilts/gradle/Notifications/screenshots/bottom-aligned.png
new file mode 100644
index 0000000..88c7ffa
--- /dev/null
+++ b/prebuilts/gradle/Notifications/screenshots/bottom-aligned.png
Binary files differ
diff --git a/prebuilts/gradle/Notifications/screenshots/bundle.png b/prebuilts/gradle/Notifications/screenshots/bundle.png
new file mode 100644
index 0000000..a6e1ad5
--- /dev/null
+++ b/prebuilts/gradle/Notifications/screenshots/bundle.png
Binary files differ
diff --git a/prebuilts/gradle/Notifications/screenshots/companion-bottom-aligned.png b/prebuilts/gradle/Notifications/screenshots/companion-bottom-aligned.png
new file mode 100644
index 0000000..2bda56c
--- /dev/null
+++ b/prebuilts/gradle/Notifications/screenshots/companion-bottom-aligned.png
Binary files differ
diff --git a/prebuilts/gradle/Notifications/screenshots/companion-bundle.png b/prebuilts/gradle/Notifications/screenshots/companion-bundle.png
new file mode 100644
index 0000000..90e0e08
--- /dev/null
+++ b/prebuilts/gradle/Notifications/screenshots/companion-bundle.png
Binary files differ
diff --git a/prebuilts/gradle/Notifications/screenshots/companion-content-action.png b/prebuilts/gradle/Notifications/screenshots/companion-content-action.png
new file mode 100644
index 0000000..07e6806
--- /dev/null
+++ b/prebuilts/gradle/Notifications/screenshots/companion-content-action.png
Binary files differ
diff --git a/prebuilts/gradle/Notifications/screenshots/companion-multiple-page.png b/prebuilts/gradle/Notifications/screenshots/companion-multiple-page.png
new file mode 100644
index 0000000..7f11521
--- /dev/null
+++ b/prebuilts/gradle/Notifications/screenshots/companion-multiple-page.png
Binary files differ
diff --git a/prebuilts/gradle/Notifications/screenshots/content-action.png b/prebuilts/gradle/Notifications/screenshots/content-action.png
new file mode 100644
index 0000000..415dd9f
--- /dev/null
+++ b/prebuilts/gradle/Notifications/screenshots/content-action.png
Binary files differ
diff --git a/prebuilts/gradle/Notifications/screenshots/content-action2.png b/prebuilts/gradle/Notifications/screenshots/content-action2.png
new file mode 100644
index 0000000..7f01994
--- /dev/null
+++ b/prebuilts/gradle/Notifications/screenshots/content-action2.png
Binary files differ
diff --git a/prebuilts/gradle/Notifications/screenshots/content-icon-menu.png b/prebuilts/gradle/Notifications/screenshots/content-icon-menu.png
new file mode 100644
index 0000000..6c810ce
--- /dev/null
+++ b/prebuilts/gradle/Notifications/screenshots/content-icon-menu.png
Binary files differ
diff --git a/prebuilts/gradle/Notifications/screenshots/content-icon1.png b/prebuilts/gradle/Notifications/screenshots/content-icon1.png
new file mode 100644
index 0000000..f9d12da
--- /dev/null
+++ b/prebuilts/gradle/Notifications/screenshots/content-icon1.png
Binary files differ
diff --git a/prebuilts/gradle/Notifications/screenshots/content-icon2.png b/prebuilts/gradle/Notifications/screenshots/content-icon2.png
new file mode 100644
index 0000000..a36b734
--- /dev/null
+++ b/prebuilts/gradle/Notifications/screenshots/content-icon2.png
Binary files differ
diff --git a/prebuilts/gradle/Notifications/screenshots/content-icon3.png b/prebuilts/gradle/Notifications/screenshots/content-icon3.png
new file mode 100644
index 0000000..e2c757e
--- /dev/null
+++ b/prebuilts/gradle/Notifications/screenshots/content-icon3.png
Binary files differ
diff --git a/prebuilts/gradle/Notifications/screenshots/content-icon4.png b/prebuilts/gradle/Notifications/screenshots/content-icon4.png
new file mode 100644
index 0000000..f5d0523
--- /dev/null
+++ b/prebuilts/gradle/Notifications/screenshots/content-icon4.png
Binary files differ
diff --git a/prebuilts/gradle/Notifications/screenshots/display-intent-menu.png b/prebuilts/gradle/Notifications/screenshots/display-intent-menu.png
new file mode 100644
index 0000000..567673f
--- /dev/null
+++ b/prebuilts/gradle/Notifications/screenshots/display-intent-menu.png
Binary files differ
diff --git a/prebuilts/gradle/Notifications/screenshots/display-intent.png b/prebuilts/gradle/Notifications/screenshots/display-intent.png
new file mode 100644
index 0000000..f3b333d
--- /dev/null
+++ b/prebuilts/gradle/Notifications/screenshots/display-intent.png
Binary files differ
diff --git a/prebuilts/gradle/Notifications/screenshots/multiple-page1.png b/prebuilts/gradle/Notifications/screenshots/multiple-page1.png
new file mode 100644
index 0000000..d6591d9
--- /dev/null
+++ b/prebuilts/gradle/Notifications/screenshots/multiple-page1.png
Binary files differ
diff --git a/prebuilts/gradle/Notifications/screenshots/multiple-page2.png b/prebuilts/gradle/Notifications/screenshots/multiple-page2.png
new file mode 100644
index 0000000..730cb30
--- /dev/null
+++ b/prebuilts/gradle/Notifications/screenshots/multiple-page2.png
Binary files differ
diff --git a/prebuilts/gradle/Notifications/screenshots/stylized-menu.png b/prebuilts/gradle/Notifications/screenshots/stylized-menu.png
new file mode 100644
index 0000000..2e94c93
--- /dev/null
+++ b/prebuilts/gradle/Notifications/screenshots/stylized-menu.png
Binary files differ
diff --git a/prebuilts/gradle/Notifications/screenshots/stylized.png b/prebuilts/gradle/Notifications/screenshots/stylized.png
new file mode 100644
index 0000000..338c9cc
--- /dev/null
+++ b/prebuilts/gradle/Notifications/screenshots/stylized.png
Binary files differ
diff --git a/prebuilts/gradle/Notifications/settings.gradle b/prebuilts/gradle/Notifications/settings.gradle
index 8522c57..19d00ac 100644
--- a/prebuilts/gradle/Notifications/settings.gradle
+++ b/prebuilts/gradle/Notifications/settings.gradle
@@ -1 +1 @@
-include ':Application', ':Wearable', ':Shared'
+include ':Application', ':Wearable'
diff --git a/prebuilts/gradle/Quiz/Application/build.gradle b/prebuilts/gradle/Quiz/Application/build.gradle
index 41fc623..0c6e001 100644
--- a/prebuilts/gradle/Quiz/Application/build.gradle
+++ b/prebuilts/gradle/Quiz/Application/build.gradle
@@ -16,7 +16,6 @@
 
     compile 'com.google.android.gms:play-services:5.0.+'
     compile 'com.android.support:support-v13:20.0.+'
-    compile project(':Shared')
     wearApp project(':Wearable')
 
 }
diff --git a/prebuilts/gradle/Quiz/Application/src/main/AndroidManifest.xml b/prebuilts/gradle/Quiz/Application/src/main/AndroidManifest.xml
index 40e3602..0d14a71 100644
--- a/prebuilts/gradle/Quiz/Application/src/main/AndroidManifest.xml
+++ b/prebuilts/gradle/Quiz/Application/src/main/AndroidManifest.xml
@@ -15,10 +15,10 @@
 -->
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-        package="com.example.android.quiz" >
+        package="com.example.android.wearable.quiz" >
 
-    <uses-sdk android:minSdkVersion="19"
-              android:targetSdkVersion="19" />
+    <uses-sdk android:minSdkVersion="18"
+              android:targetSdkVersion="20" />
 
     <application
             android:allowBackup="true"
@@ -29,7 +29,7 @@
                    android:value="@integer/google_play_services_version" />
 
         <activity
-                android:name="com.example.android.quiz.MainActivity"
+                android:name="com.example.android.wearable.quiz.MainActivity"
                 android:label="@string/app_name"
                 android:windowSoftInputMode="stateHidden"
                 android:configChanges="keyboardHidden|orientation|screenSize"  >
diff --git a/prebuilts/gradle/Quiz/Application/src/main/java/com/example/android/common/activities/SampleActivityBase.java b/prebuilts/gradle/Quiz/Application/src/main/java/com/example/android/common/activities/SampleActivityBase.java
deleted file mode 100644
index 3228927..0000000
--- a/prebuilts/gradle/Quiz/Application/src/main/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/prebuilts/gradle/Quiz/Application/src/main/java/com/example/android/common/logger/Log.java b/prebuilts/gradle/Quiz/Application/src/main/java/com/example/android/common/logger/Log.java
deleted file mode 100644
index 17503c5..0000000
--- a/prebuilts/gradle/Quiz/Application/src/main/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/prebuilts/gradle/Quiz/Application/src/main/java/com/example/android/common/logger/LogFragment.java b/prebuilts/gradle/Quiz/Application/src/main/java/com/example/android/common/logger/LogFragment.java
deleted file mode 100644
index b302acd..0000000
--- a/prebuilts/gradle/Quiz/Application/src/main/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/prebuilts/gradle/Quiz/Application/src/main/java/com/example/android/common/logger/LogNode.java b/prebuilts/gradle/Quiz/Application/src/main/java/com/example/android/common/logger/LogNode.java
deleted file mode 100644
index bc37cab..0000000
--- a/prebuilts/gradle/Quiz/Application/src/main/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/prebuilts/gradle/Quiz/Application/src/main/java/com/example/android/common/logger/LogView.java b/prebuilts/gradle/Quiz/Application/src/main/java/com/example/android/common/logger/LogView.java
deleted file mode 100644
index c01542b..0000000
--- a/prebuilts/gradle/Quiz/Application/src/main/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/prebuilts/gradle/Quiz/Application/src/main/java/com/example/android/common/logger/LogWrapper.java b/prebuilts/gradle/Quiz/Application/src/main/java/com/example/android/common/logger/LogWrapper.java
deleted file mode 100644
index 16a9e7b..0000000
--- a/prebuilts/gradle/Quiz/Application/src/main/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/prebuilts/gradle/Quiz/Application/src/main/java/com/example/android/common/logger/MessageOnlyLogFilter.java b/prebuilts/gradle/Quiz/Application/src/main/java/com/example/android/common/logger/MessageOnlyLogFilter.java
deleted file mode 100644
index 19967dc..0000000
--- a/prebuilts/gradle/Quiz/Application/src/main/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/prebuilts/gradle/Quiz/Application/src/main/java/com/example/android/quiz/Constants.java b/prebuilts/gradle/Quiz/Application/src/main/java/com/example/android/wearable/quiz/Constants.java
similarity index 97%
rename from prebuilts/gradle/Quiz/Application/src/main/java/com/example/android/quiz/Constants.java
rename to prebuilts/gradle/Quiz/Application/src/main/java/com/example/android/wearable/quiz/Constants.java
index ea5c56b..2bcfe5f 100644
--- a/prebuilts/gradle/Quiz/Application/src/main/java/com/example/android/quiz/Constants.java
+++ b/prebuilts/gradle/Quiz/Application/src/main/java/com/example/android/wearable/quiz/Constants.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.quiz;
+package com.example.android.wearable.quiz;
 
 /** Constants used in the companion app. */
 public final class Constants {
diff --git a/prebuilts/gradle/Quiz/Application/src/main/java/com/example/android/quiz/JsonUtils.java b/prebuilts/gradle/Quiz/Application/src/main/java/com/example/android/wearable/quiz/JsonUtils.java
similarity index 97%
rename from prebuilts/gradle/Quiz/Application/src/main/java/com/example/android/quiz/JsonUtils.java
rename to prebuilts/gradle/Quiz/Application/src/main/java/com/example/android/wearable/quiz/JsonUtils.java
index a0f98c1..df8c899 100644
--- a/prebuilts/gradle/Quiz/Application/src/main/java/com/example/android/quiz/JsonUtils.java
+++ b/prebuilts/gradle/Quiz/Application/src/main/java/com/example/android/wearable/quiz/JsonUtils.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.quiz;
+package com.example.android.wearable.quiz;
 
 import android.content.Context;
 
diff --git a/prebuilts/gradle/Quiz/Application/src/main/java/com/example/android/quiz/MainActivity.java b/prebuilts/gradle/Quiz/Application/src/main/java/com/example/android/wearable/quiz/MainActivity.java
similarity index 95%
rename from prebuilts/gradle/Quiz/Application/src/main/java/com/example/android/quiz/MainActivity.java
rename to prebuilts/gradle/Quiz/Application/src/main/java/com/example/android/wearable/quiz/MainActivity.java
index ab8e3b4..0ff41f4 100644
--- a/prebuilts/gradle/Quiz/Application/src/main/java/com/example/android/quiz/MainActivity.java
+++ b/prebuilts/gradle/Quiz/Application/src/main/java/com/example/android/wearable/quiz/MainActivity.java
@@ -14,21 +14,21 @@
  * limitations under the License.
  */
 
-package com.example.android.quiz;
+package com.example.android.wearable.quiz;
 
-import static com.example.android.quiz.Constants.ANSWERS;
-import static com.example.android.quiz.Constants.CHOSEN_ANSWER_CORRECT;
-import static com.example.android.quiz.Constants.CORRECT_ANSWER_INDEX;
-import static com.example.android.quiz.Constants.NUM_CORRECT;
-import static com.example.android.quiz.Constants.NUM_INCORRECT;
-import static com.example.android.quiz.Constants.NUM_SKIPPED;
-import static com.example.android.quiz.Constants.QUESTION;
-import static com.example.android.quiz.Constants.QUESTION_INDEX;
-import static com.example.android.quiz.Constants.QUESTION_WAS_ANSWERED;
-import static com.example.android.quiz.Constants.QUESTION_WAS_DELETED;
-import static com.example.android.quiz.Constants.QUIZ_ENDED_PATH;
-import static com.example.android.quiz.Constants.QUIZ_EXITED_PATH;
-import static com.example.android.quiz.Constants.RESET_QUIZ_PATH;
+import static com.example.android.wearable.quiz.Constants.ANSWERS;
+import static com.example.android.wearable.quiz.Constants.CHOSEN_ANSWER_CORRECT;
+import static com.example.android.wearable.quiz.Constants.CORRECT_ANSWER_INDEX;
+import static com.example.android.wearable.quiz.Constants.NUM_CORRECT;
+import static com.example.android.wearable.quiz.Constants.NUM_INCORRECT;
+import static com.example.android.wearable.quiz.Constants.NUM_SKIPPED;
+import static com.example.android.wearable.quiz.Constants.QUESTION;
+import static com.example.android.wearable.quiz.Constants.QUESTION_INDEX;
+import static com.example.android.wearable.quiz.Constants.QUESTION_WAS_ANSWERED;
+import static com.example.android.wearable.quiz.Constants.QUESTION_WAS_DELETED;
+import static com.example.android.wearable.quiz.Constants.QUIZ_ENDED_PATH;
+import static com.example.android.wearable.quiz.Constants.QUIZ_EXITED_PATH;
+import static com.example.android.wearable.quiz.Constants.RESET_QUIZ_PATH;
 
 import android.app.Activity;
 import android.graphics.Color;
diff --git a/prebuilts/gradle/Quiz/README-wear.txt b/prebuilts/gradle/Quiz/README-wear.txt
deleted file mode 100644
index 17523d7..0000000
--- a/prebuilts/gradle/Quiz/README-wear.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-<#--
-        Copyright 2014 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.
--->
-
-Steps to use Wear template on top of an existing sample:
-- In template-params.xml.ftl:
-    - Add the following template:
-        <template src="Wear"/>
-
-- Refresh your project (./gradlew refresh)
-- Add Wearable-specific code to Wearable directory
-- Add code to be shared among the main application and the wearable to Shared
-  directory
-
-Note that you still need the main application sample code. This is usually
-achieved by adding another template, like "base" for example.
-
-
diff --git a/prebuilts/gradle/Quiz/Shared/build.gradle b/prebuilts/gradle/Quiz/Shared/build.gradle
deleted file mode 100644
index e6ddb59..0000000
--- a/prebuilts/gradle/Quiz/Shared/build.gradle
+++ /dev/null
@@ -1,35 +0,0 @@
-buildscript {
-    repositories {
-        mavenCentral()
-    }
-
-    dependencies {
-        classpath 'com.android.tools.build:gradle:0.12.+'
-    }
-}
-
-apply plugin: 'android-library'
-
-// The sample build uses multiple directories to
-// keep boilerplate and common code separate from
-// the main sample code.
-List<String> dirs = [
-    'main',     // main sample code; look here for the interesting stuff.
-    'common',   // components that are reused by multiple samples
-    'template'] // boilerplate code that is generated by the sample template process
-
-android {
-    compileSdkVersion 20
-
-    buildToolsVersion '20'
-
-    sourceSets {
-        main {
-            dirs.each { dir ->
-                java.srcDirs "src/${dir}/java"
-                res.srcDirs "src/${dir}/res"
-            }
-        }
-
-    }
-}
diff --git a/prebuilts/gradle/Quiz/Shared/src/main/AndroidManifest.xml b/prebuilts/gradle/Quiz/Shared/src/main/AndroidManifest.xml
deleted file mode 100644
index 0d7b8a6..0000000
--- a/prebuilts/gradle/Quiz/Shared/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- 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.
--->
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.example.android.quiz.common">
-
-    <application android:allowBackup="true"
-        android:label="@string/app_name">
-    </application>
-
-</manifest>
diff --git a/prebuilts/gradle/Quiz/Shared/src/main/res/values/strings.xml b/prebuilts/gradle/Quiz/Shared/src/main/res/values/strings.xml
deleted file mode 100644
index 0f2bb90..0000000
--- a/prebuilts/gradle/Quiz/Shared/src/main/res/values/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2014 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.
--->
-<resources>
-    <string name="app_name">Shared</string>
-</resources>
diff --git a/prebuilts/gradle/Quiz/Wearable/build.gradle b/prebuilts/gradle/Quiz/Wearable/build.gradle
index b8151b1..864b2fd 100644
--- a/prebuilts/gradle/Quiz/Wearable/build.gradle
+++ b/prebuilts/gradle/Quiz/Wearable/build.gradle
@@ -16,7 +16,6 @@
     compile 'com.google.android.gms:play-services-wearable:5.0.+'
     compile 'com.android.support:support-v13:20.0.+'
     compile 'com.google.android.support:wearable:1.0.+'
-    compile project(':Shared')
 }
 
 // The sample build uses multiple directories to
diff --git a/prebuilts/gradle/Quiz/Wearable/src/main/AndroidManifest.xml b/prebuilts/gradle/Quiz/Wearable/src/main/AndroidManifest.xml
index 7954e32..fd20def 100644
--- a/prebuilts/gradle/Quiz/Wearable/src/main/AndroidManifest.xml
+++ b/prebuilts/gradle/Quiz/Wearable/src/main/AndroidManifest.xml
@@ -15,7 +15,7 @@
 -->
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.example.android.quiz" >
+    package="com.example.android.wearable.quiz" >
 
 
     <uses-sdk android:minSdkVersion="20"
diff --git a/prebuilts/gradle/Quiz/Wearable/src/main/java/com/example/android/quiz/Constants.java b/prebuilts/gradle/Quiz/Wearable/src/main/java/com/example/android/wearable/quiz/Constants.java
similarity index 97%
rename from prebuilts/gradle/Quiz/Wearable/src/main/java/com/example/android/quiz/Constants.java
rename to prebuilts/gradle/Quiz/Wearable/src/main/java/com/example/android/wearable/quiz/Constants.java
index 8218ad9..8b81f59 100644
--- a/prebuilts/gradle/Quiz/Wearable/src/main/java/com/example/android/quiz/Constants.java
+++ b/prebuilts/gradle/Quiz/Wearable/src/main/java/com/example/android/wearable/quiz/Constants.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.quiz;
+package com.example.android.wearable.quiz;
 
 /** Constants used in the wearable app. */
 public final class Constants {
diff --git a/prebuilts/gradle/Quiz/Wearable/src/main/java/com/example/android/quiz/DeleteQuestionService.java b/prebuilts/gradle/Quiz/Wearable/src/main/java/com/example/android/wearable/quiz/DeleteQuestionService.java
similarity index 93%
rename from prebuilts/gradle/Quiz/Wearable/src/main/java/com/example/android/quiz/DeleteQuestionService.java
rename to prebuilts/gradle/Quiz/Wearable/src/main/java/com/example/android/wearable/quiz/DeleteQuestionService.java
index 38b5e4a..78e81ca 100644
--- a/prebuilts/gradle/Quiz/Wearable/src/main/java/com/example/android/quiz/DeleteQuestionService.java
+++ b/prebuilts/gradle/Quiz/Wearable/src/main/java/com/example/android/wearable/quiz/DeleteQuestionService.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.quiz;
+package com.example.android.wearable.quiz;
 
 import android.app.IntentService;
 import android.content.Intent;
@@ -33,8 +33,8 @@
 
 import java.util.concurrent.TimeUnit;
 
-import static com.example.android.quiz.Constants.CONNECT_TIMEOUT_MS;
-import static com.example.android.quiz.Constants.QUESTION_WAS_DELETED;
+import static com.example.android.wearable.quiz.Constants.CONNECT_TIMEOUT_MS;
+import static com.example.android.wearable.quiz.Constants.QUESTION_WAS_DELETED;
 
 /**
  * Used to update quiz status on the phone when user dismisses a question on the watch.
diff --git a/prebuilts/gradle/Quiz/Wearable/src/main/java/com/example/android/quiz/QuizListenerService.java b/prebuilts/gradle/Quiz/Wearable/src/main/java/com/example/android/wearable/quiz/QuizListenerService.java
similarity index 91%
rename from prebuilts/gradle/Quiz/Wearable/src/main/java/com/example/android/quiz/QuizListenerService.java
rename to prebuilts/gradle/Quiz/Wearable/src/main/java/com/example/android/wearable/quiz/QuizListenerService.java
index 3226f9b..020a37b 100644
--- a/prebuilts/gradle/Quiz/Wearable/src/main/java/com/example/android/quiz/QuizListenerService.java
+++ b/prebuilts/gradle/Quiz/Wearable/src/main/java/com/example/android/wearable/quiz/QuizListenerService.java
@@ -14,20 +14,20 @@
  * limitations under the License.
  */
 
-package com.example.android.quiz;
+package com.example.android.wearable.quiz;
 
-import static com.example.android.quiz.Constants.ANSWERS;
-import static com.example.android.quiz.Constants.CONNECT_TIMEOUT_MS;
-import static com.example.android.quiz.Constants.CORRECT_ANSWER_INDEX;
-import static com.example.android.quiz.Constants.NUM_CORRECT;
-import static com.example.android.quiz.Constants.NUM_INCORRECT;
-import static com.example.android.quiz.Constants.NUM_SKIPPED;
-import static com.example.android.quiz.Constants.QUESTION;
-import static com.example.android.quiz.Constants.QUESTION_INDEX;
-import static com.example.android.quiz.Constants.QUESTION_WAS_ANSWERED;
-import static com.example.android.quiz.Constants.QUESTION_WAS_DELETED;
-import static com.example.android.quiz.Constants.QUIZ_ENDED_PATH;
-import static com.example.android.quiz.Constants.QUIZ_EXITED_PATH;
+import static com.example.android.wearable.quiz.Constants.ANSWERS;
+import static com.example.android.wearable.quiz.Constants.CONNECT_TIMEOUT_MS;
+import static com.example.android.wearable.quiz.Constants.CORRECT_ANSWER_INDEX;
+import static com.example.android.wearable.quiz.Constants.NUM_CORRECT;
+import static com.example.android.wearable.quiz.Constants.NUM_INCORRECT;
+import static com.example.android.wearable.quiz.Constants.NUM_SKIPPED;
+import static com.example.android.wearable.quiz.Constants.QUESTION;
+import static com.example.android.wearable.quiz.Constants.QUESTION_INDEX;
+import static com.example.android.wearable.quiz.Constants.QUESTION_WAS_ANSWERED;
+import static com.example.android.wearable.quiz.Constants.QUESTION_WAS_DELETED;
+import static com.example.android.wearable.quiz.Constants.QUIZ_ENDED_PATH;
+import static com.example.android.wearable.quiz.Constants.QUIZ_EXITED_PATH;
 
 import android.app.Notification;
 import android.app.NotificationManager;
diff --git a/prebuilts/gradle/Quiz/Wearable/src/main/java/com/example/android/quiz/QuizReportActionService.java b/prebuilts/gradle/Quiz/Wearable/src/main/java/com/example/android/wearable/quiz/QuizReportActionService.java
similarity index 90%
rename from prebuilts/gradle/Quiz/Wearable/src/main/java/com/example/android/quiz/QuizReportActionService.java
rename to prebuilts/gradle/Quiz/Wearable/src/main/java/com/example/android/wearable/quiz/QuizReportActionService.java
index 4ca55be..956bdaf 100644
--- a/prebuilts/gradle/Quiz/Wearable/src/main/java/com/example/android/quiz/QuizReportActionService.java
+++ b/prebuilts/gradle/Quiz/Wearable/src/main/java/com/example/android/wearable/quiz/QuizReportActionService.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.quiz;
+package com.example.android.wearable.quiz;
 
 import android.app.IntentService;
 import android.content.Intent;
@@ -28,15 +28,15 @@
 
 import java.util.concurrent.TimeUnit;
 
-import static com.example.android.quiz.Constants.CONNECT_TIMEOUT_MS;
-import static com.example.android.quiz.Constants.RESET_QUIZ_PATH;
+import static com.example.android.wearable.quiz.Constants.CONNECT_TIMEOUT_MS;
+import static com.example.android.wearable.quiz.Constants.RESET_QUIZ_PATH;
 
 /**
  * Service to reset the quiz (by sending a message to the phone) when the Reset Quiz
  * action on the Quiz Report is selected.
  */
 public class QuizReportActionService extends IntentService {
-    public static final String ACTION_RESET_QUIZ = "com.example.android.quiz.RESET_QUIZ";
+    public static final String ACTION_RESET_QUIZ = "com.example.android.wearable.quiz.RESET_QUIZ";
 
     private static final String TAG = "QuizReportActionReceiver";
 
diff --git a/prebuilts/gradle/Quiz/Wearable/src/main/java/com/example/android/quiz/UpdateQuestionService.java b/prebuilts/gradle/Quiz/Wearable/src/main/java/com/example/android/wearable/quiz/UpdateQuestionService.java
similarity index 93%
rename from prebuilts/gradle/Quiz/Wearable/src/main/java/com/example/android/quiz/UpdateQuestionService.java
rename to prebuilts/gradle/Quiz/Wearable/src/main/java/com/example/android/wearable/quiz/UpdateQuestionService.java
index 671ecad..e06c303 100644
--- a/prebuilts/gradle/Quiz/Wearable/src/main/java/com/example/android/quiz/UpdateQuestionService.java
+++ b/prebuilts/gradle/Quiz/Wearable/src/main/java/com/example/android/wearable/quiz/UpdateQuestionService.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.quiz;
+package com.example.android.wearable.quiz;
 
 import android.app.IntentService;
 import android.app.NotificationManager;
@@ -34,9 +34,9 @@
 
 import java.util.concurrent.TimeUnit;
 
-import static com.example.android.quiz.Constants.CHOSEN_ANSWER_CORRECT;
-import static com.example.android.quiz.Constants.QUESTION_INDEX;
-import static com.example.android.quiz.Constants.QUESTION_WAS_ANSWERED;
+import static com.example.android.wearable.quiz.Constants.CHOSEN_ANSWER_CORRECT;
+import static com.example.android.wearable.quiz.Constants.QUESTION_INDEX;
+import static com.example.android.wearable.quiz.Constants.QUESTION_WAS_ANSWERED;
 
 /**
  * Updates quiz status on the phone when user selects an answer to a question on the watch.
diff --git a/prebuilts/gradle/Quiz/screenshots/companion_quiz.png b/prebuilts/gradle/Quiz/screenshots/companion_quiz.png
new file mode 100644
index 0000000..15f7e80
--- /dev/null
+++ b/prebuilts/gradle/Quiz/screenshots/companion_quiz.png
Binary files differ
diff --git a/prebuilts/gradle/Quiz/screenshots/companion_quiz_correct_status.png b/prebuilts/gradle/Quiz/screenshots/companion_quiz_correct_status.png
new file mode 100644
index 0000000..c0e25ca
--- /dev/null
+++ b/prebuilts/gradle/Quiz/screenshots/companion_quiz_correct_status.png
Binary files differ
diff --git a/prebuilts/gradle/Quiz/screenshots/wearable_quiz.png b/prebuilts/gradle/Quiz/screenshots/wearable_quiz.png
new file mode 100644
index 0000000..0c63139
--- /dev/null
+++ b/prebuilts/gradle/Quiz/screenshots/wearable_quiz.png
Binary files differ
diff --git a/prebuilts/gradle/Quiz/screenshots/wearable_quiz_answer.png b/prebuilts/gradle/Quiz/screenshots/wearable_quiz_answer.png
new file mode 100644
index 0000000..eb47516
--- /dev/null
+++ b/prebuilts/gradle/Quiz/screenshots/wearable_quiz_answer.png
Binary files differ
diff --git a/prebuilts/gradle/Quiz/screenshots/wearable_quiz_report.png b/prebuilts/gradle/Quiz/screenshots/wearable_quiz_report.png
new file mode 100644
index 0000000..196d045
--- /dev/null
+++ b/prebuilts/gradle/Quiz/screenshots/wearable_quiz_report.png
Binary files differ
diff --git a/prebuilts/gradle/Quiz/settings.gradle b/prebuilts/gradle/Quiz/settings.gradle
index 8522c57..19d00ac 100644
--- a/prebuilts/gradle/Quiz/settings.gradle
+++ b/prebuilts/gradle/Quiz/settings.gradle
@@ -1 +1 @@
-include ':Application', ':Wearable', ':Shared'
+include ':Application', ':Wearable'
diff --git a/prebuilts/gradle/RecipeAssistant/Application/build.gradle b/prebuilts/gradle/RecipeAssistant/Application/build.gradle
index c50e592..75a4852 100644
--- a/prebuilts/gradle/RecipeAssistant/Application/build.gradle
+++ b/prebuilts/gradle/RecipeAssistant/Application/build.gradle
@@ -13,7 +13,7 @@
 
 dependencies {
 
-    // Add the support lib that is appropriate for SDK 20
+    // Add the support lib that is appropriate for SDK 18
     compile "com.android.support:support-v13:20.+"
 
 
diff --git a/prebuilts/gradle/RecipeAssistant/Application/src/main/AndroidManifest.xml b/prebuilts/gradle/RecipeAssistant/Application/src/main/AndroidManifest.xml
index db13ed9..a9199ed 100644
--- a/prebuilts/gradle/RecipeAssistant/Application/src/main/AndroidManifest.xml
+++ b/prebuilts/gradle/RecipeAssistant/Application/src/main/AndroidManifest.xml
@@ -15,10 +15,10 @@
 -->
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.example.android.recipeassistant" >
+    package="com.example.android.wearable.recipeassistant" >
 
-    <uses-sdk android:minSdkVersion="19"
-              android:targetSdkVersion="19" />
+    <uses-sdk android:minSdkVersion="18"
+              android:targetSdkVersion="20" />
 
     <application
         android:allowBackup="true"
diff --git a/prebuilts/gradle/RecipeAssistant/Application/src/main/java/com/example/android/recipeassistant/AssetUtils.java b/prebuilts/gradle/RecipeAssistant/Application/src/main/java/com/example/android/wearable/recipeassistant/AssetUtils.java
similarity index 97%
rename from prebuilts/gradle/RecipeAssistant/Application/src/main/java/com/example/android/recipeassistant/AssetUtils.java
rename to prebuilts/gradle/RecipeAssistant/Application/src/main/java/com/example/android/wearable/recipeassistant/AssetUtils.java
index b9ad8d5..8753582 100644
--- a/prebuilts/gradle/RecipeAssistant/Application/src/main/java/com/example/android/recipeassistant/AssetUtils.java
+++ b/prebuilts/gradle/RecipeAssistant/Application/src/main/java/com/example/android/wearable/recipeassistant/AssetUtils.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.recipeassistant;
+package com.example.android.wearable.recipeassistant;
 
 import android.content.Context;
 import android.graphics.Bitmap;
diff --git a/prebuilts/gradle/RecipeAssistant/Application/src/main/java/com/example/android/recipeassistant/Constants.java b/prebuilts/gradle/RecipeAssistant/Application/src/main/java/com/example/android/wearable/recipeassistant/Constants.java
similarity index 92%
rename from prebuilts/gradle/RecipeAssistant/Application/src/main/java/com/example/android/recipeassistant/Constants.java
rename to prebuilts/gradle/RecipeAssistant/Application/src/main/java/com/example/android/wearable/recipeassistant/Constants.java
index e6d367d..fae49ee 100644
--- a/prebuilts/gradle/RecipeAssistant/Application/src/main/java/com/example/android/recipeassistant/Constants.java
+++ b/prebuilts/gradle/RecipeAssistant/Application/src/main/java/com/example/android/wearable/recipeassistant/Constants.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.recipeassistant;
+package com.example.android.wearable.recipeassistant;
 
 public final class Constants {
     private Constants() {
@@ -34,7 +34,7 @@
     public static final String RECIPE_FIELD_STEP_IMAGE = "step_image";
 
     static final String ACTION_START_COOKING =
-            "com.example.android.recipeassistant.START_COOKING";
+            "com.example.android.wearable.recipeassistant.START_COOKING";
     public static final String EXTRA_RECIPE = "recipe";
 
     public static final int NOTIFICATION_ID = 0;
diff --git a/prebuilts/gradle/RecipeAssistant/Application/src/main/java/com/example/android/recipeassistant/MainActivity.java b/prebuilts/gradle/RecipeAssistant/Application/src/main/java/com/example/android/wearable/recipeassistant/MainActivity.java
similarity index 96%
rename from prebuilts/gradle/RecipeAssistant/Application/src/main/java/com/example/android/recipeassistant/MainActivity.java
rename to prebuilts/gradle/RecipeAssistant/Application/src/main/java/com/example/android/wearable/recipeassistant/MainActivity.java
index 5738e2a..4cc860f 100644
--- a/prebuilts/gradle/RecipeAssistant/Application/src/main/java/com/example/android/recipeassistant/MainActivity.java
+++ b/prebuilts/gradle/RecipeAssistant/Application/src/main/java/com/example/android/wearable/recipeassistant/MainActivity.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.recipeassistant;
+package com.example.android.wearable.recipeassistant;
 
 import android.app.ListActivity;
 import android.content.Intent;
diff --git a/prebuilts/gradle/RecipeAssistant/Application/src/main/java/com/example/android/recipeassistant/Recipe.java b/prebuilts/gradle/RecipeAssistant/Application/src/main/java/com/example/android/wearable/recipeassistant/Recipe.java
similarity index 98%
rename from prebuilts/gradle/RecipeAssistant/Application/src/main/java/com/example/android/recipeassistant/Recipe.java
rename to prebuilts/gradle/RecipeAssistant/Application/src/main/java/com/example/android/wearable/recipeassistant/Recipe.java
index 3551907..e470c0f 100644
--- a/prebuilts/gradle/RecipeAssistant/Application/src/main/java/com/example/android/recipeassistant/Recipe.java
+++ b/prebuilts/gradle/RecipeAssistant/Application/src/main/java/com/example/android/wearable/recipeassistant/Recipe.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.recipeassistant;
+package com.example.android.wearable.recipeassistant;
 
 import android.content.Context;
 import android.os.Bundle;
diff --git a/prebuilts/gradle/RecipeAssistant/Application/src/main/java/com/example/android/recipeassistant/RecipeActivity.java b/prebuilts/gradle/RecipeAssistant/Application/src/main/java/com/example/android/wearable/recipeassistant/RecipeActivity.java
similarity index 98%
rename from prebuilts/gradle/RecipeAssistant/Application/src/main/java/com/example/android/recipeassistant/RecipeActivity.java
rename to prebuilts/gradle/RecipeAssistant/Application/src/main/java/com/example/android/wearable/recipeassistant/RecipeActivity.java
index 4b9d72d..cc7f034 100644
--- a/prebuilts/gradle/RecipeAssistant/Application/src/main/java/com/example/android/recipeassistant/RecipeActivity.java
+++ b/prebuilts/gradle/RecipeAssistant/Application/src/main/java/com/example/android/wearable/recipeassistant/RecipeActivity.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.recipeassistant;
+package com.example.android.wearable.recipeassistant;
 
 import android.app.Activity;
 import android.app.PendingIntent;
diff --git a/prebuilts/gradle/RecipeAssistant/Application/src/main/java/com/example/android/recipeassistant/RecipeListAdapter.java b/prebuilts/gradle/RecipeAssistant/Application/src/main/java/com/example/android/wearable/recipeassistant/RecipeListAdapter.java
similarity index 98%
rename from prebuilts/gradle/RecipeAssistant/Application/src/main/java/com/example/android/recipeassistant/RecipeListAdapter.java
rename to prebuilts/gradle/RecipeAssistant/Application/src/main/java/com/example/android/wearable/recipeassistant/RecipeListAdapter.java
index bc602a1..746603a 100644
--- a/prebuilts/gradle/RecipeAssistant/Application/src/main/java/com/example/android/recipeassistant/RecipeListAdapter.java
+++ b/prebuilts/gradle/RecipeAssistant/Application/src/main/java/com/example/android/wearable/recipeassistant/RecipeListAdapter.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.recipeassistant;
+package com.example.android.wearable.recipeassistant;
 
 import android.content.Context;
 import android.database.DataSetObserver;
diff --git a/prebuilts/gradle/RecipeAssistant/Application/src/main/java/com/example/android/recipeassistant/RecipeService.java b/prebuilts/gradle/RecipeAssistant/Application/src/main/java/com/example/android/wearable/recipeassistant/RecipeService.java
similarity index 98%
rename from prebuilts/gradle/RecipeAssistant/Application/src/main/java/com/example/android/recipeassistant/RecipeService.java
rename to prebuilts/gradle/RecipeAssistant/Application/src/main/java/com/example/android/wearable/recipeassistant/RecipeService.java
index 74bbfda..4abdf97 100644
--- a/prebuilts/gradle/RecipeAssistant/Application/src/main/java/com/example/android/recipeassistant/RecipeService.java
+++ b/prebuilts/gradle/RecipeAssistant/Application/src/main/java/com/example/android/wearable/recipeassistant/RecipeService.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.recipeassistant;
+package com.example.android.wearable.recipeassistant;
 
 import android.app.Notification;
 import android.app.Service;
diff --git a/prebuilts/gradle/RecipeAssistant/README-wear.txt b/prebuilts/gradle/RecipeAssistant/README-wear.txt
deleted file mode 100644
index 17523d7..0000000
--- a/prebuilts/gradle/RecipeAssistant/README-wear.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-<#--
-        Copyright 2014 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.
--->
-
-Steps to use Wear template on top of an existing sample:
-- In template-params.xml.ftl:
-    - Add the following template:
-        <template src="Wear"/>
-
-- Refresh your project (./gradlew refresh)
-- Add Wearable-specific code to Wearable directory
-- Add code to be shared among the main application and the wearable to Shared
-  directory
-
-Note that you still need the main application sample code. This is usually
-achieved by adding another template, like "base" for example.
-
-
diff --git a/prebuilts/gradle/RecipeAssistant/Shared/src/main/AndroidManifest.xml b/prebuilts/gradle/RecipeAssistant/Shared/src/main/AndroidManifest.xml
deleted file mode 100644
index 1951e26..0000000
--- a/prebuilts/gradle/RecipeAssistant/Shared/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- 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.
--->
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.example.android.recipeassistant.common">
-
-    <application android:allowBackup="true"
-        android:label="@string/app_name">
-    </application>
-
-</manifest>
diff --git a/prebuilts/gradle/RecipeAssistant/Shared/src/main/res/values/strings.xml b/prebuilts/gradle/RecipeAssistant/Shared/src/main/res/values/strings.xml
deleted file mode 100644
index 0f2bb90..0000000
--- a/prebuilts/gradle/RecipeAssistant/Shared/src/main/res/values/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2014 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.
--->
-<resources>
-    <string name="app_name">Shared</string>
-</resources>
diff --git a/prebuilts/gradle/RecipeAssistant/screenshots/guac_notification.png b/prebuilts/gradle/RecipeAssistant/screenshots/guac_notification.png
new file mode 100644
index 0000000..e041b11
--- /dev/null
+++ b/prebuilts/gradle/RecipeAssistant/screenshots/guac_notification.png
Binary files differ
diff --git a/prebuilts/gradle/RecipeAssistant/screenshots/guac_notification_step1.png b/prebuilts/gradle/RecipeAssistant/screenshots/guac_notification_step1.png
new file mode 100644
index 0000000..e0157ea
--- /dev/null
+++ b/prebuilts/gradle/RecipeAssistant/screenshots/guac_notification_step1.png
Binary files differ
diff --git a/prebuilts/gradle/RecipeAssistant/screenshots/recipe_assistant_guac.png b/prebuilts/gradle/RecipeAssistant/screenshots/recipe_assistant_guac.png
new file mode 100644
index 0000000..a34da6e
--- /dev/null
+++ b/prebuilts/gradle/RecipeAssistant/screenshots/recipe_assistant_guac.png
Binary files differ
diff --git a/prebuilts/gradle/SkeletonWearableApp/Application/build.gradle b/prebuilts/gradle/SkeletonWearableApp/Application/build.gradle
index 41fc623..0c6e001 100644
--- a/prebuilts/gradle/SkeletonWearableApp/Application/build.gradle
+++ b/prebuilts/gradle/SkeletonWearableApp/Application/build.gradle
@@ -16,7 +16,6 @@
 
     compile 'com.google.android.gms:play-services:5.0.+'
     compile 'com.android.support:support-v13:20.0.+'
-    compile project(':Shared')
     wearApp project(':Wearable')
 
 }
diff --git a/prebuilts/gradle/SkeletonWearableApp/Application/src/main/AndroidManifest.xml b/prebuilts/gradle/SkeletonWearableApp/Application/src/main/AndroidManifest.xml
index 7e19680..757c92e 100644
--- a/prebuilts/gradle/SkeletonWearableApp/Application/src/main/AndroidManifest.xml
+++ b/prebuilts/gradle/SkeletonWearableApp/Application/src/main/AndroidManifest.xml
@@ -16,10 +16,10 @@
 -->
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.example.android.skeletonwearableapp">
+    package="com.example.android.google.wearable.app">
 
-    <uses-sdk android:minSdkVersion="19"
-              android:targetSdkVersion="19" />
+    <uses-sdk android:minSdkVersion="18"
+              android:targetSdkVersion="20" />
 
     <application android:allowBackup="true"
         android:label="@string/app_name">
diff --git a/prebuilts/gradle/SkeletonWearableApp/Application/src/main/java/com/example/android/common/activities/SampleActivityBase.java b/prebuilts/gradle/SkeletonWearableApp/Application/src/main/java/com/example/android/common/activities/SampleActivityBase.java
deleted file mode 100644
index 3228927..0000000
--- a/prebuilts/gradle/SkeletonWearableApp/Application/src/main/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/prebuilts/gradle/SkeletonWearableApp/Application/src/main/java/com/example/android/common/logger/Log.java b/prebuilts/gradle/SkeletonWearableApp/Application/src/main/java/com/example/android/common/logger/Log.java
deleted file mode 100644
index 17503c5..0000000
--- a/prebuilts/gradle/SkeletonWearableApp/Application/src/main/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/prebuilts/gradle/SkeletonWearableApp/Application/src/main/java/com/example/android/common/logger/LogFragment.java b/prebuilts/gradle/SkeletonWearableApp/Application/src/main/java/com/example/android/common/logger/LogFragment.java
deleted file mode 100644
index b302acd..0000000
--- a/prebuilts/gradle/SkeletonWearableApp/Application/src/main/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/prebuilts/gradle/SkeletonWearableApp/Application/src/main/java/com/example/android/common/logger/LogNode.java b/prebuilts/gradle/SkeletonWearableApp/Application/src/main/java/com/example/android/common/logger/LogNode.java
deleted file mode 100644
index bc37cab..0000000
--- a/prebuilts/gradle/SkeletonWearableApp/Application/src/main/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/prebuilts/gradle/SkeletonWearableApp/Application/src/main/java/com/example/android/common/logger/LogView.java b/prebuilts/gradle/SkeletonWearableApp/Application/src/main/java/com/example/android/common/logger/LogView.java
deleted file mode 100644
index c01542b..0000000
--- a/prebuilts/gradle/SkeletonWearableApp/Application/src/main/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/prebuilts/gradle/SkeletonWearableApp/Application/src/main/java/com/example/android/common/logger/LogWrapper.java b/prebuilts/gradle/SkeletonWearableApp/Application/src/main/java/com/example/android/common/logger/LogWrapper.java
deleted file mode 100644
index 16a9e7b..0000000
--- a/prebuilts/gradle/SkeletonWearableApp/Application/src/main/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/prebuilts/gradle/SkeletonWearableApp/Application/src/main/java/com/example/android/common/logger/MessageOnlyLogFilter.java b/prebuilts/gradle/SkeletonWearableApp/Application/src/main/java/com/example/android/common/logger/MessageOnlyLogFilter.java
deleted file mode 100644
index 19967dc..0000000
--- a/prebuilts/gradle/SkeletonWearableApp/Application/src/main/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/prebuilts/gradle/SkeletonWearableApp/README-wear.txt b/prebuilts/gradle/SkeletonWearableApp/README-wear.txt
deleted file mode 100644
index 17523d7..0000000
--- a/prebuilts/gradle/SkeletonWearableApp/README-wear.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-<#--
-        Copyright 2014 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.
--->
-
-Steps to use Wear template on top of an existing sample:
-- In template-params.xml.ftl:
-    - Add the following template:
-        <template src="Wear"/>
-
-- Refresh your project (./gradlew refresh)
-- Add Wearable-specific code to Wearable directory
-- Add code to be shared among the main application and the wearable to Shared
-  directory
-
-Note that you still need the main application sample code. This is usually
-achieved by adding another template, like "base" for example.
-
-
diff --git a/prebuilts/gradle/SkeletonWearableApp/Shared/build.gradle b/prebuilts/gradle/SkeletonWearableApp/Shared/build.gradle
deleted file mode 100644
index e6ddb59..0000000
--- a/prebuilts/gradle/SkeletonWearableApp/Shared/build.gradle
+++ /dev/null
@@ -1,35 +0,0 @@
-buildscript {
-    repositories {
-        mavenCentral()
-    }
-
-    dependencies {
-        classpath 'com.android.tools.build:gradle:0.12.+'
-    }
-}
-
-apply plugin: 'android-library'
-
-// The sample build uses multiple directories to
-// keep boilerplate and common code separate from
-// the main sample code.
-List<String> dirs = [
-    'main',     // main sample code; look here for the interesting stuff.
-    'common',   // components that are reused by multiple samples
-    'template'] // boilerplate code that is generated by the sample template process
-
-android {
-    compileSdkVersion 20
-
-    buildToolsVersion '20'
-
-    sourceSets {
-        main {
-            dirs.each { dir ->
-                java.srcDirs "src/${dir}/java"
-                res.srcDirs "src/${dir}/res"
-            }
-        }
-
-    }
-}
diff --git a/prebuilts/gradle/SkeletonWearableApp/Shared/src/main/AndroidManifest.xml b/prebuilts/gradle/SkeletonWearableApp/Shared/src/main/AndroidManifest.xml
deleted file mode 100644
index 5e29d53..0000000
--- a/prebuilts/gradle/SkeletonWearableApp/Shared/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- 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.
--->
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.example.android.skeletonwearableapp.common">
-
-    <application android:allowBackup="true"
-        android:label="@string/app_name">
-    </application>
-
-</manifest>
diff --git a/prebuilts/gradle/SkeletonWearableApp/Shared/src/main/res/values/strings.xml b/prebuilts/gradle/SkeletonWearableApp/Shared/src/main/res/values/strings.xml
deleted file mode 100644
index 0f2bb90..0000000
--- a/prebuilts/gradle/SkeletonWearableApp/Shared/src/main/res/values/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2014 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.
--->
-<resources>
-    <string name="app_name">Shared</string>
-</resources>
diff --git a/prebuilts/gradle/SkeletonWearableApp/Wearable/build.gradle b/prebuilts/gradle/SkeletonWearableApp/Wearable/build.gradle
index b8151b1..864b2fd 100644
--- a/prebuilts/gradle/SkeletonWearableApp/Wearable/build.gradle
+++ b/prebuilts/gradle/SkeletonWearableApp/Wearable/build.gradle
@@ -16,7 +16,6 @@
     compile 'com.google.android.gms:play-services-wearable:5.0.+'
     compile 'com.android.support:support-v13:20.0.+'
     compile 'com.google.android.support:wearable:1.0.+'
-    compile project(':Shared')
 }
 
 // The sample build uses multiple directories to
diff --git a/prebuilts/gradle/SkeletonWearableApp/Wearable/src/main/AndroidManifest.xml b/prebuilts/gradle/SkeletonWearableApp/Wearable/src/main/AndroidManifest.xml
index 3e9310e..bf1c1a4 100644
--- a/prebuilts/gradle/SkeletonWearableApp/Wearable/src/main/AndroidManifest.xml
+++ b/prebuilts/gradle/SkeletonWearableApp/Wearable/src/main/AndroidManifest.xml
@@ -15,7 +15,7 @@
 -->
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-        package="com.example.android.skeletonwearableapp" >
+        package="com.example.android.google.wearable.app" >
 
     <uses-sdk android:minSdkVersion="20"
               android:targetSdkVersion="20" />
@@ -42,7 +42,7 @@
         <activity
             android:name=".GridExampleActivity">
             <intent-filter>
-                <action android:name="com.example.android.skeletonwearableapp.GRID_ACTIVITY"/>
+                <action android:name="com.example.android.google.wearable.app.GRID_ACTIVITY"/>
                 <category android:name="android.intent.category.DEFAULT"/>
             </intent-filter>
         </activity>
diff --git a/prebuilts/gradle/SkeletonWearableApp/Wearable/src/main/java/com/example/android/skeletonwearableapp/GridExampleActivity.java b/prebuilts/gradle/SkeletonWearableApp/Wearable/src/main/java/com/example/android/google/wearable/app/GridExampleActivity.java
similarity index 98%
rename from prebuilts/gradle/SkeletonWearableApp/Wearable/src/main/java/com/example/android/skeletonwearableapp/GridExampleActivity.java
rename to prebuilts/gradle/SkeletonWearableApp/Wearable/src/main/java/com/example/android/google/wearable/app/GridExampleActivity.java
index c0d0b2b..0a88c04 100644
--- a/prebuilts/gradle/SkeletonWearableApp/Wearable/src/main/java/com/example/android/skeletonwearableapp/GridExampleActivity.java
+++ b/prebuilts/gradle/SkeletonWearableApp/Wearable/src/main/java/com/example/android/google/wearable/app/GridExampleActivity.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.skeletonwearableapp;
+package com.example.android.google.wearable.app;
 
 import android.app.Activity;
 import android.app.Fragment;
diff --git a/prebuilts/gradle/SkeletonWearableApp/Wearable/src/main/java/com/example/android/skeletonwearableapp/MainActivity.java b/prebuilts/gradle/SkeletonWearableApp/Wearable/src/main/java/com/example/android/google/wearable/app/MainActivity.java
similarity index 98%
rename from prebuilts/gradle/SkeletonWearableApp/Wearable/src/main/java/com/example/android/skeletonwearableapp/MainActivity.java
rename to prebuilts/gradle/SkeletonWearableApp/Wearable/src/main/java/com/example/android/google/wearable/app/MainActivity.java
index b7a91e6..817e195 100644
--- a/prebuilts/gradle/SkeletonWearableApp/Wearable/src/main/java/com/example/android/skeletonwearableapp/MainActivity.java
+++ b/prebuilts/gradle/SkeletonWearableApp/Wearable/src/main/java/com/example/android/google/wearable/app/MainActivity.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.skeletonwearableapp;
+package com.example.android.google.wearable.app;
 
 import android.app.Activity;
 import android.app.Notification;
diff --git a/prebuilts/gradle/SkeletonWearableApp/screenshots/delayed_confirmation.png b/prebuilts/gradle/SkeletonWearableApp/screenshots/delayed_confirmation.png
new file mode 100644
index 0000000..2994361
--- /dev/null
+++ b/prebuilts/gradle/SkeletonWearableApp/screenshots/delayed_confirmation.png
Binary files differ
diff --git a/prebuilts/gradle/SkeletonWearableApp/screenshots/dismiss_overlay.png b/prebuilts/gradle/SkeletonWearableApp/screenshots/dismiss_overlay.png
new file mode 100644
index 0000000..142d7e4
--- /dev/null
+++ b/prebuilts/gradle/SkeletonWearableApp/screenshots/dismiss_overlay.png
Binary files differ
diff --git a/prebuilts/gradle/SkeletonWearableApp/screenshots/grid_view_pager.png b/prebuilts/gradle/SkeletonWearableApp/screenshots/grid_view_pager.png
new file mode 100644
index 0000000..f59c13d
--- /dev/null
+++ b/prebuilts/gradle/SkeletonWearableApp/screenshots/grid_view_pager.png
Binary files differ
diff --git a/prebuilts/gradle/SkeletonWearableApp/screenshots/skeleton_wearable_app.png b/prebuilts/gradle/SkeletonWearableApp/screenshots/skeleton_wearable_app.png
new file mode 100644
index 0000000..4f17274
--- /dev/null
+++ b/prebuilts/gradle/SkeletonWearableApp/screenshots/skeleton_wearable_app.png
Binary files differ
diff --git a/prebuilts/gradle/SkeletonWearableApp/settings.gradle b/prebuilts/gradle/SkeletonWearableApp/settings.gradle
index 8522c57..19d00ac 100644
--- a/prebuilts/gradle/SkeletonWearableApp/settings.gradle
+++ b/prebuilts/gradle/SkeletonWearableApp/settings.gradle
@@ -1 +1 @@
-include ':Application', ':Wearable', ':Shared'
+include ':Application', ':Wearable'
diff --git a/prebuilts/gradle/SpeedTracker/Application/src/main/AndroidManifest.xml b/prebuilts/gradle/SpeedTracker/Application/src/main/AndroidManifest.xml
index 3361a44..97db732 100644
--- a/prebuilts/gradle/SpeedTracker/Application/src/main/AndroidManifest.xml
+++ b/prebuilts/gradle/SpeedTracker/Application/src/main/AndroidManifest.xml
@@ -12,7 +12,7 @@
         android:glEsVersion="0x00020000" android:required="true"/>
     <uses-sdk
         android:minSdkVersion="18"
-        android:targetSdkVersion="19" />
+        android:targetSdkVersion="20" />
 
     <application
         android:name=".PhoneApplication"
diff --git a/prebuilts/gradle/SpeedTracker/Application/src/main/java/com/example/android/common/activities/SampleActivityBase.java b/prebuilts/gradle/SpeedTracker/Application/src/main/java/com/example/android/common/activities/SampleActivityBase.java
deleted file mode 100644
index 3228927..0000000
--- a/prebuilts/gradle/SpeedTracker/Application/src/main/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/prebuilts/gradle/SpeedTracker/Application/src/main/java/com/example/android/common/logger/Log.java b/prebuilts/gradle/SpeedTracker/Application/src/main/java/com/example/android/common/logger/Log.java
deleted file mode 100644
index 17503c5..0000000
--- a/prebuilts/gradle/SpeedTracker/Application/src/main/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/prebuilts/gradle/SpeedTracker/Application/src/main/java/com/example/android/common/logger/LogFragment.java b/prebuilts/gradle/SpeedTracker/Application/src/main/java/com/example/android/common/logger/LogFragment.java
deleted file mode 100644
index b302acd..0000000
--- a/prebuilts/gradle/SpeedTracker/Application/src/main/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/prebuilts/gradle/SpeedTracker/Application/src/main/java/com/example/android/common/logger/LogNode.java b/prebuilts/gradle/SpeedTracker/Application/src/main/java/com/example/android/common/logger/LogNode.java
deleted file mode 100644
index bc37cab..0000000
--- a/prebuilts/gradle/SpeedTracker/Application/src/main/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/prebuilts/gradle/SpeedTracker/Application/src/main/java/com/example/android/common/logger/LogView.java b/prebuilts/gradle/SpeedTracker/Application/src/main/java/com/example/android/common/logger/LogView.java
deleted file mode 100644
index c01542b..0000000
--- a/prebuilts/gradle/SpeedTracker/Application/src/main/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/prebuilts/gradle/SpeedTracker/Application/src/main/java/com/example/android/common/logger/LogWrapper.java b/prebuilts/gradle/SpeedTracker/Application/src/main/java/com/example/android/common/logger/LogWrapper.java
deleted file mode 100644
index 16a9e7b..0000000
--- a/prebuilts/gradle/SpeedTracker/Application/src/main/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/prebuilts/gradle/SpeedTracker/Application/src/main/java/com/example/android/common/logger/MessageOnlyLogFilter.java b/prebuilts/gradle/SpeedTracker/Application/src/main/java/com/example/android/common/logger/MessageOnlyLogFilter.java
deleted file mode 100644
index 19967dc..0000000
--- a/prebuilts/gradle/SpeedTracker/Application/src/main/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/prebuilts/gradle/SpeedTracker/README-wear.txt b/prebuilts/gradle/SpeedTracker/README-wear.txt
deleted file mode 100644
index 17523d7..0000000
--- a/prebuilts/gradle/SpeedTracker/README-wear.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-<#--
-        Copyright 2014 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.
--->
-
-Steps to use Wear template on top of an existing sample:
-- In template-params.xml.ftl:
-    - Add the following template:
-        <template src="Wear"/>
-
-- Refresh your project (./gradlew refresh)
-- Add Wearable-specific code to Wearable directory
-- Add code to be shared among the main application and the wearable to Shared
-  directory
-
-Note that you still need the main application sample code. This is usually
-achieved by adding another template, like "base" for example.
-
-
diff --git a/prebuilts/gradle/SynchronizedNotifications/Application/src/main/AndroidManifest.xml b/prebuilts/gradle/SynchronizedNotifications/Application/src/main/AndroidManifest.xml
index c46f772..9d7df72 100644
--- a/prebuilts/gradle/SynchronizedNotifications/Application/src/main/AndroidManifest.xml
+++ b/prebuilts/gradle/SynchronizedNotifications/Application/src/main/AndroidManifest.xml
@@ -18,12 +18,12 @@
 
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.example.android.synchronizednotifications"
+    package="com.example.android.wearable.synchronizednotifications"
     android:versionCode="1"
     android:versionName="1.0">
 
-    <uses-sdk android:minSdkVersion="19"
-        android:targetSdkVersion="19" />
+    <uses-sdk android:minSdkVersion="18"
+        android:targetSdkVersion="20" />
 
     <application android:allowBackup="true"
         android:label="@string/app_name"
@@ -47,7 +47,7 @@
             </intent-filter>
             <intent-filter>
                 <action
-                    android:name="com.example.android.wearable.synchronizednotifications.DISMISS" />
+                    android:name="com.example.android.wearable.wearable.synchronizednotifications.DISMISS" />
             </intent-filter>
         </service>
     </application>
diff --git a/prebuilts/gradle/SynchronizedNotifications/Application/src/main/java/com/example/android/synchronizednotifications/DismissListener.java b/prebuilts/gradle/SynchronizedNotifications/Application/src/main/java/com/example/android/wearable/synchronizednotifications/DismissListener.java
similarity index 96%
rename from prebuilts/gradle/SynchronizedNotifications/Application/src/main/java/com/example/android/synchronizednotifications/DismissListener.java
rename to prebuilts/gradle/SynchronizedNotifications/Application/src/main/java/com/example/android/wearable/synchronizednotifications/DismissListener.java
index 8648148..8d5cca4 100644
--- a/prebuilts/gradle/SynchronizedNotifications/Application/src/main/java/com/example/android/synchronizednotifications/DismissListener.java
+++ b/prebuilts/gradle/SynchronizedNotifications/Application/src/main/java/com/example/android/wearable/synchronizednotifications/DismissListener.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.synchronizednotifications;
+package com.example.android.wearable.synchronizednotifications;
 
 import static com.google.android.gms.wearable.PutDataRequest.WEAR_URI_SCHEME;
 
@@ -24,7 +24,7 @@
 import android.support.v4.app.NotificationManagerCompat;
 import android.util.Log;
 
-import com.example.android.synchronizednotifications.common.Constants;
+import com.example.android.wearable.synchronizednotifications.common.Constants;
 import com.google.android.gms.common.ConnectionResult;
 import com.google.android.gms.common.api.GoogleApiClient;
 import com.google.android.gms.common.api.ResultCallback;
diff --git a/prebuilts/gradle/SynchronizedNotifications/Application/src/main/java/com/example/android/synchronizednotifications/MainActivity.java b/prebuilts/gradle/SynchronizedNotifications/Application/src/main/java/com/example/android/wearable/synchronizednotifications/MainActivity.java
similarity index 97%
rename from prebuilts/gradle/SynchronizedNotifications/Application/src/main/java/com/example/android/synchronizednotifications/MainActivity.java
rename to prebuilts/gradle/SynchronizedNotifications/Application/src/main/java/com/example/android/wearable/synchronizednotifications/MainActivity.java
index 44b7ff7..9946430 100644
--- a/prebuilts/gradle/SynchronizedNotifications/Application/src/main/java/com/example/android/synchronizednotifications/MainActivity.java
+++ b/prebuilts/gradle/SynchronizedNotifications/Application/src/main/java/com/example/android/wearable/synchronizednotifications/MainActivity.java
@@ -14,7 +14,7 @@
 * limitations under the License.
 */
 
-package com.example.android.synchronizednotifications;
+package com.example.android.wearable.synchronizednotifications;
 
 import android.graphics.Color;
 import android.os.Bundle;
diff --git a/prebuilts/gradle/SynchronizedNotifications/Application/src/main/java/com/example/android/synchronizednotifications/SynchronizedNotificationsFragment.java b/prebuilts/gradle/SynchronizedNotifications/Application/src/main/java/com/example/android/wearable/synchronizednotifications/SynchronizedNotificationsFragment.java
similarity index 98%
rename from prebuilts/gradle/SynchronizedNotifications/Application/src/main/java/com/example/android/synchronizednotifications/SynchronizedNotificationsFragment.java
rename to prebuilts/gradle/SynchronizedNotifications/Application/src/main/java/com/example/android/wearable/synchronizednotifications/SynchronizedNotificationsFragment.java
index 537f816..240af9b 100644
--- a/prebuilts/gradle/SynchronizedNotifications/Application/src/main/java/com/example/android/synchronizednotifications/SynchronizedNotificationsFragment.java
+++ b/prebuilts/gradle/SynchronizedNotifications/Application/src/main/java/com/example/android/wearable/synchronizednotifications/SynchronizedNotificationsFragment.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.synchronizednotifications;
+package com.example.android.wearable.synchronizednotifications;
 
 import android.app.PendingIntent;
 import android.content.Intent;
@@ -31,7 +31,7 @@
 import android.view.ViewGroup;
 import android.widget.Toast;
 
-import com.example.android.synchronizednotifications.common.Constants;
+import com.example.android.wearable.synchronizednotifications.common.Constants;
 import com.google.android.gms.common.ConnectionResult;
 import com.google.android.gms.common.api.GoogleApiClient;
 import com.google.android.gms.common.api.ResultCallback;
diff --git a/prebuilts/gradle/SynchronizedNotifications/Application/tests/AndroidManifest.xml b/prebuilts/gradle/SynchronizedNotifications/Application/tests/AndroidManifest.xml
deleted file mode 100644
index 559ee23..0000000
--- a/prebuilts/gradle/SynchronizedNotifications/Application/tests/AndroidManifest.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  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 name must be unique so suffix with "tests" so package loader doesn't ignore us -->
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-          package="com.example.android.synchronizednotifications.tests"
-          android:versionCode="1"
-          android:versionName="1.0">
-
-    <uses-sdk
-            android:minSdkVersion="18"
-            android:targetSdkVersion="19" />
-
-    <!-- We add an application tag here just so that we can indicate that
-         this package needs to link against the android.test library,
-         which is needed when building test cases. -->
-    <application>
-        <uses-library android:name="android.test.runner" />
-    </application>
-
-    <!--
-    Specifies the instrumentation test runner used to run the tests.
-    -->
-    <instrumentation
-            android:name="android.test.InstrumentationTestRunner"
-            android:targetPackage="com.example.android.synchronizednotifications"
-            android:label="Tests for com.example.android.synchronizednotifications" />
-
-</manifest>
diff --git a/prebuilts/gradle/SynchronizedNotifications/Application/tests/src/com/example/android/synchronizednotifications/tests/SampleTests.java b/prebuilts/gradle/SynchronizedNotifications/Application/tests/src/com/example/android/synchronizednotifications/tests/SampleTests.java
deleted file mode 100644
index 7f8df42..0000000
--- a/prebuilts/gradle/SynchronizedNotifications/Application/tests/src/com/example/android/synchronizednotifications/tests/SampleTests.java
+++ /dev/null
@@ -1,57 +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.synchronizednotifications.tests;
-
-import com.example.android.synchronizednotifications.*;
-
-import android.test.ActivityInstrumentationTestCase2;
-
-/**
-* Tests for SynchronizedNotifications sample.
-*/
-public class SampleTests extends ActivityInstrumentationTestCase2<MainActivity> {
-
-    private MainActivity mTestActivity;
-    private SynchronizedNotificationsFragment mTestFragment;
-
-    public SampleTests() {
-        super(MainActivity.class);
-    }
-
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-
-        // Starts the activity under test using the default Intent with:
-        // action = {@link Intent#ACTION_MAIN}
-        // flags = {@link Intent#FLAG_ACTIVITY_NEW_TASK}
-        // All other fields are null or empty.
-        mTestActivity = getActivity();
-        mTestFragment = (SynchronizedNotificationsFragment)
-            mTestActivity.getSupportFragmentManager().getFragments().get(1);
-    }
-
-    /**
-    * Test if the test fixture has been set up correctly.
-    */
-    public void testPreconditions() {
-        //Try to add a message to add context to your assertions. These messages will be shown if
-        //a tests fails and make it easy to understand why a test failed
-        assertNotNull("mTestActivity is null", mTestActivity);
-        assertNotNull("mTestFragment is null", mTestFragment);
-    }
-
-}
diff --git a/prebuilts/gradle/SynchronizedNotifications/README-wear.txt b/prebuilts/gradle/SynchronizedNotifications/README-wear.txt
deleted file mode 100644
index 17523d7..0000000
--- a/prebuilts/gradle/SynchronizedNotifications/README-wear.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-<#--
-        Copyright 2014 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.
--->
-
-Steps to use Wear template on top of an existing sample:
-- In template-params.xml.ftl:
-    - Add the following template:
-        <template src="Wear"/>
-
-- Refresh your project (./gradlew refresh)
-- Add Wearable-specific code to Wearable directory
-- Add code to be shared among the main application and the wearable to Shared
-  directory
-
-Note that you still need the main application sample code. This is usually
-achieved by adding another template, like "base" for example.
-
-
diff --git a/prebuilts/gradle/SynchronizedNotifications/Shared/src/main/AndroidManifest.xml b/prebuilts/gradle/SynchronizedNotifications/Shared/src/main/AndroidManifest.xml
index 7235ace..5362fc7 100644
--- a/prebuilts/gradle/SynchronizedNotifications/Shared/src/main/AndroidManifest.xml
+++ b/prebuilts/gradle/SynchronizedNotifications/Shared/src/main/AndroidManifest.xml
@@ -16,7 +16,7 @@
 -->
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.example.android.synchronizednotifications.common">
+    package="com.example.android.wearable.synchronizednotifications.common">
 
     <application android:allowBackup="true"
         android:label="@string/app_name">
diff --git a/prebuilts/gradle/SynchronizedNotifications/Shared/src/main/java/com/example/android/synchronizednotifications/common/Constants.java b/prebuilts/gradle/SynchronizedNotifications/Shared/src/main/java/com/example/android/wearable/synchronizednotifications/common/Constants.java
similarity index 89%
rename from prebuilts/gradle/SynchronizedNotifications/Shared/src/main/java/com/example/android/synchronizednotifications/common/Constants.java
rename to prebuilts/gradle/SynchronizedNotifications/Shared/src/main/java/com/example/android/wearable/synchronizednotifications/common/Constants.java
index 5a45583..2e1d46c 100644
--- a/prebuilts/gradle/SynchronizedNotifications/Shared/src/main/java/com/example/android/synchronizednotifications/common/Constants.java
+++ b/prebuilts/gradle/SynchronizedNotifications/Shared/src/main/java/com/example/android/wearable/synchronizednotifications/common/Constants.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.example.android.synchronizednotifications.common;
+package com.example.android.wearable.synchronizednotifications.common;
 
 /**
  * Constants that are used in both the Application and the Wearable modules.
@@ -33,5 +33,5 @@
     public static final String KEY_CONTENT = "content";
 
     public static final String ACTION_DISMISS
-            = "com.example.android.synchronizednotifications.DISMISS";
+            = "com.example.android.wearable.synchronizednotifications.DISMISS";
 }
diff --git a/prebuilts/gradle/SynchronizedNotifications/Wearable/src/main/AndroidManifest.xml b/prebuilts/gradle/SynchronizedNotifications/Wearable/src/main/AndroidManifest.xml
index 97702ce..b8d5e85 100644
--- a/prebuilts/gradle/SynchronizedNotifications/Wearable/src/main/AndroidManifest.xml
+++ b/prebuilts/gradle/SynchronizedNotifications/Wearable/src/main/AndroidManifest.xml
@@ -17,7 +17,7 @@
 
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.example.android.synchronizednotifications">
+    package="com.example.android.wearable.synchronizednotifications">
 
     <uses-sdk android:minSdkVersion="20"
         android:targetSdkVersion="20" />
@@ -46,7 +46,7 @@
             </intent-filter>
             <intent-filter>
                 <action
-                    android:name="com.example.android.synchronizednotifications.DISMISS" />
+                    android:name="com.example.android.wearable.synchronizednotifications.DISMISS" />
             </intent-filter>
         </service>
 
diff --git a/prebuilts/gradle/SynchronizedNotifications/Wearable/src/main/java/com/example/android/synchronizednotifications/NotificationUpdateService.java b/prebuilts/gradle/SynchronizedNotifications/Wearable/src/main/java/com/example/android/wearable/synchronizednotifications/NotificationUpdateService.java
similarity index 97%
rename from prebuilts/gradle/SynchronizedNotifications/Wearable/src/main/java/com/example/android/synchronizednotifications/NotificationUpdateService.java
rename to prebuilts/gradle/SynchronizedNotifications/Wearable/src/main/java/com/example/android/wearable/synchronizednotifications/NotificationUpdateService.java
index b8963cd..8b46bf3 100644
--- a/prebuilts/gradle/SynchronizedNotifications/Wearable/src/main/java/com/example/android/synchronizednotifications/NotificationUpdateService.java
+++ b/prebuilts/gradle/SynchronizedNotifications/Wearable/src/main/java/com/example/android/wearable/synchronizednotifications/NotificationUpdateService.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.synchronizednotifications;
+package com.example.android.wearable.synchronizednotifications;
 
 import static com.google.android.gms.wearable.PutDataRequest.WEAR_URI_SCHEME;
 
@@ -26,7 +26,7 @@
 import android.os.Bundle;
 import android.util.Log;
 
-import com.example.android.synchronizednotifications.common.Constants;
+import com.example.android.wearable.synchronizednotifications.common.Constants;
 import com.google.android.gms.common.ConnectionResult;
 import com.google.android.gms.common.api.GoogleApiClient;
 import com.google.android.gms.common.api.ResultCallback;
diff --git a/prebuilts/gradle/SynchronizedNotifications/Wearable/src/main/java/com/example/android/synchronizednotifications/WearableActivity.java b/prebuilts/gradle/SynchronizedNotifications/Wearable/src/main/java/com/example/android/wearable/synchronizednotifications/WearableActivity.java
similarity index 93%
rename from prebuilts/gradle/SynchronizedNotifications/Wearable/src/main/java/com/example/android/synchronizednotifications/WearableActivity.java
rename to prebuilts/gradle/SynchronizedNotifications/Wearable/src/main/java/com/example/android/wearable/synchronizednotifications/WearableActivity.java
index 28736ad..6ef2f1b 100644
--- a/prebuilts/gradle/SynchronizedNotifications/Wearable/src/main/java/com/example/android/synchronizednotifications/WearableActivity.java
+++ b/prebuilts/gradle/SynchronizedNotifications/Wearable/src/main/java/com/example/android/wearable/synchronizednotifications/WearableActivity.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.example.android.synchronizednotifications;
+package com.example.android.wearable.synchronizednotifications;
 
 import android.app.Activity;
 import android.os.Bundle;
diff --git a/prebuilts/gradle/SynchronizedNotifications/Wearable/src/main/res/values/strings.xml b/prebuilts/gradle/SynchronizedNotifications/Wearable/src/main/res/values/strings.xml
index 4240ff5..aa51a71 100644
--- a/prebuilts/gradle/SynchronizedNotifications/Wearable/src/main/res/values/strings.xml
+++ b/prebuilts/gradle/SynchronizedNotifications/Wearable/src/main/res/values/strings.xml
@@ -15,6 +15,6 @@
 -->
 
 <resources>
-    <string name="app_name">Sample Wearable app</string>
+    <string name="app_name">Synchronized Notifications</string>
 </resources>
 
diff --git a/prebuilts/gradle/SynchronizedNotifications/screenshots/different_notifications_phone.png b/prebuilts/gradle/SynchronizedNotifications/screenshots/different_notifications_phone.png
new file mode 100644
index 0000000..cab31e0
--- /dev/null
+++ b/prebuilts/gradle/SynchronizedNotifications/screenshots/different_notifications_phone.png
Binary files differ
diff --git a/prebuilts/gradle/SynchronizedNotifications/screenshots/different_notifications_wearable.png b/prebuilts/gradle/SynchronizedNotifications/screenshots/different_notifications_wearable.png
new file mode 100644
index 0000000..97da715
--- /dev/null
+++ b/prebuilts/gradle/SynchronizedNotifications/screenshots/different_notifications_wearable.png
Binary files differ
diff --git a/prebuilts/gradle/SynchronizedNotifications/screenshots/notification_options.png b/prebuilts/gradle/SynchronizedNotifications/screenshots/notification_options.png
new file mode 100644
index 0000000..8cd0095
--- /dev/null
+++ b/prebuilts/gradle/SynchronizedNotifications/screenshots/notification_options.png
Binary files differ
diff --git a/prebuilts/gradle/SynchronizedNotifications/screenshots/watch_only_notification.png b/prebuilts/gradle/SynchronizedNotifications/screenshots/watch_only_notification.png
new file mode 100644
index 0000000..34e950f
--- /dev/null
+++ b/prebuilts/gradle/SynchronizedNotifications/screenshots/watch_only_notification.png
Binary files differ
diff --git a/prebuilts/gradle/Timer/Application/build.gradle b/prebuilts/gradle/Timer/Application/build.gradle
index 41fc623..0c6e001 100644
--- a/prebuilts/gradle/Timer/Application/build.gradle
+++ b/prebuilts/gradle/Timer/Application/build.gradle
@@ -16,7 +16,6 @@
 
     compile 'com.google.android.gms:play-services:5.0.+'
     compile 'com.android.support:support-v13:20.0.+'
-    compile project(':Shared')
     wearApp project(':Wearable')
 
 }
diff --git a/prebuilts/gradle/Timer/Application/src/main/AndroidManifest.xml b/prebuilts/gradle/Timer/Application/src/main/AndroidManifest.xml
index b8ebd74..6b34b12 100644
--- a/prebuilts/gradle/Timer/Application/src/main/AndroidManifest.xml
+++ b/prebuilts/gradle/Timer/Application/src/main/AndroidManifest.xml
@@ -16,10 +16,10 @@
 -->
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.example.android.timer">
+    package="com.example.android.wearable.timer">
 
-    <uses-sdk android:minSdkVersion="19"
-              android:targetSdkVersion="19" />
+    <uses-sdk android:minSdkVersion="18"
+              android:targetSdkVersion="20" />
 
     <application android:allowBackup="true"
         android:label="@string/app_name">
diff --git a/prebuilts/gradle/Timer/Application/src/main/java/com/example/android/common/activities/SampleActivityBase.java b/prebuilts/gradle/Timer/Application/src/main/java/com/example/android/common/activities/SampleActivityBase.java
deleted file mode 100644
index 3228927..0000000
--- a/prebuilts/gradle/Timer/Application/src/main/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/prebuilts/gradle/Timer/Application/src/main/java/com/example/android/common/logger/Log.java b/prebuilts/gradle/Timer/Application/src/main/java/com/example/android/common/logger/Log.java
deleted file mode 100644
index 17503c5..0000000
--- a/prebuilts/gradle/Timer/Application/src/main/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/prebuilts/gradle/Timer/Application/src/main/java/com/example/android/common/logger/LogFragment.java b/prebuilts/gradle/Timer/Application/src/main/java/com/example/android/common/logger/LogFragment.java
deleted file mode 100644
index b302acd..0000000
--- a/prebuilts/gradle/Timer/Application/src/main/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/prebuilts/gradle/Timer/Application/src/main/java/com/example/android/common/logger/LogNode.java b/prebuilts/gradle/Timer/Application/src/main/java/com/example/android/common/logger/LogNode.java
deleted file mode 100644
index bc37cab..0000000
--- a/prebuilts/gradle/Timer/Application/src/main/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/prebuilts/gradle/Timer/Application/src/main/java/com/example/android/common/logger/LogView.java b/prebuilts/gradle/Timer/Application/src/main/java/com/example/android/common/logger/LogView.java
deleted file mode 100644
index c01542b..0000000
--- a/prebuilts/gradle/Timer/Application/src/main/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/prebuilts/gradle/Timer/Application/src/main/java/com/example/android/common/logger/LogWrapper.java b/prebuilts/gradle/Timer/Application/src/main/java/com/example/android/common/logger/LogWrapper.java
deleted file mode 100644
index 16a9e7b..0000000
--- a/prebuilts/gradle/Timer/Application/src/main/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/prebuilts/gradle/Timer/Application/src/main/java/com/example/android/common/logger/MessageOnlyLogFilter.java b/prebuilts/gradle/Timer/Application/src/main/java/com/example/android/common/logger/MessageOnlyLogFilter.java
deleted file mode 100644
index 19967dc..0000000
--- a/prebuilts/gradle/Timer/Application/src/main/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/prebuilts/gradle/Timer/README-wear.txt b/prebuilts/gradle/Timer/README-wear.txt
deleted file mode 100644
index 17523d7..0000000
--- a/prebuilts/gradle/Timer/README-wear.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-<#--
-        Copyright 2014 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.
--->
-
-Steps to use Wear template on top of an existing sample:
-- In template-params.xml.ftl:
-    - Add the following template:
-        <template src="Wear"/>
-
-- Refresh your project (./gradlew refresh)
-- Add Wearable-specific code to Wearable directory
-- Add code to be shared among the main application and the wearable to Shared
-  directory
-
-Note that you still need the main application sample code. This is usually
-achieved by adding another template, like "base" for example.
-
-
diff --git a/prebuilts/gradle/Timer/Shared/build.gradle b/prebuilts/gradle/Timer/Shared/build.gradle
deleted file mode 100644
index e6ddb59..0000000
--- a/prebuilts/gradle/Timer/Shared/build.gradle
+++ /dev/null
@@ -1,35 +0,0 @@
-buildscript {
-    repositories {
-        mavenCentral()
-    }
-
-    dependencies {
-        classpath 'com.android.tools.build:gradle:0.12.+'
-    }
-}
-
-apply plugin: 'android-library'
-
-// The sample build uses multiple directories to
-// keep boilerplate and common code separate from
-// the main sample code.
-List<String> dirs = [
-    'main',     // main sample code; look here for the interesting stuff.
-    'common',   // components that are reused by multiple samples
-    'template'] // boilerplate code that is generated by the sample template process
-
-android {
-    compileSdkVersion 20
-
-    buildToolsVersion '20'
-
-    sourceSets {
-        main {
-            dirs.each { dir ->
-                java.srcDirs "src/${dir}/java"
-                res.srcDirs "src/${dir}/res"
-            }
-        }
-
-    }
-}
diff --git a/prebuilts/gradle/Timer/Shared/src/main/AndroidManifest.xml b/prebuilts/gradle/Timer/Shared/src/main/AndroidManifest.xml
deleted file mode 100644
index c332a84..0000000
--- a/prebuilts/gradle/Timer/Shared/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- 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.
--->
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.example.android.timer.common">
-
-    <application android:allowBackup="true"
-        android:label="@string/app_name">
-    </application>
-
-</manifest>
diff --git a/prebuilts/gradle/Timer/Shared/src/main/res/values/strings.xml b/prebuilts/gradle/Timer/Shared/src/main/res/values/strings.xml
deleted file mode 100644
index 0f2bb90..0000000
--- a/prebuilts/gradle/Timer/Shared/src/main/res/values/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2014 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.
--->
-<resources>
-    <string name="app_name">Shared</string>
-</resources>
diff --git a/prebuilts/gradle/Timer/Wearable/build.gradle b/prebuilts/gradle/Timer/Wearable/build.gradle
index b8151b1..864b2fd 100644
--- a/prebuilts/gradle/Timer/Wearable/build.gradle
+++ b/prebuilts/gradle/Timer/Wearable/build.gradle
@@ -16,7 +16,6 @@
     compile 'com.google.android.gms:play-services-wearable:5.0.+'
     compile 'com.android.support:support-v13:20.0.+'
     compile 'com.google.android.support:wearable:1.0.+'
-    compile project(':Shared')
 }
 
 // The sample build uses multiple directories to
diff --git a/prebuilts/gradle/Timer/Wearable/src/main/AndroidManifest.xml b/prebuilts/gradle/Timer/Wearable/src/main/AndroidManifest.xml
index 3dabadc..9e27947 100644
--- a/prebuilts/gradle/Timer/Wearable/src/main/AndroidManifest.xml
+++ b/prebuilts/gradle/Timer/Wearable/src/main/AndroidManifest.xml
@@ -15,7 +15,7 @@
 -->
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-        package="com.example.android.timer" >
+        package="com.example.android.wearable.timer" >
 
     <uses-sdk android:minSdkVersion="20"
               android:targetSdkVersion="20" />
diff --git a/prebuilts/gradle/Timer/Wearable/src/main/java/com/example/android/timer/SetTimerActivity.java b/prebuilts/gradle/Timer/Wearable/src/main/java/com/example/android/wearable/timer/SetTimerActivity.java
similarity index 97%
rename from prebuilts/gradle/Timer/Wearable/src/main/java/com/example/android/timer/SetTimerActivity.java
rename to prebuilts/gradle/Timer/Wearable/src/main/java/com/example/android/wearable/timer/SetTimerActivity.java
index 5285589..f660f9f 100644
--- a/prebuilts/gradle/Timer/Wearable/src/main/java/com/example/android/timer/SetTimerActivity.java
+++ b/prebuilts/gradle/Timer/Wearable/src/main/java/com/example/android/wearable/timer/SetTimerActivity.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.timer;
+package com.example.android.wearable.timer;
 
 import android.app.Activity;
 import android.app.AlarmManager;
@@ -32,8 +32,8 @@
 import android.view.ViewGroup;
 import android.widget.TextView;
 
-import com.example.android.timer.util.Constants;
-import com.example.android.timer.util.TimerFormat;
+import com.example.android.wearable.timer.util.Constants;
+import com.example.android.wearable.timer.util.TimerFormat;
 
 /** This class sets a timer. */
 public class SetTimerActivity extends Activity implements WearableListView.ClickListener {
diff --git a/prebuilts/gradle/Timer/Wearable/src/main/java/com/example/android/timer/TimerNotificationService.java b/prebuilts/gradle/Timer/Wearable/src/main/java/com/example/android/wearable/timer/TimerNotificationService.java
similarity index 97%
rename from prebuilts/gradle/Timer/Wearable/src/main/java/com/example/android/timer/TimerNotificationService.java
rename to prebuilts/gradle/Timer/Wearable/src/main/java/com/example/android/wearable/timer/TimerNotificationService.java
index 709b949..5822fe4 100644
--- a/prebuilts/gradle/Timer/Wearable/src/main/java/com/example/android/timer/TimerNotificationService.java
+++ b/prebuilts/gradle/Timer/Wearable/src/main/java/com/example/android/wearable/timer/TimerNotificationService.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.timer;
+package com.example.android.wearable.timer;
 
 import android.app.AlarmManager;
 import android.app.IntentService;
@@ -25,7 +25,7 @@
 import android.content.Intent;
 import android.util.Log;
 
-import com.example.android.timer.util.Constants;
+import com.example.android.wearable.timer.util.Constants;
 
 /**
  * Service class that manages notifications of the timer.
diff --git a/prebuilts/gradle/Timer/Wearable/src/main/java/com/example/android/timer/WearableListItemLayout.java b/prebuilts/gradle/Timer/Wearable/src/main/java/com/example/android/wearable/timer/WearableListItemLayout.java
similarity index 98%
rename from prebuilts/gradle/Timer/Wearable/src/main/java/com/example/android/timer/WearableListItemLayout.java
rename to prebuilts/gradle/Timer/Wearable/src/main/java/com/example/android/wearable/timer/WearableListItemLayout.java
index 739213d..0bbc587 100644
--- a/prebuilts/gradle/Timer/Wearable/src/main/java/com/example/android/timer/WearableListItemLayout.java
+++ b/prebuilts/gradle/Timer/Wearable/src/main/java/com/example/android/wearable/timer/WearableListItemLayout.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.timer;
+package com.example.android.wearable.timer;
 
 import android.content.Context;
 import android.graphics.drawable.GradientDrawable;
diff --git a/prebuilts/gradle/Timer/Wearable/src/main/java/com/example/android/timer/util/Constants.java b/prebuilts/gradle/Timer/Wearable/src/main/java/com/example/android/wearable/timer/util/Constants.java
similarity index 96%
rename from prebuilts/gradle/Timer/Wearable/src/main/java/com/example/android/timer/util/Constants.java
rename to prebuilts/gradle/Timer/Wearable/src/main/java/com/example/android/wearable/timer/util/Constants.java
index 18254f1..85885e4 100644
--- a/prebuilts/gradle/Timer/Wearable/src/main/java/com/example/android/timer/util/Constants.java
+++ b/prebuilts/gradle/Timer/Wearable/src/main/java/com/example/android/wearable/timer/util/Constants.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.timer.util;
+package com.example.android.wearable.timer.util;
 
 import android.net.Uri;
 
diff --git a/prebuilts/gradle/Timer/Wearable/src/main/java/com/example/android/timer/util/TimerFormat.java b/prebuilts/gradle/Timer/Wearable/src/main/java/com/example/android/wearable/timer/util/TimerFormat.java
similarity index 98%
rename from prebuilts/gradle/Timer/Wearable/src/main/java/com/example/android/timer/util/TimerFormat.java
rename to prebuilts/gradle/Timer/Wearable/src/main/java/com/example/android/wearable/timer/util/TimerFormat.java
index b1c1dab..b40351b 100644
--- a/prebuilts/gradle/Timer/Wearable/src/main/java/com/example/android/timer/util/TimerFormat.java
+++ b/prebuilts/gradle/Timer/Wearable/src/main/java/com/example/android/wearable/timer/util/TimerFormat.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.timer.util;
+package com.example.android.wearable.timer.util;
 
 /** Helper class to format the timer. Based on com.android.deskclock.timer.CountingTimerView. */
 public final class TimerFormat {
diff --git a/prebuilts/gradle/Timer/Wearable/src/main/java/com/example/android/timer/util/TimerObj.java b/prebuilts/gradle/Timer/Wearable/src/main/java/com/example/android/wearable/timer/util/TimerObj.java
similarity index 96%
rename from prebuilts/gradle/Timer/Wearable/src/main/java/com/example/android/timer/util/TimerObj.java
rename to prebuilts/gradle/Timer/Wearable/src/main/java/com/example/android/wearable/timer/util/TimerObj.java
index 47f019f..52f7244 100644
--- a/prebuilts/gradle/Timer/Wearable/src/main/java/com/example/android/timer/util/TimerObj.java
+++ b/prebuilts/gradle/Timer/Wearable/src/main/java/com/example/android/wearable/timer/util/TimerObj.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.timer.util;
+package com.example.android.wearable.timer.util;
 
 import android.os.SystemClock;
 
diff --git a/prebuilts/gradle/Timer/screenshots/timer.png b/prebuilts/gradle/Timer/screenshots/timer.png
new file mode 100644
index 0000000..6ef8f86
--- /dev/null
+++ b/prebuilts/gradle/Timer/screenshots/timer.png
Binary files differ
diff --git a/prebuilts/gradle/Timer/screenshots/timer_countdown.png b/prebuilts/gradle/Timer/screenshots/timer_countdown.png
new file mode 100644
index 0000000..505733d
--- /dev/null
+++ b/prebuilts/gradle/Timer/screenshots/timer_countdown.png
Binary files differ
diff --git a/prebuilts/gradle/Timer/settings.gradle b/prebuilts/gradle/Timer/settings.gradle
index 8522c57..19d00ac 100644
--- a/prebuilts/gradle/Timer/settings.gradle
+++ b/prebuilts/gradle/Timer/settings.gradle
@@ -1 +1 @@
-include ':Application', ':Wearable', ':Shared'
+include ':Application', ':Wearable'
diff --git a/prebuilts/gradle/WatchViewStub/Application/build.gradle b/prebuilts/gradle/WatchViewStub/Application/build.gradle
index 41fc623..0c6e001 100644
--- a/prebuilts/gradle/WatchViewStub/Application/build.gradle
+++ b/prebuilts/gradle/WatchViewStub/Application/build.gradle
@@ -16,7 +16,6 @@
 
     compile 'com.google.android.gms:play-services:5.0.+'
     compile 'com.android.support:support-v13:20.0.+'
-    compile project(':Shared')
     wearApp project(':Wearable')
 
 }
diff --git a/prebuilts/gradle/WatchViewStub/Application/src/main/AndroidManifest.xml b/prebuilts/gradle/WatchViewStub/Application/src/main/AndroidManifest.xml
index aa0d790..d33b81f 100644
--- a/prebuilts/gradle/WatchViewStub/Application/src/main/AndroidManifest.xml
+++ b/prebuilts/gradle/WatchViewStub/Application/src/main/AndroidManifest.xml
@@ -16,10 +16,10 @@
 -->
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.example.android.watchviewstub">
+    package="com.example.android.google.wearable.watchviewstub">
 
-    <uses-sdk android:minSdkVersion="19"
-              android:targetSdkVersion="19" />
+    <uses-sdk android:minSdkVersion="18"
+              android:targetSdkVersion="20" />
 
     <application android:allowBackup="true"
         android:label="@string/app_name">
diff --git a/prebuilts/gradle/WatchViewStub/Application/src/main/java/com/example/android/common/activities/SampleActivityBase.java b/prebuilts/gradle/WatchViewStub/Application/src/main/java/com/example/android/common/activities/SampleActivityBase.java
deleted file mode 100644
index 3228927..0000000
--- a/prebuilts/gradle/WatchViewStub/Application/src/main/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/prebuilts/gradle/WatchViewStub/Application/src/main/java/com/example/android/common/logger/Log.java b/prebuilts/gradle/WatchViewStub/Application/src/main/java/com/example/android/common/logger/Log.java
deleted file mode 100644
index 17503c5..0000000
--- a/prebuilts/gradle/WatchViewStub/Application/src/main/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/prebuilts/gradle/WatchViewStub/Application/src/main/java/com/example/android/common/logger/LogFragment.java b/prebuilts/gradle/WatchViewStub/Application/src/main/java/com/example/android/common/logger/LogFragment.java
deleted file mode 100644
index b302acd..0000000
--- a/prebuilts/gradle/WatchViewStub/Application/src/main/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/prebuilts/gradle/WatchViewStub/Application/src/main/java/com/example/android/common/logger/LogNode.java b/prebuilts/gradle/WatchViewStub/Application/src/main/java/com/example/android/common/logger/LogNode.java
deleted file mode 100644
index bc37cab..0000000
--- a/prebuilts/gradle/WatchViewStub/Application/src/main/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/prebuilts/gradle/WatchViewStub/Application/src/main/java/com/example/android/common/logger/LogView.java b/prebuilts/gradle/WatchViewStub/Application/src/main/java/com/example/android/common/logger/LogView.java
deleted file mode 100644
index c01542b..0000000
--- a/prebuilts/gradle/WatchViewStub/Application/src/main/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/prebuilts/gradle/WatchViewStub/Application/src/main/java/com/example/android/common/logger/LogWrapper.java b/prebuilts/gradle/WatchViewStub/Application/src/main/java/com/example/android/common/logger/LogWrapper.java
deleted file mode 100644
index 16a9e7b..0000000
--- a/prebuilts/gradle/WatchViewStub/Application/src/main/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/prebuilts/gradle/WatchViewStub/Application/src/main/java/com/example/android/common/logger/MessageOnlyLogFilter.java b/prebuilts/gradle/WatchViewStub/Application/src/main/java/com/example/android/common/logger/MessageOnlyLogFilter.java
deleted file mode 100644
index 19967dc..0000000
--- a/prebuilts/gradle/WatchViewStub/Application/src/main/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/prebuilts/gradle/WatchViewStub/README-wear.txt b/prebuilts/gradle/WatchViewStub/README-wear.txt
deleted file mode 100644
index 17523d7..0000000
--- a/prebuilts/gradle/WatchViewStub/README-wear.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-<#--
-        Copyright 2014 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.
--->
-
-Steps to use Wear template on top of an existing sample:
-- In template-params.xml.ftl:
-    - Add the following template:
-        <template src="Wear"/>
-
-- Refresh your project (./gradlew refresh)
-- Add Wearable-specific code to Wearable directory
-- Add code to be shared among the main application and the wearable to Shared
-  directory
-
-Note that you still need the main application sample code. This is usually
-achieved by adding another template, like "base" for example.
-
-
diff --git a/prebuilts/gradle/WatchViewStub/Shared/build.gradle b/prebuilts/gradle/WatchViewStub/Shared/build.gradle
deleted file mode 100644
index e6ddb59..0000000
--- a/prebuilts/gradle/WatchViewStub/Shared/build.gradle
+++ /dev/null
@@ -1,35 +0,0 @@
-buildscript {
-    repositories {
-        mavenCentral()
-    }
-
-    dependencies {
-        classpath 'com.android.tools.build:gradle:0.12.+'
-    }
-}
-
-apply plugin: 'android-library'
-
-// The sample build uses multiple directories to
-// keep boilerplate and common code separate from
-// the main sample code.
-List<String> dirs = [
-    'main',     // main sample code; look here for the interesting stuff.
-    'common',   // components that are reused by multiple samples
-    'template'] // boilerplate code that is generated by the sample template process
-
-android {
-    compileSdkVersion 20
-
-    buildToolsVersion '20'
-
-    sourceSets {
-        main {
-            dirs.each { dir ->
-                java.srcDirs "src/${dir}/java"
-                res.srcDirs "src/${dir}/res"
-            }
-        }
-
-    }
-}
diff --git a/prebuilts/gradle/WatchViewStub/Shared/src/main/AndroidManifest.xml b/prebuilts/gradle/WatchViewStub/Shared/src/main/AndroidManifest.xml
deleted file mode 100644
index 846fa9d..0000000
--- a/prebuilts/gradle/WatchViewStub/Shared/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- 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.
--->
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.example.android.watchviewstub.common">
-
-    <application android:allowBackup="true"
-        android:label="@string/app_name">
-    </application>
-
-</manifest>
diff --git a/prebuilts/gradle/WatchViewStub/Shared/src/main/res/values/strings.xml b/prebuilts/gradle/WatchViewStub/Shared/src/main/res/values/strings.xml
deleted file mode 100644
index 0f2bb90..0000000
--- a/prebuilts/gradle/WatchViewStub/Shared/src/main/res/values/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2014 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.
--->
-<resources>
-    <string name="app_name">Shared</string>
-</resources>
diff --git a/prebuilts/gradle/WatchViewStub/Wearable/build.gradle b/prebuilts/gradle/WatchViewStub/Wearable/build.gradle
index b8151b1..864b2fd 100644
--- a/prebuilts/gradle/WatchViewStub/Wearable/build.gradle
+++ b/prebuilts/gradle/WatchViewStub/Wearable/build.gradle
@@ -16,7 +16,6 @@
     compile 'com.google.android.gms:play-services-wearable:5.0.+'
     compile 'com.android.support:support-v13:20.0.+'
     compile 'com.google.android.support:wearable:1.0.+'
-    compile project(':Shared')
 }
 
 // The sample build uses multiple directories to
diff --git a/prebuilts/gradle/WatchViewStub/Wearable/src/main/AndroidManifest.xml b/prebuilts/gradle/WatchViewStub/Wearable/src/main/AndroidManifest.xml
index 5b33044..baa3f78 100644
--- a/prebuilts/gradle/WatchViewStub/Wearable/src/main/AndroidManifest.xml
+++ b/prebuilts/gradle/WatchViewStub/Wearable/src/main/AndroidManifest.xml
@@ -15,7 +15,7 @@
 -->
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-        package="com.example.android.watchviewstub" >
+        package="com.example.android.google.wearable.watchviewstub" >
 
     <uses-sdk android:minSdkVersion="20"
               android:targetSdkVersion="20" />
@@ -28,7 +28,7 @@
             android:label="@string/app_name"
             android:theme="@android:style/Theme.DeviceDefault">
         <activity
-            android:name="com.example.android.watchviewstub.MainActivity"
+            android:name="com.example.android.google.wearable.watchviewstub.MainActivity"
             android:label="@string/app_name">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN"/>
diff --git a/prebuilts/gradle/WatchViewStub/Wearable/src/main/java/com/example/android/watchviewstub/MainActivity.java b/prebuilts/gradle/WatchViewStub/Wearable/src/main/java/com/example/android/google/wearable/watchviewstub/MainActivity.java
similarity index 97%
rename from prebuilts/gradle/WatchViewStub/Wearable/src/main/java/com/example/android/watchviewstub/MainActivity.java
rename to prebuilts/gradle/WatchViewStub/Wearable/src/main/java/com/example/android/google/wearable/watchviewstub/MainActivity.java
index 1e931dc..e4271d2 100644
--- a/prebuilts/gradle/WatchViewStub/Wearable/src/main/java/com/example/android/watchviewstub/MainActivity.java
+++ b/prebuilts/gradle/WatchViewStub/Wearable/src/main/java/com/example/android/google/wearable/watchviewstub/MainActivity.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.example.android.watchviewstub;
+package com.example.android.google.wearable.watchviewstub;
 
 import android.app.Activity;
 import android.os.Bundle;
diff --git a/prebuilts/gradle/WatchViewStub/screenshots/watch_view_stub_rectangular.png b/prebuilts/gradle/WatchViewStub/screenshots/watch_view_stub_rectangular.png
new file mode 100644
index 0000000..939cb18
--- /dev/null
+++ b/prebuilts/gradle/WatchViewStub/screenshots/watch_view_stub_rectangular.png
Binary files differ
diff --git a/prebuilts/gradle/WatchViewStub/screenshots/watch_view_stub_round.png b/prebuilts/gradle/WatchViewStub/screenshots/watch_view_stub_round.png
new file mode 100644
index 0000000..3055f6d
--- /dev/null
+++ b/prebuilts/gradle/WatchViewStub/screenshots/watch_view_stub_round.png
Binary files differ
diff --git a/prebuilts/gradle/WatchViewStub/settings.gradle b/prebuilts/gradle/WatchViewStub/settings.gradle
index 8522c57..19d00ac 100644
--- a/prebuilts/gradle/WatchViewStub/settings.gradle
+++ b/prebuilts/gradle/WatchViewStub/settings.gradle
@@ -1 +1 @@
-include ':Application', ':Wearable', ':Shared'
+include ':Application', ':Wearable'