Update sdk.atree and samples/browseable for lastest samples release

Synced to developers/samples/android commit
97b2cfe5ba6d8fa8daaf3273141b321b5fe9e910.

Change-Id: I360cfa147e71dd519b841df41b4e878f86b9b27b
diff --git a/build/sdk.atree b/build/sdk.atree
index 9c7ba8a..9125719 100644
--- a/build/sdk.atree
+++ b/build/sdk.atree
@@ -280,9 +280,7 @@
 developers/build/prebuilts/gradle/BatchStepSensor                            samples/${PLATFORM_NAME}/sensors/BatchStepSensor
 developers/build/prebuilts/gradle/DisplayingBitmaps                          samples/${PLATFORM_NAME}/ui/DisplayingBitmaps
 developers/build/prebuilts/gradle/BasicTransition                            samples/${PLATFORM_NAME}/ui/BasicTransition
-developers/build/prebuilts/gradle/AdapterTransition                          samples/${PLATFORM_NAME}/ui/AdapterTransition
 developers/build/prebuilts/gradle/CustomTransition                           samples/${PLATFORM_NAME}/ui/CustomTransition
-developers/build/prebuilts/gradle/FragmentTransition                         samples/${PLATFORM_NAME}/ui/FragmentTransition
 developers/build/prebuilts/gradle/SwipeRefreshLayoutBasic                    samples/${PLATFORM_NAME}/ui/SwipeRefreshLayoutBasic
 developers/build/prebuilts/gradle/SwipeRefreshListFragment                   samples/${PLATFORM_NAME}/ui/SwipeRefreshListFragment
 developers/build/prebuilts/gradle/SwipeRefreshMultipleViews                  samples/${PLATFORM_NAME}/ui/SwipeRefreshMultipleViews
@@ -314,6 +312,8 @@
 developers/build/prebuilts/gradle/DirectorySelection                         samples/${PLATFORM_NAME}/content/documentsUi/DirectorySelection
 developers/build/prebuilts/gradle/AppUsageStatistics                         samples/${PLATFORM_NAME}/system/AppUsageStatistics
 developers/build/prebuilts/gradle/ScreenCapture                              samples/${PLATFORM_NAME}/media/ScreenCapture
+developers/build/prebuilts/gradle/NfcProvisioning                            samples/${PLATFORM_NAME}/nfc/NfcProvisioning
+developers/build/prebuilts/gradle/DeviceOwner                                samples/${PLATFORM_NAME}/admin/DeviceOwner
 
 developers/build/prebuilts/androidtv                                         samples/${PLATFORM_NAME}/androidtv
 
@@ -322,7 +322,6 @@
 developers/build/prebuilts/gradle/DataLayer                     samples/${PLATFORM_NAME}/wearable/DataLayer
 developers/build/prebuilts/gradle/DelayedConfirmation           samples/${PLATFORM_NAME}/wearable/DelayedConfirmation
 developers/build/prebuilts/gradle/ElizaChat                     samples/${PLATFORM_NAME}/wearable/ElizaChat
-developers/build/prebuilts/gradle/EmbeddedApp                   samples/${PLATFORM_NAME}/wearable/EmbeddedApp
 developers/build/prebuilts/gradle/FindMyPhone                   samples/${PLATFORM_NAME}/wearable/FindMyPhone
 developers/build/prebuilts/gradle/Flashlight                    samples/${PLATFORM_NAME}/wearable/Flashlight
 developers/build/prebuilts/gradle/Geofencing                    samples/${PLATFORM_NAME}/wearable/Geofencing
@@ -337,6 +336,7 @@
 developers/build/prebuilts/gradle/Timer                         samples/${PLATFORM_NAME}/wearable/Timer
 developers/build/prebuilts/gradle/WatchFace                     samples/${PLATFORM_NAME}/wearable/WatchFace
 developers/build/prebuilts/gradle/WatchViewStub                 samples/${PLATFORM_NAME}/wearable/WatchViewStub
+developers/build/prebuilts/gradle/XYZTouristAttractions         samples/${PLATFORM_NAME}/wearable/XYZTouristAttractions
 
 # Old sample tree
 development/samples/AccelerometerPlay          samples/${PLATFORM_NAME}/legacy/AccelerometerPlay
@@ -498,4 +498,3 @@
 ##############################################################################
 framework/layoutlib-tests.jar tests/libtests/layoutlib-tests.jar
 system/app/EmulatorSmokeTests/EmulatorSmokeTests.apk tests/emulator-test-apps/EmulatorSmokeTests.apk
-
diff --git a/samples/browseable/ActionBarCompat-Basic/res/layout/activity_main.xml b/samples/browseable/ActionBarCompat-Basic/res/layout/activity_main.xml
deleted file mode 100755
index be1aa49..0000000
--- a/samples/browseable/ActionBarCompat-Basic/res/layout/activity_main.xml
+++ /dev/null
@@ -1,36 +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.
-  -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
-
-    <LinearLayout style="@style/Widget.SampleMessageTile"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  android:orientation="vertical">
-
-        <TextView style="@style/Widget.SampleMessage"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="@dimen/horizontal_page_margin"
-            android:layout_marginRight="@dimen/horizontal_page_margin"
-            android:layout_marginTop="@dimen/vertical_page_margin"
-            android:layout_marginBottom="@dimen/vertical_page_margin"
-            android:text="@string/intro_message" />
-    </LinearLayout>
-</LinearLayout>
diff --git a/samples/browseable/ActionBarCompat-ListPopupMenu/res/layout/activity_main.xml b/samples/browseable/ActionBarCompat-ListPopupMenu/res/layout/activity_main.xml
deleted file mode 100755
index be1aa49..0000000
--- a/samples/browseable/ActionBarCompat-ListPopupMenu/res/layout/activity_main.xml
+++ /dev/null
@@ -1,36 +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.
-  -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
-
-    <LinearLayout style="@style/Widget.SampleMessageTile"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  android:orientation="vertical">
-
-        <TextView style="@style/Widget.SampleMessage"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="@dimen/horizontal_page_margin"
-            android:layout_marginRight="@dimen/horizontal_page_margin"
-            android:layout_marginTop="@dimen/vertical_page_margin"
-            android:layout_marginBottom="@dimen/vertical_page_margin"
-            android:text="@string/intro_message" />
-    </LinearLayout>
-</LinearLayout>
diff --git a/samples/browseable/ActionBarCompat-ShareActionProvider/res/layout/activity_main.xml b/samples/browseable/ActionBarCompat-ShareActionProvider/res/layout/activity_main.xml
deleted file mode 100755
index be1aa49..0000000
--- a/samples/browseable/ActionBarCompat-ShareActionProvider/res/layout/activity_main.xml
+++ /dev/null
@@ -1,36 +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.
-  -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
-
-    <LinearLayout style="@style/Widget.SampleMessageTile"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  android:orientation="vertical">
-
-        <TextView style="@style/Widget.SampleMessage"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="@dimen/horizontal_page_margin"
-            android:layout_marginRight="@dimen/horizontal_page_margin"
-            android:layout_marginTop="@dimen/vertical_page_margin"
-            android:layout_marginBottom="@dimen/vertical_page_margin"
-            android:text="@string/intro_message" />
-    </LinearLayout>
-</LinearLayout>
diff --git a/samples/browseable/ActionBarCompat-Styled/res/layout/activity_main.xml b/samples/browseable/ActionBarCompat-Styled/res/layout/activity_main.xml
deleted file mode 100755
index be1aa49..0000000
--- a/samples/browseable/ActionBarCompat-Styled/res/layout/activity_main.xml
+++ /dev/null
@@ -1,36 +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.
-  -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
-
-    <LinearLayout style="@style/Widget.SampleMessageTile"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  android:orientation="vertical">
-
-        <TextView style="@style/Widget.SampleMessage"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="@dimen/horizontal_page_margin"
-            android:layout_marginRight="@dimen/horizontal_page_margin"
-            android:layout_marginTop="@dimen/vertical_page_margin"
-            android:layout_marginBottom="@dimen/vertical_page_margin"
-            android:text="@string/intro_message" />
-    </LinearLayout>
-</LinearLayout>
diff --git a/samples/browseable/ActivityInstrumentation/res/layout/activity_main.xml b/samples/browseable/ActivityInstrumentation/res/layout/activity_main.xml
deleted file mode 100755
index be1aa49..0000000
--- a/samples/browseable/ActivityInstrumentation/res/layout/activity_main.xml
+++ /dev/null
@@ -1,36 +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.
-  -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
-
-    <LinearLayout style="@style/Widget.SampleMessageTile"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  android:orientation="vertical">
-
-        <TextView style="@style/Widget.SampleMessage"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="@dimen/horizontal_page_margin"
-            android:layout_marginRight="@dimen/horizontal_page_margin"
-            android:layout_marginTop="@dimen/vertical_page_margin"
-            android:layout_marginBottom="@dimen/vertical_page_margin"
-            android:text="@string/intro_message" />
-    </LinearLayout>
-</LinearLayout>
diff --git a/samples/browseable/ActivitySceneTransitionBasic/res/layout/activity_main.xml b/samples/browseable/ActivitySceneTransitionBasic/res/layout/activity_main.xml
deleted file mode 100755
index be1aa49..0000000
--- a/samples/browseable/ActivitySceneTransitionBasic/res/layout/activity_main.xml
+++ /dev/null
@@ -1,36 +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.
-  -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
-
-    <LinearLayout style="@style/Widget.SampleMessageTile"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  android:orientation="vertical">
-
-        <TextView style="@style/Widget.SampleMessage"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="@dimen/horizontal_page_margin"
-            android:layout_marginRight="@dimen/horizontal_page_margin"
-            android:layout_marginTop="@dimen/vertical_page_margin"
-            android:layout_marginBottom="@dimen/vertical_page_margin"
-            android:text="@string/intro_message" />
-    </LinearLayout>
-</LinearLayout>
diff --git a/samples/browseable/AdapterTransition/AndroidManifest.xml b/samples/browseable/AdapterTransition/AndroidManifest.xml
deleted file mode 100644
index a998a4c..0000000
--- a/samples/browseable/AdapterTransition/AndroidManifest.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-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.
--->
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.example.android.adaptertransition"
-    android:versionCode="1"
-    android:versionName="1.0">
-
-    <!-- Min/target SDK versions (<uses-sdk>) managed by build.gradle -->
-
-    <application
-        android:allowBackup="true"
-        android:icon="@drawable/ic_launcher"
-        android:label="@string/app_name"
-        android:theme="@style/AppTheme">
-        <activity
-            android:name="com.example.android.adaptertransition.MainActivity"
-            android:label="@string/app_name">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN"/>
-
-                <category android:name="android.intent.category.LAUNCHER"/>
-            </intent-filter>
-        </activity>
-    </application>
-
-</manifest>
diff --git a/samples/browseable/AdapterTransition/_index.jd b/samples/browseable/AdapterTransition/_index.jd
deleted file mode 100644
index a2d134a..0000000
--- a/samples/browseable/AdapterTransition/_index.jd
+++ /dev/null
@@ -1,9 +0,0 @@
-page.tags="AdapterTransition"
-sample.group=UI
-@jd:body
-
-<p>
-            
-	    Transition cannot be directly applied to AdapterViews. In this sample, we demonstrate how to create an overlay layout and run a Transition on it. Press the action bar button to toggle between ListView and GridView.
-            
-        </p>
diff --git a/samples/browseable/AdapterTransition/res/drawable-hdpi/ic_action_grid.png b/samples/browseable/AdapterTransition/res/drawable-hdpi/ic_action_grid.png
deleted file mode 100644
index e04f4a7..0000000
--- a/samples/browseable/AdapterTransition/res/drawable-hdpi/ic_action_grid.png
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/AdapterTransition/res/drawable-hdpi/ic_action_list.png b/samples/browseable/AdapterTransition/res/drawable-hdpi/ic_action_list.png
deleted file mode 100644
index 4131dba..0000000
--- a/samples/browseable/AdapterTransition/res/drawable-hdpi/ic_action_list.png
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/AdapterTransition/res/drawable-hdpi/ic_launcher.png b/samples/browseable/AdapterTransition/res/drawable-hdpi/ic_launcher.png
deleted file mode 100644
index b7a67c0..0000000
--- a/samples/browseable/AdapterTransition/res/drawable-hdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/AdapterTransition/res/drawable-mdpi/ic_action_grid.png b/samples/browseable/AdapterTransition/res/drawable-mdpi/ic_action_grid.png
deleted file mode 100644
index f2a83e3..0000000
--- a/samples/browseable/AdapterTransition/res/drawable-mdpi/ic_action_grid.png
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/AdapterTransition/res/drawable-mdpi/ic_action_list.png b/samples/browseable/AdapterTransition/res/drawable-mdpi/ic_action_list.png
deleted file mode 100644
index e248a48..0000000
--- a/samples/browseable/AdapterTransition/res/drawable-mdpi/ic_action_list.png
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/AdapterTransition/res/drawable-mdpi/ic_launcher.png b/samples/browseable/AdapterTransition/res/drawable-mdpi/ic_launcher.png
deleted file mode 100644
index 1c9fc09..0000000
--- a/samples/browseable/AdapterTransition/res/drawable-mdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/AdapterTransition/res/drawable-nodpi/p1.jpg b/samples/browseable/AdapterTransition/res/drawable-nodpi/p1.jpg
deleted file mode 100644
index 10f07ac..0000000
--- a/samples/browseable/AdapterTransition/res/drawable-nodpi/p1.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/AdapterTransition/res/drawable-nodpi/p10.jpg b/samples/browseable/AdapterTransition/res/drawable-nodpi/p10.jpg
deleted file mode 100644
index 4272f4c..0000000
--- a/samples/browseable/AdapterTransition/res/drawable-nodpi/p10.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/AdapterTransition/res/drawable-nodpi/p11.jpg b/samples/browseable/AdapterTransition/res/drawable-nodpi/p11.jpg
deleted file mode 100644
index c5722b2..0000000
--- a/samples/browseable/AdapterTransition/res/drawable-nodpi/p11.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/AdapterTransition/res/drawable-nodpi/p2.jpg b/samples/browseable/AdapterTransition/res/drawable-nodpi/p2.jpg
deleted file mode 100644
index ca380ae..0000000
--- a/samples/browseable/AdapterTransition/res/drawable-nodpi/p2.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/AdapterTransition/res/drawable-nodpi/p3.jpg b/samples/browseable/AdapterTransition/res/drawable-nodpi/p3.jpg
deleted file mode 100644
index 6fc71e7..0000000
--- a/samples/browseable/AdapterTransition/res/drawable-nodpi/p3.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/AdapterTransition/res/drawable-nodpi/p4.jpg b/samples/browseable/AdapterTransition/res/drawable-nodpi/p4.jpg
deleted file mode 100644
index 153c1ff..0000000
--- a/samples/browseable/AdapterTransition/res/drawable-nodpi/p4.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/AdapterTransition/res/drawable-nodpi/p5.jpg b/samples/browseable/AdapterTransition/res/drawable-nodpi/p5.jpg
deleted file mode 100644
index 46d6a13..0000000
--- a/samples/browseable/AdapterTransition/res/drawable-nodpi/p5.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/AdapterTransition/res/drawable-nodpi/p6.jpg b/samples/browseable/AdapterTransition/res/drawable-nodpi/p6.jpg
deleted file mode 100644
index 89ccb83..0000000
--- a/samples/browseable/AdapterTransition/res/drawable-nodpi/p6.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/AdapterTransition/res/drawable-nodpi/p7.jpg b/samples/browseable/AdapterTransition/res/drawable-nodpi/p7.jpg
deleted file mode 100644
index 7e9546d..0000000
--- a/samples/browseable/AdapterTransition/res/drawable-nodpi/p7.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/AdapterTransition/res/drawable-nodpi/p8.jpg b/samples/browseable/AdapterTransition/res/drawable-nodpi/p8.jpg
deleted file mode 100644
index 21e25ba..0000000
--- a/samples/browseable/AdapterTransition/res/drawable-nodpi/p8.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/AdapterTransition/res/drawable-nodpi/p9.jpg b/samples/browseable/AdapterTransition/res/drawable-nodpi/p9.jpg
deleted file mode 100644
index 79854cb..0000000
--- a/samples/browseable/AdapterTransition/res/drawable-nodpi/p9.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/AdapterTransition/res/drawable-xhdpi/ic_action_grid.png b/samples/browseable/AdapterTransition/res/drawable-xhdpi/ic_action_grid.png
deleted file mode 100644
index ecd39b5..0000000
--- a/samples/browseable/AdapterTransition/res/drawable-xhdpi/ic_action_grid.png
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/AdapterTransition/res/drawable-xhdpi/ic_action_list.png b/samples/browseable/AdapterTransition/res/drawable-xhdpi/ic_action_list.png
deleted file mode 100644
index e7e510d..0000000
--- a/samples/browseable/AdapterTransition/res/drawable-xhdpi/ic_action_list.png
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/AdapterTransition/res/drawable-xhdpi/ic_launcher.png b/samples/browseable/AdapterTransition/res/drawable-xhdpi/ic_launcher.png
deleted file mode 100644
index 11b9928..0000000
--- a/samples/browseable/AdapterTransition/res/drawable-xhdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/AdapterTransition/res/drawable-xxhdpi/ic_action_grid.png b/samples/browseable/AdapterTransition/res/drawable-xxhdpi/ic_action_grid.png
deleted file mode 100644
index 3ba98fc..0000000
--- a/samples/browseable/AdapterTransition/res/drawable-xxhdpi/ic_action_grid.png
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/AdapterTransition/res/drawable-xxhdpi/ic_action_list.png b/samples/browseable/AdapterTransition/res/drawable-xxhdpi/ic_action_list.png
deleted file mode 100644
index d187732..0000000
--- a/samples/browseable/AdapterTransition/res/drawable-xxhdpi/ic_action_list.png
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/AdapterTransition/res/drawable-xxhdpi/ic_launcher.png b/samples/browseable/AdapterTransition/res/drawable-xxhdpi/ic_launcher.png
deleted file mode 100644
index f136c9f..0000000
--- a/samples/browseable/AdapterTransition/res/drawable-xxhdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/AdapterTransition/res/layout/fragment_adapter_transition.xml b/samples/browseable/AdapterTransition/res/layout/fragment_adapter_transition.xml
deleted file mode 100644
index 22ec090..0000000
--- a/samples/browseable/AdapterTransition/res/layout/fragment_adapter_transition.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-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.
--->
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical"
-    tools:context="com.example.android.adaptertransition.AdapterTransitionFragment">
-
-    <FrameLayout
-        android:id="@+id/content"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"/>
-
-    <FrameLayout
-        android:id="@+id/cover"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:background="#f3f3f3"
-        android:visibility="invisible"/>
-
-</FrameLayout>
diff --git a/samples/browseable/AdapterTransition/res/layout/fragment_meat_grid.xml b/samples/browseable/AdapterTransition/res/layout/fragment_meat_grid.xml
deleted file mode 100644
index 9a4f7a1..0000000
--- a/samples/browseable/AdapterTransition/res/layout/fragment_meat_grid.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-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.
--->
-<GridView
-    android:id="@+id/abs_list_view"
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:clipToPadding="false"
-    android:columnWidth="150dp"
-    android:horizontalSpacing="1dp"
-    android:numColumns="auto_fit"
-    android:padding="1dp"
-    android:scrollbars="none"
-    android:stretchMode="columnWidth"
-    android:verticalSpacing="1dp"/>
diff --git a/samples/browseable/AdapterTransition/res/layout/fragment_meat_list.xml b/samples/browseable/AdapterTransition/res/layout/fragment_meat_list.xml
deleted file mode 100644
index 4523b26..0000000
--- a/samples/browseable/AdapterTransition/res/layout/fragment_meat_list.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-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.
--->
-<ListView
-    android:id="@+id/abs_list_view"
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"/>
diff --git a/samples/browseable/AdapterTransition/res/layout/item_meat_grid.xml b/samples/browseable/AdapterTransition/res/layout/item_meat_grid.xml
deleted file mode 100644
index d7fb77a..0000000
--- a/samples/browseable/AdapterTransition/res/layout/item_meat_grid.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-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.
--->
-<RelativeLayout
-    android:id="@+id/meat_container"
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:layout_width="match_parent"
-    android:layout_height="150dp">
-
-    <ImageView
-        android:id="@+id/meat_image"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:scaleType="centerCrop"
-        tools:src="@drawable/p1"/>
-
-    <TextView
-        android:id="@+id/meat_title"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_alignParentBottom="true"
-        android:layout_alignParentEnd="true"
-        android:layout_gravity="bottom|end"
-        android:layout_marginEnd="16dp"
-        android:layout_marginStart="16dp"
-        android:gravity="center_horizontal"
-        android:shadowColor="#000000"
-        android:shadowDx="0"
-        android:shadowDy="0"
-        android:shadowRadius="10"
-        android:textColor="#ffffff"
-        android:textSize="24sp"
-        android:textStyle="bold"
-        tools:text="Hello"/>
-
-</RelativeLayout>
\ No newline at end of file
diff --git a/samples/browseable/AdapterTransition/res/layout/item_meat_list.xml b/samples/browseable/AdapterTransition/res/layout/item_meat_list.xml
deleted file mode 100644
index 8d75b90..0000000
--- a/samples/browseable/AdapterTransition/res/layout/item_meat_list.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-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.
--->
-<RelativeLayout
-    android:id="@+id/meat_container"
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="horizontal"
-    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
-    android:paddingStart="?android:attr/listPreferredItemPaddingStart">
-
-    <ImageView
-        android:id="@+id/meat_image"
-        android:layout_width="64dp"
-        android:layout_height="64dp"
-        android:scaleType="centerCrop"
-        tools:src="@drawable/p1"/>
-
-    <TextView
-        android:id="@+id/meat_title"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_centerVertical="true"
-        android:layout_marginStart="?android:attr/listPreferredItemPaddingStart"
-        android:layout_toEndOf="@id/meat_image"
-        android:layout_centerInParent="true"
-        android:gravity="center_vertical"
-        android:textSize="24sp"
-        tools:text="Title"/>
-
-</RelativeLayout>
\ No newline at end of file
diff --git a/samples/browseable/AdapterTransition/res/menu/fragment_adapter_transition.xml b/samples/browseable/AdapterTransition/res/menu/fragment_adapter_transition.xml
deleted file mode 100644
index 10057b8..0000000
--- a/samples/browseable/AdapterTransition/res/menu/fragment_adapter_transition.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-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.
--->
-<menu xmlns:android="http://schemas.android.com/apk/res/android">
-    <item
-        android:id="@+id/action_toggle"
-        android:icon="@drawable/ic_action_grid"
-        android:showAsAction="always|withText"
-        android:title="@string/show_as_grid"/>
-</menu>
diff --git a/samples/browseable/AdapterTransition/res/values/base-strings.xml b/samples/browseable/AdapterTransition/res/values/base-strings.xml
deleted file mode 100644
index 09f86cd..0000000
--- a/samples/browseable/AdapterTransition/res/values/base-strings.xml
+++ /dev/null
@@ -1,28 +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.
--->
-<resources>
-    <string name="app_name">AdapterTransition</string>
-    <string name="intro_message">
-        <![CDATA[
-        
-            
-	    Transition cannot be directly applied to AdapterViews. In this sample, we demonstrate how to create an overlay layout and run a Transition on it. Press the action bar button to toggle between ListView and GridView.
-            
-        
-        ]]>
-    </string>
-</resources>
diff --git a/samples/browseable/AdapterTransition/src/com.example.android.adaptertransition/AdapterTransitionFragment.java b/samples/browseable/AdapterTransition/src/com.example.android.adaptertransition/AdapterTransitionFragment.java
deleted file mode 100644
index a949818..0000000
--- a/samples/browseable/AdapterTransition/src/com.example.android.adaptertransition/AdapterTransitionFragment.java
+++ /dev/null
@@ -1,280 +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.
- */
-
-package com.example.android.adaptertransition;
-
-import android.os.Bundle;
-import android.support.v4.app.ActivityCompat;
-import android.support.v4.app.Fragment;
-import android.transition.AutoTransition;
-import android.transition.Scene;
-import android.transition.Transition;
-import android.transition.TransitionManager;
-import android.view.LayoutInflater;
-import android.view.Menu;
-import android.view.MenuInflater;
-import android.view.MenuItem;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.AbsListView;
-import android.widget.FrameLayout;
-import android.widget.GridView;
-import android.widget.ListView;
-import android.widget.Toast;
-
-/**
- * Main screen for AdapterTransition sample.
- */
-public class AdapterTransitionFragment extends Fragment implements Transition.TransitionListener {
-
-    /**
-     * Since the transition framework requires all relevant views in a view hierarchy to be marked
-     * with IDs, we use this ID to mark the root view.
-     */
-    private static final int ROOT_ID = 1;
-
-    /**
-     * A tag for saving state whether the mAbsListView is ListView or GridView.
-     */
-    private static final String STATE_IS_LISTVIEW = "is_listview";
-
-    /**
-     * This is where we place our AdapterView (ListView / GridView).
-     */
-    private FrameLayout mContent;
-
-    /**
-     * This is where we carry out the transition.
-     */
-    private FrameLayout mCover;
-
-    /**
-     * This list shows our contents. It can be ListView or GridView, and we toggle between them
-     * using the transition framework.
-     */
-    private AbsListView mAbsListView;
-
-    /**
-     * This is our contents.
-     */
-    private MeatAdapter mAdapter;
-
-    public static AdapterTransitionFragment newInstance() {
-        return new AdapterTransitionFragment();
-    }
-
-    public AdapterTransitionFragment() {
-    }
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setHasOptionsMenu(true);
-    }
-
-    @Override
-    public View onCreateView(LayoutInflater inflater, ViewGroup container,
-                             Bundle savedInstanceState) {
-        // If savedInstanceState is available, we restore the state whether the list is a ListView
-        // or a GridView.
-        boolean isListView;
-        if (null == savedInstanceState) {
-            isListView = true;
-        } else {
-            isListView = savedInstanceState.getBoolean(STATE_IS_LISTVIEW, true);
-        }
-        inflateAbsList(inflater, container, isListView);
-        return inflater.inflate(R.layout.fragment_adapter_transition, container, false);
-    }
-
-    @Override
-    public void onSaveInstanceState(Bundle outState) {
-        super.onSaveInstanceState(outState);
-        outState.putBoolean(STATE_IS_LISTVIEW, mAbsListView instanceof ListView);
-    }
-
-    @Override
-    public void onViewCreated(View view, Bundle savedInstanceState) {
-        // Retaining references for FrameLayouts that we use later.
-        mContent = (FrameLayout) view.findViewById(R.id.content);
-        mCover = (FrameLayout) view.findViewById(R.id.cover);
-        // We are attaching the list to the screen here.
-        mContent.addView(mAbsListView);
-    }
-
-    @Override
-    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
-        inflater.inflate(R.menu.fragment_adapter_transition, menu);
-    }
-
-    @Override
-    public void onPrepareOptionsMenu(Menu menu) {
-        // We change the look of the icon every time the user toggles between list and grid.
-        MenuItem item = menu.findItem(R.id.action_toggle);
-        if (null != item) {
-            if (mAbsListView instanceof ListView) {
-                item.setIcon(R.drawable.ic_action_grid);
-                item.setTitle(R.string.show_as_grid);
-            } else {
-                item.setIcon(R.drawable.ic_action_list);
-                item.setTitle(R.string.show_as_list);
-            }
-        }
-    }
-
-    @Override
-    public boolean onOptionsItemSelected(MenuItem item) {
-        switch (item.getItemId()) {
-            case R.id.action_toggle: {
-                toggle();
-                return true;
-            }
-        }
-        return false;
-    }
-
-    @Override
-    public void onTransitionStart(Transition transition) {
-    }
-
-    // BEGIN_INCLUDE(on_transition_end)
-    @Override
-    public void onTransitionEnd(Transition transition) {
-        // When the transition ends, we remove all the views from the overlay and hide it.
-        mCover.removeAllViews();
-        mCover.setVisibility(View.INVISIBLE);
-    }
-    // END_INCLUDE(on_transition_end)
-
-    @Override
-    public void onTransitionCancel(Transition transition) {
-    }
-
-    @Override
-    public void onTransitionPause(Transition transition) {
-    }
-
-    @Override
-    public void onTransitionResume(Transition transition) {
-    }
-
-    /**
-     * Inflate a ListView or a GridView with a corresponding ListAdapter.
-     *
-     * @param inflater The LayoutInflater.
-     * @param container The ViewGroup that contains this AbsListView. The AbsListView won't be
-     *                  attached to it.
-     * @param inflateListView Pass true to inflate a ListView, or false to inflate a GridView.
-     */
-    private void inflateAbsList(LayoutInflater inflater, ViewGroup container,
-                                boolean inflateListView) {
-        if (inflateListView) {
-            mAbsListView = (AbsListView) inflater.inflate(R.layout.fragment_meat_list,
-                    container, false);
-            mAdapter = new MeatAdapter(inflater, R.layout.item_meat_list);
-        } else {
-            mAbsListView = (AbsListView) inflater.inflate(R.layout.fragment_meat_grid,
-                    container, false);
-            mAdapter = new MeatAdapter(inflater, R.layout.item_meat_grid);
-        }
-        mAbsListView.setAdapter(mAdapter);
-        mAbsListView.setOnItemClickListener(mAdapter);
-    }
-
-    /**
-     * Toggle the UI between ListView and GridView.
-     */
-    private void toggle() {
-        // We use mCover as the overlay on which we carry out the transition.
-        mCover.setVisibility(View.VISIBLE);
-        // This FrameLayout holds all the visible views in the current list or grid. We use this as
-        // the starting Scene of the Transition later.
-        FrameLayout before = copyVisibleViews();
-        FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
-                FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT);
-        mCover.addView(before, params);
-        // Swap the actual list.
-        swapAbsListView();
-        // We also swap the icon for the toggle button.
-        ActivityCompat.invalidateOptionsMenu(getActivity());
-        // It is now ready to start the transition.
-        mAbsListView.post(new Runnable() {
-            @Override
-            public void run() {
-                // BEGIN_INCLUDE(transition_with_listener)
-                Scene scene = new Scene(mCover, copyVisibleViews());
-                Transition transition = new AutoTransition();
-                transition.addListener(AdapterTransitionFragment.this);
-                TransitionManager.go(scene, transition);
-                // END_INCLUDE(transition_with_listener)
-            }
-        });
-    }
-
-    /**
-     * Swap ListView with GridView, or GridView with ListView.
-     */
-    private void swapAbsListView() {
-        // We save the current scrolling position before removing the current list.
-        int first = mAbsListView.getFirstVisiblePosition();
-        // If the current list is a GridView, we replace it with a ListView. If it is a ListView,
-        // a GridView.
-        LayoutInflater inflater = LayoutInflater.from(getActivity());
-        inflateAbsList(inflater, (ViewGroup) mAbsListView.getParent(),
-                mAbsListView instanceof GridView);
-        mAbsListView.setAdapter(mAdapter);
-        // We restore the scrolling position here.
-        mAbsListView.setSelection(first);
-        // The new list is ready, and we replace the existing one with it.
-        mContent.removeAllViews();
-        mContent.addView(mAbsListView);
-    }
-
-    /**
-     * Copy all the visible views in the mAbsListView into a new FrameLayout and return it.
-     *
-     * @return a FrameLayout with all the visible views inside.
-     */
-    private FrameLayout copyVisibleViews() {
-        // This is the FrameLayout we return afterwards.
-        FrameLayout layout = new FrameLayout(getActivity());
-        // The transition framework requires to set ID for all views to be animated.
-        layout.setId(ROOT_ID);
-        // We only copy visible views.
-        int first = mAbsListView.getFirstVisiblePosition();
-        int index = 0;
-        while (true) {
-            // This is one of the views that we copy. Note that the argument for getChildAt is a
-            // zero-oriented index, and it doesn't usually match with its position in the list.
-            View source = mAbsListView.getChildAt(index);
-            if (null == source) {
-                break;
-            }
-            // This is the copy of the original view.
-            View destination = mAdapter.getView(first + index, null, layout);
-            assert destination != null;
-            destination.setId(ROOT_ID + first + index);
-            FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
-                    source.getWidth(), source.getHeight());
-            params.leftMargin = (int) source.getX();
-            params.topMargin = (int) source.getY();
-            layout.addView(destination, params);
-            ++index;
-        }
-        return layout;
-    }
-
-}
diff --git a/samples/browseable/AdapterTransition/src/com.example.android.adaptertransition/Meat.java b/samples/browseable/AdapterTransition/src/com.example.android.adaptertransition/Meat.java
deleted file mode 100644
index bca1c5f..0000000
--- a/samples/browseable/AdapterTransition/src/com.example.android.adaptertransition/Meat.java
+++ /dev/null
@@ -1,46 +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.
- */
-
-package com.example.android.adaptertransition;
-
-/**
- * Sample data.
- */
-public class Meat {
-
-    public int resourceId;
-    public String title;
-
-    public Meat(int resourceId, String title) {
-        this.resourceId = resourceId;
-        this.title = title;
-    }
-
-    public static final Meat[] MEATS = {
-            new Meat(R.drawable.p1, "First"),
-            new Meat(R.drawable.p2, "Second"),
-            new Meat(R.drawable.p3, "Third"),
-            new Meat(R.drawable.p4, "Fourth"),
-            new Meat(R.drawable.p5, "Fifth"),
-            new Meat(R.drawable.p6, "Sixth"),
-            new Meat(R.drawable.p7, "Seventh"),
-            new Meat(R.drawable.p8, "Eighth"),
-            new Meat(R.drawable.p9, "Ninth"),
-            new Meat(R.drawable.p10, "Tenth"),
-            new Meat(R.drawable.p11, "Eleventh"),
-    };
-
-}
diff --git a/samples/browseable/AdapterTransition/src/com.example.android.adaptertransition/MeatAdapter.java b/samples/browseable/AdapterTransition/src/com.example.android.adaptertransition/MeatAdapter.java
deleted file mode 100644
index dea4435..0000000
--- a/samples/browseable/AdapterTransition/src/com.example.android.adaptertransition/MeatAdapter.java
+++ /dev/null
@@ -1,102 +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.
- */
-
-package com.example.android.adaptertransition;
-
-import android.content.Context;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.AbsListView;
-import android.widget.AdapterView;
-import android.widget.BaseAdapter;
-import android.widget.ImageView;
-import android.widget.TextView;
-import android.widget.Toast;
-
-/**
- * This class provides data as Views. It is designed to support both ListView and GridView by
- * changing a layout resource file to inflate.
- */
-public class MeatAdapter extends BaseAdapter implements AbsListView.OnItemClickListener {
-
-    private final LayoutInflater mLayoutInflater;
-    private final int mResourceId;
-
-    /**
-     * Create a new instance of {@link MeatAdapter}.
-     *
-     * @param inflater   The layout inflater.
-     * @param resourceId The resource ID for the layout to be used. The layout should contain an
-     *                   ImageView with ID of "meat_image" and a TextView with ID of "meat_title".
-     */
-    public MeatAdapter(LayoutInflater inflater, int resourceId) {
-        mLayoutInflater = inflater;
-        mResourceId = resourceId;
-    }
-
-    @Override
-    public int getCount() {
-        return Meat.MEATS.length;
-    }
-
-    @Override
-    public Meat getItem(int position) {
-        return Meat.MEATS[position];
-    }
-
-    @Override
-    public long getItemId(int position) {
-        return Meat.MEATS[position].resourceId;
-    }
-
-    @Override
-    public View getView(int position, View convertView, ViewGroup parent) {
-        final View view;
-        final ViewHolder holder;
-        if (null == convertView) {
-            view = mLayoutInflater.inflate(mResourceId, parent, false);
-            holder = new ViewHolder();
-            assert view != null;
-            holder.image = (ImageView) view.findViewById(R.id.meat_image);
-            holder.title = (TextView) view.findViewById(R.id.meat_title);
-            view.setTag(holder);
-        } else {
-            view = convertView;
-            holder = (ViewHolder) view.getTag();
-        }
-        Meat meat = getItem(position);
-        holder.image.setImageResource(meat.resourceId);
-        holder.title.setText(meat.title);
-        return view;
-    }
-
-    @Override
-    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
-        ViewHolder holder = (ViewHolder) view.getTag();
-        Context context = view.getContext();
-        if (null != holder && null != holder.title && null != context) {
-            Toast.makeText(context, context.getString(R.string.item_clicked,
-                    holder.title.getText()), Toast.LENGTH_SHORT).show();
-        }
-    }
-
-    private static class ViewHolder {
-        public ImageView image;
-        public TextView title;
-    }
-
-}
diff --git a/samples/browseable/AdapterTransition/src/com.example.android.common/view/SlidingTabLayout.java b/samples/browseable/AdapterTransition/src/com.example.android.common/view/SlidingTabLayout.java
deleted file mode 100644
index 20049e3..0000000
--- a/samples/browseable/AdapterTransition/src/com.example.android.common/view/SlidingTabLayout.java
+++ /dev/null
@@ -1,314 +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.view;
-
-import android.content.Context;
-import android.graphics.Typeface;
-import android.os.Build;
-import android.support.v4.view.PagerAdapter;
-import android.support.v4.view.ViewPager;
-import android.util.AttributeSet;
-import android.util.TypedValue;
-import android.view.Gravity;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.widget.HorizontalScrollView;
-import android.widget.TextView;
-
-/**
- * To be used with ViewPager to provide a tab indicator component which give constant feedback as to
- * the user's scroll progress.
- * <p>
- * To use the component, simply add it to your view hierarchy. Then in your
- * {@link android.app.Activity} or {@link android.support.v4.app.Fragment} call
- * {@link #setViewPager(ViewPager)} providing it the ViewPager this layout is being used for.
- * <p>
- * The colors can be customized in two ways. The first and simplest is to provide an array of colors
- * via {@link #setSelectedIndicatorColors(int...)} and {@link #setDividerColors(int...)}. The
- * alternative is via the {@link TabColorizer} interface which provides you complete control over
- * which color is used for any individual position.
- * <p>
- * The views used as tabs can be customized by calling {@link #setCustomTabView(int, int)},
- * providing the layout ID of your custom layout.
- */
-public class SlidingTabLayout extends HorizontalScrollView {
-
-    /**
-     * Allows complete control over the colors drawn in the tab layout. Set with
-     * {@link #setCustomTabColorizer(TabColorizer)}.
-     */
-    public interface TabColorizer {
-
-        /**
-         * @return return the color of the indicator used when {@code position} is selected.
-         */
-        int getIndicatorColor(int position);
-
-        /**
-         * @return return the color of the divider drawn to the right of {@code position}.
-         */
-        int getDividerColor(int position);
-
-    }
-
-    private static final int TITLE_OFFSET_DIPS = 24;
-    private static final int TAB_VIEW_PADDING_DIPS = 16;
-    private static final int TAB_VIEW_TEXT_SIZE_SP = 12;
-
-    private int mTitleOffset;
-
-    private int mTabViewLayoutId;
-    private int mTabViewTextViewId;
-
-    private ViewPager mViewPager;
-    private ViewPager.OnPageChangeListener mViewPagerPageChangeListener;
-
-    private final SlidingTabStrip mTabStrip;
-
-    public SlidingTabLayout(Context context) {
-        this(context, null);
-    }
-
-    public SlidingTabLayout(Context context, AttributeSet attrs) {
-        this(context, attrs, 0);
-    }
-
-    public SlidingTabLayout(Context context, AttributeSet attrs, int defStyle) {
-        super(context, attrs, defStyle);
-
-        // Disable the Scroll Bar
-        setHorizontalScrollBarEnabled(false);
-        // Make sure that the Tab Strips fills this View
-        setFillViewport(true);
-
-        mTitleOffset = (int) (TITLE_OFFSET_DIPS * getResources().getDisplayMetrics().density);
-
-        mTabStrip = new SlidingTabStrip(context);
-        addView(mTabStrip, LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
-    }
-
-    /**
-     * Set the custom {@link TabColorizer} to be used.
-     *
-     * If you only require simple custmisation then you can use
-     * {@link #setSelectedIndicatorColors(int...)} and {@link #setDividerColors(int...)} to achieve
-     * similar effects.
-     */
-    public void setCustomTabColorizer(TabColorizer tabColorizer) {
-        mTabStrip.setCustomTabColorizer(tabColorizer);
-    }
-
-    /**
-     * Sets the colors to be used for indicating the selected tab. These colors are treated as a
-     * circular array. Providing one color will mean that all tabs are indicated with the same color.
-     */
-    public void setSelectedIndicatorColors(int... colors) {
-        mTabStrip.setSelectedIndicatorColors(colors);
-    }
-
-    /**
-     * Sets the colors to be used for tab dividers. These colors are treated as a circular array.
-     * Providing one color will mean that all tabs are indicated with the same color.
-     */
-    public void setDividerColors(int... colors) {
-        mTabStrip.setDividerColors(colors);
-    }
-
-    /**
-     * Set the {@link ViewPager.OnPageChangeListener}. When using {@link SlidingTabLayout} you are
-     * required to set any {@link ViewPager.OnPageChangeListener} through this method. This is so
-     * that the layout can update it's scroll position correctly.
-     *
-     * @see ViewPager#setOnPageChangeListener(ViewPager.OnPageChangeListener)
-     */
-    public void setOnPageChangeListener(ViewPager.OnPageChangeListener listener) {
-        mViewPagerPageChangeListener = listener;
-    }
-
-    /**
-     * Set the custom layout to be inflated for the tab views.
-     *
-     * @param layoutResId Layout id to be inflated
-     * @param textViewId id of the {@link TextView} in the inflated view
-     */
-    public void setCustomTabView(int layoutResId, int textViewId) {
-        mTabViewLayoutId = layoutResId;
-        mTabViewTextViewId = textViewId;
-    }
-
-    /**
-     * Sets the associated view pager. Note that the assumption here is that the pager content
-     * (number of tabs and tab titles) does not change after this call has been made.
-     */
-    public void setViewPager(ViewPager viewPager) {
-        mTabStrip.removeAllViews();
-
-        mViewPager = viewPager;
-        if (viewPager != null) {
-            viewPager.setOnPageChangeListener(new InternalViewPagerListener());
-            populateTabStrip();
-        }
-    }
-
-    /**
-     * Create a default view to be used for tabs. This is called if a custom tab view is not set via
-     * {@link #setCustomTabView(int, int)}.
-     */
-    protected TextView createDefaultTabView(Context context) {
-        TextView textView = new TextView(context);
-        textView.setGravity(Gravity.CENTER);
-        textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, TAB_VIEW_TEXT_SIZE_SP);
-        textView.setTypeface(Typeface.DEFAULT_BOLD);
-
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
-            // If we're running on Honeycomb or newer, then we can use the Theme's
-            // selectableItemBackground to ensure that the View has a pressed state
-            TypedValue outValue = new TypedValue();
-            getContext().getTheme().resolveAttribute(android.R.attr.selectableItemBackground,
-                    outValue, true);
-            textView.setBackgroundResource(outValue.resourceId);
-        }
-
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
-            // If we're running on ICS or newer, enable all-caps to match the Action Bar tab style
-            textView.setAllCaps(true);
-        }
-
-        int padding = (int) (TAB_VIEW_PADDING_DIPS * getResources().getDisplayMetrics().density);
-        textView.setPadding(padding, padding, padding, padding);
-
-        return textView;
-    }
-
-    private void populateTabStrip() {
-        final PagerAdapter adapter = mViewPager.getAdapter();
-        final View.OnClickListener tabClickListener = new TabClickListener();
-
-        for (int i = 0; i < adapter.getCount(); i++) {
-            View tabView = null;
-            TextView tabTitleView = null;
-
-            if (mTabViewLayoutId != 0) {
-                // If there is a custom tab view layout id set, try and inflate it
-                tabView = LayoutInflater.from(getContext()).inflate(mTabViewLayoutId, mTabStrip,
-                        false);
-                tabTitleView = (TextView) tabView.findViewById(mTabViewTextViewId);
-            }
-
-            if (tabView == null) {
-                tabView = createDefaultTabView(getContext());
-            }
-
-            if (tabTitleView == null && TextView.class.isInstance(tabView)) {
-                tabTitleView = (TextView) tabView;
-            }
-
-            tabTitleView.setText(adapter.getPageTitle(i));
-            tabView.setOnClickListener(tabClickListener);
-
-            mTabStrip.addView(tabView);
-        }
-    }
-
-    @Override
-    protected void onAttachedToWindow() {
-        super.onAttachedToWindow();
-
-        if (mViewPager != null) {
-            scrollToTab(mViewPager.getCurrentItem(), 0);
-        }
-    }
-
-    private void scrollToTab(int tabIndex, int positionOffset) {
-        final int tabStripChildCount = mTabStrip.getChildCount();
-        if (tabStripChildCount == 0 || tabIndex < 0 || tabIndex >= tabStripChildCount) {
-            return;
-        }
-
-        View selectedChild = mTabStrip.getChildAt(tabIndex);
-        if (selectedChild != null) {
-            int targetScrollX = selectedChild.getLeft() + positionOffset;
-
-            if (tabIndex > 0 || positionOffset > 0) {
-                // If we're not at the first child and are mid-scroll, make sure we obey the offset
-                targetScrollX -= mTitleOffset;
-            }
-
-            scrollTo(targetScrollX, 0);
-        }
-    }
-
-    private class InternalViewPagerListener implements ViewPager.OnPageChangeListener {
-        private int mScrollState;
-
-        @Override
-        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
-            int tabStripChildCount = mTabStrip.getChildCount();
-            if ((tabStripChildCount == 0) || (position < 0) || (position >= tabStripChildCount)) {
-                return;
-            }
-
-            mTabStrip.onViewPagerPageChanged(position, positionOffset);
-
-            View selectedTitle = mTabStrip.getChildAt(position);
-            int extraOffset = (selectedTitle != null)
-                    ? (int) (positionOffset * selectedTitle.getWidth())
-                    : 0;
-            scrollToTab(position, extraOffset);
-
-            if (mViewPagerPageChangeListener != null) {
-                mViewPagerPageChangeListener.onPageScrolled(position, positionOffset,
-                        positionOffsetPixels);
-            }
-        }
-
-        @Override
-        public void onPageScrollStateChanged(int state) {
-            mScrollState = state;
-
-            if (mViewPagerPageChangeListener != null) {
-                mViewPagerPageChangeListener.onPageScrollStateChanged(state);
-            }
-        }
-
-        @Override
-        public void onPageSelected(int position) {
-            if (mScrollState == ViewPager.SCROLL_STATE_IDLE) {
-                mTabStrip.onViewPagerPageChanged(position, 0f);
-                scrollToTab(position, 0);
-            }
-
-            if (mViewPagerPageChangeListener != null) {
-                mViewPagerPageChangeListener.onPageSelected(position);
-            }
-        }
-
-    }
-
-    private class TabClickListener implements View.OnClickListener {
-        @Override
-        public void onClick(View v) {
-            for (int i = 0; i < mTabStrip.getChildCount(); i++) {
-                if (v == mTabStrip.getChildAt(i)) {
-                    mViewPager.setCurrentItem(i);
-                    return;
-                }
-            }
-        }
-    }
-
-}
diff --git a/samples/browseable/AdapterTransition/src/com.example.android.common/view/SlidingTabStrip.java b/samples/browseable/AdapterTransition/src/com.example.android.common/view/SlidingTabStrip.java
deleted file mode 100644
index d5bbbae..0000000
--- a/samples/browseable/AdapterTransition/src/com.example.android.common/view/SlidingTabStrip.java
+++ /dev/null
@@ -1,208 +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.view;
-
-import android.R;
-import android.content.Context;
-import android.graphics.Canvas;
-import android.graphics.Color;
-import android.graphics.Paint;
-import android.util.AttributeSet;
-import android.util.TypedValue;
-import android.view.View;
-import android.widget.LinearLayout;
-
-class SlidingTabStrip extends LinearLayout {
-
-    private static final int DEFAULT_BOTTOM_BORDER_THICKNESS_DIPS = 2;
-    private static final byte DEFAULT_BOTTOM_BORDER_COLOR_ALPHA = 0x26;
-    private static final int SELECTED_INDICATOR_THICKNESS_DIPS = 8;
-    private static final int DEFAULT_SELECTED_INDICATOR_COLOR = 0xFF33B5E5;
-
-    private static final int DEFAULT_DIVIDER_THICKNESS_DIPS = 1;
-    private static final byte DEFAULT_DIVIDER_COLOR_ALPHA = 0x20;
-    private static final float DEFAULT_DIVIDER_HEIGHT = 0.5f;
-
-    private final int mBottomBorderThickness;
-    private final Paint mBottomBorderPaint;
-
-    private final int mSelectedIndicatorThickness;
-    private final Paint mSelectedIndicatorPaint;
-
-    private final int mDefaultBottomBorderColor;
-
-    private final Paint mDividerPaint;
-    private final float mDividerHeight;
-
-    private int mSelectedPosition;
-    private float mSelectionOffset;
-
-    private SlidingTabLayout.TabColorizer mCustomTabColorizer;
-    private final SimpleTabColorizer mDefaultTabColorizer;
-
-    SlidingTabStrip(Context context) {
-        this(context, null);
-    }
-
-    SlidingTabStrip(Context context, AttributeSet attrs) {
-        super(context, attrs);
-        setWillNotDraw(false);
-
-        final float density = getResources().getDisplayMetrics().density;
-
-        TypedValue outValue = new TypedValue();
-        context.getTheme().resolveAttribute(R.attr.colorForeground, outValue, true);
-        final int themeForegroundColor =  outValue.data;
-
-        mDefaultBottomBorderColor = setColorAlpha(themeForegroundColor,
-                DEFAULT_BOTTOM_BORDER_COLOR_ALPHA);
-
-        mDefaultTabColorizer = new SimpleTabColorizer();
-        mDefaultTabColorizer.setIndicatorColors(DEFAULT_SELECTED_INDICATOR_COLOR);
-        mDefaultTabColorizer.setDividerColors(setColorAlpha(themeForegroundColor,
-                DEFAULT_DIVIDER_COLOR_ALPHA));
-
-        mBottomBorderThickness = (int) (DEFAULT_BOTTOM_BORDER_THICKNESS_DIPS * density);
-        mBottomBorderPaint = new Paint();
-        mBottomBorderPaint.setColor(mDefaultBottomBorderColor);
-
-        mSelectedIndicatorThickness = (int) (SELECTED_INDICATOR_THICKNESS_DIPS * density);
-        mSelectedIndicatorPaint = new Paint();
-
-        mDividerHeight = DEFAULT_DIVIDER_HEIGHT;
-        mDividerPaint = new Paint();
-        mDividerPaint.setStrokeWidth((int) (DEFAULT_DIVIDER_THICKNESS_DIPS * density));
-    }
-
-    void setCustomTabColorizer(SlidingTabLayout.TabColorizer customTabColorizer) {
-        mCustomTabColorizer = customTabColorizer;
-        invalidate();
-    }
-
-    void setSelectedIndicatorColors(int... colors) {
-        // Make sure that the custom colorizer is removed
-        mCustomTabColorizer = null;
-        mDefaultTabColorizer.setIndicatorColors(colors);
-        invalidate();
-    }
-
-    void setDividerColors(int... colors) {
-        // Make sure that the custom colorizer is removed
-        mCustomTabColorizer = null;
-        mDefaultTabColorizer.setDividerColors(colors);
-        invalidate();
-    }
-
-    void onViewPagerPageChanged(int position, float positionOffset) {
-        mSelectedPosition = position;
-        mSelectionOffset = positionOffset;
-        invalidate();
-    }
-
-    @Override
-    protected void onDraw(Canvas canvas) {
-        final int height = getHeight();
-        final int childCount = getChildCount();
-        final int dividerHeightPx = (int) (Math.min(Math.max(0f, mDividerHeight), 1f) * height);
-        final SlidingTabLayout.TabColorizer tabColorizer = mCustomTabColorizer != null
-                ? mCustomTabColorizer
-                : mDefaultTabColorizer;
-
-        // Thick colored underline below the current selection
-        if (childCount > 0) {
-            View selectedTitle = getChildAt(mSelectedPosition);
-            int left = selectedTitle.getLeft();
-            int right = selectedTitle.getRight();
-            int color = tabColorizer.getIndicatorColor(mSelectedPosition);
-
-            if (mSelectionOffset > 0f && mSelectedPosition < (getChildCount() - 1)) {
-                int nextColor = tabColorizer.getIndicatorColor(mSelectedPosition + 1);
-                if (color != nextColor) {
-                    color = blendColors(nextColor, color, mSelectionOffset);
-                }
-
-                // Draw the selection partway between the tabs
-                View nextTitle = getChildAt(mSelectedPosition + 1);
-                left = (int) (mSelectionOffset * nextTitle.getLeft() +
-                        (1.0f - mSelectionOffset) * left);
-                right = (int) (mSelectionOffset * nextTitle.getRight() +
-                        (1.0f - mSelectionOffset) * right);
-            }
-
-            mSelectedIndicatorPaint.setColor(color);
-
-            canvas.drawRect(left, height - mSelectedIndicatorThickness, right,
-                    height, mSelectedIndicatorPaint);
-        }
-
-        // Thin underline along the entire bottom edge
-        canvas.drawRect(0, height - mBottomBorderThickness, getWidth(), height, mBottomBorderPaint);
-
-        // Vertical separators between the titles
-        int separatorTop = (height - dividerHeightPx) / 2;
-        for (int i = 0; i < childCount - 1; i++) {
-            View child = getChildAt(i);
-            mDividerPaint.setColor(tabColorizer.getDividerColor(i));
-            canvas.drawLine(child.getRight(), separatorTop, child.getRight(),
-                    separatorTop + dividerHeightPx, mDividerPaint);
-        }
-    }
-
-    /**
-     * Set the alpha value of the {@code color} to be the given {@code alpha} value.
-     */
-    private static int setColorAlpha(int color, byte alpha) {
-        return Color.argb(alpha, Color.red(color), Color.green(color), Color.blue(color));
-    }
-
-    /**
-     * Blend {@code color1} and {@code color2} using the given ratio.
-     *
-     * @param ratio of which to blend. 1.0 will return {@code color1}, 0.5 will give an even blend,
-     *              0.0 will return {@code color2}.
-     */
-    private static int blendColors(int color1, int color2, float ratio) {
-        final float inverseRation = 1f - ratio;
-        float r = (Color.red(color1) * ratio) + (Color.red(color2) * inverseRation);
-        float g = (Color.green(color1) * ratio) + (Color.green(color2) * inverseRation);
-        float b = (Color.blue(color1) * ratio) + (Color.blue(color2) * inverseRation);
-        return Color.rgb((int) r, (int) g, (int) b);
-    }
-
-    private static class SimpleTabColorizer implements SlidingTabLayout.TabColorizer {
-        private int[] mIndicatorColors;
-        private int[] mDividerColors;
-
-        @Override
-        public final int getIndicatorColor(int position) {
-            return mIndicatorColors[position % mIndicatorColors.length];
-        }
-
-        @Override
-        public final int getDividerColor(int position) {
-            return mDividerColors[position % mDividerColors.length];
-        }
-
-        void setIndicatorColors(int... colors) {
-            mIndicatorColors = colors;
-        }
-
-        void setDividerColors(int... colors) {
-            mDividerColors = colors;
-        }
-    }
-}
\ No newline at end of file
diff --git a/samples/browseable/AgendaData/Application/res/layout/activity_main.xml b/samples/browseable/AgendaData/Application/res/layout/activity_main.xml
deleted file mode 100755
index be1aa49..0000000
--- a/samples/browseable/AgendaData/Application/res/layout/activity_main.xml
+++ /dev/null
@@ -1,36 +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.
-  -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
-
-    <LinearLayout style="@style/Widget.SampleMessageTile"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  android:orientation="vertical">
-
-        <TextView style="@style/Widget.SampleMessage"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="@dimen/horizontal_page_margin"
-            android:layout_marginRight="@dimen/horizontal_page_margin"
-            android:layout_marginTop="@dimen/vertical_page_margin"
-            android:layout_marginBottom="@dimen/vertical_page_margin"
-            android:text="@string/intro_message" />
-    </LinearLayout>
-</LinearLayout>
diff --git a/samples/browseable/AppRestrictionEnforcer/res/layout/activity_main.xml b/samples/browseable/AppRestrictionEnforcer/res/layout/activity_main.xml
deleted file mode 100755
index be1aa49..0000000
--- a/samples/browseable/AppRestrictionEnforcer/res/layout/activity_main.xml
+++ /dev/null
@@ -1,36 +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.
-  -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
-
-    <LinearLayout style="@style/Widget.SampleMessageTile"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  android:orientation="vertical">
-
-        <TextView style="@style/Widget.SampleMessage"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="@dimen/horizontal_page_margin"
-            android:layout_marginRight="@dimen/horizontal_page_margin"
-            android:layout_marginTop="@dimen/vertical_page_margin"
-            android:layout_marginBottom="@dimen/vertical_page_margin"
-            android:text="@string/intro_message" />
-    </LinearLayout>
-</LinearLayout>
diff --git a/samples/browseable/AppRestrictionEnforcer/res/layout/fragment_app_restriction_enforcer.xml b/samples/browseable/AppRestrictionEnforcer/res/layout/fragment_app_restriction_enforcer.xml
index e6c50a2..0118191 100644
--- a/samples/browseable/AppRestrictionEnforcer/res/layout/fragment_app_restriction_enforcer.xml
+++ b/samples/browseable/AppRestrictionEnforcer/res/layout/fragment_app_restriction_enforcer.xml
@@ -14,31 +14,111 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical"
-    android:paddingBottom="@dimen/vertical_page_margin"
-    android:paddingLeft="@dimen/horizontal_page_margin"
-    android:paddingRight="@dimen/horizontal_page_margin"
-    android:paddingTop="@dimen/vertical_page_margin">
 
-    <TextView
-        android:id="@+id/status"
+<ScrollView
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:text="@string/status_not_installed" />
+        android:orientation="vertical"
+        android:paddingBottom="@dimen/vertical_page_margin"
+        android:paddingLeft="@dimen/horizontal_page_margin"
+        android:paddingRight="@dimen/horizontal_page_margin"
+        android:paddingTop="@dimen/vertical_page_margin">
 
-    <Button
-        android:id="@+id/unhide"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:text="@string/unhide" />
 
-    <Switch
-        android:id="@+id/say_hello"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:text="@string/allow_saying_hello" />
+        <Switch
+            android:id="@+id/say_hello"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="@string/allow_saying_hello"/>
 
-</LinearLayout>
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="@dimen/vertical_page_margin"
+            android:orientation="horizontal">
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:labelFor="@id/message"
+                android:text="@string/message"/>
+
+            <EditText
+                android:id="@id/message"
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:inputType="text"
+                android:maxLines="1"/>
+
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="@dimen/vertical_page_margin"
+            android:orientation="horizontal">
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:labelFor="@id/number"
+                android:text="@string/number"/>
+
+            <EditText
+                android:id="@id/number"
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:inputType="number"
+                android:maxLines="1"/>
+
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="@dimen/vertical_page_margin"
+            android:orientation="horizontal">
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="@string/rank"/>
+
+            <Spinner
+                android:id="@+id/rank"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginStart="@dimen/margin_small"/>
+
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="@dimen/vertical_page_margin"
+            android:orientation="horizontal">
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="@string/approvals"/>
+
+            <LinearLayout
+                android:id="@+id/approvals"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginStart="@dimen/margin_small"
+                android:orientation="vertical"/>
+
+        </LinearLayout>
+
+    </LinearLayout>
+
+</ScrollView>
diff --git a/samples/browseable/AppRestrictionEnforcer/res/layout/fragment_setup_profile.xml b/samples/browseable/AppRestrictionEnforcer/res/layout/fragment_setup_profile.xml
index e9e9fe8..8fde91f 100644
--- a/samples/browseable/AppRestrictionEnforcer/res/layout/fragment_setup_profile.xml
+++ b/samples/browseable/AppRestrictionEnforcer/res/layout/fragment_setup_profile.xml
@@ -20,7 +20,7 @@
     android:layout_height="match_parent"
     tools:context="com.example.android.basicmanagedprofile.MainActivity.MainFragment">
 
-    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:orientation="vertical"
diff --git a/samples/browseable/AppRestrictionEnforcer/res/layout/fragment_status.xml b/samples/browseable/AppRestrictionEnforcer/res/layout/fragment_status.xml
new file mode 100644
index 0000000..a2d60eb
--- /dev/null
+++ b/samples/browseable/AppRestrictionEnforcer/res/layout/fragment_status.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+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.
+-->
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical"
+    android:paddingBottom="@dimen/vertical_page_margin"
+    android:paddingLeft="@dimen/horizontal_page_margin"
+    android:paddingRight="@dimen/horizontal_page_margin"
+    android:paddingTop="@dimen/vertical_page_margin">
+
+    <TextView
+        android:id="@+id/status"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:text="@string/status_not_installed"/>
+
+    <Button
+        android:id="@+id/unhide"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="@string/unhide"/>
+
+</LinearLayout>
diff --git a/samples/browseable/AdapterTransition/res/values/strings.xml b/samples/browseable/AppRestrictionEnforcer/res/layout/separator.xml
similarity index 62%
copy from samples/browseable/AdapterTransition/res/values/strings.xml
copy to samples/browseable/AppRestrictionEnforcer/res/layout/separator.xml
index 02b87cf..6927d80 100644
--- a/samples/browseable/AdapterTransition/res/values/strings.xml
+++ b/samples/browseable/AppRestrictionEnforcer/res/layout/separator.xml
@@ -6,7 +6,7 @@
 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
+ 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,
@@ -14,8 +14,9 @@
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
-<resources>
-    <string name="item_clicked">%s clicked</string>
-    <string name="show_as_grid">Show as grid</string>
-    <string name="show_as_list">Show as list</string>
-</resources>
+<View xmlns:android="http://schemas.android.com/apk/res/android"
+      android:layout_width="match_parent"
+      android:layout_height="1dp"
+      android:layout_marginBottom="@dimen/margin_medium"
+      android:layout_marginTop="@dimen/margin_medium"
+      android:background="#9000"/>
diff --git a/samples/browseable/AdapterTransition/res/values/strings.xml b/samples/browseable/AppRestrictionEnforcer/res/values/ids.xml
similarity index 74%
copy from samples/browseable/AdapterTransition/res/values/strings.xml
copy to samples/browseable/AppRestrictionEnforcer/res/values/ids.xml
index 02b87cf..04ba4ec 100644
--- a/samples/browseable/AdapterTransition/res/values/strings.xml
+++ b/samples/browseable/AppRestrictionEnforcer/res/values/ids.xml
@@ -6,7 +6,7 @@
 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
+ 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,
@@ -15,7 +15,7 @@
 limitations under the License.
 -->
 <resources>
-    <string name="item_clicked">%s clicked</string>
-    <string name="show_as_grid">Show as grid</string>
-    <string name="show_as_list">Show as list</string>
+    <item name="message" type="id"/>
+    <item name="number" type="id"/>
+    <item name="approval" type="id"/>
 </resources>
diff --git a/samples/browseable/AppRestrictionEnforcer/res/values/strings.xml b/samples/browseable/AppRestrictionEnforcer/res/values/strings.xml
index 3029e04..e35daee 100644
--- a/samples/browseable/AppRestrictionEnforcer/res/values/strings.xml
+++ b/samples/browseable/AppRestrictionEnforcer/res/values/strings.xml
@@ -25,4 +25,8 @@
     <string name="allowed">Allowed</string>
     <string name="disallowed">Disallowed</string>
     <string name="profile_name">AppRestrictionEnforcer </string>
+    <string name="message">Message: </string>
+    <string name="number">Number: </string>
+    <string name="rank">Rank: </string>
+    <string name="approvals">Approvals: </string>
 </resources>
diff --git a/samples/browseable/AppRestrictionEnforcer/src/com.example.android.apprestrictionenforcer/AppRestrictionEnforcerFragment.java b/samples/browseable/AppRestrictionEnforcer/src/com.example.android.apprestrictionenforcer/AppRestrictionEnforcerFragment.java
index 6db54f6..8b0620f 100644
--- a/samples/browseable/AppRestrictionEnforcer/src/com.example.android.apprestrictionenforcer/AppRestrictionEnforcerFragment.java
+++ b/samples/browseable/AppRestrictionEnforcer/src/com.example.android.apprestrictionenforcer/AppRestrictionEnforcerFragment.java
@@ -22,34 +22,34 @@
 import android.content.RestrictionEntry;
 import android.content.RestrictionsManager;
 import android.content.SharedPreferences;
-import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageManager;
 import android.os.Bundle;
 import android.support.annotation.Nullable;
 import android.support.v4.app.Fragment;
+import android.text.Editable;
+import android.text.TextUtils;
+import android.text.TextWatcher;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
-import android.widget.Button;
+import android.widget.AdapterView;
+import android.widget.ArrayAdapter;
 import android.widget.CompoundButton;
+import android.widget.EditText;
+import android.widget.LinearLayout;
+import android.widget.Spinner;
 import android.widget.Switch;
-import android.widget.TextView;
 import android.widget.Toast;
 
+import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 /**
  * This fragment provides UI and functionality to set restrictions on the AppRestrictionSchema
  * sample.
  */
-public class AppRestrictionEnforcerFragment extends Fragment implements View.OnClickListener,
-        CompoundButton.OnCheckedChangeListener {
-
-    /**
-     * Package name of the AppRestrictionSchema sample.
-     */
-    private static final String PACKAGE_NAME_APP_RESTRICTION_SCHEMA
-            = "com.example.android.apprestrictionschema";
+public class AppRestrictionEnforcerFragment extends Fragment implements
+        CompoundButton.OnCheckedChangeListener, AdapterView.OnItemSelectedListener {
 
     /**
      * Key for {@link SharedPreferences}
@@ -62,15 +62,38 @@
     private static final String RESTRICTION_KEY_SAY_HELLO = "can_say_hello";
 
     /**
-     * Default boolean value for "can_say_hello" restriction. The actual value is loaded in
-     * {@link #loadRestrictions(android.app.Activity)}.
+     * Key for the string restriction in AppRestrictionSchema.
      */
-    private boolean mDefaultValueRestrictionSayHello;
+    private static final String RESTRICTION_KEY_MESSAGE = "message";
+
+    /**
+     * Key for the integer restriction in AppRestrictionSchema.
+     */
+    private static final String RESTRICTION_KEY_NUMBER = "number";
+
+    /**
+     * Key for the choice restriction in AppRestrictionSchema.
+     */
+    private static final String RESTRICTION_KEY_RANK = "rank";
+
+    /**
+     * Key for the multi-select restriction in AppRestrictionSchema.
+     */
+    private static final String RESTRICTION_KEY_APPROVALS = "approvals";
+
+    private static final String DELIMETER = ",";
+
+    /**
+     * Current status of the restrictions.
+     */
+    private Bundle mCurrentRestrictions = new Bundle();
 
     // UI Components
-    private TextView mTextStatus;
-    private Button mButtonUnhide;
     private Switch mSwitchSayHello;
+    private EditText mEditMessage;
+    private EditText mEditNumber;
+    private Spinner mSpinnerRank;
+    private LinearLayout mLayoutApprovals;
 
     @Override
     public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
@@ -80,99 +103,72 @@
 
     @Override
     public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
-        mTextStatus = (TextView) view.findViewById(R.id.status);
-        mButtonUnhide = (Button) view.findViewById(R.id.unhide);
+        // Retain references for the UI elements
         mSwitchSayHello = (Switch) view.findViewById(R.id.say_hello);
-        mButtonUnhide.setOnClickListener(this);
-        mSwitchSayHello.setOnCheckedChangeListener(this);
+        mEditMessage = (EditText) view.findViewById(R.id.message);
+        mEditNumber = (EditText) view.findViewById(R.id.number);
+        mSpinnerRank = (Spinner) view.findViewById(R.id.rank);
+        mLayoutApprovals = (LinearLayout) view.findViewById(R.id.approvals);
     }
 
     @Override
     public void onResume() {
         super.onResume();
-        updateUi(getActivity());
-    }
-
-    @Override
-    public void onClick(View view) {
-        switch (view.getId()) {
-            case R.id.unhide: {
-                unhideApp(getActivity());
-                break;
-            }
-        }
+        loadRestrictions(getActivity());
     }
 
     @Override
     public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
         switch (compoundButton.getId()) {
             case R.id.say_hello: {
-                allowSayHello(getActivity(), checked);
+                saveCanSayHello(getActivity(), checked);
+                break;
+            }
+            case R.id.approval: {
+                if (checked) {
+                    addApproval(getActivity(), (String) compoundButton.getTag());
+                } else {
+                    removeApproval(getActivity(), (String) compoundButton.getTag());
+                }
                 break;
             }
         }
     }
 
-    /**
-     * Updates the UI components according to the current status of AppRestrictionSchema and its
-     * restriction.
-     *
-     * @param activity The activity
-     */
-    private void updateUi(Activity activity) {
-        PackageManager packageManager = activity.getPackageManager();
-        try {
-            ApplicationInfo info = packageManager.getApplicationInfo(
-                    PACKAGE_NAME_APP_RESTRICTION_SCHEMA, PackageManager.GET_UNINSTALLED_PACKAGES);
-            DevicePolicyManager devicePolicyManager =
-                    (DevicePolicyManager) activity.getSystemService(Activity.DEVICE_POLICY_SERVICE);
-            if (0 < (info.flags & ApplicationInfo.FLAG_INSTALLED)) {
-                if (!devicePolicyManager.isApplicationHidden(
-                        EnforcerDeviceAdminReceiver.getComponentName(activity),
-                        PACKAGE_NAME_APP_RESTRICTION_SCHEMA)) {
-                    // The app is ready
-                    loadRestrictions(activity);
-                    mTextStatus.setVisibility(View.GONE);
-                    mButtonUnhide.setVisibility(View.GONE);
-                    mSwitchSayHello.setVisibility(View.VISIBLE);
-                    mSwitchSayHello.setOnCheckedChangeListener(null);
-                    mSwitchSayHello.setChecked(canSayHello(activity));
-                    mSwitchSayHello.setOnCheckedChangeListener(this);
-                } else {
-                    // The app is installed but hidden in this profile
-                    mTextStatus.setText(R.string.status_not_activated);
-                    mTextStatus.setVisibility(View.VISIBLE);
-                    mButtonUnhide.setVisibility(View.VISIBLE);
-                    mSwitchSayHello.setVisibility(View.GONE);
+    private TextWatcher mWatcherMessage = new EasyTextWatcher() {
+        @Override
+        public void afterTextChanged(Editable s) {
+            saveMessage(getActivity(), s.toString());
+        }
+    };
+
+    private TextWatcher mWatcherNumber = new EasyTextWatcher() {
+        @Override
+        public void afterTextChanged(Editable s) {
+            try {
+                String string = s.toString();
+                if (!TextUtils.isEmpty(string)) {
+                    saveNumber(getActivity(), Integer.parseInt(string));
                 }
-            } else {
-                // Need to reinstall the sample app
-                mTextStatus.setText(R.string.status_need_reinstall);
-                mTextStatus.setVisibility(View.VISIBLE);
-                mButtonUnhide.setVisibility(View.GONE);
-                mSwitchSayHello.setVisibility(View.GONE);
+            } catch (NumberFormatException e) {
+                Toast.makeText(getActivity(), "Not an integer!", Toast.LENGTH_SHORT).show();
             }
-        } catch (PackageManager.NameNotFoundException e) {
-            mTextStatus.setText(R.string.status_not_installed);
-            mTextStatus.setVisibility(View.VISIBLE);
-            mButtonUnhide.setVisibility(View.GONE);
-            mSwitchSayHello.setVisibility(View.GONE);
+        }
+    };
+
+    @Override
+    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
+        switch (parent.getId()) {
+            case R.id.rank: {
+                saveRank(getActivity(), (String) parent.getAdapter().getItem(position));
+                break;
+            }
         }
     }
 
-    /**
-     * Unhides the AppRestrictionSchema sample in case it is hidden in this profile.
-     *
-     * @param activity The activity
-     */
-    private void unhideApp(Activity activity) {
-        DevicePolicyManager devicePolicyManager =
-                (DevicePolicyManager) activity.getSystemService(Activity.DEVICE_POLICY_SERVICE);
-        devicePolicyManager.setApplicationHidden(
-                EnforcerDeviceAdminReceiver.getComponentName(activity),
-                PACKAGE_NAME_APP_RESTRICTION_SCHEMA, false);
-        Toast.makeText(activity, "Enabled the app", Toast.LENGTH_SHORT).show();
-        updateUi(activity);
+    @Override
+    public void onNothingSelected(AdapterView<?> parent) {
+        // Nothing to do
     }
 
     /**
@@ -182,50 +178,187 @@
      * @param activity The activity
      */
     private void loadRestrictions(Activity activity) {
-        RestrictionsManager restrictionsManager =
+        RestrictionsManager manager =
                 (RestrictionsManager) activity.getSystemService(Context.RESTRICTIONS_SERVICE);
         List<RestrictionEntry> restrictions =
-                restrictionsManager.getManifestRestrictions(PACKAGE_NAME_APP_RESTRICTION_SCHEMA);
+                manager.getManifestRestrictions(Constants.PACKAGE_NAME_APP_RESTRICTION_SCHEMA);
+        SharedPreferences prefs = activity.getSharedPreferences(PREFS_KEY, Context.MODE_PRIVATE);
         for (RestrictionEntry restriction : restrictions) {
-            if (RESTRICTION_KEY_SAY_HELLO.equals(restriction.getKey())) {
-                mDefaultValueRestrictionSayHello = restriction.getSelectedState();
+            String key = restriction.getKey();
+            if (RESTRICTION_KEY_SAY_HELLO.equals(key)) {
+                updateCanSayHello(prefs.getBoolean(RESTRICTION_KEY_SAY_HELLO,
+                        restriction.getSelectedState()));
+            } else if (RESTRICTION_KEY_MESSAGE.equals(key)) {
+                updateMessage(prefs.getString(RESTRICTION_KEY_MESSAGE,
+                        restriction.getSelectedString()));
+            } else if (RESTRICTION_KEY_NUMBER.equals(key)) {
+                updateNumber(prefs.getInt(RESTRICTION_KEY_NUMBER,
+                        restriction.getIntValue()));
+            } else if (RESTRICTION_KEY_RANK.equals(key)) {
+                updateRank(activity, restriction.getChoiceValues(),
+                        prefs.getString(RESTRICTION_KEY_RANK, restriction.getSelectedString()));
+            } else if (RESTRICTION_KEY_APPROVALS.equals(key)) {
+                updateApprovals(activity, restriction.getChoiceValues(),
+                        TextUtils.split(prefs.getString(RESTRICTION_KEY_APPROVALS,
+                                        TextUtils.join(DELIMETER,
+                                                restriction.getAllSelectedStrings())),
+                                DELIMETER));
             }
         }
     }
 
-    /**
-     * Returns whether the AppRestrictionSchema is currently allowed to say hello to its user. Note
-     * that a profile/device owner needs to remember each restriction value on its own.
-     *
-     * @param activity The activity
-     * @return True if the AppRestrictionSchema is allowed to say hello
-     */
-    private boolean canSayHello(Activity activity) {
-        SharedPreferences prefs = activity.getSharedPreferences(PREFS_KEY, Context.MODE_PRIVATE);
-        return prefs.getBoolean(RESTRICTION_KEY_SAY_HELLO, mDefaultValueRestrictionSayHello);
+    private void updateCanSayHello(boolean canSayHello) {
+        mCurrentRestrictions.putBoolean(RESTRICTION_KEY_SAY_HELLO, canSayHello);
+        mSwitchSayHello.setOnCheckedChangeListener(null);
+        mSwitchSayHello.setChecked(canSayHello);
+        mSwitchSayHello.setOnCheckedChangeListener(this);
+    }
+
+    private void updateMessage(String message) {
+        mCurrentRestrictions.putString(RESTRICTION_KEY_MESSAGE, message);
+        mEditMessage.removeTextChangedListener(mWatcherMessage);
+        mEditMessage.setText(message);
+        mEditMessage.addTextChangedListener(mWatcherMessage);
+    }
+
+    private void updateNumber(int number) {
+        mCurrentRestrictions.putInt(RESTRICTION_KEY_NUMBER, number);
+        mEditNumber.removeTextChangedListener(mWatcherNumber);
+        mEditNumber.setText(String.valueOf(number));
+        mEditNumber.addTextChangedListener(mWatcherNumber);
+    }
+
+    private void updateRank(Context context, String[] ranks, String selectedRank) {
+        mCurrentRestrictions.putString(RESTRICTION_KEY_RANK, selectedRank);
+        mSpinnerRank.setAdapter(new ArrayAdapter<>(context,
+                android.R.layout.simple_spinner_dropdown_item, ranks));
+        mSpinnerRank.setSelection(search(ranks, selectedRank));
+        mSpinnerRank.setOnItemSelectedListener(this);
+    }
+
+    private void updateApprovals(Context context, String[] approvals,
+                                 String[] selectedApprovals) {
+        mCurrentRestrictions.putStringArray(RESTRICTION_KEY_APPROVALS, selectedApprovals);
+        mLayoutApprovals.removeAllViews();
+        for (String approval : approvals) {
+            Switch sw = new Switch(context);
+            sw.setText(approval);
+            sw.setTag(approval);
+            sw.setChecked(Arrays.asList(selectedApprovals).contains(approval));
+            sw.setOnCheckedChangeListener(this);
+            sw.setId(R.id.approval);
+            mLayoutApprovals.addView(sw);
+        }
     }
 
     /**
-     * Sets the value for the "cay_say_hello" restriction of AppRestrictionSchema.
+     * Saves the value for the "cay_say_hello" restriction of AppRestrictionSchema.
      *
      * @param activity The activity
      * @param allow    The value to be set for the restriction.
      */
-    private void allowSayHello(Activity activity, boolean allow) {
+    private void saveCanSayHello(Activity activity, boolean allow) {
+        mCurrentRestrictions.putBoolean(RESTRICTION_KEY_SAY_HELLO, allow);
+        saveRestrictions(activity);
+        // Note that the owner app needs to remember the restrictions on its own.
+        editPreferences(activity).putBoolean(RESTRICTION_KEY_SAY_HELLO, allow).apply();
+    }
+
+    /**
+     * Saves the value for the "message" restriction of AppRestrictionSchema.
+     *
+     * @param activity The activity
+     * @param message  The value to be set for the restriction.
+     */
+    private void saveMessage(Activity activity, String message) {
+        mCurrentRestrictions.putString(RESTRICTION_KEY_MESSAGE, message);
+        saveRestrictions(activity);
+        editPreferences(activity).putString(RESTRICTION_KEY_MESSAGE, message).apply();
+    }
+
+    /**
+     * Saves the value for the "number" restriction of AppRestrictionSchema.
+     *
+     * @param activity The activity
+     * @param number   The value to be set for the restriction.
+     */
+    private void saveNumber(Activity activity, int number) {
+        mCurrentRestrictions.putInt(RESTRICTION_KEY_NUMBER, number);
+        saveRestrictions(activity);
+        editPreferences(activity).putInt(RESTRICTION_KEY_NUMBER, number).apply();
+    }
+
+    /**
+     * Saves the value for the "rank" restriction of AppRestrictionSchema.
+     *
+     * @param activity The activity
+     * @param rank     The value to be set for the restriction.
+     */
+    private void saveRank(Activity activity, String rank) {
+        mCurrentRestrictions.putString(RESTRICTION_KEY_RANK, rank);
+        saveRestrictions(activity);
+        editPreferences(activity).putString(RESTRICTION_KEY_RANK, rank).apply();
+    }
+
+    private void addApproval(Activity activity, String approval) {
+        List<String> approvals = new ArrayList<>(Arrays.asList(
+                mCurrentRestrictions.getStringArray(RESTRICTION_KEY_APPROVALS)));
+        if (approvals.contains(approval)) {
+            return;
+        }
+        approvals.add(approval);
+        saveApprovals(activity, approvals.toArray(new String[approvals.size()]));
+    }
+
+    private void removeApproval(Activity activity, String approval) {
+        List<String> approvals = new ArrayList<>(Arrays.asList(
+                mCurrentRestrictions.getStringArray(RESTRICTION_KEY_APPROVALS)));
+        if (!approval.contains(approval)) {
+            return;
+        }
+        approvals.remove(approval);
+        saveApprovals(activity, approvals.toArray(new String[approvals.size()]));
+    }
+
+    /**
+     * Saves the value for the "approvals" restriction of AppRestrictionSchema.
+     *
+     * @param activity  The activity
+     * @param approvals The value to be set for the restriction.
+     */
+    private void saveApprovals(Activity activity, String[] approvals) {
+        mCurrentRestrictions.putStringArray(RESTRICTION_KEY_APPROVALS, approvals);
+        saveRestrictions(activity);
+        editPreferences(activity).putString(RESTRICTION_KEY_APPROVALS,
+                TextUtils.join(DELIMETER, approvals)).apply();
+    }
+
+    private void saveRestrictions(Activity activity) {
         DevicePolicyManager devicePolicyManager
                 = (DevicePolicyManager) activity.getSystemService(Context.DEVICE_POLICY_SERVICE);
-        Bundle restrictions = new Bundle();
-        restrictions.putBoolean(RESTRICTION_KEY_SAY_HELLO, allow);
         devicePolicyManager.setApplicationRestrictions(
                 EnforcerDeviceAdminReceiver.getComponentName(activity),
-                PACKAGE_NAME_APP_RESTRICTION_SCHEMA, restrictions);
-        // The profile/device owner needs to remember the current state of restrictions on its own
-        activity.getSharedPreferences(PREFS_KEY, Context.MODE_PRIVATE)
-                .edit()
-                .putBoolean(RESTRICTION_KEY_SAY_HELLO, allow)
-                .apply();
-        Toast.makeText(activity, allow ? R.string.allowed : R.string.disallowed,
-                Toast.LENGTH_SHORT).show();
+                Constants.PACKAGE_NAME_APP_RESTRICTION_SCHEMA, mCurrentRestrictions);
+    }
+
+    private SharedPreferences.Editor editPreferences(Activity activity) {
+        return activity.getSharedPreferences(PREFS_KEY, Context.MODE_PRIVATE).edit();
+    }
+
+    /**
+     * Sequential search
+     *
+     * @param array The string array
+     * @param s     The string to search for
+     * @return Index if found. -1 if not found.
+     */
+    private int search(String[] array, String s) {
+        for (int i = 0; i < array.length; ++i) {
+            if (s.equals(array[i])) {
+                return i;
+            }
+        }
+        return -1;
     }
 
 }
diff --git a/samples/browseable/EmbeddedApp/Wearable/src/com.example.android.wearable.embeddedapp/WearableActivity.java b/samples/browseable/AppRestrictionEnforcer/src/com.example.android.apprestrictionenforcer/Constants.java
similarity index 65%
rename from samples/browseable/EmbeddedApp/Wearable/src/com.example.android.wearable.embeddedapp/WearableActivity.java
rename to samples/browseable/AppRestrictionEnforcer/src/com.example.android.apprestrictionenforcer/Constants.java
index 3703f34..bb4e958 100644
--- a/samples/browseable/EmbeddedApp/Wearable/src/com.example.android.wearable.embeddedapp/WearableActivity.java
+++ b/samples/browseable/AppRestrictionEnforcer/src/com.example.android.apprestrictionenforcer/Constants.java
@@ -14,16 +14,14 @@
  * limitations under the License.
  */
 
-package com.example.android.wearable.embeddedapp;
+package com.example.android.apprestrictionenforcer;
 
-import android.app.Activity;
-import android.os.Bundle;
+public interface Constants {
 
-public class WearableActivity extends Activity {
+    /**
+     * Package name of the AppRestrictionSchema sample.
+     */
+    public static final String PACKAGE_NAME_APP_RESTRICTION_SCHEMA
+            = "com.example.android.apprestrictionschema";
 
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.activity_wearable);
-    }
 }
diff --git a/samples/browseable/AppRestrictionEnforcer/src/com.example.android.apprestrictionenforcer/EasyTextWatcher.java b/samples/browseable/AppRestrictionEnforcer/src/com.example.android.apprestrictionenforcer/EasyTextWatcher.java
new file mode 100644
index 0000000..8e0abb4
--- /dev/null
+++ b/samples/browseable/AppRestrictionEnforcer/src/com.example.android.apprestrictionenforcer/EasyTextWatcher.java
@@ -0,0 +1,38 @@
+/*
+ * 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.
+ */
+
+package com.example.android.apprestrictionenforcer;
+
+import android.text.TextWatcher;
+
+/**
+ * This is a wrapper around {@link TextWatcher} that overrides
+ * {@link TextWatcher#beforeTextChanged(CharSequence, int, int, int)} and
+ * {@link TextWatcher#onTextChanged(CharSequence, int, int, int)} with empty bodies.
+ */
+public abstract class EasyTextWatcher implements TextWatcher {
+
+    @Override
+    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+        // Do nothing
+    }
+
+    @Override
+    public void onTextChanged(CharSequence s, int start, int before, int count) {
+        // Do nothing
+    }
+
+}
diff --git a/samples/browseable/AppRestrictionEnforcer/src/com.example.android.apprestrictionenforcer/MainActivity.java b/samples/browseable/AppRestrictionEnforcer/src/com.example.android.apprestrictionenforcer/MainActivity.java
index 72224e1..c6b012b 100644
--- a/samples/browseable/AppRestrictionEnforcer/src/com.example.android.apprestrictionenforcer/MainActivity.java
+++ b/samples/browseable/AppRestrictionEnforcer/src/com.example.android.apprestrictionenforcer/MainActivity.java
@@ -18,24 +18,44 @@
 
 import android.app.admin.DevicePolicyManager;
 import android.content.Context;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageManager;
 import android.os.Bundle;
 import android.support.v4.app.FragmentActivity;
 
-public class MainActivity extends FragmentActivity {
+public class MainActivity extends FragmentActivity implements StatusFragment.StatusUpdatedListener {
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_main_real);
         if (null == savedInstanceState) {
-            DevicePolicyManager manager = (DevicePolicyManager)
-                    getSystemService(Context.DEVICE_POLICY_SERVICE);
-            if (manager.isProfileOwnerApp(getApplicationContext().getPackageName())) {
-                // If the managed profile is already set up, we show the main screen.
-                showMainFragment();
-            } else {
-                // If not, we show the set up screen.
+            DevicePolicyManager devicePolicyManager =
+                    (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
+            PackageManager packageManager = getPackageManager();
+            if (!devicePolicyManager.isProfileOwnerApp(getApplicationContext().getPackageName())) {
+                // If the managed profile is not yet set up, we show the setup screen.
                 showSetupProfile();
+            } else {
+                try {
+                    ApplicationInfo info = packageManager.getApplicationInfo(
+                            Constants.PACKAGE_NAME_APP_RESTRICTION_SCHEMA,
+                            PackageManager.GET_UNINSTALLED_PACKAGES);
+                    if (0 == (info.flags & ApplicationInfo.FLAG_INSTALLED)) {
+                        // Need to reinstall the sample app
+                        showStatusProfile();
+                    } else if (devicePolicyManager.isApplicationHidden(
+                            EnforcerDeviceAdminReceiver.getComponentName(this),
+                            Constants.PACKAGE_NAME_APP_RESTRICTION_SCHEMA)) {
+                        // The app is installed but hidden in this profile
+                        showStatusProfile();
+                    } else {
+                        // Everything is clear; show the main screen
+                        showMainFragment();
+                    }
+                } catch (PackageManager.NameNotFoundException e) {
+                    showStatusProfile();
+                }
             }
         }
     }
@@ -46,10 +66,21 @@
                 .commit();
     }
 
+    private void showStatusProfile() {
+        getSupportFragmentManager().beginTransaction()
+                .replace(R.id.container, new StatusFragment())
+                .commit();
+    }
+
     private void showMainFragment() {
         getSupportFragmentManager().beginTransaction()
                 .replace(R.id.container, new AppRestrictionEnforcerFragment())
                 .commit();
     }
 
+    @Override
+    public void onStatusUpdated() {
+        showMainFragment();
+    }
+
 }
diff --git a/samples/browseable/AppRestrictionEnforcer/src/com.example.android.apprestrictionenforcer/StatusFragment.java b/samples/browseable/AppRestrictionEnforcer/src/com.example.android.apprestrictionenforcer/StatusFragment.java
new file mode 100644
index 0000000..f4a4eb7
--- /dev/null
+++ b/samples/browseable/AppRestrictionEnforcer/src/com.example.android.apprestrictionenforcer/StatusFragment.java
@@ -0,0 +1,136 @@
+/*
+ * 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.
+ */
+
+package com.example.android.apprestrictionenforcer;
+
+import android.app.Activity;
+import android.app.admin.DevicePolicyManager;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageManager;
+import android.os.Bundle;
+import android.support.annotation.Nullable;
+import android.support.v4.app.Fragment;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+import android.widget.TextView;
+import android.widget.Toast;
+
+/**
+ * Provides UI for enabling the target app in this profile. The status of the app can be
+ * uninstalled, hidden, or enabled depending on the situations. This fragment shows suitable
+ * controls for each status.
+ */
+public class StatusFragment extends Fragment implements View.OnClickListener {
+
+    private TextView mTextStatus;
+    private Button mButtonUnhide;
+    private StatusUpdatedListener mListener;
+
+    @Override
+    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
+                             @Nullable Bundle savedInstanceState) {
+        return inflater.inflate(R.layout.fragment_status, container, false);
+    }
+
+    @Override
+    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
+        mTextStatus = (TextView) view.findViewById(R.id.status);
+        mButtonUnhide = (Button) view.findViewById(R.id.unhide);
+        mButtonUnhide.setOnClickListener(this);
+    }
+
+    @Override
+    public void onAttach(Activity activity) {
+        super.onAttach(activity);
+        mListener = (StatusUpdatedListener) activity;
+    }
+
+    @Override
+    public void onDetach() {
+        mListener = null;
+        super.onDetach();
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+        updateUi(getActivity());
+    }
+
+    @Override
+    public void onClick(View v) {
+        switch (v.getId()) {
+            case R.id.unhide: {
+                unhideApp(getActivity());
+                break;
+            }
+        }
+    }
+
+    private void updateUi(Activity activity) {
+        PackageManager packageManager = activity.getPackageManager();
+        try {
+            ApplicationInfo info = packageManager.getApplicationInfo(
+                    Constants.PACKAGE_NAME_APP_RESTRICTION_SCHEMA,
+                    PackageManager.GET_UNINSTALLED_PACKAGES);
+            DevicePolicyManager devicePolicyManager =
+                    (DevicePolicyManager) activity.getSystemService(Activity.DEVICE_POLICY_SERVICE);
+            if ((info.flags & ApplicationInfo.FLAG_INSTALLED) != 0) {
+                if (!devicePolicyManager.isApplicationHidden(
+                        EnforcerDeviceAdminReceiver.getComponentName(activity),
+                        Constants.PACKAGE_NAME_APP_RESTRICTION_SCHEMA)) {
+                    // The app is ready to enforce restrictions
+                    // This is unlikely to happen in this sample as unhideApp() handles it.
+                    mListener.onStatusUpdated();
+                } else {
+                    // The app is installed but hidden in this profile
+                    mTextStatus.setText(R.string.status_not_activated);
+                    mButtonUnhide.setVisibility(View.VISIBLE);
+                }
+            } else {
+                // Need to reinstall the sample app
+                mTextStatus.setText(R.string.status_need_reinstall);
+                mButtonUnhide.setVisibility(View.GONE);
+            }
+        } catch (PackageManager.NameNotFoundException e) {
+            // Need to reinstall the sample app
+            mTextStatus.setText(R.string.status_need_reinstall);
+            mButtonUnhide.setVisibility(View.GONE);
+        }
+    }
+
+    /**
+     * Unhides the AppRestrictionSchema sample in case it is hidden in this profile.
+     *
+     * @param activity The activity
+     */
+    private void unhideApp(Activity activity) {
+        DevicePolicyManager devicePolicyManager =
+                (DevicePolicyManager) activity.getSystemService(Activity.DEVICE_POLICY_SERVICE);
+        devicePolicyManager.setApplicationHidden(
+                EnforcerDeviceAdminReceiver.getComponentName(activity),
+                Constants.PACKAGE_NAME_APP_RESTRICTION_SCHEMA, false);
+        Toast.makeText(activity, "Enabled the app", Toast.LENGTH_SHORT).show();
+        mListener.onStatusUpdated();
+    }
+
+    public interface StatusUpdatedListener {
+        public void onStatusUpdated();
+    }
+
+}
diff --git a/samples/browseable/AppRestrictionSchema/res/layout/fragment_app_restriction_schema.xml b/samples/browseable/AppRestrictionSchema/res/layout/fragment_app_restriction_schema.xml
index fc5e23d..18ca0a4 100644
--- a/samples/browseable/AppRestrictionSchema/res/layout/fragment_app_restriction_schema.xml
+++ b/samples/browseable/AppRestrictionSchema/res/layout/fragment_app_restriction_schema.xml
@@ -14,24 +14,60 @@
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical"
-    android:padding="@dimen/margin_medium">
 
-    <TextView
-        android:id="@+id/say_hello_explanation"
+
+<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+            xmlns:tools="http://schemas.android.com/tools"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent">
+
+    <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:text="@string/explanation_can_say_hello_true"
-        android:textAppearance="?android:attr/textAppearanceMedium" />
+        android:orientation="vertical"
+        android:padding="@dimen/margin_medium">
 
-    <Button
-        android:id="@+id/say_hello"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_marginStart="@dimen/margin_medium"
-        android:text="@string/action_can_say_hello" />
+        <TextView
+            android:id="@+id/say_hello_explanation"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:textAppearance="?android:attr/textAppearanceMedium"
+            tools:text="@string/explanation_can_say_hello_true"/>
 
-</LinearLayout>
+        <Button
+            android:id="@+id/say_hello"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="@dimen/margin_medium"
+            android:text="@string/action_can_say_hello"/>
+
+        <include layout="@layout/separator"/>
+
+        <TextView
+            android:id="@+id/your_number"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:textAppearance="?android:attr/textAppearanceMedium"
+            tools:text="@string/your_number"/>
+
+        <include layout="@layout/separator"/>
+
+        <TextView
+            android:id="@+id/your_rank"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:textAppearance="?android:attr/textAppearanceMedium"
+            tools:text="@string/your_rank"/>
+
+        <include layout="@layout/separator"/>
+
+        <TextView
+            android:id="@+id/approvals_you_have"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:textAppearance="?android:attr/textAppearanceMedium"
+            tools:text="@string/approvals_you_have"/>
+
+    </LinearLayout>
+
+</ScrollView>
diff --git a/samples/browseable/AdapterTransition/res/values/strings.xml b/samples/browseable/AppRestrictionSchema/res/layout/separator.xml
similarity index 62%
copy from samples/browseable/AdapterTransition/res/values/strings.xml
copy to samples/browseable/AppRestrictionSchema/res/layout/separator.xml
index 02b87cf..6927d80 100644
--- a/samples/browseable/AdapterTransition/res/values/strings.xml
+++ b/samples/browseable/AppRestrictionSchema/res/layout/separator.xml
@@ -6,7 +6,7 @@
 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
+ 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,
@@ -14,8 +14,9 @@
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
-<resources>
-    <string name="item_clicked">%s clicked</string>
-    <string name="show_as_grid">Show as grid</string>
-    <string name="show_as_list">Show as list</string>
-</resources>
+<View xmlns:android="http://schemas.android.com/apk/res/android"
+      android:layout_width="match_parent"
+      android:layout_height="1dp"
+      android:layout_marginBottom="@dimen/margin_medium"
+      android:layout_marginTop="@dimen/margin_medium"
+      android:background="#9000"/>
diff --git a/samples/browseable/AppRestrictionSchema/res/values/restriction_values.xml b/samples/browseable/AppRestrictionSchema/res/values/restriction_values.xml
new file mode 100644
index 0000000..558d097
--- /dev/null
+++ b/samples/browseable/AppRestrictionSchema/res/values/restriction_values.xml
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+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.
+-->
+<resources>
+
+    <!-- Bool restriction -->
+    <string name="title_can_say_hello">Can say hello</string>
+    <string name="description_can_say_hello">Whether the app can say hello to the user</string>
+    <bool name="default_can_say_hello">false</bool>
+
+    <!-- String restriction -->
+    <string name="title_message">Message</string>
+    <string name="description_message">A message string to show</string>
+    <string name="default_message">Hello!</string>
+
+    <!-- Integer restriction -->
+    <string name="title_number">Number</string>
+    <string name="description_number">Sample integer value</string>
+    <integer name="default_number">32582657</integer>
+
+    <!-- Choice restriction -->
+    <string name="title_rank">Rank</string>
+    <string name="description_rank">Rank of the user</string>
+    <string-array name="entries_rank">
+        <item>Apprentice</item>
+        <item>Intermediate</item>
+        <item>Master</item>
+    </string-array>
+    <string name="entry_value_rank_apprentice">apprentice</string>
+    <string name="entry_value_rank_intermediate">intermediate</string>
+    <string name="entry_value_rank_master">master</string>
+    <string-array name="entry_values_rank">
+        <item>@string/entry_value_rank_apprentice</item>
+        <item>@string/entry_value_rank_intermediate</item>
+        <item>@string/entry_value_rank_master</item>
+    </string-array>
+    <string name="default_rank">@string/entry_value_rank_apprentice</string>
+
+    <!-- Multi-select restriction -->
+    <string name="title_approvals">Approvals</string>
+    <string name="description_approvals">Approvals</string>
+    <string-array name="entries_approvals">
+        <item>Read</item>
+        <item>Write</item>
+        <item>Execute</item>
+    </string-array>
+    <string name="entry_value_approvals_read">read</string>
+    <string name="entry_value_approvals_write">write</string>
+    <string name="entry_value_approvals_execute">execute</string>
+    <string-array name="entry_values_approvals">
+        <item>@string/entry_value_approvals_read</item>
+        <item>@string/entry_value_approvals_write</item>
+        <item>@string/entry_value_approvals_execute</item>
+    </string-array>
+    <string-array name="default_approvals">
+        <!-- Empty -->
+    </string-array>
+
+    <!-- Hidden restriction -->
+    <string name="title_secret_code">Secret code</string>
+    <string name="description_secret_code">This restriction is hidden and will not be shown to the administrator.</string>
+    <string name="default_secret_code">(Hidden restriction must have some default value)</string>
+
+</resources>
diff --git a/samples/browseable/AppRestrictionSchema/res/values/strings.xml b/samples/browseable/AppRestrictionSchema/res/values/strings.xml
index b8ef110..6dce123 100644
--- a/samples/browseable/AppRestrictionSchema/res/values/strings.xml
+++ b/samples/browseable/AppRestrictionSchema/res/values/strings.xml
@@ -16,11 +16,14 @@
 -->
 <resources>
 
-    <string name="title_can_say_hello">Can say hello</string>
-    <string name="description_can_say_hello">Whether the app can say hello to the user</string>
     <string name="explanation_can_say_hello_true">I can say hello to you.</string>
     <string name="explanation_can_say_hello_false">I am restricted from saying hello to you.</string>
     <string name="action_can_say_hello">Say hello</string>
-    <string name="message_hello">Hello!</string>
+    <string name="message">All I can say is \"%s\".</string>
 
-</resources>
\ No newline at end of file
+    <string name="your_number">Your number: %d</string>
+    <string name="your_rank">Your rank: %s</string>
+    <string name="approvals_you_have">Approvals you have: %s</string>
+    <string name="none">none</string>
+
+</resources>
diff --git a/samples/browseable/AppRestrictionSchema/res/xml/app_restrictions.xml b/samples/browseable/AppRestrictionSchema/res/xml/app_restrictions.xml
index 409527f..9e47f45 100644
--- a/samples/browseable/AppRestrictionSchema/res/xml/app_restrictions.xml
+++ b/samples/browseable/AppRestrictionSchema/res/xml/app_restrictions.xml
@@ -16,11 +16,55 @@
 -->
 <restrictions xmlns:android="http://schemas.android.com/apk/res/android">
 
+    <!--
+    Refer to the javadoc of RestrictionsManager for detail of this file.
+    https://developer.android.com/reference/android/content/RestrictionsManager.html
+    -->
+
     <restriction
-        android:defaultValue="false"
+        android:defaultValue="@bool/default_can_say_hello"
         android:description="@string/description_can_say_hello"
         android:key="can_say_hello"
         android:restrictionType="bool"
-        android:title="@string/title_can_say_hello" />
+        android:title="@string/title_can_say_hello"/>
+
+    <restriction
+        android:defaultValue="@string/default_message"
+        android:description="@string/description_message"
+        android:key="message"
+        android:restrictionType="string"
+        android:title="@string/title_message"/>
+
+    <restriction
+        android:defaultValue="@integer/default_number"
+        android:description="@string/description_number"
+        android:key="number"
+        android:restrictionType="integer"
+        android:title="@string/title_number"/>
+
+    <restriction
+        android:defaultValue="@string/default_rank"
+        android:description="@string/description_rank"
+        android:entries="@array/entries_rank"
+        android:entryValues="@array/entry_values_rank"
+        android:key="rank"
+        android:restrictionType="choice"
+        android:title="@string/title_rank"/>
+
+    <restriction
+        android:defaultValue="@array/default_approvals"
+        android:description="@string/description_approvals"
+        android:entries="@array/entries_approvals"
+        android:entryValues="@array/entry_values_approvals"
+        android:key="approvals"
+        android:restrictionType="multi-select"
+        android:title="@string/title_approvals"/>
+
+    <restriction
+        android:defaultValue="@string/default_secret_code"
+        android:description="@string/description_secret_code"
+        android:key="secret_code"
+        android:restrictionType="hidden"
+        android:title="@string/title_secret_code"/>
 
 </restrictions>
diff --git a/samples/browseable/AppRestrictionSchema/src/com.example.android.apprestrictionschema/AppRestrictionSchemaFragment.java b/samples/browseable/AppRestrictionSchema/src/com.example.android.apprestrictionschema/AppRestrictionSchemaFragment.java
index 76f024f..7b8dba8 100644
--- a/samples/browseable/AppRestrictionSchema/src/com.example.android.apprestrictionschema/AppRestrictionSchemaFragment.java
+++ b/samples/browseable/AppRestrictionSchema/src/com.example.android.apprestrictionschema/AppRestrictionSchemaFragment.java
@@ -17,10 +17,12 @@
 package com.example.android.apprestrictionschema;
 
 import android.content.Context;
+import android.content.RestrictionEntry;
 import android.content.RestrictionsManager;
 import android.os.Bundle;
 import android.support.annotation.Nullable;
 import android.support.v4.app.Fragment;
+import android.text.TextUtils;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -30,6 +32,8 @@
 
 import com.example.android.common.logger.Log;
 
+import java.util.List;
+
 /**
  * Pressing the button on this fragment pops up a simple Toast message. The button is enabled or
  * disabled according to the restrictions set by device/profile owner. You can use the
@@ -40,9 +44,21 @@
     // Tag for the logger
     private static final String TAG = "AppRestrictionSchemaFragment";
 
+    private static final String KEY_CAN_SAY_HELLO = "can_say_hello";
+    private static final String KEY_MESSAGE = "message";
+    private static final String KEY_NUMBER = "number";
+    private static final String KEY_RANK = "rank";
+    private static final String KEY_APPROVALS = "approvals";
+
+    // Message to show when the button is clicked (String restriction)
+    private String mMessage;
+
     // UI Components
     private TextView mTextSayHello;
     private Button mButtonSayHello;
+    private TextView mTextNumber;
+    private TextView mTextRank;
+    private TextView mTextApprovals;
 
     @Override
     public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
@@ -54,48 +70,103 @@
     public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
         mTextSayHello = (TextView) view.findViewById(R.id.say_hello_explanation);
         mButtonSayHello = (Button) view.findViewById(R.id.say_hello);
+        mTextNumber = (TextView) view.findViewById(R.id.your_number);
+        mTextRank = (TextView) view.findViewById(R.id.your_rank);
+        mTextApprovals = (TextView) view.findViewById(R.id.approvals_you_have);
         mButtonSayHello.setOnClickListener(this);
     }
 
     @Override
     public void onResume() {
         super.onResume();
-        // Update the UI according to the configured restrictions
-        RestrictionsManager restrictionsManager =
-                (RestrictionsManager) getActivity().getSystemService(Context.RESTRICTIONS_SERVICE);
-        Bundle restrictions = restrictionsManager.getApplicationRestrictions();
-        updateUI(restrictions);
+        resolveRestrictions();
     }
 
-    private void updateUI(Bundle restrictions) {
-        if (canSayHello(restrictions)) {
-            mTextSayHello.setText(R.string.explanation_can_say_hello_true);
-            mButtonSayHello.setEnabled(true);
-        } else {
-            mTextSayHello.setText(R.string.explanation_can_say_hello_false);
-            mButtonSayHello.setEnabled(false);
+    private void resolveRestrictions() {
+        RestrictionsManager manager =
+                (RestrictionsManager) getActivity().getSystemService(Context.RESTRICTIONS_SERVICE);
+        Bundle restrictions = manager.getApplicationRestrictions();
+        List<RestrictionEntry> entries = manager.getManifestRestrictions(getActivity().getApplicationContext().getPackageName());
+        for (RestrictionEntry entry : entries) {
+            String key = entry.getKey();
+            Log.d(TAG, "key: " + key);
+            if (key.equals(KEY_CAN_SAY_HELLO)) {
+                updateCanSayHello(entry, restrictions);
+            } else if (key.equals(KEY_MESSAGE)) {
+                updateMessage(entry, restrictions);
+            } else if (key.equals(KEY_NUMBER)) {
+                updateNumber(entry, restrictions);
+            } else if (key.equals(KEY_RANK)) {
+                updateRank(entry, restrictions);
+            } else if (key.equals(KEY_APPROVALS)) {
+                updateApprovals(entry, restrictions);
+            }
         }
     }
 
-    /**
-     * Returns the current status of the restriction.
-     *
-     * @param restrictions The application restrictions
-     * @return True if the app is allowed to say hello
-     */
-    private boolean canSayHello(Bundle restrictions) {
-        final boolean defaultValue = false;
-        boolean canSayHello = restrictions == null ? defaultValue :
-                restrictions.getBoolean("can_say_hello", defaultValue);
-        Log.d(TAG, "canSayHello: " + canSayHello);
-        return canSayHello;
+    private void updateCanSayHello(RestrictionEntry entry, Bundle restrictions) {
+        boolean canSayHello;
+        if (restrictions == null || !restrictions.containsKey(KEY_CAN_SAY_HELLO)) {
+            canSayHello = entry.getSelectedState();
+        } else {
+            canSayHello = restrictions.getBoolean(KEY_CAN_SAY_HELLO);
+        }
+        mTextSayHello.setText(canSayHello ?
+                R.string.explanation_can_say_hello_true :
+                R.string.explanation_can_say_hello_false);
+        mButtonSayHello.setEnabled(canSayHello);
+    }
+
+    private void updateMessage(RestrictionEntry entry, Bundle restrictions) {
+        if (restrictions == null || !restrictions.containsKey(KEY_MESSAGE)) {
+            mMessage = entry.getSelectedString();
+        } else {
+            mMessage = restrictions.getString(KEY_MESSAGE);
+        }
+    }
+
+    private void updateNumber(RestrictionEntry entry, Bundle restrictions) {
+        int number;
+        if (restrictions == null || !restrictions.containsKey(KEY_NUMBER)) {
+            number = entry.getIntValue();
+        } else {
+            number = restrictions.getInt(KEY_NUMBER);
+        }
+        mTextNumber.setText(getString(R.string.your_number, number));
+    }
+
+    private void updateRank(RestrictionEntry entry, Bundle restrictions) {
+        String rank;
+        if (restrictions == null || !restrictions.containsKey(KEY_RANK)) {
+            rank = entry.getSelectedString();
+        } else {
+            rank = restrictions.getString(KEY_RANK);
+        }
+        mTextRank.setText(getString(R.string.your_rank, rank));
+    }
+
+    private void updateApprovals(RestrictionEntry entry, Bundle restrictions) {
+        String[] approvals;
+        if (restrictions == null || !restrictions.containsKey(KEY_APPROVALS)) {
+            approvals = entry.getAllSelectedStrings();
+        } else {
+            approvals = restrictions.getStringArray(KEY_APPROVALS);
+        }
+        String text;
+        if (approvals == null || approvals.length == 0) {
+            text = getString(R.string.none);
+        } else {
+            text = TextUtils.join(", ", approvals);
+        }
+        mTextApprovals.setText(getString(R.string.approvals_you_have, text));
     }
 
     @Override
     public void onClick(View view) {
         switch (view.getId()) {
             case R.id.say_hello: {
-                Toast.makeText(getActivity(), R.string.message_hello, Toast.LENGTH_SHORT).show();
+                Toast.makeText(getActivity(), getString(R.string.message, mMessage),
+                        Toast.LENGTH_SHORT).show();
                 break;
             }
         }
diff --git a/samples/browseable/AppRestrictions/res/layout/activity_main.xml b/samples/browseable/AppRestrictions/res/layout/activity_main.xml
deleted file mode 100755
index be1aa49..0000000
--- a/samples/browseable/AppRestrictions/res/layout/activity_main.xml
+++ /dev/null
@@ -1,36 +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.
-  -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
-
-    <LinearLayout style="@style/Widget.SampleMessageTile"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  android:orientation="vertical">
-
-        <TextView style="@style/Widget.SampleMessage"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="@dimen/horizontal_page_margin"
-            android:layout_marginRight="@dimen/horizontal_page_margin"
-            android:layout_marginTop="@dimen/vertical_page_margin"
-            android:layout_marginBottom="@dimen/vertical_page_margin"
-            android:text="@string/intro_message" />
-    </LinearLayout>
-</LinearLayout>
diff --git a/samples/browseable/AppUsageStatistics/AndroidManifest.xml b/samples/browseable/AppUsageStatistics/AndroidManifest.xml
new file mode 100644
index 0000000..2726b4a
--- /dev/null
+++ b/samples/browseable/AppUsageStatistics/AndroidManifest.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+-->
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.example.android.appusagestatistics"
+    android:versionCode="1"
+    android:versionName="1.0">
+
+    <uses-permission android:name="android.permission.PACKAGE_USAGE_STATS"/>
+
+    <application android:allowBackup="true"
+        android:label="@string/app_name"
+        android:icon="@drawable/ic_launcher"
+        android:theme="@style/Theme.AppCompat.Light">
+
+        <activity android:name=".AppUsageStatisticsActivity"
+                  android:label="@string/app_name">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+    </application>
+</manifest>
diff --git a/samples/browseable/AppUsageStatistics/_index.jd b/samples/browseable/AppUsageStatistics/_index.jd
new file mode 100644
index 0000000..ee88115
--- /dev/null
+++ b/samples/browseable/AppUsageStatistics/_index.jd
@@ -0,0 +1,10 @@
+page.tags="AppUsageStatistics"
+sample.group=System
+@jd:body
+
+<p>
+            
+            This sample explains how to use App usage statistics API, which was introduced
+            in Android 5.0.
+            
+        </p>
diff --git a/samples/browseable/AppUsageStatistics/res/drawable-hdpi/ic_default_app_launcher.png b/samples/browseable/AppUsageStatistics/res/drawable-hdpi/ic_default_app_launcher.png
new file mode 100644
index 0000000..96a442e
--- /dev/null
+++ b/samples/browseable/AppUsageStatistics/res/drawable-hdpi/ic_default_app_launcher.png
Binary files differ
diff --git a/samples/browseable/AppUsageStatistics/res/drawable-hdpi/ic_launcher.png b/samples/browseable/AppUsageStatistics/res/drawable-hdpi/ic_launcher.png
new file mode 100755
index 0000000..3cf5e8b
--- /dev/null
+++ b/samples/browseable/AppUsageStatistics/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/samples/browseable/AdapterTransition/res/drawable-hdpi/tile.9.png b/samples/browseable/AppUsageStatistics/res/drawable-hdpi/tile.9.png
similarity index 100%
copy from samples/browseable/AdapterTransition/res/drawable-hdpi/tile.9.png
copy to samples/browseable/AppUsageStatistics/res/drawable-hdpi/tile.9.png
Binary files differ
diff --git a/samples/browseable/AppUsageStatistics/res/drawable-mdpi/ic_default_app_launcher.png b/samples/browseable/AppUsageStatistics/res/drawable-mdpi/ic_default_app_launcher.png
new file mode 100644
index 0000000..359047d
--- /dev/null
+++ b/samples/browseable/AppUsageStatistics/res/drawable-mdpi/ic_default_app_launcher.png
Binary files differ
diff --git a/samples/browseable/AppUsageStatistics/res/drawable-mdpi/ic_launcher.png b/samples/browseable/AppUsageStatistics/res/drawable-mdpi/ic_launcher.png
new file mode 100755
index 0000000..51553c5
--- /dev/null
+++ b/samples/browseable/AppUsageStatistics/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/samples/browseable/AppUsageStatistics/res/drawable-xhdpi/ic_default_app_launcher.png b/samples/browseable/AppUsageStatistics/res/drawable-xhdpi/ic_default_app_launcher.png
new file mode 100644
index 0000000..71c6d76
--- /dev/null
+++ b/samples/browseable/AppUsageStatistics/res/drawable-xhdpi/ic_default_app_launcher.png
Binary files differ
diff --git a/samples/browseable/AppUsageStatistics/res/drawable-xhdpi/ic_launcher.png b/samples/browseable/AppUsageStatistics/res/drawable-xhdpi/ic_launcher.png
new file mode 100755
index 0000000..5248000
--- /dev/null
+++ b/samples/browseable/AppUsageStatistics/res/drawable-xhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/browseable/AppUsageStatistics/res/drawable-xxhdpi/ic_default_app_launcher.png b/samples/browseable/AppUsageStatistics/res/drawable-xxhdpi/ic_default_app_launcher.png
new file mode 100644
index 0000000..4df1894
--- /dev/null
+++ b/samples/browseable/AppUsageStatistics/res/drawable-xxhdpi/ic_default_app_launcher.png
Binary files differ
diff --git a/samples/browseable/AppUsageStatistics/res/drawable-xxhdpi/ic_launcher.png b/samples/browseable/AppUsageStatistics/res/drawable-xxhdpi/ic_launcher.png
new file mode 100755
index 0000000..7f16200
--- /dev/null
+++ b/samples/browseable/AppUsageStatistics/res/drawable-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/browseable/AppUsageStatistics/res/layout/activity_app_usage_statistics.xml b/samples/browseable/AppUsageStatistics/res/layout/activity_app_usage_statistics.xml
new file mode 100644
index 0000000..2627c8b
--- /dev/null
+++ b/samples/browseable/AppUsageStatistics/res/layout/activity_app_usage_statistics.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ 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.
+-->
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+             xmlns:tools="http://schemas.android.com/tools"
+             android:id="@+id/container"
+             android:layout_width="match_parent"
+             android:layout_height="match_parent"
+             tools:context="com.example.android.appusagestatistics.AppUsageStatisticsActivity"
+             tools:ignore="MergeRootFrame" />
diff --git a/samples/browseable/AppUsageStatistics/res/layout/fragment_app_usage_statistics.xml b/samples/browseable/AppUsageStatistics/res/layout/fragment_app_usage_statistics.xml
new file mode 100644
index 0000000..1d567b7
--- /dev/null
+++ b/samples/browseable/AppUsageStatistics/res/layout/fragment_app_usage_statistics.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ 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.
+-->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+              android:gravity="center_vertical"
+              android:layout_width="match_parent"
+              android:layout_height="match_parent"
+              android:orientation="vertical"
+              android:padding="@dimen/margin_medium">
+
+    <Button android:id="@+id/button_open_usage_setting"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="@string/open_app_usage_setting"
+            android:visibility="gone"
+            />
+
+    <LinearLayout android:layout_width="wrap_content"
+                  android:layout_height="wrap_content"
+                  android:orientation="horizontal"
+            >
+        <TextView android:layout_width="wrap_content"
+                  android:layout_height="wrap_content"
+                  android:text="@string/time_span"
+                />
+
+        <Spinner android:id="@+id/spinner_time_span"
+                 android:layout_width="wrap_content"
+                 android:layout_height="wrap_content"/>
+    </LinearLayout>
+
+    <android.support.v7.widget.RecyclerView
+            android:id="@+id/recyclerview_app_usage"
+            android:layout_marginLeft="@dimen/margin_small"
+            android:layout_marginRight="@dimen/margin_small"
+            android:scrollbars="vertical"
+            android:drawSelectorOnTop="true"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"/>
+
+</LinearLayout>
diff --git a/samples/browseable/AppUsageStatistics/res/layout/usage_row.xml b/samples/browseable/AppUsageStatistics/res/layout/usage_row.xml
new file mode 100644
index 0000000..c16f039
--- /dev/null
+++ b/samples/browseable/AppUsageStatistics/res/layout/usage_row.xml
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ 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.
+-->
+
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+                android:layout_width="match_parent"
+                android:layout_height="@dimen/usage_row_height"
+        >
+
+    <LinearLayout android:layout_width="wrap_content"
+                  android:layout_height="wrap_content"
+                  android:orientation="horizontal"
+                  android:layout_centerVertical="true"
+                  android:gravity="center_vertical"
+            >
+        <ImageView android:id="@+id/app_icon"
+                   android:layout_width="wrap_content"
+                   android:layout_height="wrap_content"
+                />
+        <LinearLayout android:layout_width="wrap_content"
+                      android:layout_height="wrap_content"
+                      android:layout_marginLeft="@dimen/margin_medium"
+                      android:orientation="vertical"
+                >
+
+            <TextView
+                    android:id="@+id/textview_package_name"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    style="@style/PackageNameFont"
+                    />
+
+            <LinearLayout android:layout_width="wrap_content"
+                          android:layout_height="wrap_content"
+                          android:orientation="horizontal"
+                    >
+
+                <TextView
+                        android:id="@+id/textview_last_time_used_label"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="@string/last_time_used"
+                        />
+
+                <TextView
+                        android:id="@+id/textview_last_time_used"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        />
+            </LinearLayout>
+        </LinearLayout>
+    </LinearLayout>
+
+    <View android:id="@+id/divider"
+          android:layout_width="match_parent"
+          android:layout_height="1dp"
+          android:background="#bbbbbb"/>
+
+</RelativeLayout>
\ No newline at end of file
diff --git a/samples/browseable/AdapterTransition/res/values-sw600dp/template-dimens.xml b/samples/browseable/AppUsageStatistics/res/values-sw600dp/template-dimens.xml
similarity index 100%
copy from samples/browseable/AdapterTransition/res/values-sw600dp/template-dimens.xml
copy to samples/browseable/AppUsageStatistics/res/values-sw600dp/template-dimens.xml
diff --git a/samples/browseable/AdapterTransition/res/values-sw600dp/template-styles.xml b/samples/browseable/AppUsageStatistics/res/values-sw600dp/template-styles.xml
similarity index 100%
copy from samples/browseable/AdapterTransition/res/values-sw600dp/template-styles.xml
copy to samples/browseable/AppUsageStatistics/res/values-sw600dp/template-styles.xml
diff --git a/samples/browseable/AdapterTransition/res/values-v11/template-styles.xml b/samples/browseable/AppUsageStatistics/res/values-v11/template-styles.xml
similarity index 100%
copy from samples/browseable/AdapterTransition/res/values-v11/template-styles.xml
copy to samples/browseable/AppUsageStatistics/res/values-v11/template-styles.xml
diff --git a/samples/browseable/AdapterTransition/res/values-v21/base-colors.xml b/samples/browseable/AppUsageStatistics/res/values-v21/base-colors.xml
similarity index 100%
copy from samples/browseable/AdapterTransition/res/values-v21/base-colors.xml
copy to samples/browseable/AppUsageStatistics/res/values-v21/base-colors.xml
diff --git a/samples/browseable/AdapterTransition/res/values-v21/base-template-styles.xml b/samples/browseable/AppUsageStatistics/res/values-v21/base-template-styles.xml
similarity index 100%
copy from samples/browseable/AdapterTransition/res/values-v21/base-template-styles.xml
copy to samples/browseable/AppUsageStatistics/res/values-v21/base-template-styles.xml
diff --git a/samples/browseable/WatchViewStub/Application/res/values/base-strings.xml b/samples/browseable/AppUsageStatistics/res/values/base-strings.xml
similarity index 81%
copy from samples/browseable/WatchViewStub/Application/res/values/base-strings.xml
copy to samples/browseable/AppUsageStatistics/res/values/base-strings.xml
index d653382..9a92da8 100644
--- a/samples/browseable/WatchViewStub/Application/res/values/base-strings.xml
+++ b/samples/browseable/AppUsageStatistics/res/values/base-strings.xml
@@ -15,12 +15,13 @@
  limitations under the License.
 -->
 <resources>
-    <string name="app_name">WatchViewStub</string>
+    <string name="app_name">AppUsageStatistics</string>
     <string name="intro_message">
         <![CDATA[
         
             
-            This sample demonstrates how to specify different layouts for round and rectangular screens.
+            This sample explains how to use App usage statistics API, which was introduced
+            in Android 5.0.
             
         
         ]]>
diff --git a/samples/browseable/EmbeddedApp/Application/res/values-v21/base-colors.xml b/samples/browseable/AppUsageStatistics/res/values/dimens.xml
similarity index 80%
rename from samples/browseable/EmbeddedApp/Application/res/values-v21/base-colors.xml
rename to samples/browseable/AppUsageStatistics/res/values/dimens.xml
index 34c9cd1..d1741c3 100644
--- a/samples/browseable/EmbeddedApp/Application/res/values-v21/base-colors.xml
+++ b/samples/browseable/AppUsageStatistics/res/values/dimens.xml
@@ -1,6 +1,6 @@
-<?xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <!--
- Copyright 2013 The Android Open Source Project
+ 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.
@@ -14,7 +14,7 @@
  See the License for the specific language governing permissions and
  limitations under the License.
 -->
+
 <resources>
-
-
-</resources>
+    <dimen name="usage_row_height">72dp</dimen>
+</resources>
\ No newline at end of file
diff --git a/samples/browseable/EmbeddedApp/Application/res/values-v21/base-colors.xml b/samples/browseable/AppUsageStatistics/res/values/navigation_items.xml
similarity index 73%
copy from samples/browseable/EmbeddedApp/Application/res/values-v21/base-colors.xml
copy to samples/browseable/AppUsageStatistics/res/values/navigation_items.xml
index 34c9cd1..b36a4a5 100644
--- a/samples/browseable/EmbeddedApp/Application/res/values-v21/base-colors.xml
+++ b/samples/browseable/AppUsageStatistics/res/values/navigation_items.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright 2013 The Android Open Source Project
+ 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.
@@ -15,6 +15,10 @@
  limitations under the License.
 -->
 <resources>
-
-
-</resources>
+    <string-array name="action_list">
+        <item>Daily</item>
+        <item>Weekly</item>
+        <item>Monthly</item>
+        <item>Yearly</item>
+    </string-array>
+</resources>
\ No newline at end of file
diff --git a/samples/browseable/AppUsageStatistics/res/values/strings.xml b/samples/browseable/AppUsageStatistics/res/values/strings.xml
new file mode 100644
index 0000000..df769b5
--- /dev/null
+++ b/samples/browseable/AppUsageStatistics/res/values/strings.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+-->
+<resources>
+    <string name="open_app_usage_setting">Open Apps with usage access settings</string>
+    <string name="last_time_used">"Last time used: "</string>
+    <string name="time_span">"Time span: "</string>
+    <string name="explanation_access_to_appusage_is_not_enabled">Failed to retrieve app usage
+        statistics. You may need to enable access
+        for this app through Settings > Security > Apps with usage access
+    </string>
+</resources>
diff --git a/samples/browseable/EmbeddedApp/Application/res/values-v21/base-template-styles.xml b/samples/browseable/AppUsageStatistics/res/values/styles.xml
similarity index 71%
rename from samples/browseable/EmbeddedApp/Application/res/values-v21/base-template-styles.xml
rename to samples/browseable/AppUsageStatistics/res/values/styles.xml
index 0b2948f..d400276 100644
--- a/samples/browseable/EmbeddedApp/Application/res/values-v21/base-template-styles.xml
+++ b/samples/browseable/AppUsageStatistics/res/values/styles.xml
@@ -1,6 +1,6 @@
-<?xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <!--
- Copyright 2013 The Android Open Source Project
+ 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.
@@ -15,9 +15,7 @@
  limitations under the License.
 -->
 <resources>
-
-    <!-- Activity themes -->
-    <style name="Theme.Base" parent="android:Theme.Material.Light">
+    <style name="PackageNameFont" parent="@android:style/TextAppearance.Small">
+        <item name="android:textColor">#000000</item>
     </style>
-
-</resources>
+</resources>
\ No newline at end of file
diff --git a/samples/browseable/AdapterTransition/res/values/template-dimens.xml b/samples/browseable/AppUsageStatistics/res/values/template-dimens.xml
similarity index 100%
copy from samples/browseable/AdapterTransition/res/values/template-dimens.xml
copy to samples/browseable/AppUsageStatistics/res/values/template-dimens.xml
diff --git a/samples/browseable/AdapterTransition/res/values/template-styles.xml b/samples/browseable/AppUsageStatistics/res/values/template-styles.xml
similarity index 100%
copy from samples/browseable/AdapterTransition/res/values/template-styles.xml
copy to samples/browseable/AppUsageStatistics/res/values/template-styles.xml
diff --git a/samples/browseable/AppUsageStatistics/src/com.example.android.appusagestatistics/AppUsageStatisticsActivity.java b/samples/browseable/AppUsageStatistics/src/com.example.android.appusagestatistics/AppUsageStatisticsActivity.java
new file mode 100644
index 0000000..4def465
--- /dev/null
+++ b/samples/browseable/AppUsageStatistics/src/com.example.android.appusagestatistics/AppUsageStatisticsActivity.java
@@ -0,0 +1,37 @@
+/*
+* 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.
+*/
+
+package com.example.android.appusagestatistics;
+
+import android.os.Bundle;
+import android.support.v7.app.ActionBarActivity;
+
+/**
+ * Launcher Activity for the App Usage Statistics sample app.
+ */
+public class AppUsageStatisticsActivity extends ActionBarActivity {
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_app_usage_statistics);
+        if (savedInstanceState == null) {
+            getSupportFragmentManager().beginTransaction()
+                    .add(R.id.container, AppUsageStatisticsFragment.newInstance())
+                    .commit();
+        }
+    }
+}
\ No newline at end of file
diff --git a/samples/browseable/AppUsageStatistics/src/com.example.android.appusagestatistics/AppUsageStatisticsFragment.java b/samples/browseable/AppUsageStatistics/src/com.example.android.appusagestatistics/AppUsageStatisticsFragment.java
new file mode 100644
index 0000000..9f54d02
--- /dev/null
+++ b/samples/browseable/AppUsageStatistics/src/com.example.android.appusagestatistics/AppUsageStatisticsFragment.java
@@ -0,0 +1,233 @@
+/*
+* 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.
+*/
+
+package com.example.android.appusagestatistics;
+
+import android.app.usage.UsageStats;
+import android.app.usage.UsageStatsManager;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.graphics.drawable.Drawable;
+import android.os.Bundle;
+import android.provider.Settings;
+import android.support.v4.app.Fragment;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.AdapterView;
+import android.widget.ArrayAdapter;
+import android.widget.Button;
+import android.widget.Spinner;
+import android.widget.SpinnerAdapter;
+import android.widget.Toast;
+
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+
+/**
+ * Fragment that demonstrates how to use App Usage Statistics API.
+ */
+public class AppUsageStatisticsFragment extends Fragment {
+
+    private static final String TAG = AppUsageStatisticsFragment.class.getSimpleName();
+
+    //VisibleForTesting for variables below
+    UsageStatsManager mUsageStatsManager;
+    UsageListAdapter mUsageListAdapter;
+    RecyclerView mRecyclerView;
+    RecyclerView.LayoutManager mLayoutManager;
+    Button mOpenUsageSettingButton;
+    Spinner mSpinner;
+
+    /**
+     * Use this factory method to create a new instance of
+     * this fragment using the provided parameters.
+     *
+     * @return A new instance of fragment {@link AppUsageStatisticsFragment}.
+     */
+    public static AppUsageStatisticsFragment newInstance() {
+        AppUsageStatisticsFragment fragment = new AppUsageStatisticsFragment();
+        return fragment;
+    }
+
+    public AppUsageStatisticsFragment() {
+        // Required empty public constructor
+    }
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        mUsageStatsManager = (UsageStatsManager) getActivity()
+                .getSystemService("usagestats"); //Context.USAGE_STATS_SERVICE
+    }
+
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+            Bundle savedInstanceState) {
+        return inflater.inflate(R.layout.fragment_app_usage_statistics, container, false);
+    }
+
+    @Override
+    public void onViewCreated(View rootView, Bundle savedInstanceState) {
+        super.onViewCreated(rootView, savedInstanceState);
+
+        mLayoutManager = new LinearLayoutManager(getActivity());
+        mUsageListAdapter = new UsageListAdapter();
+        mRecyclerView = (RecyclerView) rootView.findViewById(R.id.recyclerview_app_usage);
+        mRecyclerView.setLayoutManager(mLayoutManager);
+        mRecyclerView.scrollToPosition(0);
+        mRecyclerView.setAdapter(mUsageListAdapter);
+        mOpenUsageSettingButton = (Button) rootView.findViewById(R.id.button_open_usage_setting);
+        mSpinner = (Spinner) rootView.findViewById(R.id.spinner_time_span);
+        SpinnerAdapter spinnerAdapter = ArrayAdapter.createFromResource(getActivity(),
+                R.array.action_list, android.R.layout.simple_spinner_dropdown_item);
+        mSpinner.setAdapter(spinnerAdapter);
+        mSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
+
+            String[] strings = getResources().getStringArray(R.array.action_list);
+
+            @Override
+            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
+                StatsUsageInterval statsUsageInterval = StatsUsageInterval
+                        .getValue(strings[position]);
+                if (statsUsageInterval != null) {
+                    List<UsageStats> usageStatsList =
+                            getUsageStatistics(statsUsageInterval.mInterval);
+                    Collections.sort(usageStatsList, new LastTimeLaunchedComparatorDesc());
+                    updateAppsList(usageStatsList);
+                }
+            }
+
+            @Override
+            public void onNothingSelected(AdapterView<?> parent) {
+            }
+        });
+    }
+
+    /**
+     * Returns the {@link #mRecyclerView} including the time span specified by the
+     * intervalType argument.
+     *
+     * @param intervalType The time interval by which the stats are aggregated.
+     *                     Corresponding to the value of {@link UsageStatsManager}.
+     *                     E.g. {@link UsageStatsManager#INTERVAL_DAILY}, {@link
+     *                     UsageStatsManager#INTERVAL_WEEKLY},
+     *
+     * @return A list of {@link android.app.usage.UsageStats}.
+     */
+    public List<UsageStats> getUsageStatistics(int intervalType) {
+        // Get the app statistics since one year ago from the current time.
+        Calendar cal = Calendar.getInstance();
+        cal.add(Calendar.YEAR, -1);
+
+        List<UsageStats> queryUsageStats = mUsageStatsManager
+                .queryUsageStats(intervalType, cal.getTimeInMillis(),
+                        System.currentTimeMillis());
+
+        if (queryUsageStats.size() == 0) {
+            Log.i(TAG, "The user may not allow the access to apps usage. ");
+            Toast.makeText(getActivity(),
+                    getString(R.string.explanation_access_to_appusage_is_not_enabled),
+                    Toast.LENGTH_LONG).show();
+            mOpenUsageSettingButton.setVisibility(View.VISIBLE);
+            mOpenUsageSettingButton.setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    startActivity(new Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS));
+                }
+            });
+        }
+        return queryUsageStats;
+    }
+
+    /**
+     * Updates the {@link #mRecyclerView} with the list of {@link UsageStats} passed as an argument.
+     *
+     * @param usageStatsList A list of {@link UsageStats} from which update the
+     *                       {@link #mRecyclerView}.
+     */
+    //VisibleForTesting
+    void updateAppsList(List<UsageStats> usageStatsList) {
+        List<CustomUsageStats> customUsageStatsList = new ArrayList<>();
+        for (int i = 0; i < usageStatsList.size(); i++) {
+            CustomUsageStats customUsageStats = new CustomUsageStats();
+            customUsageStats.usageStats = usageStatsList.get(i);
+            try {
+                Drawable appIcon = getActivity().getPackageManager()
+                        .getApplicationIcon(customUsageStats.usageStats.getPackageName());
+                customUsageStats.appIcon = appIcon;
+            } catch (PackageManager.NameNotFoundException e) {
+                Log.w(TAG, String.format("App Icon is not found for %s",
+                        customUsageStats.usageStats.getPackageName()));
+                customUsageStats.appIcon = getActivity()
+                        .getDrawable(R.drawable.ic_default_app_launcher);
+            }
+            customUsageStatsList.add(customUsageStats);
+        }
+        mUsageListAdapter.setCustomUsageStatsList(customUsageStatsList);
+        mUsageListAdapter.notifyDataSetChanged();
+        mRecyclerView.scrollToPosition(0);
+    }
+
+    /**
+     * The {@link Comparator} to sort a collection of {@link UsageStats} sorted by the timestamp
+     * last time the app was used in the descendant order.
+     */
+    private static class LastTimeLaunchedComparatorDesc implements Comparator<UsageStats> {
+
+        @Override
+        public int compare(UsageStats left, UsageStats right) {
+            return (int) (right.getLastTimeUsed() - left.getLastTimeUsed());
+        }
+    }
+
+    /**
+     * Enum represents the intervals for {@link android.app.usage.UsageStatsManager} so that
+     * values for intervals can be found by a String representation.
+     *
+     */
+    //VisibleForTesting
+    static enum StatsUsageInterval {
+        DAILY("Daily", UsageStatsManager.INTERVAL_DAILY),
+        WEEKLY("Weekly", UsageStatsManager.INTERVAL_WEEKLY),
+        MONTHLY("Monthly", UsageStatsManager.INTERVAL_MONTHLY),
+        YEARLY("Yearly", UsageStatsManager.INTERVAL_YEARLY);
+
+        private int mInterval;
+        private String mStringRepresentation;
+
+        StatsUsageInterval(String stringRepresentation, int interval) {
+            mStringRepresentation = stringRepresentation;
+            mInterval = interval;
+        }
+
+        static StatsUsageInterval getValue(String stringRepresentation) {
+            for (StatsUsageInterval statsUsageInterval : values()) {
+                if (statsUsageInterval.mStringRepresentation.equals(stringRepresentation)) {
+                    return statsUsageInterval;
+                }
+            }
+            return null;
+        }
+    }
+}
diff --git a/samples/browseable/AppUsageStatistics/src/com.example.android.appusagestatistics/CustomUsageStats.java b/samples/browseable/AppUsageStatistics/src/com.example.android.appusagestatistics/CustomUsageStats.java
new file mode 100644
index 0000000..b5b15c4
--- /dev/null
+++ b/samples/browseable/AppUsageStatistics/src/com.example.android.appusagestatistics/CustomUsageStats.java
@@ -0,0 +1,28 @@
+/*
+* 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.
+*/
+
+package com.example.android.appusagestatistics;
+
+import android.app.usage.UsageStats;
+import android.graphics.drawable.Drawable;
+
+/**
+ * Entity class represents usage stats and app icon.
+ */
+public class CustomUsageStats {
+    public UsageStats usageStats;
+    public Drawable appIcon;
+}
diff --git a/samples/browseable/AppUsageStatistics/src/com.example.android.appusagestatistics/UsageListAdapter.java b/samples/browseable/AppUsageStatistics/src/com.example.android.appusagestatistics/UsageListAdapter.java
new file mode 100644
index 0000000..ab1d037
--- /dev/null
+++ b/samples/browseable/AppUsageStatistics/src/com.example.android.appusagestatistics/UsageListAdapter.java
@@ -0,0 +1,95 @@
+/*
+* 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.
+*/
+
+package com.example.android.appusagestatistics;
+
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * Provide views to RecyclerView with the directory entries.
+ */
+public class UsageListAdapter extends RecyclerView.Adapter<UsageListAdapter.ViewHolder> {
+
+    private List<CustomUsageStats> mCustomUsageStatsList = new ArrayList<>();
+    private DateFormat mDateFormat = new SimpleDateFormat();
+
+    /**
+     * Provide a reference to the type of views that you are using (custom ViewHolder)
+     */
+    public static class ViewHolder extends RecyclerView.ViewHolder {
+        private final TextView mPackageName;
+        private final TextView mLastTimeUsed;
+        private final ImageView mAppIcon;
+
+        public ViewHolder(View v) {
+            super(v);
+            mPackageName = (TextView) v.findViewById(R.id.textview_package_name);
+            mLastTimeUsed = (TextView) v.findViewById(R.id.textview_last_time_used);
+            mAppIcon = (ImageView) v.findViewById(R.id.app_icon);
+        }
+
+        public TextView getLastTimeUsed() {
+            return mLastTimeUsed;
+        }
+
+        public TextView getPackageName() {
+            return mPackageName;
+        }
+
+        public ImageView getAppIcon() {
+            return mAppIcon;
+        }
+    }
+
+    public UsageListAdapter() {
+    }
+
+    @Override
+    public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {
+        View v = LayoutInflater.from(viewGroup.getContext())
+                .inflate(R.layout.usage_row, viewGroup, false);
+        return new ViewHolder(v);
+    }
+
+    @Override
+    public void onBindViewHolder(ViewHolder viewHolder, final int position) {
+        viewHolder.getPackageName().setText(
+                mCustomUsageStatsList.get(position).usageStats.getPackageName());
+        long lastTimeUsed = mCustomUsageStatsList.get(position).usageStats.getLastTimeUsed();
+        viewHolder.getLastTimeUsed().setText(mDateFormat.format(new Date(lastTimeUsed)));
+        viewHolder.getAppIcon().setImageDrawable(mCustomUsageStatsList.get(position).appIcon);
+    }
+
+    @Override
+    public int getItemCount() {
+        return mCustomUsageStatsList.size();
+    }
+
+    public void setCustomUsageStatsList(List<CustomUsageStats> customUsageStats) {
+        mCustomUsageStatsList = customUsageStats;
+    }
+}
\ No newline at end of file
diff --git a/samples/browseable/BasicAccessibility/res/layout/activity_main.xml b/samples/browseable/BasicAccessibility/res/layout/activity_main.xml
deleted file mode 100755
index be1aa49..0000000
--- a/samples/browseable/BasicAccessibility/res/layout/activity_main.xml
+++ /dev/null
@@ -1,36 +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.
-  -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
-
-    <LinearLayout style="@style/Widget.SampleMessageTile"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  android:orientation="vertical">
-
-        <TextView style="@style/Widget.SampleMessage"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="@dimen/horizontal_page_margin"
-            android:layout_marginRight="@dimen/horizontal_page_margin"
-            android:layout_marginTop="@dimen/vertical_page_margin"
-            android:layout_marginBottom="@dimen/vertical_page_margin"
-            android:text="@string/intro_message" />
-    </LinearLayout>
-</LinearLayout>
diff --git a/samples/browseable/BasicContactables/res/layout/activity_main.xml b/samples/browseable/BasicContactables/res/layout/activity_main.xml
deleted file mode 100755
index be1aa49..0000000
--- a/samples/browseable/BasicContactables/res/layout/activity_main.xml
+++ /dev/null
@@ -1,36 +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.
-  -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
-
-    <LinearLayout style="@style/Widget.SampleMessageTile"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  android:orientation="vertical">
-
-        <TextView style="@style/Widget.SampleMessage"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="@dimen/horizontal_page_margin"
-            android:layout_marginRight="@dimen/horizontal_page_margin"
-            android:layout_marginTop="@dimen/vertical_page_margin"
-            android:layout_marginBottom="@dimen/vertical_page_margin"
-            android:text="@string/intro_message" />
-    </LinearLayout>
-</LinearLayout>
diff --git a/samples/browseable/BasicImmersiveMode/res/drawable-hdpi/ic_launcher.png b/samples/browseable/BasicImmersiveMode/res/drawable-hdpi/ic_launcher.png
index b1efaf4..63dfb38 100644
--- a/samples/browseable/BasicImmersiveMode/res/drawable-hdpi/ic_launcher.png
+++ b/samples/browseable/BasicImmersiveMode/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/samples/browseable/BasicImmersiveMode/res/drawable-mdpi/ic_launcher.png b/samples/browseable/BasicImmersiveMode/res/drawable-mdpi/ic_launcher.png
index f5f9244..f7c06d0 100644
--- a/samples/browseable/BasicImmersiveMode/res/drawable-mdpi/ic_launcher.png
+++ b/samples/browseable/BasicImmersiveMode/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/samples/browseable/BasicImmersiveMode/res/drawable-xhdpi/ic_launcher.png b/samples/browseable/BasicImmersiveMode/res/drawable-xhdpi/ic_launcher.png
index 5d07b3f..22d9247 100644
--- a/samples/browseable/BasicImmersiveMode/res/drawable-xhdpi/ic_launcher.png
+++ b/samples/browseable/BasicImmersiveMode/res/drawable-xhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/browseable/BasicImmersiveMode/res/drawable-xxhdpi/ic_launcher.png b/samples/browseable/BasicImmersiveMode/res/drawable-xxhdpi/ic_launcher.png
index 6ef21e1..4c4c037 100644
--- a/samples/browseable/BasicImmersiveMode/res/drawable-xxhdpi/ic_launcher.png
+++ b/samples/browseable/BasicImmersiveMode/res/drawable-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/browseable/BasicManagedProfile/res/layout/activity_main.xml b/samples/browseable/BasicManagedProfile/res/layout/activity_main.xml
deleted file mode 100755
index be1aa49..0000000
--- a/samples/browseable/BasicManagedProfile/res/layout/activity_main.xml
+++ /dev/null
@@ -1,36 +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.
-  -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
-
-    <LinearLayout style="@style/Widget.SampleMessageTile"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  android:orientation="vertical">
-
-        <TextView style="@style/Widget.SampleMessage"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="@dimen/horizontal_page_margin"
-            android:layout_marginRight="@dimen/horizontal_page_margin"
-            android:layout_marginTop="@dimen/vertical_page_margin"
-            android:layout_marginBottom="@dimen/vertical_page_margin"
-            android:text="@string/intro_message" />
-    </LinearLayout>
-</LinearLayout>
diff --git a/samples/browseable/BasicManagedProfile/res/layout/fragment_setup_profile.xml b/samples/browseable/BasicManagedProfile/res/layout/fragment_setup_profile.xml
index 2aaaa93..6b1e0d3 100644
--- a/samples/browseable/BasicManagedProfile/res/layout/fragment_setup_profile.xml
+++ b/samples/browseable/BasicManagedProfile/res/layout/fragment_setup_profile.xml
@@ -20,7 +20,7 @@
     android:layout_height="match_parent"
     tools:context="com.example.android.basicmanagedprofile.MainActivity.MainFragment">
 
-    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:orientation="vertical"
diff --git a/samples/browseable/BasicMediaDecoder/res/layout/activity_main.xml b/samples/browseable/BasicMediaDecoder/res/layout/activity_main.xml
deleted file mode 100755
index be1aa49..0000000
--- a/samples/browseable/BasicMediaDecoder/res/layout/activity_main.xml
+++ /dev/null
@@ -1,36 +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.
-  -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
-
-    <LinearLayout style="@style/Widget.SampleMessageTile"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  android:orientation="vertical">
-
-        <TextView style="@style/Widget.SampleMessage"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="@dimen/horizontal_page_margin"
-            android:layout_marginRight="@dimen/horizontal_page_margin"
-            android:layout_marginTop="@dimen/vertical_page_margin"
-            android:layout_marginBottom="@dimen/vertical_page_margin"
-            android:text="@string/intro_message" />
-    </LinearLayout>
-</LinearLayout>
diff --git a/samples/browseable/BasicMediaRouter/res/layout/activity_main.xml b/samples/browseable/BasicMediaRouter/res/layout/activity_main.xml
deleted file mode 100755
index be1aa49..0000000
--- a/samples/browseable/BasicMediaRouter/res/layout/activity_main.xml
+++ /dev/null
@@ -1,36 +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.
-  -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
-
-    <LinearLayout style="@style/Widget.SampleMessageTile"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  android:orientation="vertical">
-
-        <TextView style="@style/Widget.SampleMessage"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="@dimen/horizontal_page_margin"
-            android:layout_marginRight="@dimen/horizontal_page_margin"
-            android:layout_marginTop="@dimen/vertical_page_margin"
-            android:layout_marginBottom="@dimen/vertical_page_margin"
-            android:text="@string/intro_message" />
-    </LinearLayout>
-</LinearLayout>
diff --git a/samples/browseable/BasicMultitouch/_index.jd b/samples/browseable/BasicMultitouch/_index.jd
index f09a7f4..187017a 100644
--- a/samples/browseable/BasicMultitouch/_index.jd
+++ b/samples/browseable/BasicMultitouch/_index.jd
@@ -4,9 +4,9 @@
 
 <p>
             
-This samples demonstrates the use of MotionEvent properties to keep track of individual touches
+This sample demonstrates the use of MotionEvent properties to keep track of individual touches
 across multiple touch events.
 \n\nTouch the screen with multiple fingers to show that the pointer id
-(also represented by a colour) does not change as new touch events are received.</string>
+(also represented by a color) does not change as new touch events are received.
             
         </p>
diff --git a/samples/browseable/BasicMultitouch/res/layout/activity_main.xml b/samples/browseable/BasicMultitouch/res/layout/activity_main.xml
deleted file mode 100755
index be1aa49..0000000
--- a/samples/browseable/BasicMultitouch/res/layout/activity_main.xml
+++ /dev/null
@@ -1,36 +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.
-  -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
-
-    <LinearLayout style="@style/Widget.SampleMessageTile"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  android:orientation="vertical">
-
-        <TextView style="@style/Widget.SampleMessage"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="@dimen/horizontal_page_margin"
-            android:layout_marginRight="@dimen/horizontal_page_margin"
-            android:layout_marginTop="@dimen/vertical_page_margin"
-            android:layout_marginBottom="@dimen/vertical_page_margin"
-            android:text="@string/intro_message" />
-    </LinearLayout>
-</LinearLayout>
diff --git a/samples/browseable/BasicMultitouch/res/values/base-strings.xml b/samples/browseable/BasicMultitouch/res/values/base-strings.xml
index 9079d1e..a5ab6f5 100644
--- a/samples/browseable/BasicMultitouch/res/values/base-strings.xml
+++ b/samples/browseable/BasicMultitouch/res/values/base-strings.xml
@@ -20,10 +20,10 @@
         <![CDATA[
         
             
-This samples demonstrates the use of MotionEvent properties to keep track of individual touches
+This sample demonstrates the use of MotionEvent properties to keep track of individual touches
 across multiple touch events.
 \n\nTouch the screen with multiple fingers to show that the pointer id
-(also represented by a colour) does not change as new touch events are received.</string>
+(also represented by a color) does not change as new touch events are received.
             
         
         ]]>
diff --git a/samples/browseable/BasicNetworking/res/layout/activity_main.xml b/samples/browseable/BasicNetworking/res/layout/activity_main.xml
deleted file mode 100755
index be1aa49..0000000
--- a/samples/browseable/BasicNetworking/res/layout/activity_main.xml
+++ /dev/null
@@ -1,36 +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.
-  -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
-
-    <LinearLayout style="@style/Widget.SampleMessageTile"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  android:orientation="vertical">
-
-        <TextView style="@style/Widget.SampleMessage"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="@dimen/horizontal_page_margin"
-            android:layout_marginRight="@dimen/horizontal_page_margin"
-            android:layout_marginTop="@dimen/vertical_page_margin"
-            android:layout_marginBottom="@dimen/vertical_page_margin"
-            android:text="@string/intro_message" />
-    </LinearLayout>
-</LinearLayout>
diff --git a/samples/browseable/BasicNotifications/res/layout/activity_main.xml b/samples/browseable/BasicNotifications/res/layout/activity_main.xml
deleted file mode 100755
index be1aa49..0000000
--- a/samples/browseable/BasicNotifications/res/layout/activity_main.xml
+++ /dev/null
@@ -1,36 +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.
-  -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
-
-    <LinearLayout style="@style/Widget.SampleMessageTile"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  android:orientation="vertical">
-
-        <TextView style="@style/Widget.SampleMessage"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="@dimen/horizontal_page_margin"
-            android:layout_marginRight="@dimen/horizontal_page_margin"
-            android:layout_marginTop="@dimen/vertical_page_margin"
-            android:layout_marginBottom="@dimen/vertical_page_margin"
-            android:text="@string/intro_message" />
-    </LinearLayout>
-</LinearLayout>
diff --git a/samples/browseable/BasicRenderScript/_index.jd b/samples/browseable/BasicRenderScript/_index.jd
index 3a4ffe0..3e6c62f 100644
--- a/samples/browseable/BasicRenderScript/_index.jd
+++ b/samples/browseable/BasicRenderScript/_index.jd
@@ -4,7 +4,8 @@
 
 <p>
             
-            BasicRenderScript sample demonstrates basic steps how to use renderScript.
-			In the sample, it performs graphical filter operation on a image with renderScript.
+            This sample demonstrates using RenderScript to perform basic image manipulation. Specifically, it allows users
+            to dynamically adjust the saturation for an image using a slider. A custom RenderScript kernel performs the saturation
+            adjustment, running the computation on the device\'s GPU or other compute hardware as deemed appropriate by the system.
             
         </p>
diff --git a/samples/browseable/BasicRenderScript/res/layout/activity_main.xml b/samples/browseable/BasicRenderScript/res/layout/activity_main.xml
deleted file mode 100755
index be1aa49..0000000
--- a/samples/browseable/BasicRenderScript/res/layout/activity_main.xml
+++ /dev/null
@@ -1,36 +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.
-  -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
-
-    <LinearLayout style="@style/Widget.SampleMessageTile"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  android:orientation="vertical">
-
-        <TextView style="@style/Widget.SampleMessage"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="@dimen/horizontal_page_margin"
-            android:layout_marginRight="@dimen/horizontal_page_margin"
-            android:layout_marginTop="@dimen/vertical_page_margin"
-            android:layout_marginBottom="@dimen/vertical_page_margin"
-            android:text="@string/intro_message" />
-    </LinearLayout>
-</LinearLayout>
diff --git a/samples/browseable/BasicRenderScript/res/values/base-strings.xml b/samples/browseable/BasicRenderScript/res/values/base-strings.xml
index 36c7015..93a7391 100644
--- a/samples/browseable/BasicRenderScript/res/values/base-strings.xml
+++ b/samples/browseable/BasicRenderScript/res/values/base-strings.xml
@@ -20,8 +20,9 @@
         <![CDATA[
         
             
-            BasicRenderScript sample demonstrates basic steps how to use renderScript.
-			In the sample, it performs graphical filter operation on a image with renderScript.
+            This sample demonstrates using RenderScript to perform basic image manipulation. Specifically, it allows users
+            to dynamically adjust the saturation for an image using a slider. A custom RenderScript kernel performs the saturation
+            adjustment, running the computation on the device\'s GPU or other compute hardware as deemed appropriate by the system.
             
         
         ]]>
diff --git a/samples/browseable/BasicSyncAdapter/res/layout/activity_main.xml b/samples/browseable/BasicSyncAdapter/res/layout/activity_main.xml
deleted file mode 100755
index be1aa49..0000000
--- a/samples/browseable/BasicSyncAdapter/res/layout/activity_main.xml
+++ /dev/null
@@ -1,36 +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.
-  -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
-
-    <LinearLayout style="@style/Widget.SampleMessageTile"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  android:orientation="vertical">
-
-        <TextView style="@style/Widget.SampleMessage"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="@dimen/horizontal_page_margin"
-            android:layout_marginRight="@dimen/horizontal_page_margin"
-            android:layout_marginTop="@dimen/vertical_page_margin"
-            android:layout_marginBottom="@dimen/vertical_page_margin"
-            android:text="@string/intro_message" />
-    </LinearLayout>
-</LinearLayout>
diff --git a/samples/browseable/BasicSyncAdapter/src/com.example.android.basicsyncadapter/SyncAdapter.java b/samples/browseable/BasicSyncAdapter/src/com.example.android.basicsyncadapter/SyncAdapter.java
index da67107..78d5865 100644
--- a/samples/browseable/BasicSyncAdapter/src/com.example.android.basicsyncadapter/SyncAdapter.java
+++ b/samples/browseable/BasicSyncAdapter/src/com.example.android.basicsyncadapter/SyncAdapter.java
@@ -250,9 +250,9 @@
                     // Update existing record
                     Log.i(TAG, "Scheduling update: " + existingUri);
                     batch.add(ContentProviderOperation.newUpdate(existingUri)
-                            .withValue(FeedContract.Entry.COLUMN_NAME_TITLE, title)
-                            .withValue(FeedContract.Entry.COLUMN_NAME_LINK, link)
-                            .withValue(FeedContract.Entry.COLUMN_NAME_PUBLISHED, published)
+                            .withValue(FeedContract.Entry.COLUMN_NAME_TITLE, match.title)
+                            .withValue(FeedContract.Entry.COLUMN_NAME_LINK, match.link)
+                            .withValue(FeedContract.Entry.COLUMN_NAME_PUBLISHED, match.published)
                             .build());
                     syncResult.stats.numUpdates++;
                 } else {
diff --git a/samples/browseable/BatchStepSensor/res/layout/activity_main.xml b/samples/browseable/BatchStepSensor/res/layout/activity_main.xml
old mode 100755
new mode 100644
diff --git a/samples/browseable/BeamLargeFiles/AndroidManifest.xml b/samples/browseable/BeamLargeFiles/AndroidManifest.xml
new file mode 100644
index 0000000..b084253
--- /dev/null
+++ b/samples/browseable/BeamLargeFiles/AndroidManifest.xml
@@ -0,0 +1,55 @@
+<?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.beamlargefiles"
+    android:versionCode="1"
+    android:versionName="1.0">
+
+    <!-- Large file beam requires API 16 or above. -->
+    <!-- Min/target SDK versions (<uses-sdk>) managed by build.gradle -->
+
+    <!-- The NFC permission is required to use NfcAdapter. -->
+    <uses-permission android:name="android.permission.NFC" />
+    <!-- Inform app distribution channels that NFC is used, though not required. -->
+    <!-- (This step is optional, but recommended.) -->
+    <uses-feature android:name="android.hardware.nfc" android:required="false" />
+
+    <application android:allowBackup="true"
+        android:label="@string/app_name"
+        android:icon="@drawable/ic_launcher"
+        android:theme="@style/AppTheme">
+
+        <!-- Main activity -->
+        <activity android:name=".MainActivity"
+                  android:label="@string/app_name">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+
+        <!-- Content provider, used to provide images for transmission. -->
+        <provider
+            android:name="com.example.android.common.assetprovider.AssetProvider"
+            android:authorities="com.example.android.beamlargefiles.files"
+            android:exported="true"/>
+
+    </application>
+
+
+</manifest>
diff --git a/samples/browseable/BeamLargeFiles/_index.jd b/samples/browseable/BeamLargeFiles/_index.jd
new file mode 100644
index 0000000..d7b3e65
--- /dev/null
+++ b/samples/browseable/BeamLargeFiles/_index.jd
@@ -0,0 +1,16 @@
+page.tags="BeamLargeFiles"
+sample.group=Connectivity
+@jd:body
+
+<p>
+            
+            This sample demonstrates how to transfer large files via Android Beam. After the initial
+            handshake over NFC, file transfer will take place over a secondary high-speed
+            communication channel such as Bluetooth or WiFi Direct.
+
+            \n\nThis feature requires Android 4.1 (Jelly Bean) or above. Unlike traditional Beam,
+            your application will not receive an Intent on the receiving device. Instead, the system
+            will save the file to disk and display a notification that the user can select to open
+            the file using a standard ACTION_VIEW Intent.
+            
+        </p>
diff --git a/samples/browseable/BeamLargeFiles/res/drawable-hdpi/ic_launcher.png b/samples/browseable/BeamLargeFiles/res/drawable-hdpi/ic_launcher.png
new file mode 100644
index 0000000..b1efaf4
--- /dev/null
+++ b/samples/browseable/BeamLargeFiles/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/samples/browseable/AdapterTransition/res/drawable-hdpi/tile.9.png b/samples/browseable/BeamLargeFiles/res/drawable-hdpi/tile.9.png
similarity index 100%
copy from samples/browseable/AdapterTransition/res/drawable-hdpi/tile.9.png
copy to samples/browseable/BeamLargeFiles/res/drawable-hdpi/tile.9.png
Binary files differ
diff --git a/samples/browseable/BeamLargeFiles/res/drawable-mdpi/ic_launcher.png b/samples/browseable/BeamLargeFiles/res/drawable-mdpi/ic_launcher.png
new file mode 100644
index 0000000..f5f9244
--- /dev/null
+++ b/samples/browseable/BeamLargeFiles/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/samples/browseable/BeamLargeFiles/res/drawable-xhdpi/ic_launcher.png b/samples/browseable/BeamLargeFiles/res/drawable-xhdpi/ic_launcher.png
new file mode 100644
index 0000000..5d07b3f
--- /dev/null
+++ b/samples/browseable/BeamLargeFiles/res/drawable-xhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/browseable/BeamLargeFiles/res/drawable-xxhdpi/ic_launcher.png b/samples/browseable/BeamLargeFiles/res/drawable-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000..6ef21e1
--- /dev/null
+++ b/samples/browseable/BeamLargeFiles/res/drawable-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/browseable/BeamLargeFiles/res/layout-sw600dp-land/activity_main.xml b/samples/browseable/BeamLargeFiles/res/layout-sw600dp-land/activity_main.xml
new file mode 100644
index 0000000..8fed5f7
--- /dev/null
+++ b/samples/browseable/BeamLargeFiles/res/layout-sw600dp-land/activity_main.xml
@@ -0,0 +1,42 @@
+<!--
+  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.
+  -->
+<ScrollView
+        xmlns:android="http://schemas.android.com/apk/res/android"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:fillViewport="true"
+        android:id="@+id/sample_main_layout">
+    <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:orientation="vertical">
+        <TextView android:id="@+id/sample_output"
+                  style="@style/Widget.SampleMessage"
+                  android:background="@android:color/white"
+                  android:layout_weight="1"
+                  android:layout_width="match_parent"
+                  android:layout_height="match_parent"
+                  android:text="@string/intro_message"
+                  android:layout_margin="16dp" />
+        <fragment
+                android:name="com.example.android.common.logger.LogFragment"
+                android:id="@+id/log_fragment"
+                android:layout_weight="1"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:layout_margin="16dp" />
+    </LinearLayout>
+</ScrollView>
diff --git a/samples/browseable/BeamLargeFiles/res/layout-sw600dp/activity_main.xml b/samples/browseable/BeamLargeFiles/res/layout-sw600dp/activity_main.xml
new file mode 100644
index 0000000..f811ef7
--- /dev/null
+++ b/samples/browseable/BeamLargeFiles/res/layout-sw600dp/activity_main.xml
@@ -0,0 +1,40 @@
+<!--
+  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.
+  -->
+<ScrollView
+        xmlns:android="http://schemas.android.com/apk/res/android"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:fillViewport="true"
+        android:id="@+id/sample_main_layout">
+    <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:orientation="vertical">
+        <TextView android:id="@+id/sample_output"
+                style="@style/Widget.SampleMessage"
+                android:background="@android:color/white"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:padding="16dp"
+                android:layout_margin="16dp"/>
+        <fragment
+                android:name="com.example.android.common.logger.LogFragment"
+                android:id="@+id/log_fragment"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:layout_margin="16dp" />
+    </LinearLayout>
+</ScrollView>
diff --git a/samples/browseable/BeamLargeFiles/res/layout/activity_main.xml b/samples/browseable/BeamLargeFiles/res/layout/activity_main.xml
new file mode 100644
index 0000000..d170958
--- /dev/null
+++ b/samples/browseable/BeamLargeFiles/res/layout/activity_main.xml
@@ -0,0 +1,43 @@
+<!--
+  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.
+  -->
+<ScrollView
+        xmlns:android="http://schemas.android.com/apk/res/android"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:fillViewport="true"
+        android:id="@+id/sample_main_layout">
+    <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:orientation="vertical">
+        <TextView android:id="@+id/sample_output"
+                style="@style/Widget.SampleMessage"
+                android:layout_weight="1"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:padding="16dp" />
+        <View
+                android:layout_width="fill_parent"
+                android:layout_height="1dp"
+                android:background="@android:color/darker_gray"/>
+        <fragment
+                android:name="com.example.android.common.logger.LogFragment"
+                android:id="@+id/log_fragment"
+                android:layout_weight="1"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent" />
+    </LinearLayout>
+</ScrollView>
diff --git a/samples/browseable/Flashlight/Application/res/values-v11/template-styles.xml b/samples/browseable/BeamLargeFiles/res/menu/main.xml
similarity index 76%
rename from samples/browseable/Flashlight/Application/res/values-v11/template-styles.xml
rename to samples/browseable/BeamLargeFiles/res/menu/main.xml
index 8c1ea66..8de3baa 100644
--- a/samples/browseable/Flashlight/Application/res/values-v11/template-styles.xml
+++ b/samples/browseable/BeamLargeFiles/res/menu/main.xml
@@ -1,5 +1,5 @@
 <!--
-  Copyright 2013 The Android Open Source Project
+  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.
@@ -14,9 +14,5 @@
   limitations under the License.
   -->
 
-<resources>
+<menu xmlns:android="http://schemas.android.com/apk/res/android" />
 
-    <!-- Activity themes -->
-    <style name="Theme.Base" parent="android:Theme.Holo.Light" />
-
-</resources>
diff --git a/samples/browseable/AdapterTransition/res/values-sw600dp/template-dimens.xml b/samples/browseable/BeamLargeFiles/res/values-sw600dp/template-dimens.xml
similarity index 100%
copy from samples/browseable/AdapterTransition/res/values-sw600dp/template-dimens.xml
copy to samples/browseable/BeamLargeFiles/res/values-sw600dp/template-dimens.xml
diff --git a/samples/browseable/AdapterTransition/res/values-sw600dp/template-styles.xml b/samples/browseable/BeamLargeFiles/res/values-sw600dp/template-styles.xml
similarity index 100%
copy from samples/browseable/AdapterTransition/res/values-sw600dp/template-styles.xml
copy to samples/browseable/BeamLargeFiles/res/values-sw600dp/template-styles.xml
diff --git a/samples/browseable/AdapterTransition/res/values-v11/template-styles.xml b/samples/browseable/BeamLargeFiles/res/values-v11/template-styles.xml
similarity index 100%
copy from samples/browseable/AdapterTransition/res/values-v11/template-styles.xml
copy to samples/browseable/BeamLargeFiles/res/values-v11/template-styles.xml
diff --git a/samples/browseable/AdapterTransition/res/values-v21/base-colors.xml b/samples/browseable/BeamLargeFiles/res/values-v21/base-colors.xml
similarity index 100%
copy from samples/browseable/AdapterTransition/res/values-v21/base-colors.xml
copy to samples/browseable/BeamLargeFiles/res/values-v21/base-colors.xml
diff --git a/samples/browseable/AdapterTransition/res/values-v21/base-template-styles.xml b/samples/browseable/BeamLargeFiles/res/values-v21/base-template-styles.xml
similarity index 100%
copy from samples/browseable/AdapterTransition/res/values-v21/base-template-styles.xml
copy to samples/browseable/BeamLargeFiles/res/values-v21/base-template-styles.xml
diff --git a/samples/browseable/BeamLargeFiles/res/values/base-strings.xml b/samples/browseable/BeamLargeFiles/res/values/base-strings.xml
new file mode 100644
index 0000000..6b2c69a
--- /dev/null
+++ b/samples/browseable/BeamLargeFiles/res/values/base-strings.xml
@@ -0,0 +1,35 @@
+<?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.
+-->
+<resources>
+    <string name="app_name">BeamLargeFiles</string>
+    <string name="intro_message">
+        <![CDATA[
+        
+            
+            This sample demonstrates how to transfer large files via Android Beam. After the initial
+            handshake over NFC, file transfer will take place over a secondary high-speed
+            communication channel such as Bluetooth or WiFi Direct.
+
+            \n\nThis feature requires Android 4.1 (Jelly Bean) or above. Unlike traditional Beam,
+            your application will not receive an Intent on the receiving device. Instead, the system
+            will save the file to disk and display a notification that the user can select to open
+            the file using a standard ACTION_VIEW Intent.
+            
+        
+        ]]>
+    </string>
+</resources>
diff --git a/samples/browseable/AdapterTransition/res/values/template-dimens.xml b/samples/browseable/BeamLargeFiles/res/values/template-dimens.xml
similarity index 100%
copy from samples/browseable/AdapterTransition/res/values/template-dimens.xml
copy to samples/browseable/BeamLargeFiles/res/values/template-dimens.xml
diff --git a/samples/browseable/EmbeddedApp/Application/res/values/template-styles.xml b/samples/browseable/BeamLargeFiles/res/values/template-styles.xml
similarity index 64%
rename from samples/browseable/EmbeddedApp/Application/res/values/template-styles.xml
rename to samples/browseable/BeamLargeFiles/res/values/template-styles.xml
index 6e7d593..cfffcbd 100644
--- a/samples/browseable/EmbeddedApp/Application/res/values/template-styles.xml
+++ b/samples/browseable/BeamLargeFiles/res/values/template-styles.xml
@@ -18,18 +18,19 @@
 
     <!-- Activity themes -->
 
-    <style name="Theme.Base" parent="android:Theme.Light" />
+    <style name="Theme.Base" parent="android:Theme.Holo.Light" />
 
-    <style name="Theme.Sample" parent="Theme.Base" />
-
-    <style name="AppTheme" parent="Theme.Sample" />
+    <style name="AppTheme" parent="Theme.Base" />
     <!-- Widget styling -->
 
     <style name="Widget" />
 
     <style name="Widget.SampleMessage">
+        <item name="android:padding">@dimen/margin_medium</item>
         <item name="android:textAppearance">?android:textAppearanceMedium</item>
         <item name="android:lineSpacingMultiplier">1.1</item>
+        <item name="android:layout_margin">16dp</item>
+        <item name="android:shadowDy">-6.5</item>
     </style>
 
     <style name="Widget.SampleMessageTile">
@@ -39,4 +40,15 @@
         <item name="android:shadowRadius">2</item>
     </style>
 
+
+    <style name="Widget.SampleOutput">
+        <item name="android:padding">@dimen/margin_medium</item>
+        <item name="android:textAppearance">?android:textAppearanceMedium</item>
+        <item name="android:lineSpacingMultiplier">1.1</item>
+    </style>
+
+    <style name="Log" parent="Widget.SampleOutput">
+        <item name="android:typeface">monospace</item>
+    </style>
+
 </resources>
diff --git a/samples/browseable/BeamLargeFiles/src/com.example.android.beamlargefiles/BeamLargeFilesFragment.java b/samples/browseable/BeamLargeFiles/src/com.example.android.beamlargefiles/BeamLargeFilesFragment.java
new file mode 100644
index 0000000..6dd50fe
--- /dev/null
+++ b/samples/browseable/BeamLargeFiles/src/com.example.android.beamlargefiles/BeamLargeFilesFragment.java
@@ -0,0 +1,98 @@
+/*
+* 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.beamlargefiles;
+
+import android.app.Activity;
+import android.net.Uri;
+import android.nfc.NfcAdapter;
+import android.nfc.NfcEvent;
+import android.os.Bundle;
+import android.support.v4.app.Fragment;
+import android.util.Log;
+
+/**
+ * This class demonstrates how to use Beam to send files too large to transfer reliably via NFC.
+ *
+ * <p>While any type of data can be placed into a normal NDEF messages, NFC is not considered
+ * "high-speed" communication channel. Large images can easily take > 30 seconds to transfer.
+ * Because NFC requires devices to be in extremely close proximity, this is not ideal.
+ *
+ * <p>Instead, Android 4.2+ devices can use NFC to perform an initial handshake, before handing
+ * off to a faster communication channel, such as Bluetooth, for file transfer.
+ *
+ * <p>The tradeoff is that this application will not be invoked on the receiving device. Instead,
+ * the transfer will be handled by the OS. The user will be shown a notification when the transfer
+ * is complete. Selecting the notification will open the file in the default viewer for its MIME-
+ * type. (If it's important that your application be used to open the file, you'll need to register
+ * an intent-filter to watch for the appropriate MIME-type.)
+ */
+public class BeamLargeFilesFragment extends Fragment implements NfcAdapter.CreateBeamUrisCallback {
+
+    private static final String TAG = "BeamLargeFilesFragment";
+    /** Filename that is to be sent for this activity. Relative to /assets. */
+    private static final String FILENAME = "stargazer_droid.jpg";
+    /** Content provider URI. */
+    private static final String CONTENT_BASE_URI =
+            "content://com.example.android.beamlargefiles.files/";
+
+    /**
+     * Standard lifecycle event. Registers a callback for large-file transfer, by calling
+     * NfcAdapter.setBeamPushUrisCallback().
+     *
+     * Note: Like sending NDEF messages over standard Android Beam, there is also a non-callback
+     * API available. See: NfcAdapter.setBeamPushUris().
+     *
+     * @param savedInstanceState Saved instance state.
+     */
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setHasOptionsMenu(true);
+        Activity a = getActivity();
+
+        // Setup Beam to transfer a large file. Note the call to setBeamPushUrisCallback().
+        // BEGIN_INCLUDE(setBeamPushUrisCallback)
+        NfcAdapter nfc = NfcAdapter.getDefaultAdapter(a);
+        if (nfc != null) {
+            Log.w(TAG, "NFC available. Setting Beam Push URI callback");
+            nfc.setBeamPushUrisCallback(this, a);
+        } else {
+            Log.w(TAG, "NFC is not available");
+        }
+        // END_INCLUDE(setBeamPushUrisCallback)
+    }
+
+    /**
+     * Callback for Beam events (large file version). The return value here should be an array of
+     * content:// or file:// URIs to send.
+     *
+     * Note that the system must have read access to whatever URIs are provided here.
+     *
+     * @param nfcEvent NFC event which triggered callback
+     * @return URIs to be sent to remote device
+     */
+    // BEGIN_INCLUDE(createBeamUris)
+    @Override
+    public Uri[] createBeamUris(NfcEvent nfcEvent) {
+        Log.i(TAG, "Beam event in progress; createBeamUris() called.");
+        // Images are served using a content:// URI. See AssetProvider for implementation.
+        Uri photoUri = Uri.parse(CONTENT_BASE_URI + FILENAME);
+        Log.i(TAG, "Sending URI: " + photoUri);
+        return new Uri[] {photoUri};
+    }
+    // END_INCLUDE(createBeamUris)
+}
diff --git a/samples/browseable/BeamLargeFiles/src/com.example.android.beamlargefiles/MainActivity.java b/samples/browseable/BeamLargeFiles/src/com.example.android.beamlargefiles/MainActivity.java
new file mode 100644
index 0000000..50d504c
--- /dev/null
+++ b/samples/browseable/BeamLargeFiles/src/com.example.android.beamlargefiles/MainActivity.java
@@ -0,0 +1,82 @@
+/*
+* 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.beamlargefiles;
+
+import android.graphics.Color;
+import android.os.Bundle;
+import android.support.v4.app.FragmentTransaction;
+import android.text.Html;
+import android.widget.TextView;
+import android.view.Menu;
+
+import com.example.android.common.activities.SampleActivityBase;
+import com.example.android.common.logger.Log;
+import com.example.android.common.logger.LogFragment;
+import com.example.android.common.logger.LogWrapper;
+import com.example.android.common.logger.MessageOnlyLogFilter;
+
+/**
+ * A simple launcher activity containing a summary sample description
+ * and a few action bar buttons.
+ */
+public class MainActivity extends SampleActivityBase {
+
+    public static final String TAG = "MainActivity";
+
+    public static final String FRAGTAG = "BeamLargeFilesFragment";
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_main);
+        TextView sampleOutput = (TextView) findViewById(R.id.sample_output);
+        sampleOutput.setText(Html.fromHtml(getString(R.string.intro_message)));
+
+        FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
+        BeamLargeFilesFragment fragment = new BeamLargeFilesFragment();
+        transaction.add(fragment, FRAGTAG);
+        transaction.commit();
+    }
+
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        getMenuInflater().inflate(R.menu.main, menu);
+        return true;
+    }
+
+    /** Create a chain of targets that will receive log data */
+    @Override
+    public void initializeLogging() {
+        // Wraps Android's native log framework.
+        LogWrapper logWrapper = new LogWrapper();
+        // Using Log, front-end to the logging chain, emulates android.util.log method signatures.
+        Log.setLogNode(logWrapper);
+
+        // Filter strips out everything except the message text.
+        MessageOnlyLogFilter msgFilter = new MessageOnlyLogFilter();
+        logWrapper.setNext(msgFilter);
+
+        // On screen logging via a fragment with a TextView.
+        LogFragment logFragment = (LogFragment) getSupportFragmentManager()
+                .findFragmentById(R.id.log_fragment);
+        msgFilter.setNext(logFragment.getLogView());
+        logFragment.getLogView().setTextAppearance(this, R.style.Log);
+        logFragment.getLogView().setBackgroundColor(Color.WHITE);
+
+        Log.i(TAG, "Ready");
+    }
+}
diff --git a/samples/browseable/AdapterTransition/src/com.example.android.common/activities/SampleActivityBase.java b/samples/browseable/BeamLargeFiles/src/com.example.android.common/activities/SampleActivityBase.java
similarity index 100%
rename from samples/browseable/AdapterTransition/src/com.example.android.common/activities/SampleActivityBase.java
rename to samples/browseable/BeamLargeFiles/src/com.example.android.common/activities/SampleActivityBase.java
diff --git a/samples/browseable/BeamLargeFiles/src/com.example.android.common/assetprovider/AssetProvider.java b/samples/browseable/BeamLargeFiles/src/com.example.android.common/assetprovider/AssetProvider.java
new file mode 100644
index 0000000..f6c0f61
--- /dev/null
+++ b/samples/browseable/BeamLargeFiles/src/com.example.android.common/assetprovider/AssetProvider.java
@@ -0,0 +1,140 @@
+/*
+* 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.assetprovider;
+
+import android.content.ContentProvider;
+import android.content.ContentValues;
+import android.content.Context;
+import android.content.res.AssetFileDescriptor;
+import android.content.res.AssetManager;
+import android.database.Cursor;
+import android.net.Uri;
+
+import java.io.FileNotFoundException;
+import java.io.IOException;
+
+import static java.net.URLConnection.guessContentTypeFromName;
+
+/**
+ * Generic content provider, which makes any files available in this app's "assets" directory
+ * available publicly.
+ *
+ * <p>To use, add the following to your AndroidManifest.xml:
+ *
+ * <code><pre>
+ * <provider
+ *   android:name=".AssetProvider"
+ *   android:authorities="[YOUR CONTENT PROVIDER DOMAIN HERE]"
+ *   android:exported="true"/>
+ * </pre></code>
+ */
+public class AssetProvider extends ContentProvider {
+    AssetManager mAssets;
+
+    @Override
+    public boolean onCreate() {
+        Context ctx = getContext();
+        if (ctx == null) {
+            // Context not available. Give up.
+            return false;
+        }
+        mAssets = ctx.getAssets();
+        return true;
+    }
+
+    @Override
+    public String getType(Uri uri){
+        // Returns the MIME type for the selected URI, in conformance with the ContentProvider
+        // interface. Looks up the file indicated by /res/assets/{uri.path}, and returns the MIME
+        // type for that file as guessed by the URLConnection class.
+
+        // Setup
+        String path = uri.getPath();
+
+        // Check if file exists
+        if (!fileExists(path)) {
+            return null;
+        }
+
+        // Determine MIME-type based on filename
+        return guessContentTypeFromName(uri.toString());
+    }
+
+
+    @Override
+    public AssetFileDescriptor openAssetFile (Uri uri, String mode)
+            throws FileNotFoundException, SecurityException {
+        // ContentProvider interface for opening a file descriptor by URI. This content provider
+        // maps all URIs to the contents of the APK's assets folder, so a file handle to
+        // /res/assets/{uri.path} will be returned.
+
+        // Security check. This content provider only supports read-only access. (Also, the contents
+        // of an APKs assets folder are immutable, so read-write access doesn't make sense here.)
+        if (!"r".equals(mode)) {
+            throw new SecurityException("Only read-only access is supported, mode must be [r]");
+        }
+
+        // Open asset from within APK and return file descriptor
+        String path = uri.getPath();
+        try {
+            return mAssets.openFd(path);
+        } catch (IOException e) {
+            throw new FileNotFoundException();
+        }
+    }
+
+    /**
+     * Check if file exists inside APK assets.
+     *
+     * @param path Fully qualified path to file.
+     * @return true if exists, false otherwise.
+     */
+    private boolean fileExists(String path) {
+        try {
+            // Check to see if file can be opened. If so, file exists.
+            mAssets.openFd(path).close();
+            return true;
+        } catch (IOException e) {
+            // Unable to open file descriptor for specified path; file doesn't exist.
+            return false;
+        }
+    }
+
+    // Required/unused ContentProvider methods below.
+    @Override
+    public Cursor query(Uri uri, String[] projection, String selection,
+                        String[] selectionArgs, String sortOrder) {
+        // Note: It might be worth implementing support for querying
+        //       android.provider.OpenableColumns here in the future.
+        throw new RuntimeException("Operation not supported");
+    }
+
+    @Override
+    public Uri insert(Uri uri, ContentValues contentValues) {
+        throw new RuntimeException("Operation not supported");
+    }
+
+    @Override
+    public int delete(Uri uri, String selection, String[] selectionArgs) {
+        throw new RuntimeException("Operation not supported");
+    }
+
+    @Override
+    public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
+        throw new RuntimeException("Operation not supported");
+    }
+}
diff --git a/samples/browseable/AdapterTransition/src/com.example.android.common/logger/Log.java b/samples/browseable/BeamLargeFiles/src/com.example.android.common/logger/Log.java
similarity index 100%
rename from samples/browseable/AdapterTransition/src/com.example.android.common/logger/Log.java
rename to samples/browseable/BeamLargeFiles/src/com.example.android.common/logger/Log.java
diff --git a/samples/browseable/AdapterTransition/src/com.example.android.common/logger/LogFragment.java b/samples/browseable/BeamLargeFiles/src/com.example.android.common/logger/LogFragment.java
similarity index 100%
rename from samples/browseable/AdapterTransition/src/com.example.android.common/logger/LogFragment.java
rename to samples/browseable/BeamLargeFiles/src/com.example.android.common/logger/LogFragment.java
diff --git a/samples/browseable/AdapterTransition/src/com.example.android.common/logger/LogNode.java b/samples/browseable/BeamLargeFiles/src/com.example.android.common/logger/LogNode.java
similarity index 100%
rename from samples/browseable/AdapterTransition/src/com.example.android.common/logger/LogNode.java
rename to samples/browseable/BeamLargeFiles/src/com.example.android.common/logger/LogNode.java
diff --git a/samples/browseable/AdapterTransition/src/com.example.android.common/logger/LogView.java b/samples/browseable/BeamLargeFiles/src/com.example.android.common/logger/LogView.java
similarity index 100%
rename from samples/browseable/AdapterTransition/src/com.example.android.common/logger/LogView.java
rename to samples/browseable/BeamLargeFiles/src/com.example.android.common/logger/LogView.java
diff --git a/samples/browseable/AdapterTransition/src/com.example.android.common/logger/LogWrapper.java b/samples/browseable/BeamLargeFiles/src/com.example.android.common/logger/LogWrapper.java
similarity index 100%
rename from samples/browseable/AdapterTransition/src/com.example.android.common/logger/LogWrapper.java
rename to samples/browseable/BeamLargeFiles/src/com.example.android.common/logger/LogWrapper.java
diff --git a/samples/browseable/AdapterTransition/src/com.example.android.common/logger/MessageOnlyLogFilter.java b/samples/browseable/BeamLargeFiles/src/com.example.android.common/logger/MessageOnlyLogFilter.java
similarity index 100%
rename from samples/browseable/AdapterTransition/src/com.example.android.common/logger/MessageOnlyLogFilter.java
rename to samples/browseable/BeamLargeFiles/src/com.example.android.common/logger/MessageOnlyLogFilter.java
diff --git a/samples/browseable/BluetoothLeGatt/res/layout/activity_main.xml b/samples/browseable/BluetoothLeGatt/res/layout/activity_main.xml
deleted file mode 100755
index be1aa49..0000000
--- a/samples/browseable/BluetoothLeGatt/res/layout/activity_main.xml
+++ /dev/null
@@ -1,36 +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.
-  -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
-
-    <LinearLayout style="@style/Widget.SampleMessageTile"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  android:orientation="vertical">
-
-        <TextView style="@style/Widget.SampleMessage"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="@dimen/horizontal_page_margin"
-            android:layout_marginRight="@dimen/horizontal_page_margin"
-            android:layout_marginTop="@dimen/vertical_page_margin"
-            android:layout_marginBottom="@dimen/vertical_page_margin"
-            android:text="@string/intro_message" />
-    </LinearLayout>
-</LinearLayout>
diff --git a/samples/browseable/BorderlessButtons/res/drawable-hdpi/ic_launcher.png b/samples/browseable/BorderlessButtons/res/drawable-hdpi/ic_launcher.png
index b1efaf4..bb97e43 100644
--- a/samples/browseable/BorderlessButtons/res/drawable-hdpi/ic_launcher.png
+++ b/samples/browseable/BorderlessButtons/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/samples/browseable/BorderlessButtons/res/drawable-mdpi/ic_launcher.png b/samples/browseable/BorderlessButtons/res/drawable-mdpi/ic_launcher.png
index f5f9244..4ee8ad3 100644
--- a/samples/browseable/BorderlessButtons/res/drawable-mdpi/ic_launcher.png
+++ b/samples/browseable/BorderlessButtons/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/samples/browseable/BorderlessButtons/res/drawable-xhdpi/ic_launcher.png b/samples/browseable/BorderlessButtons/res/drawable-xhdpi/ic_launcher.png
index 5d07b3f..b3b78e9 100644
--- a/samples/browseable/BorderlessButtons/res/drawable-xhdpi/ic_launcher.png
+++ b/samples/browseable/BorderlessButtons/res/drawable-xhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/browseable/BorderlessButtons/res/drawable-xxhdpi/ic_launcher.png b/samples/browseable/BorderlessButtons/res/drawable-xxhdpi/ic_launcher.png
index 6ef21e1..82a4165 100644
--- a/samples/browseable/BorderlessButtons/res/drawable-xxhdpi/ic_launcher.png
+++ b/samples/browseable/BorderlessButtons/res/drawable-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/browseable/BorderlessButtons/res/layout/activity_main.xml b/samples/browseable/BorderlessButtons/res/layout/activity_main.xml
deleted file mode 100755
index be1aa49..0000000
--- a/samples/browseable/BorderlessButtons/res/layout/activity_main.xml
+++ /dev/null
@@ -1,36 +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.
-  -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
-
-    <LinearLayout style="@style/Widget.SampleMessageTile"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  android:orientation="vertical">
-
-        <TextView style="@style/Widget.SampleMessage"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="@dimen/horizontal_page_margin"
-            android:layout_marginRight="@dimen/horizontal_page_margin"
-            android:layout_marginTop="@dimen/vertical_page_margin"
-            android:layout_marginBottom="@dimen/vertical_page_margin"
-            android:text="@string/intro_message" />
-    </LinearLayout>
-</LinearLayout>
diff --git a/samples/browseable/Camera2Basic/res/layout/activity_main.xml b/samples/browseable/Camera2Basic/res/layout/activity_main.xml
deleted file mode 100755
index be1aa49..0000000
--- a/samples/browseable/Camera2Basic/res/layout/activity_main.xml
+++ /dev/null
@@ -1,36 +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.
-  -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
-
-    <LinearLayout style="@style/Widget.SampleMessageTile"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  android:orientation="vertical">
-
-        <TextView style="@style/Widget.SampleMessage"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="@dimen/horizontal_page_margin"
-            android:layout_marginRight="@dimen/horizontal_page_margin"
-            android:layout_marginTop="@dimen/vertical_page_margin"
-            android:layout_marginBottom="@dimen/vertical_page_margin"
-            android:text="@string/intro_message" />
-    </LinearLayout>
-</LinearLayout>
diff --git a/samples/browseable/Camera2Basic/src/com.example.android.camera2basic/Camera2BasicFragment.java b/samples/browseable/Camera2Basic/src/com.example.android.camera2basic/Camera2BasicFragment.java
index 4b55358..2414ed6 100644
--- a/samples/browseable/Camera2Basic/src/com.example.android.camera2basic/Camera2BasicFragment.java
+++ b/samples/browseable/Camera2Basic/src/com.example.android.camera2basic/Camera2BasicFragment.java
@@ -43,6 +43,7 @@
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.HandlerThread;
+import android.os.Message;
 import android.util.Log;
 import android.util.Size;
 import android.util.SparseIntArray;
@@ -315,6 +316,32 @@
     };
 
     /**
+     * A {@link Handler} for showing {@link Toast}s.
+     */
+    private Handler mMessageHandler = new Handler() {
+        @Override
+        public void handleMessage(Message msg) {
+            Activity activity = getActivity();
+            if (activity != null) {
+                Toast.makeText(activity, (String) msg.obj, Toast.LENGTH_SHORT).show();
+            }
+        }
+    };
+
+    /**
+     * Shows a {@link Toast} on the UI thread.
+     *
+     * @param text The message to show
+     */
+    private void showToast(String text) {
+        // We show a Toast by sending request message to mMessageHandler. This makes sure that the
+        // Toast is shown on the UI thread.
+        Message message = Message.obtain();
+        message.obj = text;
+        mMessageHandler.sendMessage(message);
+    }
+
+    /**
      * Given {@code choices} of {@code Size}s supported by a camera, chooses the smallest one whose
      * width and height are at least as large as the respective requested values, and whose aspect
      * ratio matches with the specified value.
@@ -573,10 +600,7 @@
 
                         @Override
                         public void onConfigureFailed(CameraCaptureSession cameraCaptureSession) {
-                            Activity activity = getActivity();
-                            if (null != activity) {
-                                Toast.makeText(activity, "Failed", Toast.LENGTH_SHORT).show();
-                            }
+                            showToast("Failed");
                         }
                     }, null
             );
@@ -689,7 +713,7 @@
                 @Override
                 public void onCaptureCompleted(CameraCaptureSession session, CaptureRequest request,
                                                TotalCaptureResult result) {
-                    Toast.makeText(getActivity(), "Saved: " + mFile, Toast.LENGTH_SHORT).show();
+                    showToast("Saved: " + mFile);
                     unlockFocus();
                 }
             };
diff --git a/samples/browseable/Camera2Video/res/layout/activity_main.xml b/samples/browseable/Camera2Video/res/layout/activity_main.xml
deleted file mode 100755
index be1aa49..0000000
--- a/samples/browseable/Camera2Video/res/layout/activity_main.xml
+++ /dev/null
@@ -1,36 +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.
-  -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
-
-    <LinearLayout style="@style/Widget.SampleMessageTile"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  android:orientation="vertical">
-
-        <TextView style="@style/Widget.SampleMessage"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="@dimen/horizontal_page_margin"
-            android:layout_marginRight="@dimen/horizontal_page_margin"
-            android:layout_marginTop="@dimen/vertical_page_margin"
-            android:layout_marginBottom="@dimen/vertical_page_margin"
-            android:text="@string/intro_message" />
-    </LinearLayout>
-</LinearLayout>
diff --git a/samples/browseable/CardView/res/layout/activity_main.xml b/samples/browseable/CardView/res/layout/activity_main.xml
deleted file mode 100755
index be1aa49..0000000
--- a/samples/browseable/CardView/res/layout/activity_main.xml
+++ /dev/null
@@ -1,36 +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.
-  -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
-
-    <LinearLayout style="@style/Widget.SampleMessageTile"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  android:orientation="vertical">
-
-        <TextView style="@style/Widget.SampleMessage"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="@dimen/horizontal_page_margin"
-            android:layout_marginRight="@dimen/horizontal_page_margin"
-            android:layout_marginTop="@dimen/vertical_page_margin"
-            android:layout_marginBottom="@dimen/vertical_page_margin"
-            android:text="@string/intro_message" />
-    </LinearLayout>
-</LinearLayout>
diff --git a/samples/browseable/CustomChoiceList/res/layout/activity_main.xml b/samples/browseable/CustomChoiceList/res/layout/activity_main.xml
deleted file mode 100755
index be1aa49..0000000
--- a/samples/browseable/CustomChoiceList/res/layout/activity_main.xml
+++ /dev/null
@@ -1,36 +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.
-  -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
-
-    <LinearLayout style="@style/Widget.SampleMessageTile"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  android:orientation="vertical">
-
-        <TextView style="@style/Widget.SampleMessage"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="@dimen/horizontal_page_margin"
-            android:layout_marginRight="@dimen/horizontal_page_margin"
-            android:layout_marginTop="@dimen/vertical_page_margin"
-            android:layout_marginBottom="@dimen/vertical_page_margin"
-            android:text="@string/intro_message" />
-    </LinearLayout>
-</LinearLayout>
diff --git a/samples/browseable/CustomNotifications/res/layout/activity_main.xml b/samples/browseable/CustomNotifications/res/layout/activity_main.xml
deleted file mode 100755
index be1aa49..0000000
--- a/samples/browseable/CustomNotifications/res/layout/activity_main.xml
+++ /dev/null
@@ -1,36 +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.
-  -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
-
-    <LinearLayout style="@style/Widget.SampleMessageTile"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  android:orientation="vertical">
-
-        <TextView style="@style/Widget.SampleMessage"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="@dimen/horizontal_page_margin"
-            android:layout_marginRight="@dimen/horizontal_page_margin"
-            android:layout_marginTop="@dimen/vertical_page_margin"
-            android:layout_marginBottom="@dimen/vertical_page_margin"
-            android:text="@string/intro_message" />
-    </LinearLayout>
-</LinearLayout>
diff --git a/samples/browseable/DataLayer/Application/res/layout/activity_main.xml b/samples/browseable/DataLayer/Application/res/layout/activity_main.xml
deleted file mode 100755
index be1aa49..0000000
--- a/samples/browseable/DataLayer/Application/res/layout/activity_main.xml
+++ /dev/null
@@ -1,36 +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.
-  -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
-
-    <LinearLayout style="@style/Widget.SampleMessageTile"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  android:orientation="vertical">
-
-        <TextView style="@style/Widget.SampleMessage"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="@dimen/horizontal_page_margin"
-            android:layout_marginRight="@dimen/horizontal_page_margin"
-            android:layout_marginTop="@dimen/vertical_page_margin"
-            android:layout_marginBottom="@dimen/vertical_page_margin"
-            android:text="@string/intro_message" />
-    </LinearLayout>
-</LinearLayout>
diff --git a/samples/browseable/DelayedConfirmation/Application/res/layout/activity_main.xml b/samples/browseable/DelayedConfirmation/Application/res/layout/activity_main.xml
deleted file mode 100755
index be1aa49..0000000
--- a/samples/browseable/DelayedConfirmation/Application/res/layout/activity_main.xml
+++ /dev/null
@@ -1,36 +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.
-  -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
-
-    <LinearLayout style="@style/Widget.SampleMessageTile"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  android:orientation="vertical">
-
-        <TextView style="@style/Widget.SampleMessage"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="@dimen/horizontal_page_margin"
-            android:layout_marginRight="@dimen/horizontal_page_margin"
-            android:layout_marginTop="@dimen/vertical_page_margin"
-            android:layout_marginBottom="@dimen/vertical_page_margin"
-            android:text="@string/intro_message" />
-    </LinearLayout>
-</LinearLayout>
diff --git a/samples/browseable/DeviceOwner/AndroidManifest.xml b/samples/browseable/DeviceOwner/AndroidManifest.xml
new file mode 100644
index 0000000..fb61ac9
--- /dev/null
+++ b/samples/browseable/DeviceOwner/AndroidManifest.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright 2015 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
+    package="com.example.android.deviceowner"
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:versionCode="1"
+    android:versionName="1.0">
+
+    <application
+        android:allowBackup="true"
+        android:icon="@drawable/ic_launcher"
+        android:label="@string/app_name"
+        android:theme="@style/AppTheme">
+
+        <activity
+            android:name=".MainActivity"
+            android:label="@string/app_name">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN"/>
+                <category android:name="android.intent.category.LAUNCHER"/>
+            </intent-filter>
+        </activity>
+
+        <receiver
+            android:name=".DeviceOwnerReceiver"
+            android:description="@string/app_name"
+            android:label="@string/app_name"
+            android:permission="android.permission.BIND_DEVICE_ADMIN">
+            <meta-data
+                android:name="android.app.device_admin"
+                android:resource="@xml/device_owner_receiver"/>
+            <intent-filter>
+                <action android:name="android.app.action.PROFILE_PROVISIONING_COMPLETE"/>
+            </intent-filter>
+        </receiver>
+
+    </application>
+
+
+</manifest>
diff --git a/samples/browseable/DeviceOwner/_index.jd b/samples/browseable/DeviceOwner/_index.jd
new file mode 100644
index 0000000..cd9b949
--- /dev/null
+++ b/samples/browseable/DeviceOwner/_index.jd
@@ -0,0 +1,12 @@
+page.tags="DeviceOwner"
+sample.group=Admin
+@jd:body
+
+<p>
+
+This app demonstrates how to use device owner features. Use the NfcProvisioning sample to set up
+this app as the device owner of your test device (This requires wiping out the device and resseting
+it as an unprovisioned device). As a device owner, this app can configure global settings, and
+enforce use of a specific launcher.
+
+        </p>
diff --git a/samples/browseable/DeviceOwner/res/drawable-hdpi/ic_launcher.png b/samples/browseable/DeviceOwner/res/drawable-hdpi/ic_launcher.png
new file mode 100644
index 0000000..282e540
--- /dev/null
+++ b/samples/browseable/DeviceOwner/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/samples/browseable/AdapterTransition/res/drawable-hdpi/tile.9.png b/samples/browseable/DeviceOwner/res/drawable-hdpi/tile.9.png
similarity index 100%
copy from samples/browseable/AdapterTransition/res/drawable-hdpi/tile.9.png
copy to samples/browseable/DeviceOwner/res/drawable-hdpi/tile.9.png
Binary files differ
diff --git a/samples/browseable/DeviceOwner/res/drawable-mdpi/ic_launcher.png b/samples/browseable/DeviceOwner/res/drawable-mdpi/ic_launcher.png
new file mode 100644
index 0000000..4ecfdf6
--- /dev/null
+++ b/samples/browseable/DeviceOwner/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/samples/browseable/DeviceOwner/res/drawable-xhdpi/ic_launcher.png b/samples/browseable/DeviceOwner/res/drawable-xhdpi/ic_launcher.png
new file mode 100644
index 0000000..dfb6cab
--- /dev/null
+++ b/samples/browseable/DeviceOwner/res/drawable-xhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/browseable/DeviceOwner/res/drawable-xxhdpi/ic_launcher.png b/samples/browseable/DeviceOwner/res/drawable-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000..650302e
--- /dev/null
+++ b/samples/browseable/DeviceOwner/res/drawable-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/browseable/DeviceOwner/res/layout/activity_main_real.xml b/samples/browseable/DeviceOwner/res/layout/activity_main_real.xml
new file mode 100644
index 0000000..384e9f9
--- /dev/null
+++ b/samples/browseable/DeviceOwner/res/layout/activity_main_real.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2015 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.
+-->
+<FrameLayout
+    android:id="@+id/container"
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:context="com.example.android.deviceowner.MainActivity"
+    tools:ignore="MergeRootFrame"/>
diff --git a/samples/browseable/DeviceOwner/res/layout/fragment_device_owner.xml b/samples/browseable/DeviceOwner/res/layout/fragment_device_owner.xml
new file mode 100644
index 0000000..aeae219
--- /dev/null
+++ b/samples/browseable/DeviceOwner/res/layout/fragment_device_owner.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2015 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.
+-->
+<ScrollView
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:context="com.example.android.deviceowner.DeviceOwnerFragment">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="vertical">
+
+        <TextView
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_margin="@dimen/margin_medium"
+            android:text="@string/label_global_settings"
+            android:textAppearance="?android:attr/textAppearanceLarge"/>
+
+        <Switch
+            android:id="@+id/switch_auto_time"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_margin="@dimen/margin_medium"
+            android:paddingEnd="@dimen/margin_medium"
+            android:paddingStart="@dimen/margin_medium"
+            android:text="@string/label_auto_time"
+            android:textAppearance="?android:attr/textAppearanceMedium"/>
+
+        <Switch
+            android:id="@+id/switch_auto_time_zone"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_margin="@dimen/margin_medium"
+            android:paddingEnd="@dimen/margin_medium"
+            android:paddingStart="@dimen/margin_medium"
+            android:text="@string/label_auto_time_zone"
+            android:textAppearance="?android:attr/textAppearanceMedium"/>
+
+        <Space
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/margin_medium"/>
+
+        <TextView
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_margin="@dimen/margin_medium"
+            android:text="@string/label_launcher"
+            android:textAppearance="?android:attr/textAppearanceLarge"/>
+
+        <Spinner
+            android:id="@+id/available_launchers"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="@dimen/margin_medium"
+            android:layout_marginTop="@dimen/margin_medium"/>
+
+        <Button
+            android:id="@+id/set_preferred_launcher"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="@dimen/margin_medium"
+            android:text="@string/set_as_preferred"/>
+
+    </LinearLayout>
+
+</ScrollView>
\ No newline at end of file
diff --git a/samples/browseable/DeviceOwner/res/layout/fragment_instruction.xml b/samples/browseable/DeviceOwner/res/layout/fragment_instruction.xml
new file mode 100644
index 0000000..9d09e39
--- /dev/null
+++ b/samples/browseable/DeviceOwner/res/layout/fragment_instruction.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2015 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.
+-->
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical"
+    tools:context="com.example.android.deviceowner.InstructionFragment">
+
+    <TextView
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_margin="@dimen/margin_medium"
+        android:text="@string/set_up_instruction"
+        android:textAppearance="?android:attr/textAppearanceMedium"/>
+
+</LinearLayout>
diff --git a/samples/browseable/AdapterTransition/res/values-sw600dp/template-dimens.xml b/samples/browseable/DeviceOwner/res/values-sw600dp/template-dimens.xml
similarity index 100%
copy from samples/browseable/AdapterTransition/res/values-sw600dp/template-dimens.xml
copy to samples/browseable/DeviceOwner/res/values-sw600dp/template-dimens.xml
diff --git a/samples/browseable/AdapterTransition/res/values-sw600dp/template-styles.xml b/samples/browseable/DeviceOwner/res/values-sw600dp/template-styles.xml
similarity index 100%
copy from samples/browseable/AdapterTransition/res/values-sw600dp/template-styles.xml
copy to samples/browseable/DeviceOwner/res/values-sw600dp/template-styles.xml
diff --git a/samples/browseable/AdapterTransition/res/values-v11/template-styles.xml b/samples/browseable/DeviceOwner/res/values-v11/template-styles.xml
similarity index 100%
copy from samples/browseable/AdapterTransition/res/values-v11/template-styles.xml
copy to samples/browseable/DeviceOwner/res/values-v11/template-styles.xml
diff --git a/samples/browseable/AdapterTransition/res/values-v21/base-colors.xml b/samples/browseable/DeviceOwner/res/values-v21/base-colors.xml
similarity index 100%
copy from samples/browseable/AdapterTransition/res/values-v21/base-colors.xml
copy to samples/browseable/DeviceOwner/res/values-v21/base-colors.xml
diff --git a/samples/browseable/AdapterTransition/res/values-v21/base-template-styles.xml b/samples/browseable/DeviceOwner/res/values-v21/base-template-styles.xml
similarity index 100%
copy from samples/browseable/AdapterTransition/res/values-v21/base-template-styles.xml
copy to samples/browseable/DeviceOwner/res/values-v21/base-template-styles.xml
diff --git a/samples/browseable/WatchViewStub/Application/res/values/base-strings.xml b/samples/browseable/DeviceOwner/res/values/base-strings.xml
similarity index 66%
copy from samples/browseable/WatchViewStub/Application/res/values/base-strings.xml
copy to samples/browseable/DeviceOwner/res/values/base-strings.xml
index d653382..71d41f7 100644
--- a/samples/browseable/WatchViewStub/Application/res/values/base-strings.xml
+++ b/samples/browseable/DeviceOwner/res/values/base-strings.xml
@@ -15,13 +15,16 @@
  limitations under the License.
 -->
 <resources>
-    <string name="app_name">WatchViewStub</string>
+    <string name="app_name">DeviceOwner</string>
     <string name="intro_message">
         <![CDATA[
         
-            
-            This sample demonstrates how to specify different layouts for round and rectangular screens.
-            
+
+This app demonstrates how to use device owner features. Use the NfcProvisioning sample to set up
+this app as the device owner of your test device (This requires wiping out the device and resseting
+it as an unprovisioned device). As a device owner, this app can configure global settings, and
+enforce use of a specific launcher.
+
         
         ]]>
     </string>
diff --git a/samples/browseable/DeviceOwner/res/values/strings.xml b/samples/browseable/DeviceOwner/res/values/strings.xml
new file mode 100644
index 0000000..af7d038
--- /dev/null
+++ b/samples/browseable/DeviceOwner/res/values/strings.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2015 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="set_up_instruction">
+        The app is not set up as the device owner of this device. Use NfcProvisioning sample to set
+        up this app as the device owner of this device (This requires factory resetting the device).
+    </string>
+
+    <string name="profile_name">Sample Device Owner</string>
+
+    <string name="label_global_settings">Global settings</string>
+    <string name="label_auto_time">Automatic date &amp; time</string>
+    <string name="label_auto_time_zone">Automatic time zone</string>
+
+    <string name="label_launcher">Home Launcher</string>
+    <string name="set_as_preferred">Set as preferred</string>
+    <string name="clear_preferred">Clear preferred</string>
+
+</resources>
diff --git a/samples/browseable/AdapterTransition/res/values/template-dimens.xml b/samples/browseable/DeviceOwner/res/values/template-dimens.xml
similarity index 100%
copy from samples/browseable/AdapterTransition/res/values/template-dimens.xml
copy to samples/browseable/DeviceOwner/res/values/template-dimens.xml
diff --git a/samples/browseable/AdapterTransition/res/values/template-styles.xml b/samples/browseable/DeviceOwner/res/values/template-styles.xml
similarity index 100%
copy from samples/browseable/AdapterTransition/res/values/template-styles.xml
copy to samples/browseable/DeviceOwner/res/values/template-styles.xml
diff --git a/samples/browseable/DeviceOwner/res/xml/device_owner_receiver.xml b/samples/browseable/DeviceOwner/res/xml/device_owner_receiver.xml
new file mode 100644
index 0000000..20109f0
--- /dev/null
+++ b/samples/browseable/DeviceOwner/res/xml/device_owner_receiver.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2015 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.
+-->
+<device-admin>
+    <uses-policies>
+        <limit-password/>
+        <watch-login/>
+        <reset-password/>
+        <force-lock/>
+        <wipe-data/>
+        <expire-password/>
+        <encrypted-storage/>
+        <disable-camera/>
+    </uses-policies>
+</device-admin>
diff --git a/samples/browseable/DeviceOwner/src/com.example.android.deviceowner/DeviceOwnerFragment.java b/samples/browseable/DeviceOwner/src/com.example.android.deviceowner/DeviceOwnerFragment.java
new file mode 100644
index 0000000..b5c6254
--- /dev/null
+++ b/samples/browseable/DeviceOwner/src/com.example.android.deviceowner/DeviceOwnerFragment.java
@@ -0,0 +1,334 @@
+/*
+ * Copyright (C) 2015 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.deviceowner;
+
+import android.app.Activity;
+import android.app.Fragment;
+import android.app.admin.DevicePolicyManager;
+import android.content.ComponentName;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.SharedPreferences;
+import android.content.pm.ResolveInfo;
+import android.os.Bundle;
+import android.provider.Settings;
+import android.support.annotation.Nullable;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+import android.widget.CompoundButton;
+import android.widget.SimpleAdapter;
+import android.widget.Spinner;
+import android.widget.Switch;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * Demonstrates the usage of the most common device management APIs for the device owner case.
+ * In addition to various features available for profile owners, device owners can perform extra
+ * actions, such as configuring global settings and enforcing a preferred Activity for a specific
+ * IntentFilter.
+ */
+public class DeviceOwnerFragment extends Fragment {
+
+    // Keys for SharedPreferences
+    private static final String PREFS_DEVICE_OWNER = "DeviceOwnerFragment";
+    private static final String PREF_LAUNCHER = "launcher";
+
+    private DevicePolicyManager mDevicePolicyManager;
+
+    // View references
+    private Switch mSwitchAutoTime;
+    private Switch mSwitchAutoTimeZone;
+    private Spinner mAvailableLaunchers;
+    private Button mButtonLauncher;
+
+    // Adapter for the spinner to show list of available launchers
+    private LauncherAdapter mAdapter;
+
+    /**
+     * Handles events on the Switches.
+     */
+    private Switch.OnCheckedChangeListener mOnCheckedChangeListener
+            = new Switch.OnCheckedChangeListener() {
+
+        @Override
+        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+            switch (buttonView.getId()) {
+                case R.id.switch_auto_time:
+                    setBooleanGlobalSetting(Settings.Global.AUTO_TIME, isChecked);
+                    retrieveCurrentSettings(getActivity());
+                    break;
+                case R.id.switch_auto_time_zone:
+                    setBooleanGlobalSetting(Settings.Global.AUTO_TIME_ZONE, isChecked);
+                    retrieveCurrentSettings(getActivity());
+                    break;
+            }
+        }
+
+    };
+
+    /**
+     * Handles click events on the Button.
+     */
+    private View.OnClickListener mOnClickListener
+            = new View.OnClickListener() {
+
+        @Override
+        public void onClick(View v) {
+            switch (v.getId()) {
+                case R.id.set_preferred_launcher:
+                    if (loadPersistentPreferredLauncher(getActivity()) == null) {
+                        setPreferredLauncher();
+                    } else {
+                        clearPreferredLauncher();
+                    }
+                    retrieveCurrentSettings(getActivity());
+                    break;
+            }
+        }
+
+    };
+
+    /**
+     * @return A newly instantiated {@link DeviceOwnerFragment}.
+     */
+    public static DeviceOwnerFragment newInstance() {
+        return new DeviceOwnerFragment();
+    }
+
+    @Nullable
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+                             Bundle savedInstanceState) {
+        return inflater.inflate(R.layout.fragment_device_owner, container, false);
+    }
+
+    @Override
+    public void onViewCreated(View view, Bundle savedInstanceState) {
+        // Retain references
+        mSwitchAutoTime = (Switch) view.findViewById(R.id.switch_auto_time);
+        mSwitchAutoTimeZone = (Switch) view.findViewById(R.id.switch_auto_time_zone);
+        mAvailableLaunchers = (Spinner) view.findViewById(R.id.available_launchers);
+        mButtonLauncher = (Button) view.findViewById(R.id.set_preferred_launcher);
+        // Bind event handlers
+        mSwitchAutoTime.setOnCheckedChangeListener(mOnCheckedChangeListener);
+        mSwitchAutoTimeZone.setOnCheckedChangeListener(mOnCheckedChangeListener);
+        mButtonLauncher.setOnClickListener(mOnClickListener);
+    }
+
+    @Override
+    public void onAttach(Activity activity) {
+        super.onAttach(activity);
+        mDevicePolicyManager =
+                (DevicePolicyManager) activity.getSystemService(Activity.DEVICE_POLICY_SERVICE);
+    }
+
+    @Override
+    public void onDetach() {
+        mDevicePolicyManager = null;
+        super.onDetach();
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+        Activity activity = getActivity();
+        if (activity != null) {
+            retrieveCurrentSettings(activity);
+        }
+    }
+
+    /**
+     * Retrieves the current global settings and changes the UI accordingly.
+     *
+     * @param activity The activity
+     */
+    private void retrieveCurrentSettings(Activity activity) {
+        // Global settings
+        setCheckedSafely(mSwitchAutoTime,
+                getBooleanGlobalSetting(activity.getContentResolver(), Settings.Global.AUTO_TIME));
+        setCheckedSafely(mSwitchAutoTimeZone,
+                getBooleanGlobalSetting(activity.getContentResolver(),
+                        Settings.Global.AUTO_TIME_ZONE));
+
+        // Launcher
+        Intent intent = new Intent(Intent.ACTION_MAIN);
+        intent.addCategory(Intent.CATEGORY_HOME);
+        List<ResolveInfo> list = activity.getPackageManager()
+                .queryIntentActivities(intent, /* default flags */ 0);
+        mAdapter = new LauncherAdapter(activity, list);
+        mAvailableLaunchers.setAdapter(mAdapter);
+        String packageName = loadPersistentPreferredLauncher(activity);
+        if (packageName == null) { // No preferred launcher is set
+            mAvailableLaunchers.setEnabled(true);
+            mButtonLauncher.setText(R.string.set_as_preferred);
+        } else {
+            int position = -1;
+            for (int i = 0; i < list.size(); ++i) {
+                if (list.get(i).activityInfo.packageName.equals(packageName)) {
+                    position = i;
+                    break;
+                }
+            }
+            if (position != -1) {
+                mAvailableLaunchers.setSelection(position);
+                mAvailableLaunchers.setEnabled(false);
+                mButtonLauncher.setText(R.string.clear_preferred);
+            }
+        }
+    }
+
+    /**
+     * Retrieves the current boolean value of the specified global setting.
+     *
+     * @param resolver The ContentResolver
+     * @param setting  The setting to be retrieved
+     * @return The current boolean value
+     */
+    private static boolean getBooleanGlobalSetting(ContentResolver resolver, String setting) {
+        return 0 != Settings.Global.getInt(resolver, setting, 0);
+    }
+
+    /**
+     * Sets the boolean value of the specified global setting.
+     *
+     * @param setting The setting to be set
+     * @param value   The value to be set
+     */
+    private void setBooleanGlobalSetting(String setting, boolean value) {
+        mDevicePolicyManager.setGlobalSetting(
+                // The ComponentName of the device owner
+                DeviceOwnerReceiver.getComponentName(getActivity()),
+                // The settings to be set
+                setting,
+                // The value we write here is a string representation for SQLite
+                value ? "1" : "0");
+    }
+
+    /**
+     * A utility method to set the checked state of the button without invoking its listener.
+     *
+     * @param button  The button
+     * @param checked The value to be set
+     */
+    private void setCheckedSafely(CompoundButton button, boolean checked) {
+        button.setOnCheckedChangeListener(null);
+        button.setChecked(checked);
+        button.setOnCheckedChangeListener(mOnCheckedChangeListener);
+    }
+
+    /**
+     * Loads the package name from SharedPreferences.
+     *
+     * @param activity The activity
+     * @return The package name of the launcher currently set as preferred, or null if there is no
+     * preferred launcher.
+     */
+    private static String loadPersistentPreferredLauncher(Activity activity) {
+        return activity.getSharedPreferences(PREFS_DEVICE_OWNER, Context.MODE_PRIVATE)
+                .getString(PREF_LAUNCHER, null);
+    }
+
+    /**
+     * Saves the package name into SharedPreferences.
+     *
+     * @param activity    The activity
+     * @param packageName The package name to be saved. Pass null to remove the preferred launcher.
+     */
+    private static void savePersistentPreferredLauncher(Activity activity, String packageName) {
+        SharedPreferences.Editor editor = activity.getSharedPreferences(PREFS_DEVICE_OWNER,
+                Context.MODE_PRIVATE).edit();
+        if (packageName == null) {
+            editor.remove(PREF_LAUNCHER);
+        } else {
+            editor.putString(PREF_LAUNCHER, packageName);
+        }
+        editor.apply();
+    }
+
+    /**
+     * Sets the selected launcher as preferred.
+     */
+    private void setPreferredLauncher() {
+        Activity activity = getActivity();
+        if (activity == null) {
+            return;
+        }
+        IntentFilter filter = new IntentFilter(Intent.ACTION_MAIN);
+        filter.addCategory(Intent.CATEGORY_HOME);
+        filter.addCategory(Intent.CATEGORY_DEFAULT);
+        ComponentName componentName = mAdapter.getComponentName(
+                mAvailableLaunchers.getSelectedItemPosition());
+        mDevicePolicyManager.addPersistentPreferredActivity(
+                DeviceOwnerReceiver.getComponentName(activity), filter, componentName);
+        savePersistentPreferredLauncher(activity, componentName.getPackageName());
+    }
+
+    /**
+     * Clears the launcher currently set as preferred.
+     */
+    private void clearPreferredLauncher() {
+        Activity activity = getActivity();
+        if (activity == null) {
+            return;
+        }
+        mDevicePolicyManager.clearPackagePersistentPreferredActivities(
+                DeviceOwnerReceiver.getComponentName(activity),
+                loadPersistentPreferredLauncher(activity));
+        savePersistentPreferredLauncher(activity, null);
+    }
+
+    /**
+     * Shows list of {@link ResolveInfo} in a {@link Spinner}.
+     */
+    private static class LauncherAdapter extends SimpleAdapter {
+
+        private static final String KEY_PACKAGE_NAME = "package_name";
+        private static final String KEY_ACTIVITY_NAME = "activity_name";
+
+        public LauncherAdapter(Context context, List<ResolveInfo> list) {
+            super(context, createData(list), android.R.layout.simple_list_item_1,
+                    new String[]{KEY_PACKAGE_NAME},
+                    new int[]{android.R.id.text1});
+        }
+
+        private static List<HashMap<String, String>> createData(List<ResolveInfo> list) {
+            List<HashMap<String, String>> data = new ArrayList<>();
+            for (ResolveInfo info : list) {
+                HashMap<String, String> map = new HashMap<>();
+                map.put(KEY_PACKAGE_NAME, info.activityInfo.packageName);
+                map.put(KEY_ACTIVITY_NAME, info.activityInfo.name);
+                data.add(map);
+            }
+            return data;
+        }
+
+        public ComponentName getComponentName(int position) {
+            @SuppressWarnings("unchecked")
+            HashMap<String, String> map = (HashMap<String, String>) getItem(position);
+            return new ComponentName(map.get(KEY_PACKAGE_NAME), map.get(KEY_ACTIVITY_NAME));
+        }
+
+    }
+
+}
diff --git a/samples/browseable/DeviceOwner/src/com.example.android.deviceowner/DeviceOwnerReceiver.java b/samples/browseable/DeviceOwner/src/com.example.android.deviceowner/DeviceOwnerReceiver.java
new file mode 100644
index 0000000..f5969fc
--- /dev/null
+++ b/samples/browseable/DeviceOwner/src/com.example.android.deviceowner/DeviceOwnerReceiver.java
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2015 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.deviceowner;
+
+import android.app.admin.DeviceAdminReceiver;
+import android.app.admin.DevicePolicyManager;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+
+/**
+ * Handles events related to device owner.
+ */
+public class DeviceOwnerReceiver extends DeviceAdminReceiver {
+
+    /**
+     * Called on the new profile when device owner provisioning has completed. Device owner
+     * provisioning is the process of setting up the device so that its main profile is managed by
+     * the mobile device management (MDM) application set up as the device owner.
+     */
+    @Override
+    public void onProfileProvisioningComplete(Context context, Intent intent) {
+        // Enable the profile
+        DevicePolicyManager manager =
+                (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE);
+        ComponentName componentName = getComponentName(context);
+        manager.setProfileName(componentName, context.getString(R.string.profile_name));
+        // Open the main screen
+        Intent launch = new Intent(context, MainActivity.class);
+        launch.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+        context.startActivity(launch);
+    }
+
+    /**
+     * @return A newly instantiated {@link android.content.ComponentName} for this
+     * DeviceAdminReceiver.
+     */
+    public static ComponentName getComponentName(Context context) {
+        return new ComponentName(context.getApplicationContext(), DeviceOwnerReceiver.class);
+    }
+
+}
diff --git a/samples/browseable/DeviceOwner/src/com.example.android.deviceowner/InstructionFragment.java b/samples/browseable/DeviceOwner/src/com.example.android.deviceowner/InstructionFragment.java
new file mode 100644
index 0000000..2a889c3
--- /dev/null
+++ b/samples/browseable/DeviceOwner/src/com.example.android.deviceowner/InstructionFragment.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2015 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.deviceowner;
+
+import android.app.Fragment;
+import android.os.Bundle;
+import android.support.annotation.Nullable;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+/**
+ * Shows instruction about this device owner.
+ */
+public class InstructionFragment extends Fragment {
+
+    /**
+     * @return A newly instantiated {@link InstructionFragment}.
+     */
+    public static InstructionFragment newInstance() {
+        return new InstructionFragment();
+    }
+
+    @Nullable
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+                             Bundle savedInstanceState) {
+        return inflater.inflate(R.layout.fragment_instruction, container, false);
+    }
+
+}
diff --git a/samples/browseable/DeviceOwner/src/com.example.android.deviceowner/MainActivity.java b/samples/browseable/DeviceOwner/src/com.example.android.deviceowner/MainActivity.java
new file mode 100644
index 0000000..5a331ab
--- /dev/null
+++ b/samples/browseable/DeviceOwner/src/com.example.android.deviceowner/MainActivity.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2015 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.deviceowner;
+
+import android.app.Activity;
+import android.app.Fragment;
+import android.app.admin.DevicePolicyManager;
+import android.content.Context;
+import android.os.Bundle;
+import android.util.Log;
+
+public class MainActivity extends Activity {
+
+    private static final String TAG = "MainActivity";
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_main_real);
+        if (savedInstanceState == null) {
+            DevicePolicyManager manager =
+                    (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
+            if (manager.isDeviceOwnerApp(getApplicationContext().getPackageName())) {
+                // This app is set up as the device owner. Show the main features.
+                Log.d(TAG, "The app is the device owner.");
+                showFragment(DeviceOwnerFragment.newInstance());
+            } else {
+                // This app is not set up as the device owner. Show instructions.
+                Log.d(TAG, "The app is not the device owner.");
+                showFragment(InstructionFragment.newInstance());
+            }
+        }
+    }
+
+    private void showFragment(Fragment fragment) {
+        getFragmentManager().beginTransaction()
+                .replace(R.id.container, fragment)
+                .commit();
+    }
+
+}
diff --git a/samples/browseable/DirectorySelection/AndroidManifest.xml b/samples/browseable/DirectorySelection/AndroidManifest.xml
new file mode 100644
index 0000000..46cddcf
--- /dev/null
+++ b/samples/browseable/DirectorySelection/AndroidManifest.xml
@@ -0,0 +1,37 @@
+<?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.directoryselection"
+    android:versionCode="1"
+    android:versionName="1.0">
+
+    <application android:allowBackup="true"
+        android:label="@string/app_name"
+        android:icon="@drawable/ic_launcher"
+        android:theme="@style/AppTheme">
+
+        <activity android:name=".DirectorySelectionActivity"
+                  android:label="@string/app_name">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+    </application>
+
+
+</manifest>
diff --git a/samples/browseable/DirectorySelection/_index.jd b/samples/browseable/DirectorySelection/_index.jd
new file mode 100644
index 0000000..4b394c2
--- /dev/null
+++ b/samples/browseable/DirectorySelection/_index.jd
@@ -0,0 +1,10 @@
+page.tags="DirectorySelection"
+sample.group=Content
+@jd:body
+
+<p>
+            
+            This sample explains how to use Directory selection API, which was introduced
+            in Android 5.0.
+            
+        </p>
diff --git a/samples/browseable/DirectorySelection/res/drawable-hdpi/ic_description_grey600_36dp.png b/samples/browseable/DirectorySelection/res/drawable-hdpi/ic_description_grey600_36dp.png
new file mode 100755
index 0000000..dd7d073
--- /dev/null
+++ b/samples/browseable/DirectorySelection/res/drawable-hdpi/ic_description_grey600_36dp.png
Binary files differ
diff --git a/samples/browseable/DirectorySelection/res/drawable-hdpi/ic_folder_grey600_36dp.png b/samples/browseable/DirectorySelection/res/drawable-hdpi/ic_folder_grey600_36dp.png
new file mode 100755
index 0000000..6c022d4
--- /dev/null
+++ b/samples/browseable/DirectorySelection/res/drawable-hdpi/ic_folder_grey600_36dp.png
Binary files differ
diff --git a/samples/browseable/DirectorySelection/res/drawable-hdpi/ic_launcher.png b/samples/browseable/DirectorySelection/res/drawable-hdpi/ic_launcher.png
new file mode 100755
index 0000000..49ee854
--- /dev/null
+++ b/samples/browseable/DirectorySelection/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/samples/browseable/AdapterTransition/res/drawable-hdpi/tile.9.png b/samples/browseable/DirectorySelection/res/drawable-hdpi/tile.9.png
similarity index 100%
rename from samples/browseable/AdapterTransition/res/drawable-hdpi/tile.9.png
rename to samples/browseable/DirectorySelection/res/drawable-hdpi/tile.9.png
Binary files differ
diff --git a/samples/browseable/DirectorySelection/res/drawable-mdpi/ic_description_grey600_36dp.png b/samples/browseable/DirectorySelection/res/drawable-mdpi/ic_description_grey600_36dp.png
new file mode 100755
index 0000000..ac18b57
--- /dev/null
+++ b/samples/browseable/DirectorySelection/res/drawable-mdpi/ic_description_grey600_36dp.png
Binary files differ
diff --git a/samples/browseable/DirectorySelection/res/drawable-mdpi/ic_folder_grey600_36dp.png b/samples/browseable/DirectorySelection/res/drawable-mdpi/ic_folder_grey600_36dp.png
new file mode 100755
index 0000000..e3dccd2
--- /dev/null
+++ b/samples/browseable/DirectorySelection/res/drawable-mdpi/ic_folder_grey600_36dp.png
Binary files differ
diff --git a/samples/browseable/DirectorySelection/res/drawable-mdpi/ic_launcher.png b/samples/browseable/DirectorySelection/res/drawable-mdpi/ic_launcher.png
new file mode 100755
index 0000000..282a00c
--- /dev/null
+++ b/samples/browseable/DirectorySelection/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/samples/browseable/DirectorySelection/res/drawable-xhdpi/ic_description_grey600_36dp.png b/samples/browseable/DirectorySelection/res/drawable-xhdpi/ic_description_grey600_36dp.png
new file mode 100755
index 0000000..50f854e
--- /dev/null
+++ b/samples/browseable/DirectorySelection/res/drawable-xhdpi/ic_description_grey600_36dp.png
Binary files differ
diff --git a/samples/browseable/DirectorySelection/res/drawable-xhdpi/ic_folder_grey600_36dp.png b/samples/browseable/DirectorySelection/res/drawable-xhdpi/ic_folder_grey600_36dp.png
new file mode 100755
index 0000000..6fbc404
--- /dev/null
+++ b/samples/browseable/DirectorySelection/res/drawable-xhdpi/ic_folder_grey600_36dp.png
Binary files differ
diff --git a/samples/browseable/DirectorySelection/res/drawable-xhdpi/ic_launcher.png b/samples/browseable/DirectorySelection/res/drawable-xhdpi/ic_launcher.png
new file mode 100755
index 0000000..7293ad6
--- /dev/null
+++ b/samples/browseable/DirectorySelection/res/drawable-xhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/browseable/DirectorySelection/res/drawable-xxhdpi/ic_description_grey600_36dp.png b/samples/browseable/DirectorySelection/res/drawable-xxhdpi/ic_description_grey600_36dp.png
new file mode 100755
index 0000000..33df5d9
--- /dev/null
+++ b/samples/browseable/DirectorySelection/res/drawable-xxhdpi/ic_description_grey600_36dp.png
Binary files differ
diff --git a/samples/browseable/DirectorySelection/res/drawable-xxhdpi/ic_folder_grey600_36dp.png b/samples/browseable/DirectorySelection/res/drawable-xxhdpi/ic_folder_grey600_36dp.png
new file mode 100755
index 0000000..ed2f08e
--- /dev/null
+++ b/samples/browseable/DirectorySelection/res/drawable-xxhdpi/ic_folder_grey600_36dp.png
Binary files differ
diff --git a/samples/browseable/DirectorySelection/res/drawable-xxhdpi/ic_launcher.png b/samples/browseable/DirectorySelection/res/drawable-xxhdpi/ic_launcher.png
new file mode 100755
index 0000000..7b618d4
--- /dev/null
+++ b/samples/browseable/DirectorySelection/res/drawable-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/browseable/DirectorySelection/res/layout/activity_directory_selection.xml b/samples/browseable/DirectorySelection/res/layout/activity_directory_selection.xml
new file mode 100644
index 0000000..db65583
--- /dev/null
+++ b/samples/browseable/DirectorySelection/res/layout/activity_directory_selection.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ 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.
+-->
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+             xmlns:tools="http://schemas.android.com/tools"
+             android:id="@+id/container"
+             android:layout_width="match_parent"
+             android:layout_height="match_parent"
+             tools:context="com.example.android.directoryselection.DirectorySelectionActivity"
+             tools:ignore="MergeRootFrame" />
\ No newline at end of file
diff --git a/samples/browseable/DirectorySelection/res/layout/directory_item.xml b/samples/browseable/DirectorySelection/res/layout/directory_item.xml
new file mode 100644
index 0000000..0763cff
--- /dev/null
+++ b/samples/browseable/DirectorySelection/res/layout/directory_item.xml
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ 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.
+-->
+
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+                android:layout_width="match_parent"
+                android:layout_height="@dimen/directory_item_height"
+        >
+
+    <LinearLayout android:layout_width="wrap_content"
+                  android:layout_height="wrap_content"
+                  android:orientation="horizontal"
+                  android:layout_centerVertical="true"
+                  android:gravity="center_vertical"
+            >
+        <ImageView android:id="@+id/entry_image"
+                   android:layout_width="wrap_content"
+                   android:layout_height="wrap_content"
+                   android:src="@drawable/ic_folder_grey600_36dp"
+                />
+        <LinearLayout android:layout_width="wrap_content"
+                      android:layout_height="wrap_content"
+                      android:layout_marginLeft="@dimen/margin_medium"
+                      android:orientation="vertical"
+                >
+            <View android:id="@+id/divisor"
+                  android:layout_width="match_parent"
+                  android:layout_height="1dp"
+                  android:background="#aaaaaa"/>
+
+            <TextView
+                    android:id="@+id/textview_filename"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    style="@style/DirectoryEntryNameFont"
+                    />
+            <TextView
+                    android:id="@+id/textview_mimetype"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"/>
+
+        </LinearLayout>
+    </LinearLayout>
+</RelativeLayout>
diff --git a/samples/browseable/DirectorySelection/res/layout/fragment_directory_selection.xml b/samples/browseable/DirectorySelection/res/layout/fragment_directory_selection.xml
new file mode 100644
index 0000000..d63219c
--- /dev/null
+++ b/samples/browseable/DirectorySelection/res/layout/fragment_directory_selection.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ 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.
+-->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+              android:gravity="center_vertical"
+              android:layout_width="match_parent"
+              android:layout_height="match_parent"
+              android:orientation="vertical"
+              android:padding="@dimen/margin_medium">
+
+    <LinearLayout android:layout_width="wrap_content"
+                  android:layout_height="wrap_content"
+                  android:orientation="horizontal"
+            >
+
+        <Button android:id="@+id/button_open_directory"
+                android:text="@string/open_directory"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"/>
+
+        <Button android:id="@+id/button_create_directory"
+                android:text="@string/create_directory"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:enabled="false"
+                />
+    </LinearLayout>
+
+    <LinearLayout android:layout_width="wrap_content"
+                  android:layout_height="wrap_content"
+                  android:orientation="horizontal"
+                  android:layout_marginLeft="@dimen/margin_small"
+                  android:layout_marginRight="@dimen/margin_small"
+            >
+
+        <TextView android:id="@+id/label_current_directory"
+                  android:text="@string/selected_directory"
+                  android:layout_width="wrap_content"
+                  android:layout_height="wrap_content"/>
+
+        <TextView android:id="@+id/textview_current_directory"
+                  android:enabled="false"
+                  android:layout_width="wrap_content"
+                  android:layout_height="wrap_content"
+                  style="@style/DirectoryEntryNameFont"
+                />
+
+    </LinearLayout>
+
+    <android.support.v7.widget.RecyclerView
+            android:id="@+id/recyclerview_directory_entries"
+            android:layout_marginLeft="@dimen/margin_small"
+            android:layout_marginRight="@dimen/margin_small"
+            android:scrollbars="vertical"
+            android:drawSelectorOnTop="true"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"/>
+
+</LinearLayout>
+
diff --git a/samples/browseable/EmbeddedApp/Application/res/values-v11/template-styles.xml b/samples/browseable/DirectorySelection/res/menu/main.xml
similarity index 75%
rename from samples/browseable/EmbeddedApp/Application/res/values-v11/template-styles.xml
rename to samples/browseable/DirectorySelection/res/menu/main.xml
index 8c1ea66..e9b5e0b 100644
--- a/samples/browseable/EmbeddedApp/Application/res/values-v11/template-styles.xml
+++ b/samples/browseable/DirectorySelection/res/menu/main.xml
@@ -1,5 +1,5 @@
 <!--
-  Copyright 2013 The Android Open Source Project
+  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.
@@ -13,10 +13,4 @@
   See the License for the specific language governing permissions and
   limitations under the License.
   -->
-
-<resources>
-
-    <!-- Activity themes -->
-    <style name="Theme.Base" parent="android:Theme.Holo.Light" />
-
-</resources>
+<menu xmlns:android="http://schemas.android.com/apk/res/android" />
diff --git a/samples/browseable/AdapterTransition/res/values-sw600dp/template-dimens.xml b/samples/browseable/DirectorySelection/res/values-sw600dp/template-dimens.xml
similarity index 100%
rename from samples/browseable/AdapterTransition/res/values-sw600dp/template-dimens.xml
rename to samples/browseable/DirectorySelection/res/values-sw600dp/template-dimens.xml
diff --git a/samples/browseable/AdapterTransition/res/values-sw600dp/template-styles.xml b/samples/browseable/DirectorySelection/res/values-sw600dp/template-styles.xml
similarity index 100%
rename from samples/browseable/AdapterTransition/res/values-sw600dp/template-styles.xml
rename to samples/browseable/DirectorySelection/res/values-sw600dp/template-styles.xml
diff --git a/samples/browseable/AdapterTransition/res/values-v11/template-styles.xml b/samples/browseable/DirectorySelection/res/values-v11/template-styles.xml
similarity index 100%
rename from samples/browseable/AdapterTransition/res/values-v11/template-styles.xml
rename to samples/browseable/DirectorySelection/res/values-v11/template-styles.xml
diff --git a/samples/browseable/AdapterTransition/res/values-v21/base-colors.xml b/samples/browseable/DirectorySelection/res/values-v21/base-colors.xml
similarity index 100%
rename from samples/browseable/AdapterTransition/res/values-v21/base-colors.xml
rename to samples/browseable/DirectorySelection/res/values-v21/base-colors.xml
diff --git a/samples/browseable/AdapterTransition/res/values-v21/base-template-styles.xml b/samples/browseable/DirectorySelection/res/values-v21/base-template-styles.xml
similarity index 100%
rename from samples/browseable/AdapterTransition/res/values-v21/base-template-styles.xml
rename to samples/browseable/DirectorySelection/res/values-v21/base-template-styles.xml
diff --git a/samples/browseable/WatchViewStub/Application/res/values/base-strings.xml b/samples/browseable/DirectorySelection/res/values/base-strings.xml
similarity index 81%
copy from samples/browseable/WatchViewStub/Application/res/values/base-strings.xml
copy to samples/browseable/DirectorySelection/res/values/base-strings.xml
index d653382..782c64a 100644
--- a/samples/browseable/WatchViewStub/Application/res/values/base-strings.xml
+++ b/samples/browseable/DirectorySelection/res/values/base-strings.xml
@@ -15,12 +15,13 @@
  limitations under the License.
 -->
 <resources>
-    <string name="app_name">WatchViewStub</string>
+    <string name="app_name">DirectorySelection</string>
     <string name="intro_message">
         <![CDATA[
         
             
-            This sample demonstrates how to specify different layouts for round and rectangular screens.
+            This sample explains how to use Directory selection API, which was introduced
+            in Android 5.0.
             
         
         ]]>
diff --git a/samples/browseable/EmbeddedApp/Application/res/values-v21/base-colors.xml b/samples/browseable/DirectorySelection/res/values/dimens.xml
similarity index 79%
copy from samples/browseable/EmbeddedApp/Application/res/values-v21/base-colors.xml
copy to samples/browseable/DirectorySelection/res/values/dimens.xml
index 34c9cd1..53d0182 100644
--- a/samples/browseable/EmbeddedApp/Application/res/values-v21/base-colors.xml
+++ b/samples/browseable/DirectorySelection/res/values/dimens.xml
@@ -1,6 +1,6 @@
-<?xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <!--
- Copyright 2013 The Android Open Source Project
+ 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.
@@ -14,7 +14,7 @@
  See the License for the specific language governing permissions and
  limitations under the License.
 -->
+
 <resources>
-
-
-</resources>
+    <dimen name="directory_item_height">72dp</dimen>
+</resources>
\ No newline at end of file
diff --git a/samples/browseable/EmbeddedApp/Application/res/values-v21/base-colors.xml b/samples/browseable/DirectorySelection/res/values/strings.xml
similarity index 66%
copy from samples/browseable/EmbeddedApp/Application/res/values-v21/base-colors.xml
copy to samples/browseable/DirectorySelection/res/values/strings.xml
index 34c9cd1..24d59dd 100644
--- a/samples/browseable/EmbeddedApp/Application/res/values-v21/base-colors.xml
+++ b/samples/browseable/DirectorySelection/res/values/strings.xml
@@ -1,6 +1,6 @@
-<?xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <!--
- Copyright 2013 The Android Open Source Project
+ 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.
@@ -15,6 +15,7 @@
  limitations under the License.
 -->
 <resources>
-
-
+    <string name="open_directory">Open directory</string>
+    <string name="create_directory">Create Directory</string>
+    <string name="selected_directory">"Selected Directory : "</string>
 </resources>
diff --git a/samples/browseable/EmbeddedApp/Application/res/values-v21/base-template-styles.xml b/samples/browseable/DirectorySelection/res/values/styles.xml
similarity index 71%
copy from samples/browseable/EmbeddedApp/Application/res/values-v21/base-template-styles.xml
copy to samples/browseable/DirectorySelection/res/values/styles.xml
index 0b2948f..38441f3 100644
--- a/samples/browseable/EmbeddedApp/Application/res/values-v21/base-template-styles.xml
+++ b/samples/browseable/DirectorySelection/res/values/styles.xml
@@ -1,6 +1,6 @@
-<?xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <!--
- Copyright 2013 The Android Open Source Project
+ 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.
@@ -15,9 +15,7 @@
  limitations under the License.
 -->
 <resources>
-
-    <!-- Activity themes -->
-    <style name="Theme.Base" parent="android:Theme.Material.Light">
+    <style name="DirectoryEntryNameFont" parent="@android:style/TextAppearance.Medium">
+        <item name="android:textColor">#000000</item>
     </style>
-
-</resources>
+</resources>
\ No newline at end of file
diff --git a/samples/browseable/AdapterTransition/res/values/template-dimens.xml b/samples/browseable/DirectorySelection/res/values/template-dimens.xml
similarity index 100%
rename from samples/browseable/AdapterTransition/res/values/template-dimens.xml
rename to samples/browseable/DirectorySelection/res/values/template-dimens.xml
diff --git a/samples/browseable/AdapterTransition/res/values/template-styles.xml b/samples/browseable/DirectorySelection/res/values/template-styles.xml
similarity index 100%
rename from samples/browseable/AdapterTransition/res/values/template-styles.xml
rename to samples/browseable/DirectorySelection/res/values/template-styles.xml
diff --git a/samples/browseable/DirectorySelection/src/com.example.android.directoryselection/DirectoryEntry.java b/samples/browseable/DirectorySelection/src/com.example.android.directoryselection/DirectoryEntry.java
new file mode 100644
index 0000000..04c1c89
--- /dev/null
+++ b/samples/browseable/DirectorySelection/src/com.example.android.directoryselection/DirectoryEntry.java
@@ -0,0 +1,25 @@
+/*
+* 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.
+*/
+
+package com.example.android.directoryselection;
+
+/**
+ * Entity class that represents an directory entry.
+ */
+public class DirectoryEntry {
+    public String fileName;
+    public String mimeType;
+}
diff --git a/samples/browseable/DirectorySelection/src/com.example.android.directoryselection/DirectoryEntryAdapter.java b/samples/browseable/DirectorySelection/src/com.example.android.directoryselection/DirectoryEntryAdapter.java
new file mode 100644
index 0000000..e92c71e
--- /dev/null
+++ b/samples/browseable/DirectorySelection/src/com.example.android.directoryselection/DirectoryEntryAdapter.java
@@ -0,0 +1,100 @@
+/*
+* 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.
+*/
+
+package com.example.android.directoryselection;
+
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import java.util.List;
+
+/**
+ * Provide views to RecyclerView with the directory entries.
+ */
+public class DirectoryEntryAdapter extends RecyclerView.Adapter<DirectoryEntryAdapter.ViewHolder> {
+
+    static final String DIRECTORY_MIME_TYPE = "vnd.android.document/directory";
+    private List<DirectoryEntry> mDirectoryEntries;
+
+    /**
+     * Provide a reference to the type of views that you are using (custom ViewHolder)
+     */
+    public static class ViewHolder extends RecyclerView.ViewHolder {
+        private final TextView mFileName;
+        private final TextView mMimeType;
+        private final ImageView mImageView;
+
+        public ViewHolder(View v) {
+            super(v);
+            mFileName = (TextView) v.findViewById(R.id.textview_filename);
+            mMimeType = (TextView) v.findViewById(R.id.textview_mimetype);
+            mImageView = (ImageView) v.findViewById(R.id.entry_image);
+        }
+
+        public TextView getFileName() {
+            return mFileName;
+        }
+
+        public TextView getMimeType() {
+            return mMimeType;
+        }
+
+        public ImageView getImageView() {
+            return mImageView;
+        }
+    }
+
+    /**
+     * Initialize the directory entries of the Adapter.
+     *
+     * @param directoryEntries an array of {@link DirectoryEntry}.
+     */
+    public DirectoryEntryAdapter(List<DirectoryEntry> directoryEntries) {
+        mDirectoryEntries = directoryEntries;
+    }
+
+    @Override
+    public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {
+        View v = LayoutInflater.from(viewGroup.getContext())
+                .inflate(R.layout.directory_item, viewGroup, false);
+        return new ViewHolder(v);
+    }
+
+    @Override
+    public void onBindViewHolder(ViewHolder viewHolder, final int position) {
+        viewHolder.getFileName().setText(mDirectoryEntries.get(position).fileName);
+        viewHolder.getMimeType().setText(mDirectoryEntries.get(position).mimeType);
+
+        if (DIRECTORY_MIME_TYPE.equals(mDirectoryEntries.get(position).mimeType)) {
+            viewHolder.getImageView().setImageResource(R.drawable.ic_folder_grey600_36dp);
+        } else {
+            viewHolder.getImageView().setImageResource(R.drawable.ic_description_grey600_36dp);
+        }
+    }
+
+    @Override
+    public int getItemCount() {
+        return mDirectoryEntries.size();
+    }
+
+    public void setDirectoryEntries(List<DirectoryEntry> directoryEntries) {
+        mDirectoryEntries = directoryEntries;
+    }
+}
diff --git a/samples/browseable/DirectorySelection/src/com.example.android.directoryselection/DirectorySelectionActivity.java b/samples/browseable/DirectorySelection/src/com.example.android.directoryselection/DirectorySelectionActivity.java
new file mode 100644
index 0000000..d27ba72
--- /dev/null
+++ b/samples/browseable/DirectorySelection/src/com.example.android.directoryselection/DirectorySelectionActivity.java
@@ -0,0 +1,37 @@
+/*
+* 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.
+*/
+
+package com.example.android.directoryselection;
+
+import android.os.Bundle;
+import android.support.v4.app.FragmentActivity;
+
+/**
+ * Launcher Activity for the Directory Selection sample app.
+ */
+public class DirectorySelectionActivity extends FragmentActivity {
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_directory_selection);
+        if (savedInstanceState == null) {
+            getSupportFragmentManager().beginTransaction()
+                    .add(R.id.container, DirectorySelectionFragment.newInstance())
+                    .commit();
+        }
+    }
+}
diff --git a/samples/browseable/DirectorySelection/src/com.example.android.directoryselection/DirectorySelectionFragment.java b/samples/browseable/DirectorySelection/src/com.example.android.directoryselection/DirectorySelectionFragment.java
new file mode 100644
index 0000000..4af55db
--- /dev/null
+++ b/samples/browseable/DirectorySelection/src/com.example.android.directoryselection/DirectorySelectionFragment.java
@@ -0,0 +1,231 @@
+/*
+* 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.
+*/
+
+package com.example.android.directoryselection;
+
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.content.ContentResolver;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.database.Cursor;
+import android.net.Uri;
+import android.os.Bundle;
+import android.provider.DocumentsContract;
+import android.provider.DocumentsContract.Document;
+import android.support.v4.app.Fragment;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Fragment that demonstrates how to use Directory Selection API.
+ */
+public class DirectorySelectionFragment extends Fragment {
+
+    private static final String TAG = DirectorySelectionFragment.class.getSimpleName();
+
+    public static final int REQUEST_CODE_OPEN_DIRECTORY = 1;
+
+    Uri mCurrentDirectoryUri;
+    TextView mCurrentDirectoryTextView;
+    Button mCreateDirectoryButton;
+    RecyclerView mRecyclerView;
+    DirectoryEntryAdapter mAdapter;
+    RecyclerView.LayoutManager mLayoutManager;
+
+    /**
+     * Use this factory method to create a new instance of
+     * this fragment using the provided parameters.
+     *
+     * @return A new instance of fragment {@link DirectorySelectionFragment}.
+     */
+    public static DirectorySelectionFragment newInstance() {
+        DirectorySelectionFragment fragment = new DirectorySelectionFragment();
+        return fragment;
+    }
+
+    public DirectorySelectionFragment() {
+        // Required empty public constructor
+    }
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+    }
+
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+            Bundle savedInstanceState) {
+        // Inflate the layout for this fragment
+        return inflater.inflate(R.layout.fragment_directory_selection, container, false);
+    }
+
+    @Override
+    public void onViewCreated(View rootView, Bundle savedInstanceState) {
+        super.onViewCreated(rootView, savedInstanceState);
+
+        rootView.findViewById(R.id.button_open_directory)
+                .setOnClickListener(new View.OnClickListener() {
+                    @Override
+                    public void onClick(View v) {
+                        Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE);
+                        startActivityForResult(intent, REQUEST_CODE_OPEN_DIRECTORY);
+                    }
+                });
+
+        mCurrentDirectoryTextView = (TextView) rootView
+                .findViewById(R.id.textview_current_directory);
+        mCreateDirectoryButton = (Button) rootView.findViewById(R.id.button_create_directory);
+        mCreateDirectoryButton.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                final EditText editView = new EditText(getActivity());
+                new AlertDialog.Builder(getActivity())
+                        .setTitle(R.string.create_directory)
+                        .setView(editView)
+                        .setPositiveButton(android.R.string.ok,
+                                new DialogInterface.OnClickListener() {
+                                    public void onClick(DialogInterface dialog, int whichButton) {
+                                        createDirectory(mCurrentDirectoryUri,
+                                                editView.getText().toString());
+                                        updateDirectoryEntries(mCurrentDirectoryUri);
+                                    }
+                                })
+                        .setNegativeButton(android.R.string.cancel,
+                                new DialogInterface.OnClickListener() {
+                                    public void onClick(DialogInterface dialog, int whichButton) {
+                                    }
+                                })
+                        .show();
+            }
+        });
+        mRecyclerView = (RecyclerView) rootView.findViewById(R.id.recyclerview_directory_entries);
+        mLayoutManager = new LinearLayoutManager(getActivity());
+        mRecyclerView.setLayoutManager(mLayoutManager);
+        mRecyclerView.scrollToPosition(0);
+        mAdapter = new DirectoryEntryAdapter(new ArrayList<DirectoryEntry>());
+        mRecyclerView.setAdapter(mAdapter);
+    }
+
+    @Override
+    public void onActivityResult(int requestCode, int resultCode, Intent data) {
+        super.onActivityResult(requestCode, resultCode, data);
+        if (requestCode == REQUEST_CODE_OPEN_DIRECTORY && resultCode == Activity.RESULT_OK) {
+            Log.d(TAG, String.format("Open Directory result Uri : %s", data.getData()));
+            updateDirectoryEntries(data.getData());
+            mAdapter.notifyDataSetChanged();
+        }
+    }
+
+
+    /**
+     * Updates the current directory of the uri passed as an argument and its children directories.
+     * And updates the {@link #mRecyclerView} depending on the contents of the children.
+     *
+     * @param uri The uri of the current directory.
+     */
+    //VisibileForTesting
+    void updateDirectoryEntries(Uri uri) {
+        ContentResolver contentResolver = getActivity().getContentResolver();
+        Uri docUri = DocumentsContract.buildDocumentUriUsingTree(uri,
+                DocumentsContract.getTreeDocumentId(uri));
+        Uri childrenUri = DocumentsContract.buildChildDocumentsUriUsingTree(uri,
+                DocumentsContract.getTreeDocumentId(uri));
+
+        Cursor docCursor = contentResolver.query(docUri, new String[]{
+                Document.COLUMN_DISPLAY_NAME, Document.COLUMN_MIME_TYPE}, null, null, null);
+        try {
+            while (docCursor.moveToNext()) {
+                Log.d(TAG, "found doc =" + docCursor.getString(0) + ", mime=" + docCursor
+                        .getString(1));
+                mCurrentDirectoryUri = uri;
+                mCurrentDirectoryTextView.setText(docCursor.getString(0));
+                mCreateDirectoryButton.setEnabled(true);
+            }
+        } finally {
+            closeQuietly(docCursor);
+        }
+
+        Cursor childCursor = contentResolver.query(childrenUri, new String[]{
+                Document.COLUMN_DISPLAY_NAME, Document.COLUMN_MIME_TYPE}, null, null, null);
+        try {
+            List<DirectoryEntry> directoryEntries = new ArrayList<>();
+            while (childCursor.moveToNext()) {
+                Log.d(TAG, "found child=" + childCursor.getString(0) + ", mime=" + childCursor
+                        .getString(1));
+                DirectoryEntry entry = new DirectoryEntry();
+                entry.fileName = childCursor.getString(0);
+                entry.mimeType = childCursor.getString(1);
+                directoryEntries.add(entry);
+            }
+            mAdapter.setDirectoryEntries(directoryEntries);
+            mAdapter.notifyDataSetChanged();
+        } finally {
+            closeQuietly(childCursor);
+        }
+    }
+
+    /**
+     * Creates a directory under the directory represented as the uri in the argument.
+     *
+     * @param uri The uri of the directory under which a new directory is created.
+     * @param directoryName The directory name of a new directory.
+     */
+    //VisibileForTesting
+    void createDirectory(Uri uri, String directoryName) {
+        ContentResolver contentResolver = getActivity().getContentResolver();
+        Uri docUri = DocumentsContract.buildDocumentUriUsingTree(uri,
+                DocumentsContract.getTreeDocumentId(uri));
+        Uri directoryUri = DocumentsContract
+                .createDocument(contentResolver, docUri, Document.MIME_TYPE_DIR, directoryName);
+        if (directoryUri != null) {
+            Log.i(TAG, String.format(
+                    "Created directory : %s, Document Uri : %s, Created directory Uri : %s",
+                    directoryName, docUri, directoryUri));
+            Toast.makeText(getActivity(), String.format("Created a directory [%s]",
+                    directoryName), Toast.LENGTH_SHORT).show();
+        } else {
+            Log.w(TAG, String.format("Failed to create a directory : %s, Uri %s", directoryName,
+                    docUri));
+            Toast.makeText(getActivity(), String.format("Failed to created a directory [%s] : ",
+                    directoryName), Toast.LENGTH_SHORT).show();
+        }
+
+    }
+
+    public void closeQuietly(AutoCloseable closeable) {
+        if (closeable != null) {
+            try {
+                closeable.close();
+            } catch (RuntimeException rethrown) {
+                throw rethrown;
+            } catch (Exception ignored) {
+            }
+        }
+    }
+}
+
diff --git a/samples/browseable/DisplayingBitmaps/res/layout/activity_main.xml b/samples/browseable/DisplayingBitmaps/res/layout/activity_main.xml
deleted file mode 100755
index be1aa49..0000000
--- a/samples/browseable/DisplayingBitmaps/res/layout/activity_main.xml
+++ /dev/null
@@ -1,36 +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.
-  -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
-
-    <LinearLayout style="@style/Widget.SampleMessageTile"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  android:orientation="vertical">
-
-        <TextView style="@style/Widget.SampleMessage"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="@dimen/horizontal_page_margin"
-            android:layout_marginRight="@dimen/horizontal_page_margin"
-            android:layout_marginTop="@dimen/vertical_page_margin"
-            android:layout_marginBottom="@dimen/vertical_page_margin"
-            android:text="@string/intro_message" />
-    </LinearLayout>
-</LinearLayout>
diff --git a/samples/browseable/DocumentCentricApps/res/drawable-hdpi/ic_launcher.png b/samples/browseable/DocumentCentricApps/res/drawable-hdpi/ic_launcher.png
index b1efaf4..15e44c5 100644
--- a/samples/browseable/DocumentCentricApps/res/drawable-hdpi/ic_launcher.png
+++ b/samples/browseable/DocumentCentricApps/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/samples/browseable/DocumentCentricApps/res/drawable-mdpi/ic_launcher.png b/samples/browseable/DocumentCentricApps/res/drawable-mdpi/ic_launcher.png
index f5f9244..ba0bd22 100644
--- a/samples/browseable/DocumentCentricApps/res/drawable-mdpi/ic_launcher.png
+++ b/samples/browseable/DocumentCentricApps/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/samples/browseable/DocumentCentricApps/res/drawable-xhdpi/ic_launcher.png b/samples/browseable/DocumentCentricApps/res/drawable-xhdpi/ic_launcher.png
index 5d07b3f..42d49b8 100644
--- a/samples/browseable/DocumentCentricApps/res/drawable-xhdpi/ic_launcher.png
+++ b/samples/browseable/DocumentCentricApps/res/drawable-xhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/browseable/DocumentCentricApps/res/drawable-xxhdpi/ic_launcher.png b/samples/browseable/DocumentCentricApps/res/drawable-xxhdpi/ic_launcher.png
index 6ef21e1..3624eef 100644
--- a/samples/browseable/DocumentCentricApps/res/drawable-xxhdpi/ic_launcher.png
+++ b/samples/browseable/DocumentCentricApps/res/drawable-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/browseable/DocumentCentricApps/res/layout/activity_main.xml b/samples/browseable/DocumentCentricApps/res/layout/activity_main.xml
deleted file mode 100755
index be1aa49..0000000
--- a/samples/browseable/DocumentCentricApps/res/layout/activity_main.xml
+++ /dev/null
@@ -1,36 +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.
-  -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
-
-    <LinearLayout style="@style/Widget.SampleMessageTile"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  android:orientation="vertical">
-
-        <TextView style="@style/Widget.SampleMessage"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="@dimen/horizontal_page_margin"
-            android:layout_marginRight="@dimen/horizontal_page_margin"
-            android:layout_marginTop="@dimen/vertical_page_margin"
-            android:layout_marginBottom="@dimen/vertical_page_margin"
-            android:text="@string/intro_message" />
-    </LinearLayout>
-</LinearLayout>
diff --git a/samples/browseable/DocumentCentricRelinquishIdentity/res/layout/activity_main.xml b/samples/browseable/DocumentCentricRelinquishIdentity/res/layout/activity_main.xml
deleted file mode 100755
index be1aa49..0000000
--- a/samples/browseable/DocumentCentricRelinquishIdentity/res/layout/activity_main.xml
+++ /dev/null
@@ -1,36 +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.
-  -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
-
-    <LinearLayout style="@style/Widget.SampleMessageTile"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  android:orientation="vertical">
-
-        <TextView style="@style/Widget.SampleMessage"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="@dimen/horizontal_page_margin"
-            android:layout_marginRight="@dimen/horizontal_page_margin"
-            android:layout_marginTop="@dimen/vertical_page_margin"
-            android:layout_marginBottom="@dimen/vertical_page_margin"
-            android:text="@string/intro_message" />
-    </LinearLayout>
-</LinearLayout>
diff --git a/samples/browseable/ElizaChat/Application/AndroidManifest.xml b/samples/browseable/ElizaChat/AndroidManifest.xml
similarity index 100%
rename from samples/browseable/ElizaChat/Application/AndroidManifest.xml
rename to samples/browseable/ElizaChat/AndroidManifest.xml
diff --git a/samples/browseable/ElizaChat/Application/res/layout/activity_main.xml b/samples/browseable/ElizaChat/Application/res/layout/activity_main.xml
deleted file mode 100755
index be1aa49..0000000
--- a/samples/browseable/ElizaChat/Application/res/layout/activity_main.xml
+++ /dev/null
@@ -1,36 +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.
-  -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
-
-    <LinearLayout style="@style/Widget.SampleMessageTile"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  android:orientation="vertical">
-
-        <TextView style="@style/Widget.SampleMessage"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="@dimen/horizontal_page_margin"
-            android:layout_marginRight="@dimen/horizontal_page_margin"
-            android:layout_marginTop="@dimen/vertical_page_margin"
-            android:layout_marginBottom="@dimen/vertical_page_margin"
-            android:text="@string/intro_message" />
-    </LinearLayout>
-</LinearLayout>
diff --git a/samples/browseable/ElizaChat/Application/res/drawable-hdpi/ic_full_reply.png b/samples/browseable/ElizaChat/res/drawable-hdpi/ic_full_reply.png
similarity index 100%
rename from samples/browseable/ElizaChat/Application/res/drawable-hdpi/ic_full_reply.png
rename to samples/browseable/ElizaChat/res/drawable-hdpi/ic_full_reply.png
Binary files differ
diff --git a/samples/browseable/ElizaChat/Application/res/drawable-hdpi/tile.9.png b/samples/browseable/ElizaChat/res/drawable-hdpi/tile.9.png
similarity index 100%
rename from samples/browseable/ElizaChat/Application/res/drawable-hdpi/tile.9.png
rename to samples/browseable/ElizaChat/res/drawable-hdpi/tile.9.png
Binary files differ
diff --git a/samples/browseable/ElizaChat/Application/res/drawable-mdpi/ic_full_reply.png b/samples/browseable/ElizaChat/res/drawable-mdpi/ic_full_reply.png
similarity index 100%
rename from samples/browseable/ElizaChat/Application/res/drawable-mdpi/ic_full_reply.png
rename to samples/browseable/ElizaChat/res/drawable-mdpi/ic_full_reply.png
Binary files differ
diff --git a/samples/browseable/ElizaChat/Application/res/drawable-nodpi/bg_eliza.png b/samples/browseable/ElizaChat/res/drawable-nodpi/bg_eliza.png
similarity index 100%
rename from samples/browseable/ElizaChat/Application/res/drawable-nodpi/bg_eliza.png
rename to samples/browseable/ElizaChat/res/drawable-nodpi/bg_eliza.png
Binary files differ
diff --git a/samples/browseable/ElizaChat/Application/res/drawable-xhdpi/ic_full_reply.png b/samples/browseable/ElizaChat/res/drawable-xhdpi/ic_full_reply.png
similarity index 100%
rename from samples/browseable/ElizaChat/Application/res/drawable-xhdpi/ic_full_reply.png
rename to samples/browseable/ElizaChat/res/drawable-xhdpi/ic_full_reply.png
Binary files differ
diff --git a/samples/browseable/ElizaChat/Application/res/layout/main.xml b/samples/browseable/ElizaChat/res/layout/main.xml
similarity index 100%
rename from samples/browseable/ElizaChat/Application/res/layout/main.xml
rename to samples/browseable/ElizaChat/res/layout/main.xml
diff --git a/samples/browseable/ElizaChat/Application/res/menu/main.xml b/samples/browseable/ElizaChat/res/menu/main.xml
similarity index 100%
rename from samples/browseable/ElizaChat/Application/res/menu/main.xml
rename to samples/browseable/ElizaChat/res/menu/main.xml
diff --git a/samples/browseable/ElizaChat/Application/res/mipmap-hdpi/ic_app_eliza.png b/samples/browseable/ElizaChat/res/mipmap-hdpi/ic_app_eliza.png
similarity index 100%
rename from samples/browseable/ElizaChat/Application/res/mipmap-hdpi/ic_app_eliza.png
rename to samples/browseable/ElizaChat/res/mipmap-hdpi/ic_app_eliza.png
Binary files differ
diff --git a/samples/browseable/ElizaChat/Application/res/mipmap-mdpi/ic_app_eliza.png b/samples/browseable/ElizaChat/res/mipmap-mdpi/ic_app_eliza.png
similarity index 100%
rename from samples/browseable/ElizaChat/Application/res/mipmap-mdpi/ic_app_eliza.png
rename to samples/browseable/ElizaChat/res/mipmap-mdpi/ic_app_eliza.png
Binary files differ
diff --git a/samples/browseable/ElizaChat/Application/res/mipmap-xhdpi/ic_app_eliza.png b/samples/browseable/ElizaChat/res/mipmap-xhdpi/ic_app_eliza.png
similarity index 100%
rename from samples/browseable/ElizaChat/Application/res/mipmap-xhdpi/ic_app_eliza.png
rename to samples/browseable/ElizaChat/res/mipmap-xhdpi/ic_app_eliza.png
Binary files differ
diff --git a/samples/browseable/ElizaChat/Application/res/mipmap-xxhdpi/ic_app_eliza.png b/samples/browseable/ElizaChat/res/mipmap-xxhdpi/ic_app_eliza.png
similarity index 100%
rename from samples/browseable/ElizaChat/Application/res/mipmap-xxhdpi/ic_app_eliza.png
rename to samples/browseable/ElizaChat/res/mipmap-xxhdpi/ic_app_eliza.png
Binary files differ
diff --git a/samples/browseable/ElizaChat/Application/res/mipmap-xxxhdpi/ic_app_eliza.png b/samples/browseable/ElizaChat/res/mipmap-xxxhdpi/ic_app_eliza.png
similarity index 100%
rename from samples/browseable/ElizaChat/Application/res/mipmap-xxxhdpi/ic_app_eliza.png
rename to samples/browseable/ElizaChat/res/mipmap-xxxhdpi/ic_app_eliza.png
Binary files differ
diff --git a/samples/browseable/ElizaChat/Application/res/values-sw600dp/template-dimens.xml b/samples/browseable/ElizaChat/res/values-sw600dp/template-dimens.xml
similarity index 100%
rename from samples/browseable/ElizaChat/Application/res/values-sw600dp/template-dimens.xml
rename to samples/browseable/ElizaChat/res/values-sw600dp/template-dimens.xml
diff --git a/samples/browseable/ElizaChat/Application/res/values-sw600dp/template-styles.xml b/samples/browseable/ElizaChat/res/values-sw600dp/template-styles.xml
similarity index 100%
rename from samples/browseable/ElizaChat/Application/res/values-sw600dp/template-styles.xml
rename to samples/browseable/ElizaChat/res/values-sw600dp/template-styles.xml
diff --git a/samples/browseable/ElizaChat/Application/res/values-v11/template-styles.xml b/samples/browseable/ElizaChat/res/values-v11/template-styles.xml
similarity index 100%
rename from samples/browseable/ElizaChat/Application/res/values-v11/template-styles.xml
rename to samples/browseable/ElizaChat/res/values-v11/template-styles.xml
diff --git a/samples/browseable/ElizaChat/Application/res/values-v21/base-colors.xml b/samples/browseable/ElizaChat/res/values-v21/base-colors.xml
similarity index 100%
rename from samples/browseable/ElizaChat/Application/res/values-v21/base-colors.xml
rename to samples/browseable/ElizaChat/res/values-v21/base-colors.xml
diff --git a/samples/browseable/ElizaChat/Application/res/values-v21/base-template-styles.xml b/samples/browseable/ElizaChat/res/values-v21/base-template-styles.xml
similarity index 100%
rename from samples/browseable/ElizaChat/Application/res/values-v21/base-template-styles.xml
rename to samples/browseable/ElizaChat/res/values-v21/base-template-styles.xml
diff --git a/samples/browseable/ElizaChat/Application/res/values/base-strings.xml b/samples/browseable/ElizaChat/res/values/base-strings.xml
similarity index 100%
rename from samples/browseable/ElizaChat/Application/res/values/base-strings.xml
rename to samples/browseable/ElizaChat/res/values/base-strings.xml
diff --git a/samples/browseable/ElizaChat/Application/res/values/dimens.xml b/samples/browseable/ElizaChat/res/values/dimens.xml
similarity index 100%
rename from samples/browseable/ElizaChat/Application/res/values/dimens.xml
rename to samples/browseable/ElizaChat/res/values/dimens.xml
diff --git a/samples/browseable/ElizaChat/Application/res/values/strings.xml b/samples/browseable/ElizaChat/res/values/strings.xml
similarity index 100%
rename from samples/browseable/ElizaChat/Application/res/values/strings.xml
rename to samples/browseable/ElizaChat/res/values/strings.xml
diff --git a/samples/browseable/ElizaChat/Application/res/values/template-dimens.xml b/samples/browseable/ElizaChat/res/values/template-dimens.xml
similarity index 100%
rename from samples/browseable/ElizaChat/Application/res/values/template-dimens.xml
rename to samples/browseable/ElizaChat/res/values/template-dimens.xml
diff --git a/samples/browseable/ElizaChat/Application/res/values/template-styles.xml b/samples/browseable/ElizaChat/res/values/template-styles.xml
similarity index 100%
rename from samples/browseable/ElizaChat/Application/res/values/template-styles.xml
rename to samples/browseable/ElizaChat/res/values/template-styles.xml
diff --git a/samples/browseable/ElizaChat/Application/src/com.example.android.wearable.elizachat/ElizaResponder.java b/samples/browseable/ElizaChat/src/com.example.android.wearable.elizachat/ElizaResponder.java
similarity index 100%
rename from samples/browseable/ElizaChat/Application/src/com.example.android.wearable.elizachat/ElizaResponder.java
rename to samples/browseable/ElizaChat/src/com.example.android.wearable.elizachat/ElizaResponder.java
diff --git a/samples/browseable/ElizaChat/Application/src/com.example.android.wearable.elizachat/MainActivity.java b/samples/browseable/ElizaChat/src/com.example.android.wearable.elizachat/MainActivity.java
similarity index 100%
rename from samples/browseable/ElizaChat/Application/src/com.example.android.wearable.elizachat/MainActivity.java
rename to samples/browseable/ElizaChat/src/com.example.android.wearable.elizachat/MainActivity.java
diff --git a/samples/browseable/ElizaChat/Application/src/com.example.android.wearable.elizachat/ResponderService.java b/samples/browseable/ElizaChat/src/com.example.android.wearable.elizachat/ResponderService.java
similarity index 100%
rename from samples/browseable/ElizaChat/Application/src/com.example.android.wearable.elizachat/ResponderService.java
rename to samples/browseable/ElizaChat/src/com.example.android.wearable.elizachat/ResponderService.java
diff --git a/samples/browseable/EmbeddedApp/Application/AndroidManifest.xml b/samples/browseable/EmbeddedApp/Application/AndroidManifest.xml
deleted file mode 100644
index ee47ffe..0000000
--- a/samples/browseable/EmbeddedApp/Application/AndroidManifest.xml
+++ /dev/null
@@ -1,35 +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.
--->
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.example.android.wearable.embeddedapp" >
-    <!-- Min/target SDK versions (<uses-sdk>) managed by build.gradle -->
-    <application
-        android:allowBackup="true"
-        android:icon="@drawable/ic_launcher"
-        android:label="@string/app_name"
-        android:theme="@android:style/Theme.DeviceDefault.Light" >
-        <activity
-            android:name=".PhoneActivity"
-            android:label="@string/app_name" >
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.LAUNCHER" />
-            </intent-filter>
-        </activity>
-    </application>
-
-</manifest>
diff --git a/samples/browseable/EmbeddedApp/Application/res/drawable-hdpi/ic_launcher.png b/samples/browseable/EmbeddedApp/Application/res/drawable-hdpi/ic_launcher.png
deleted file mode 100755
index 589f229..0000000
--- a/samples/browseable/EmbeddedApp/Application/res/drawable-hdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/EmbeddedApp/Application/res/drawable-hdpi/tile.9.png b/samples/browseable/EmbeddedApp/Application/res/drawable-hdpi/tile.9.png
deleted file mode 100644
index 1358628..0000000
--- a/samples/browseable/EmbeddedApp/Application/res/drawable-hdpi/tile.9.png
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/EmbeddedApp/Application/res/drawable-mdpi/ic_launcher.png b/samples/browseable/EmbeddedApp/Application/res/drawable-mdpi/ic_launcher.png
deleted file mode 100755
index 77dd571..0000000
--- a/samples/browseable/EmbeddedApp/Application/res/drawable-mdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/EmbeddedApp/Application/res/drawable-xhdpi/ic_launcher.png b/samples/browseable/EmbeddedApp/Application/res/drawable-xhdpi/ic_launcher.png
deleted file mode 100755
index fe34ebe..0000000
--- a/samples/browseable/EmbeddedApp/Application/res/drawable-xhdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/EmbeddedApp/Application/res/drawable-xxhdpi/ic_launcher.png b/samples/browseable/EmbeddedApp/Application/res/drawable-xxhdpi/ic_launcher.png
deleted file mode 100755
index ab80bcd..0000000
--- a/samples/browseable/EmbeddedApp/Application/res/drawable-xxhdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/EmbeddedApp/Application/res/layout/activity_main.xml b/samples/browseable/EmbeddedApp/Application/res/layout/activity_main.xml
deleted file mode 100755
index be1aa49..0000000
--- a/samples/browseable/EmbeddedApp/Application/res/layout/activity_main.xml
+++ /dev/null
@@ -1,36 +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.
-  -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
-
-    <LinearLayout style="@style/Widget.SampleMessageTile"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  android:orientation="vertical">
-
-        <TextView style="@style/Widget.SampleMessage"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="@dimen/horizontal_page_margin"
-            android:layout_marginRight="@dimen/horizontal_page_margin"
-            android:layout_marginTop="@dimen/vertical_page_margin"
-            android:layout_marginBottom="@dimen/vertical_page_margin"
-            android:text="@string/intro_message" />
-    </LinearLayout>
-</LinearLayout>
diff --git a/samples/browseable/EmbeddedApp/Application/res/layout/activity_phone.xml b/samples/browseable/EmbeddedApp/Application/res/layout/activity_phone.xml
deleted file mode 100644
index 54ca57e..0000000
--- a/samples/browseable/EmbeddedApp/Application/res/layout/activity_phone.xml
+++ /dev/null
@@ -1,34 +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.
--->
-
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:paddingLeft="@dimen/activity_horizontal_margin"
-    android:paddingRight="@dimen/activity_horizontal_margin"
-    android:paddingTop="@dimen/activity_vertical_margin"
-    android:paddingBottom="@dimen/activity_vertical_margin"
-    tools:context=".PhoneActivity">
-
-    <TextView
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:textAppearance="?android:attr/textAppearanceLarge"
-        android:text="@string/welcome_message"
-        android:layout_alignParentTop="true"
-        android:layout_alignParentStart="true" />
-</RelativeLayout>
diff --git a/samples/browseable/EmbeddedApp/Application/res/values-sw600dp/template-styles.xml b/samples/browseable/EmbeddedApp/Application/res/values-sw600dp/template-styles.xml
deleted file mode 100644
index 03d1974..0000000
--- a/samples/browseable/EmbeddedApp/Application/res/values-sw600dp/template-styles.xml
+++ /dev/null
@@ -1,25 +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.
-  -->
-
-<resources>
-
-    <style name="Widget.SampleMessage">
-        <item name="android:textAppearance">?android:textAppearanceLarge</item>
-        <item name="android:lineSpacingMultiplier">1.2</item>
-        <item name="android:shadowDy">-6.5</item>
-    </style>
-
-</resources>
diff --git a/samples/browseable/EmbeddedApp/Application/res/values/base-strings.xml b/samples/browseable/EmbeddedApp/Application/res/values/base-strings.xml
deleted file mode 100644
index 46059ed..0000000
--- a/samples/browseable/EmbeddedApp/Application/res/values/base-strings.xml
+++ /dev/null
@@ -1,28 +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.
--->
-<resources>
-    <string name="app_name">EmbeddedApp</string>
-    <string name="intro_message">
-        <![CDATA[
-        
-            
-            This simple app demonstrates how to embed a wearable app into a phone app.
-            
-        
-        ]]>
-    </string>
-</resources>
diff --git a/samples/browseable/EmbeddedApp/Application/res/values/dimens.xml b/samples/browseable/EmbeddedApp/Application/res/values/dimens.xml
deleted file mode 100644
index a1e9cfe..0000000
--- a/samples/browseable/EmbeddedApp/Application/res/values/dimens.xml
+++ /dev/null
@@ -1,21 +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>
-    <!-- Default screen margins, per the Android Design guidelines. -->
-    <dimen name="activity_horizontal_margin">16dp</dimen>
-    <dimen name="activity_vertical_margin">16dp</dimen>
-</resources>
diff --git a/samples/browseable/EmbeddedApp/Application/res/values/strings.xml b/samples/browseable/EmbeddedApp/Application/res/values/strings.xml
deleted file mode 100644
index 05b6f12..0000000
--- a/samples/browseable/EmbeddedApp/Application/res/values/strings.xml
+++ /dev/null
@@ -1,24 +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="welcome_message">
-        By installing the release build of this application, the corresponding wearable app should
-        automatically be installed on any connected wearable devices.
-    </string>
-
-</resources>
diff --git a/samples/browseable/EmbeddedApp/Application/res/values/template-dimens.xml b/samples/browseable/EmbeddedApp/Application/res/values/template-dimens.xml
deleted file mode 100644
index 39e710b..0000000
--- a/samples/browseable/EmbeddedApp/Application/res/values/template-dimens.xml
+++ /dev/null
@@ -1,32 +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.
-  -->
-
-<resources>
-
-    <!-- Define standard dimensions to comply with Holo-style grids and rhythm. -->
-
-    <dimen name="margin_tiny">4dp</dimen>
-    <dimen name="margin_small">8dp</dimen>
-    <dimen name="margin_medium">16dp</dimen>
-    <dimen name="margin_large">32dp</dimen>
-    <dimen name="margin_huge">64dp</dimen>
-
-    <!-- Semantic definitions -->
-
-    <dimen name="horizontal_page_margin">@dimen/margin_medium</dimen>
-    <dimen name="vertical_page_margin">@dimen/margin_medium</dimen>
-
-</resources>
diff --git a/samples/browseable/EmbeddedApp/Application/src/com.example.android.wearable.embeddedapp/PhoneActivity.java b/samples/browseable/EmbeddedApp/Application/src/com.example.android.wearable.embeddedapp/PhoneActivity.java
deleted file mode 100644
index 5a2f5ca..0000000
--- a/samples/browseable/EmbeddedApp/Application/src/com.example.android.wearable.embeddedapp/PhoneActivity.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * 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.
- */
-
-package com.example.android.wearable.embeddedapp;
-
-import android.app.Activity;
-import android.os.Bundle;
-
-public class PhoneActivity extends Activity {
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.activity_phone);
-    }
-}
diff --git a/samples/browseable/EmbeddedApp/Wearable/AndroidManifest.xml b/samples/browseable/EmbeddedApp/Wearable/AndroidManifest.xml
deleted file mode 100644
index 4863d66..0000000
--- a/samples/browseable/EmbeddedApp/Wearable/AndroidManifest.xml
+++ /dev/null
@@ -1,40 +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.
--->
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.example.android.wearable.embeddedapp" >
-
-    <uses-sdk android:minSdkVersion="20"
-              android:targetSdkVersion="21" />
-
-    <uses-feature android:name="android.hardware.type.watch" />
-
-    <application
-        android:allowBackup="true"
-        android:icon="@drawable/ic_launcher"
-        android:label="@string/app_name"
-        android:theme="@android:style/Theme.DeviceDefault.Light" >
-        <activity
-            android:name=".WearableActivity"
-            android:label="@string/app_name" >
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.LAUNCHER" />
-            </intent-filter>
-        </activity>
-    </application>
-
-</manifest>
diff --git a/samples/browseable/EmbeddedApp/Wearable/res/drawable-hdpi/ic_launcher.png b/samples/browseable/EmbeddedApp/Wearable/res/drawable-hdpi/ic_launcher.png
deleted file mode 100755
index 589f229..0000000
--- a/samples/browseable/EmbeddedApp/Wearable/res/drawable-hdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/EmbeddedApp/Wearable/res/drawable-mdpi/ic_launcher.png b/samples/browseable/EmbeddedApp/Wearable/res/drawable-mdpi/ic_launcher.png
deleted file mode 100755
index 77dd571..0000000
--- a/samples/browseable/EmbeddedApp/Wearable/res/drawable-mdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/EmbeddedApp/Wearable/res/drawable-xhdpi/ic_launcher.png b/samples/browseable/EmbeddedApp/Wearable/res/drawable-xhdpi/ic_launcher.png
deleted file mode 100755
index fe34ebe..0000000
--- a/samples/browseable/EmbeddedApp/Wearable/res/drawable-xhdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/EmbeddedApp/Wearable/res/drawable-xxhdpi/ic_launcher.png b/samples/browseable/EmbeddedApp/Wearable/res/drawable-xxhdpi/ic_launcher.png
deleted file mode 100755
index ab80bcd..0000000
--- a/samples/browseable/EmbeddedApp/Wearable/res/drawable-xxhdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/EmbeddedApp/Wearable/res/layout/activity_wearable.xml b/samples/browseable/EmbeddedApp/Wearable/res/layout/activity_wearable.xml
deleted file mode 100644
index 1f6a78a..0000000
--- a/samples/browseable/EmbeddedApp/Wearable/res/layout/activity_wearable.xml
+++ /dev/null
@@ -1,30 +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.
--->
-
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    tools:context=".WearableActivity">
-
-    <TextView
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:textAppearance="?android:attr/textAppearanceMedium"
-        android:text="@string/welcome_message"
-        android:layout_centerVertical="true"
-        android:layout_centerHorizontal="true" />
-</RelativeLayout>
diff --git a/samples/browseable/EmbeddedApp/Wearable/res/values/strings.xml b/samples/browseable/EmbeddedApp/Wearable/res/values/strings.xml
deleted file mode 100644
index 1823c57..0000000
--- a/samples/browseable/EmbeddedApp/Wearable/res/values/strings.xml
+++ /dev/null
@@ -1,25 +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">EmbeddedApp Sample</string>
-    <string name="welcome_message">
-        This wearable app should be automatically installed on wearable devices whenever the
-        release build of the corresponding phone app is installed.
-    </string>
-
-</resources>
diff --git a/samples/browseable/EmbeddedApp/_index.jd b/samples/browseable/EmbeddedApp/_index.jd
deleted file mode 100644
index b8d047f..0000000
--- a/samples/browseable/EmbeddedApp/_index.jd
+++ /dev/null
@@ -1,9 +0,0 @@
-page.tags="EmbeddedApp"
-sample.group=Wearable
-@jd:body
-
-<p>
-            
-            This simple app demonstrates how to embed a wearable app into a phone app.
-            
-        </p>
diff --git a/samples/browseable/FindMyPhone/Application/res/layout/activity_main.xml b/samples/browseable/FindMyPhone/Application/res/layout/activity_main.xml
deleted file mode 100755
index be1aa49..0000000
--- a/samples/browseable/FindMyPhone/Application/res/layout/activity_main.xml
+++ /dev/null
@@ -1,36 +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.
-  -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
-
-    <LinearLayout style="@style/Widget.SampleMessageTile"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  android:orientation="vertical">
-
-        <TextView style="@style/Widget.SampleMessage"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="@dimen/horizontal_page_margin"
-            android:layout_marginRight="@dimen/horizontal_page_margin"
-            android:layout_marginTop="@dimen/vertical_page_margin"
-            android:layout_marginBottom="@dimen/vertical_page_margin"
-            android:text="@string/intro_message" />
-    </LinearLayout>
-</LinearLayout>
diff --git a/samples/browseable/Flashlight/Wearable/AndroidManifest.xml b/samples/browseable/Flashlight/AndroidManifest.xml
similarity index 100%
rename from samples/browseable/Flashlight/Wearable/AndroidManifest.xml
rename to samples/browseable/Flashlight/AndroidManifest.xml
diff --git a/samples/browseable/Flashlight/Application/AndroidManifest.xml b/samples/browseable/Flashlight/Application/AndroidManifest.xml
deleted file mode 100644
index 925d11b..0000000
--- a/samples/browseable/Flashlight/Application/AndroidManifest.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- 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.
--->
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.example.android.wearable.flashlight">
-
-    <uses-sdk android:minSdkVersion="18"
-              android:targetSdkVersion="21" />
-
-    <application android:allowBackup="true"
-        android:icon="@drawable/ic_launcher"
-        android:label="@string/app_name">
-    </application>
-
-</manifest>
-
diff --git a/samples/browseable/Flashlight/Application/res/drawable-hdpi/ic_launcher.png b/samples/browseable/Flashlight/Application/res/drawable-hdpi/ic_launcher.png
deleted file mode 100755
index 589f229..0000000
--- a/samples/browseable/Flashlight/Application/res/drawable-hdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/Flashlight/Application/res/drawable-hdpi/tile.9.png b/samples/browseable/Flashlight/Application/res/drawable-hdpi/tile.9.png
deleted file mode 100644
index 1358628..0000000
--- a/samples/browseable/Flashlight/Application/res/drawable-hdpi/tile.9.png
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/Flashlight/Application/res/drawable-mdpi/ic_launcher.png b/samples/browseable/Flashlight/Application/res/drawable-mdpi/ic_launcher.png
deleted file mode 100755
index 77dd571..0000000
--- a/samples/browseable/Flashlight/Application/res/drawable-mdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/Flashlight/Application/res/drawable-xhdpi/ic_launcher.png b/samples/browseable/Flashlight/Application/res/drawable-xhdpi/ic_launcher.png
deleted file mode 100755
index fe34ebe..0000000
--- a/samples/browseable/Flashlight/Application/res/drawable-xhdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/Flashlight/Application/res/drawable-xxhdpi/ic_launcher.png b/samples/browseable/Flashlight/Application/res/drawable-xxhdpi/ic_launcher.png
deleted file mode 100755
index ab80bcd..0000000
--- a/samples/browseable/Flashlight/Application/res/drawable-xxhdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/Flashlight/Application/res/layout/activity_main.xml b/samples/browseable/Flashlight/Application/res/layout/activity_main.xml
deleted file mode 100755
index be1aa49..0000000
--- a/samples/browseable/Flashlight/Application/res/layout/activity_main.xml
+++ /dev/null
@@ -1,36 +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.
-  -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
-
-    <LinearLayout style="@style/Widget.SampleMessageTile"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  android:orientation="vertical">
-
-        <TextView style="@style/Widget.SampleMessage"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="@dimen/horizontal_page_margin"
-            android:layout_marginRight="@dimen/horizontal_page_margin"
-            android:layout_marginTop="@dimen/vertical_page_margin"
-            android:layout_marginBottom="@dimen/vertical_page_margin"
-            android:text="@string/intro_message" />
-    </LinearLayout>
-</LinearLayout>
diff --git a/samples/browseable/Flashlight/Application/res/values-sw600dp/template-dimens.xml b/samples/browseable/Flashlight/Application/res/values-sw600dp/template-dimens.xml
deleted file mode 100644
index 22074a2..0000000
--- a/samples/browseable/Flashlight/Application/res/values-sw600dp/template-dimens.xml
+++ /dev/null
@@ -1,24 +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.
-  -->
-
-<resources>
-
-    <!-- Semantic definitions -->
-
-    <dimen name="horizontal_page_margin">@dimen/margin_huge</dimen>
-    <dimen name="vertical_page_margin">@dimen/margin_medium</dimen>
-
-</resources>
diff --git a/samples/browseable/Flashlight/Application/res/values-sw600dp/template-styles.xml b/samples/browseable/Flashlight/Application/res/values-sw600dp/template-styles.xml
deleted file mode 100644
index 03d1974..0000000
--- a/samples/browseable/Flashlight/Application/res/values-sw600dp/template-styles.xml
+++ /dev/null
@@ -1,25 +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.
-  -->
-
-<resources>
-
-    <style name="Widget.SampleMessage">
-        <item name="android:textAppearance">?android:textAppearanceLarge</item>
-        <item name="android:lineSpacingMultiplier">1.2</item>
-        <item name="android:shadowDy">-6.5</item>
-    </style>
-
-</resources>
diff --git a/samples/browseable/Flashlight/Application/res/values-v21/base-colors.xml b/samples/browseable/Flashlight/Application/res/values-v21/base-colors.xml
deleted file mode 100644
index 34c9cd1..0000000
--- a/samples/browseable/Flashlight/Application/res/values-v21/base-colors.xml
+++ /dev/null
@@ -1,20 +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.
--->
-<resources>
-
-
-</resources>
diff --git a/samples/browseable/Flashlight/Application/res/values-v21/base-template-styles.xml b/samples/browseable/Flashlight/Application/res/values-v21/base-template-styles.xml
deleted file mode 100644
index 0b2948f..0000000
--- a/samples/browseable/Flashlight/Application/res/values-v21/base-template-styles.xml
+++ /dev/null
@@ -1,23 +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.
--->
-<resources>
-
-    <!-- Activity themes -->
-    <style name="Theme.Base" parent="android:Theme.Material.Light">
-    </style>
-
-</resources>
diff --git a/samples/browseable/Flashlight/Application/res/values/base-strings.xml b/samples/browseable/Flashlight/Application/res/values/base-strings.xml
deleted file mode 100644
index f0f3d9d..0000000
--- a/samples/browseable/Flashlight/Application/res/values/base-strings.xml
+++ /dev/null
@@ -1,29 +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.
--->
-<resources>
-    <string name="app_name">Flashlight</string>
-    <string name="intro_message">
-        <![CDATA[
-        
-            
-            Wearable activity that uses your wearable screen as a flashlight. There is also
-            a party-mode option, if you want to make things interesting.
-            
-        
-        ]]>
-    </string>
-</resources>
diff --git a/samples/browseable/Flashlight/Application/res/values/template-dimens.xml b/samples/browseable/Flashlight/Application/res/values/template-dimens.xml
deleted file mode 100644
index 39e710b..0000000
--- a/samples/browseable/Flashlight/Application/res/values/template-dimens.xml
+++ /dev/null
@@ -1,32 +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.
-  -->
-
-<resources>
-
-    <!-- Define standard dimensions to comply with Holo-style grids and rhythm. -->
-
-    <dimen name="margin_tiny">4dp</dimen>
-    <dimen name="margin_small">8dp</dimen>
-    <dimen name="margin_medium">16dp</dimen>
-    <dimen name="margin_large">32dp</dimen>
-    <dimen name="margin_huge">64dp</dimen>
-
-    <!-- Semantic definitions -->
-
-    <dimen name="horizontal_page_margin">@dimen/margin_medium</dimen>
-    <dimen name="vertical_page_margin">@dimen/margin_medium</dimen>
-
-</resources>
diff --git a/samples/browseable/Flashlight/Application/res/values/template-styles.xml b/samples/browseable/Flashlight/Application/res/values/template-styles.xml
deleted file mode 100644
index 6e7d593..0000000
--- a/samples/browseable/Flashlight/Application/res/values/template-styles.xml
+++ /dev/null
@@ -1,42 +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.
-  -->
-
-<resources>
-
-    <!-- Activity themes -->
-
-    <style name="Theme.Base" parent="android:Theme.Light" />
-
-    <style name="Theme.Sample" parent="Theme.Base" />
-
-    <style name="AppTheme" parent="Theme.Sample" />
-    <!-- Widget styling -->
-
-    <style name="Widget" />
-
-    <style name="Widget.SampleMessage">
-        <item name="android:textAppearance">?android:textAppearanceMedium</item>
-        <item name="android:lineSpacingMultiplier">1.1</item>
-    </style>
-
-    <style name="Widget.SampleMessageTile">
-        <item name="android:background">@drawable/tile</item>
-        <item name="android:shadowColor">#7F000000</item>
-        <item name="android:shadowDy">-3.5</item>
-        <item name="android:shadowRadius">2</item>
-    </style>
-
-</resources>
diff --git a/samples/browseable/Flashlight/Application/src/com.example.android.common/activities/SampleActivityBase.java b/samples/browseable/Flashlight/Application/src/com.example.android.common/activities/SampleActivityBase.java
deleted file mode 100644
index 3228927..0000000
--- a/samples/browseable/Flashlight/Application/src/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/samples/browseable/Flashlight/Application/src/com.example.android.common/logger/Log.java b/samples/browseable/Flashlight/Application/src/com.example.android.common/logger/Log.java
deleted file mode 100644
index 17503c5..0000000
--- a/samples/browseable/Flashlight/Application/src/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/samples/browseable/Flashlight/Application/src/com.example.android.common/logger/LogFragment.java b/samples/browseable/Flashlight/Application/src/com.example.android.common/logger/LogFragment.java
deleted file mode 100644
index b302acd..0000000
--- a/samples/browseable/Flashlight/Application/src/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/samples/browseable/Flashlight/Application/src/com.example.android.common/logger/LogNode.java b/samples/browseable/Flashlight/Application/src/com.example.android.common/logger/LogNode.java
deleted file mode 100644
index bc37cab..0000000
--- a/samples/browseable/Flashlight/Application/src/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/samples/browseable/Flashlight/Application/src/com.example.android.common/logger/LogView.java b/samples/browseable/Flashlight/Application/src/com.example.android.common/logger/LogView.java
deleted file mode 100644
index c01542b..0000000
--- a/samples/browseable/Flashlight/Application/src/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/samples/browseable/Flashlight/Application/src/com.example.android.common/logger/LogWrapper.java b/samples/browseable/Flashlight/Application/src/com.example.android.common/logger/LogWrapper.java
deleted file mode 100644
index 16a9e7b..0000000
--- a/samples/browseable/Flashlight/Application/src/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/samples/browseable/Flashlight/Application/src/com.example.android.common/logger/MessageOnlyLogFilter.java b/samples/browseable/Flashlight/Application/src/com.example.android.common/logger/MessageOnlyLogFilter.java
deleted file mode 100644
index 19967dc..0000000
--- a/samples/browseable/Flashlight/Application/src/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/samples/browseable/Flashlight/Wearable/res/drawable-hdpi/ic_launcher.png b/samples/browseable/Flashlight/Wearable/res/drawable-hdpi/ic_launcher.png
deleted file mode 100755
index 589f229..0000000
--- a/samples/browseable/Flashlight/Wearable/res/drawable-hdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/Flashlight/Wearable/res/drawable-mdpi/ic_launcher.png b/samples/browseable/Flashlight/Wearable/res/drawable-mdpi/ic_launcher.png
deleted file mode 100755
index 77dd571..0000000
--- a/samples/browseable/Flashlight/Wearable/res/drawable-mdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/Flashlight/Wearable/res/drawable-xhdpi/ic_launcher.png b/samples/browseable/Flashlight/Wearable/res/drawable-xhdpi/ic_launcher.png
deleted file mode 100755
index fe34ebe..0000000
--- a/samples/browseable/Flashlight/Wearable/res/drawable-xhdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/Flashlight/Wearable/res/drawable-xxhdpi/ic_launcher.png b/samples/browseable/Flashlight/Wearable/res/drawable-xxhdpi/ic_launcher.png
deleted file mode 100755
index ab80bcd..0000000
--- a/samples/browseable/Flashlight/Wearable/res/drawable-xxhdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/Flashlight/res/drawable-hdpi/ic_launcher.png b/samples/browseable/Flashlight/res/drawable-hdpi/ic_launcher.png
new file mode 100644
index 0000000..4f298cf
--- /dev/null
+++ b/samples/browseable/Flashlight/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/samples/browseable/Flashlight/res/drawable-mdpi/ic_launcher.png b/samples/browseable/Flashlight/res/drawable-mdpi/ic_launcher.png
new file mode 100644
index 0000000..17cff3c
--- /dev/null
+++ b/samples/browseable/Flashlight/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/samples/browseable/Flashlight/res/drawable-xhdpi/ic_launcher.png b/samples/browseable/Flashlight/res/drawable-xhdpi/ic_launcher.png
new file mode 100644
index 0000000..1663ae4
--- /dev/null
+++ b/samples/browseable/Flashlight/res/drawable-xhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/browseable/Flashlight/res/drawable-xxhdpi/ic_launcher.png b/samples/browseable/Flashlight/res/drawable-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000..d3ea0c0
--- /dev/null
+++ b/samples/browseable/Flashlight/res/drawable-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/browseable/Flashlight/Wearable/res/layout/main.xml b/samples/browseable/Flashlight/res/layout/main.xml
similarity index 100%
rename from samples/browseable/Flashlight/Wearable/res/layout/main.xml
rename to samples/browseable/Flashlight/res/layout/main.xml
diff --git a/samples/browseable/Flashlight/Wearable/res/layout/party_light.xml b/samples/browseable/Flashlight/res/layout/party_light.xml
similarity index 100%
rename from samples/browseable/Flashlight/Wearable/res/layout/party_light.xml
rename to samples/browseable/Flashlight/res/layout/party_light.xml
diff --git a/samples/browseable/Flashlight/Wearable/res/layout/white_light.xml b/samples/browseable/Flashlight/res/layout/white_light.xml
similarity index 100%
rename from samples/browseable/Flashlight/Wearable/res/layout/white_light.xml
rename to samples/browseable/Flashlight/res/layout/white_light.xml
diff --git a/samples/browseable/Flashlight/Wearable/res/values/strings.xml b/samples/browseable/Flashlight/res/values/strings.xml
similarity index 100%
rename from samples/browseable/Flashlight/Wearable/res/values/strings.xml
rename to samples/browseable/Flashlight/res/values/strings.xml
diff --git a/samples/browseable/Flashlight/Wearable/src/com.example.android.wearable.flashlight/MainActivity.java b/samples/browseable/Flashlight/src/com.example.android.wearable.flashlight/MainActivity.java
similarity index 100%
rename from samples/browseable/Flashlight/Wearable/src/com.example.android.wearable.flashlight/MainActivity.java
rename to samples/browseable/Flashlight/src/com.example.android.wearable.flashlight/MainActivity.java
diff --git a/samples/browseable/Flashlight/Wearable/src/com.example.android.wearable.flashlight/PartyLightView.java b/samples/browseable/Flashlight/src/com.example.android.wearable.flashlight/PartyLightView.java
similarity index 100%
rename from samples/browseable/Flashlight/Wearable/src/com.example.android.wearable.flashlight/PartyLightView.java
rename to samples/browseable/Flashlight/src/com.example.android.wearable.flashlight/PartyLightView.java
diff --git a/samples/browseable/FragmentTransition/AndroidManifest.xml b/samples/browseable/FragmentTransition/AndroidManifest.xml
deleted file mode 100644
index 2cfe406..0000000
--- a/samples/browseable/FragmentTransition/AndroidManifest.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  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.
--->
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.example.android.fragmenttransition"
-    android:versionCode="1"
-    android:versionName="1.0">
-
-    <!-- Min/target SDK versions (<uses-sdk>) managed by build.gradle -->
-
-    <application
-        android:allowBackup="true"
-        android:icon="@drawable/ic_launcher"
-        android:label="@string/app_name"
-        android:theme="@style/AppTheme" >
-        <activity
-            android:name="com.example.android.fragmenttransition.MainActivity"
-            android:label="@string/app_name" >
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-
-                <category android:name="android.intent.category.LAUNCHER" />
-            </intent-filter>
-        </activity>
-    </application>
-
-</manifest>
diff --git a/samples/browseable/FragmentTransition/_index.jd b/samples/browseable/FragmentTransition/_index.jd
deleted file mode 100644
index afab623..0000000
--- a/samples/browseable/FragmentTransition/_index.jd
+++ /dev/null
@@ -1,9 +0,0 @@
-page.tags="FragmentTransition"
-sample.group=UI
-@jd:body
-
-<p>
-            
-	    This sample demonstrates how to start a transition right after a fragment transaction.
-            
-        </p>
diff --git a/samples/browseable/FragmentTransition/res/drawable-hdpi/ic_launcher.png b/samples/browseable/FragmentTransition/res/drawable-hdpi/ic_launcher.png
deleted file mode 100644
index dfa1b45..0000000
--- a/samples/browseable/FragmentTransition/res/drawable-hdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/FragmentTransition/res/drawable-hdpi/tile.9.png b/samples/browseable/FragmentTransition/res/drawable-hdpi/tile.9.png
deleted file mode 100644
index 1358628..0000000
--- a/samples/browseable/FragmentTransition/res/drawable-hdpi/tile.9.png
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/FragmentTransition/res/drawable-mdpi/ic_launcher.png b/samples/browseable/FragmentTransition/res/drawable-mdpi/ic_launcher.png
deleted file mode 100644
index 5f4ae7b..0000000
--- a/samples/browseable/FragmentTransition/res/drawable-mdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/FragmentTransition/res/drawable-nodpi/p1.jpg b/samples/browseable/FragmentTransition/res/drawable-nodpi/p1.jpg
deleted file mode 100644
index 10f07ac..0000000
--- a/samples/browseable/FragmentTransition/res/drawable-nodpi/p1.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/FragmentTransition/res/drawable-nodpi/p10.jpg b/samples/browseable/FragmentTransition/res/drawable-nodpi/p10.jpg
deleted file mode 100644
index 4272f4c..0000000
--- a/samples/browseable/FragmentTransition/res/drawable-nodpi/p10.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/FragmentTransition/res/drawable-nodpi/p11.jpg b/samples/browseable/FragmentTransition/res/drawable-nodpi/p11.jpg
deleted file mode 100644
index c5722b2..0000000
--- a/samples/browseable/FragmentTransition/res/drawable-nodpi/p11.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/FragmentTransition/res/drawable-nodpi/p2.jpg b/samples/browseable/FragmentTransition/res/drawable-nodpi/p2.jpg
deleted file mode 100644
index ca380ae..0000000
--- a/samples/browseable/FragmentTransition/res/drawable-nodpi/p2.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/FragmentTransition/res/drawable-nodpi/p3.jpg b/samples/browseable/FragmentTransition/res/drawable-nodpi/p3.jpg
deleted file mode 100644
index 6fc71e7..0000000
--- a/samples/browseable/FragmentTransition/res/drawable-nodpi/p3.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/FragmentTransition/res/drawable-nodpi/p4.jpg b/samples/browseable/FragmentTransition/res/drawable-nodpi/p4.jpg
deleted file mode 100644
index 153c1ff..0000000
--- a/samples/browseable/FragmentTransition/res/drawable-nodpi/p4.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/FragmentTransition/res/drawable-nodpi/p5.jpg b/samples/browseable/FragmentTransition/res/drawable-nodpi/p5.jpg
deleted file mode 100644
index 46d6a13..0000000
--- a/samples/browseable/FragmentTransition/res/drawable-nodpi/p5.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/FragmentTransition/res/drawable-nodpi/p6.jpg b/samples/browseable/FragmentTransition/res/drawable-nodpi/p6.jpg
deleted file mode 100644
index 89ccb83..0000000
--- a/samples/browseable/FragmentTransition/res/drawable-nodpi/p6.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/FragmentTransition/res/drawable-nodpi/p7.jpg b/samples/browseable/FragmentTransition/res/drawable-nodpi/p7.jpg
deleted file mode 100644
index 7e9546d..0000000
--- a/samples/browseable/FragmentTransition/res/drawable-nodpi/p7.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/FragmentTransition/res/drawable-nodpi/p8.jpg b/samples/browseable/FragmentTransition/res/drawable-nodpi/p8.jpg
deleted file mode 100644
index 21e25ba..0000000
--- a/samples/browseable/FragmentTransition/res/drawable-nodpi/p8.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/FragmentTransition/res/drawable-nodpi/p9.jpg b/samples/browseable/FragmentTransition/res/drawable-nodpi/p9.jpg
deleted file mode 100644
index 79854cb..0000000
--- a/samples/browseable/FragmentTransition/res/drawable-nodpi/p9.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/FragmentTransition/res/drawable-xhdpi/ic_launcher.png b/samples/browseable/FragmentTransition/res/drawable-xhdpi/ic_launcher.png
deleted file mode 100644
index 5e00f33..0000000
--- a/samples/browseable/FragmentTransition/res/drawable-xhdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/FragmentTransition/res/drawable-xxhdpi/ic_launcher.png b/samples/browseable/FragmentTransition/res/drawable-xxhdpi/ic_launcher.png
deleted file mode 100644
index e061498..0000000
--- a/samples/browseable/FragmentTransition/res/drawable-xxhdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/FragmentTransition/res/layout-w720dp/activity_main.xml b/samples/browseable/FragmentTransition/res/layout-w720dp/activity_main.xml
deleted file mode 100755
index c9a52f6..0000000
--- a/samples/browseable/FragmentTransition/res/layout-w720dp/activity_main.xml
+++ /dev/null
@@ -1,73 +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.
-  -->
-<LinearLayout
-      xmlns:android="http://schemas.android.com/apk/res/android"
-      android:orientation="horizontal"
-      android:layout_width="match_parent"
-      android:layout_height="match_parent"
-      android:id="@+id/sample_main_layout">
-
-    <LinearLayout
-          android:id="@+id/sample_output"
-          android:layout_width="0px"
-          android:layout_height="match_parent"
-          android:layout_weight="1"
-          android:orientation="vertical">
-
-        <FrameLayout
-              style="@style/Widget.SampleMessageTile"
-              android:layout_width="match_parent"
-              android:layout_height="wrap_content">
-
-            <TextView
-                  style="@style/Widget.SampleMessage"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  android:paddingLeft="@dimen/margin_medium"
-                  android:paddingRight="@dimen/margin_medium"
-                  android:paddingTop="@dimen/margin_large"
-                  android:paddingBottom="@dimen/margin_large"
-                  android:text="@string/intro_message" />
-        </FrameLayout>
-
-        <View
-              android:layout_width="match_parent"
-              android:layout_height="1dp"
-              android:background="@android:color/darker_gray" />
-
-        <fragment
-              android:name="com.example.android.common.logger.LogFragment"
-              android:id="@+id/log_fragment"
-              android:layout_width="match_parent"
-              android:layout_height="0px"
-              android:layout_weight="1" />
-
-    </LinearLayout>
-
-    <View
-          android:layout_width="1dp"
-          android:layout_height="match_parent"
-          android:background="@android:color/darker_gray" />
-
-    <FrameLayout
-          android:id="@+id/sample_content_fragment"
-          android:layout_weight="2"
-          android:layout_width="0px"
-          android:layout_height="match_parent" />
-
-</LinearLayout>
-
-
diff --git a/samples/browseable/FragmentTransition/res/layout/activity_main.xml b/samples/browseable/FragmentTransition/res/layout/activity_main.xml
deleted file mode 100755
index 1ae4f98..0000000
--- a/samples/browseable/FragmentTransition/res/layout/activity_main.xml
+++ /dev/null
@@ -1,65 +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.
-  -->
-<LinearLayout
-      xmlns:android="http://schemas.android.com/apk/res/android"
-      android:orientation="vertical"
-      android:layout_width="match_parent"
-      android:layout_height="match_parent"
-      android:id="@+id/sample_main_layout">
-
-    <ViewAnimator
-          android:id="@+id/sample_output"
-          android:layout_width="match_parent"
-          android:layout_height="0px"
-          android:layout_weight="1">
-
-        <ScrollView
-              style="@style/Widget.SampleMessageTile"
-              android:layout_width="match_parent"
-              android:layout_height="match_parent">
-
-            <TextView
-                  style="@style/Widget.SampleMessage"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  android:paddingLeft="@dimen/horizontal_page_margin"
-                  android:paddingRight="@dimen/horizontal_page_margin"
-                  android:paddingTop="@dimen/vertical_page_margin"
-                  android:paddingBottom="@dimen/vertical_page_margin"
-                  android:text="@string/intro_message" />
-        </ScrollView>
-
-        <fragment
-              android:name="com.example.android.common.logger.LogFragment"
-              android:id="@+id/log_fragment"
-              android:layout_width="match_parent"
-              android:layout_height="match_parent" />
-
-    </ViewAnimator>
-
-    <View
-          android:layout_width="match_parent"
-          android:layout_height="1dp"
-          android:background="@android:color/darker_gray" />
-
-    <FrameLayout
-          android:id="@+id/sample_content_fragment"
-          android:layout_weight="2"
-          android:layout_width="match_parent"
-          android:layout_height="0px" />
-
-</LinearLayout>
-
diff --git a/samples/browseable/FragmentTransition/res/layout/fragment_detail_content.xml b/samples/browseable/FragmentTransition/res/layout/fragment_detail_content.xml
deleted file mode 100644
index 2068460..0000000
--- a/samples/browseable/FragmentTransition/res/layout/fragment_detail_content.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-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.
--->
-<ScrollView
-    android:id="@+id/frame"
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:scrollbars="none">
-
-    <RelativeLayout
-        android:id="@+id/container"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content">
-
-        <ImageView
-            android:id="@+id/image"
-            android:layout_width="match_parent"
-            android:layout_height="180dp"
-            android:scaleType="centerCrop"
-            tools:src="@drawable/p1"/>
-
-        <TextView
-            android:id="@+id/title"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_alignBottom="@id/image"
-            android:layout_alignEnd="@id/image"
-            android:layout_marginEnd="16dp"
-            android:shadowColor="#000000"
-            android:shadowDx="0"
-            android:shadowDy="0"
-            android:shadowRadius="10"
-            android:textColor="#ffffff"
-            android:textSize="24sp"
-            android:textStyle="bold"
-            tools:text="Image"/>
-
-        <TextView
-            android:id="@+id/body"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_below="@id/image"
-            android:layout_marginBottom="16dp"
-            android:layout_marginEnd="16dp"
-            android:layout_marginStart="16dp"
-            android:layout_marginTop="16dp"
-            android:text="@string/lorem_ipsum"/>
-
-    </RelativeLayout>
-
-</ScrollView>
\ No newline at end of file
diff --git a/samples/browseable/FragmentTransition/res/layout/fragment_fragment_transition.xml b/samples/browseable/FragmentTransition/res/layout/fragment_fragment_transition.xml
deleted file mode 100644
index 6e1c7a1..0000000
--- a/samples/browseable/FragmentTransition/res/layout/fragment_fragment_transition.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-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.
--->
-<GridView
-    android:id="@+id/grid"
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:clipToPadding="false"
-    android:columnWidth="150dp"
-    android:horizontalSpacing="1dp"
-    android:numColumns="auto_fit"
-    android:padding="1dp"
-    android:scrollbars="none"
-    android:stretchMode="columnWidth"
-    android:verticalSpacing="1dp"
-    tools:context="com.example.android.fragmenttransition.FragmentTransitionFragment"/>
diff --git a/samples/browseable/FragmentTransition/res/layout/item_meat_grid.xml b/samples/browseable/FragmentTransition/res/layout/item_meat_grid.xml
deleted file mode 100644
index df34883..0000000
--- a/samples/browseable/FragmentTransition/res/layout/item_meat_grid.xml
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  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.
--->
-<FrameLayout
-    android:id="@+id/frame"
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent">
-
-    <RelativeLayout
-        android:id="@+id/container"
-        android:layout_width="match_parent"
-        android:layout_height="150dp"
-        tools:ignore="UselessParent">
-
-        <ImageView
-            android:id="@+id/image"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:scaleType="centerCrop"
-            tools:src="@drawable/p1"/>
-
-        <TextView
-            android:id="@+id/title"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_alignParentBottom="true"
-            android:layout_alignParentEnd="true"
-            android:layout_gravity="bottom|end"
-            android:layout_marginEnd="16dp"
-            android:layout_marginStart="16dp"
-            android:gravity="center_horizontal"
-            android:shadowColor="#000000"
-            android:shadowDx="0"
-            android:shadowDy="0"
-            android:shadowRadius="10"
-            android:textColor="#ffffff"
-            android:textSize="24sp"
-            android:textStyle="bold"
-            tools:text="Hello"/>
-
-    </RelativeLayout>
-
-</FrameLayout>
diff --git a/samples/browseable/FragmentTransition/res/menu/main.xml b/samples/browseable/FragmentTransition/res/menu/main.xml
deleted file mode 100644
index b49c2c5..0000000
--- a/samples/browseable/FragmentTransition/res/menu/main.xml
+++ /dev/null
@@ -1,21 +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.
-  -->
-
-<menu xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:id="@+id/menu_toggle_log"
-          android:showAsAction="always"
-          android:title="@string/sample_show_log" />
-</menu>
diff --git a/samples/browseable/FragmentTransition/res/values-sw600dp/template-dimens.xml b/samples/browseable/FragmentTransition/res/values-sw600dp/template-dimens.xml
deleted file mode 100644
index 22074a2..0000000
--- a/samples/browseable/FragmentTransition/res/values-sw600dp/template-dimens.xml
+++ /dev/null
@@ -1,24 +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.
-  -->
-
-<resources>
-
-    <!-- Semantic definitions -->
-
-    <dimen name="horizontal_page_margin">@dimen/margin_huge</dimen>
-    <dimen name="vertical_page_margin">@dimen/margin_medium</dimen>
-
-</resources>
diff --git a/samples/browseable/FragmentTransition/res/values-sw600dp/template-styles.xml b/samples/browseable/FragmentTransition/res/values-sw600dp/template-styles.xml
deleted file mode 100644
index 03d1974..0000000
--- a/samples/browseable/FragmentTransition/res/values-sw600dp/template-styles.xml
+++ /dev/null
@@ -1,25 +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.
-  -->
-
-<resources>
-
-    <style name="Widget.SampleMessage">
-        <item name="android:textAppearance">?android:textAppearanceLarge</item>
-        <item name="android:lineSpacingMultiplier">1.2</item>
-        <item name="android:shadowDy">-6.5</item>
-    </style>
-
-</resources>
diff --git a/samples/browseable/FragmentTransition/res/values-v11/template-styles.xml b/samples/browseable/FragmentTransition/res/values-v11/template-styles.xml
deleted file mode 100644
index 8c1ea66..0000000
--- a/samples/browseable/FragmentTransition/res/values-v11/template-styles.xml
+++ /dev/null
@@ -1,22 +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.
-  -->
-
-<resources>
-
-    <!-- Activity themes -->
-    <style name="Theme.Base" parent="android:Theme.Holo.Light" />
-
-</resources>
diff --git a/samples/browseable/FragmentTransition/res/values-v21/base-colors.xml b/samples/browseable/FragmentTransition/res/values-v21/base-colors.xml
deleted file mode 100644
index 34c9cd1..0000000
--- a/samples/browseable/FragmentTransition/res/values-v21/base-colors.xml
+++ /dev/null
@@ -1,20 +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.
--->
-<resources>
-
-
-</resources>
diff --git a/samples/browseable/FragmentTransition/res/values-v21/base-template-styles.xml b/samples/browseable/FragmentTransition/res/values-v21/base-template-styles.xml
deleted file mode 100644
index 0b2948f..0000000
--- a/samples/browseable/FragmentTransition/res/values-v21/base-template-styles.xml
+++ /dev/null
@@ -1,23 +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.
--->
-<resources>
-
-    <!-- Activity themes -->
-    <style name="Theme.Base" parent="android:Theme.Material.Light">
-    </style>
-
-</resources>
diff --git a/samples/browseable/FragmentTransition/res/values/base-strings.xml b/samples/browseable/FragmentTransition/res/values/base-strings.xml
deleted file mode 100644
index 92707c9..0000000
--- a/samples/browseable/FragmentTransition/res/values/base-strings.xml
+++ /dev/null
@@ -1,28 +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.
--->
-<resources>
-    <string name="app_name">FragmentTransition</string>
-    <string name="intro_message">
-        <![CDATA[
-        
-            
-	    This sample demonstrates how to start a transition right after a fragment transaction.
-            
-        
-        ]]>
-    </string>
-</resources>
diff --git a/samples/browseable/FragmentTransition/res/values/fragmentview_strings.xml b/samples/browseable/FragmentTransition/res/values/fragmentview_strings.xml
deleted file mode 100755
index 7b9d9ec..0000000
--- a/samples/browseable/FragmentTransition/res/values/fragmentview_strings.xml
+++ /dev/null
@@ -1,19 +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.
--->
-<resources>
-    <string name="sample_show_log">Show Log</string>
-    <string name="sample_hide_log">Hide Log</string>
-</resources>
diff --git a/samples/browseable/FragmentTransition/res/values/strings.xml b/samples/browseable/FragmentTransition/res/values/strings.xml
deleted file mode 100644
index 5f77789..0000000
--- a/samples/browseable/FragmentTransition/res/values/strings.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-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.
--->
-<resources>
-
-    <string name="lorem_ipsum">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</string>
-
-</resources>
diff --git a/samples/browseable/FragmentTransition/res/values/template-dimens.xml b/samples/browseable/FragmentTransition/res/values/template-dimens.xml
deleted file mode 100644
index 39e710b..0000000
--- a/samples/browseable/FragmentTransition/res/values/template-dimens.xml
+++ /dev/null
@@ -1,32 +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.
-  -->
-
-<resources>
-
-    <!-- Define standard dimensions to comply with Holo-style grids and rhythm. -->
-
-    <dimen name="margin_tiny">4dp</dimen>
-    <dimen name="margin_small">8dp</dimen>
-    <dimen name="margin_medium">16dp</dimen>
-    <dimen name="margin_large">32dp</dimen>
-    <dimen name="margin_huge">64dp</dimen>
-
-    <!-- Semantic definitions -->
-
-    <dimen name="horizontal_page_margin">@dimen/margin_medium</dimen>
-    <dimen name="vertical_page_margin">@dimen/margin_medium</dimen>
-
-</resources>
diff --git a/samples/browseable/FragmentTransition/res/values/template-styles.xml b/samples/browseable/FragmentTransition/res/values/template-styles.xml
deleted file mode 100644
index 6e7d593..0000000
--- a/samples/browseable/FragmentTransition/res/values/template-styles.xml
+++ /dev/null
@@ -1,42 +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.
-  -->
-
-<resources>
-
-    <!-- Activity themes -->
-
-    <style name="Theme.Base" parent="android:Theme.Light" />
-
-    <style name="Theme.Sample" parent="Theme.Base" />
-
-    <style name="AppTheme" parent="Theme.Sample" />
-    <!-- Widget styling -->
-
-    <style name="Widget" />
-
-    <style name="Widget.SampleMessage">
-        <item name="android:textAppearance">?android:textAppearanceMedium</item>
-        <item name="android:lineSpacingMultiplier">1.1</item>
-    </style>
-
-    <style name="Widget.SampleMessageTile">
-        <item name="android:background">@drawable/tile</item>
-        <item name="android:shadowColor">#7F000000</item>
-        <item name="android:shadowDy">-3.5</item>
-        <item name="android:shadowRadius">2</item>
-    </style>
-
-</resources>
diff --git a/samples/browseable/FragmentTransition/src/com.example.android.common/activities/SampleActivityBase.java b/samples/browseable/FragmentTransition/src/com.example.android.common/activities/SampleActivityBase.java
deleted file mode 100644
index 3228927..0000000
--- a/samples/browseable/FragmentTransition/src/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/samples/browseable/FragmentTransition/src/com.example.android.common/logger/Log.java b/samples/browseable/FragmentTransition/src/com.example.android.common/logger/Log.java
deleted file mode 100644
index 17503c5..0000000
--- a/samples/browseable/FragmentTransition/src/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/samples/browseable/FragmentTransition/src/com.example.android.common/logger/LogFragment.java b/samples/browseable/FragmentTransition/src/com.example.android.common/logger/LogFragment.java
deleted file mode 100644
index b302acd..0000000
--- a/samples/browseable/FragmentTransition/src/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/samples/browseable/FragmentTransition/src/com.example.android.common/logger/LogNode.java b/samples/browseable/FragmentTransition/src/com.example.android.common/logger/LogNode.java
deleted file mode 100644
index bc37cab..0000000
--- a/samples/browseable/FragmentTransition/src/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/samples/browseable/FragmentTransition/src/com.example.android.common/logger/LogView.java b/samples/browseable/FragmentTransition/src/com.example.android.common/logger/LogView.java
deleted file mode 100644
index c01542b..0000000
--- a/samples/browseable/FragmentTransition/src/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/samples/browseable/FragmentTransition/src/com.example.android.common/logger/LogWrapper.java b/samples/browseable/FragmentTransition/src/com.example.android.common/logger/LogWrapper.java
deleted file mode 100644
index 16a9e7b..0000000
--- a/samples/browseable/FragmentTransition/src/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/samples/browseable/FragmentTransition/src/com.example.android.common/logger/MessageOnlyLogFilter.java b/samples/browseable/FragmentTransition/src/com.example.android.common/logger/MessageOnlyLogFilter.java
deleted file mode 100644
index 19967dc..0000000
--- a/samples/browseable/FragmentTransition/src/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/samples/browseable/FragmentTransition/src/com.example.android.common/view/SlidingTabLayout.java b/samples/browseable/FragmentTransition/src/com.example.android.common/view/SlidingTabLayout.java
deleted file mode 100644
index 20049e3..0000000
--- a/samples/browseable/FragmentTransition/src/com.example.android.common/view/SlidingTabLayout.java
+++ /dev/null
@@ -1,314 +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.view;
-
-import android.content.Context;
-import android.graphics.Typeface;
-import android.os.Build;
-import android.support.v4.view.PagerAdapter;
-import android.support.v4.view.ViewPager;
-import android.util.AttributeSet;
-import android.util.TypedValue;
-import android.view.Gravity;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.widget.HorizontalScrollView;
-import android.widget.TextView;
-
-/**
- * To be used with ViewPager to provide a tab indicator component which give constant feedback as to
- * the user's scroll progress.
- * <p>
- * To use the component, simply add it to your view hierarchy. Then in your
- * {@link android.app.Activity} or {@link android.support.v4.app.Fragment} call
- * {@link #setViewPager(ViewPager)} providing it the ViewPager this layout is being used for.
- * <p>
- * The colors can be customized in two ways. The first and simplest is to provide an array of colors
- * via {@link #setSelectedIndicatorColors(int...)} and {@link #setDividerColors(int...)}. The
- * alternative is via the {@link TabColorizer} interface which provides you complete control over
- * which color is used for any individual position.
- * <p>
- * The views used as tabs can be customized by calling {@link #setCustomTabView(int, int)},
- * providing the layout ID of your custom layout.
- */
-public class SlidingTabLayout extends HorizontalScrollView {
-
-    /**
-     * Allows complete control over the colors drawn in the tab layout. Set with
-     * {@link #setCustomTabColorizer(TabColorizer)}.
-     */
-    public interface TabColorizer {
-
-        /**
-         * @return return the color of the indicator used when {@code position} is selected.
-         */
-        int getIndicatorColor(int position);
-
-        /**
-         * @return return the color of the divider drawn to the right of {@code position}.
-         */
-        int getDividerColor(int position);
-
-    }
-
-    private static final int TITLE_OFFSET_DIPS = 24;
-    private static final int TAB_VIEW_PADDING_DIPS = 16;
-    private static final int TAB_VIEW_TEXT_SIZE_SP = 12;
-
-    private int mTitleOffset;
-
-    private int mTabViewLayoutId;
-    private int mTabViewTextViewId;
-
-    private ViewPager mViewPager;
-    private ViewPager.OnPageChangeListener mViewPagerPageChangeListener;
-
-    private final SlidingTabStrip mTabStrip;
-
-    public SlidingTabLayout(Context context) {
-        this(context, null);
-    }
-
-    public SlidingTabLayout(Context context, AttributeSet attrs) {
-        this(context, attrs, 0);
-    }
-
-    public SlidingTabLayout(Context context, AttributeSet attrs, int defStyle) {
-        super(context, attrs, defStyle);
-
-        // Disable the Scroll Bar
-        setHorizontalScrollBarEnabled(false);
-        // Make sure that the Tab Strips fills this View
-        setFillViewport(true);
-
-        mTitleOffset = (int) (TITLE_OFFSET_DIPS * getResources().getDisplayMetrics().density);
-
-        mTabStrip = new SlidingTabStrip(context);
-        addView(mTabStrip, LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
-    }
-
-    /**
-     * Set the custom {@link TabColorizer} to be used.
-     *
-     * If you only require simple custmisation then you can use
-     * {@link #setSelectedIndicatorColors(int...)} and {@link #setDividerColors(int...)} to achieve
-     * similar effects.
-     */
-    public void setCustomTabColorizer(TabColorizer tabColorizer) {
-        mTabStrip.setCustomTabColorizer(tabColorizer);
-    }
-
-    /**
-     * Sets the colors to be used for indicating the selected tab. These colors are treated as a
-     * circular array. Providing one color will mean that all tabs are indicated with the same color.
-     */
-    public void setSelectedIndicatorColors(int... colors) {
-        mTabStrip.setSelectedIndicatorColors(colors);
-    }
-
-    /**
-     * Sets the colors to be used for tab dividers. These colors are treated as a circular array.
-     * Providing one color will mean that all tabs are indicated with the same color.
-     */
-    public void setDividerColors(int... colors) {
-        mTabStrip.setDividerColors(colors);
-    }
-
-    /**
-     * Set the {@link ViewPager.OnPageChangeListener}. When using {@link SlidingTabLayout} you are
-     * required to set any {@link ViewPager.OnPageChangeListener} through this method. This is so
-     * that the layout can update it's scroll position correctly.
-     *
-     * @see ViewPager#setOnPageChangeListener(ViewPager.OnPageChangeListener)
-     */
-    public void setOnPageChangeListener(ViewPager.OnPageChangeListener listener) {
-        mViewPagerPageChangeListener = listener;
-    }
-
-    /**
-     * Set the custom layout to be inflated for the tab views.
-     *
-     * @param layoutResId Layout id to be inflated
-     * @param textViewId id of the {@link TextView} in the inflated view
-     */
-    public void setCustomTabView(int layoutResId, int textViewId) {
-        mTabViewLayoutId = layoutResId;
-        mTabViewTextViewId = textViewId;
-    }
-
-    /**
-     * Sets the associated view pager. Note that the assumption here is that the pager content
-     * (number of tabs and tab titles) does not change after this call has been made.
-     */
-    public void setViewPager(ViewPager viewPager) {
-        mTabStrip.removeAllViews();
-
-        mViewPager = viewPager;
-        if (viewPager != null) {
-            viewPager.setOnPageChangeListener(new InternalViewPagerListener());
-            populateTabStrip();
-        }
-    }
-
-    /**
-     * Create a default view to be used for tabs. This is called if a custom tab view is not set via
-     * {@link #setCustomTabView(int, int)}.
-     */
-    protected TextView createDefaultTabView(Context context) {
-        TextView textView = new TextView(context);
-        textView.setGravity(Gravity.CENTER);
-        textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, TAB_VIEW_TEXT_SIZE_SP);
-        textView.setTypeface(Typeface.DEFAULT_BOLD);
-
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
-            // If we're running on Honeycomb or newer, then we can use the Theme's
-            // selectableItemBackground to ensure that the View has a pressed state
-            TypedValue outValue = new TypedValue();
-            getContext().getTheme().resolveAttribute(android.R.attr.selectableItemBackground,
-                    outValue, true);
-            textView.setBackgroundResource(outValue.resourceId);
-        }
-
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
-            // If we're running on ICS or newer, enable all-caps to match the Action Bar tab style
-            textView.setAllCaps(true);
-        }
-
-        int padding = (int) (TAB_VIEW_PADDING_DIPS * getResources().getDisplayMetrics().density);
-        textView.setPadding(padding, padding, padding, padding);
-
-        return textView;
-    }
-
-    private void populateTabStrip() {
-        final PagerAdapter adapter = mViewPager.getAdapter();
-        final View.OnClickListener tabClickListener = new TabClickListener();
-
-        for (int i = 0; i < adapter.getCount(); i++) {
-            View tabView = null;
-            TextView tabTitleView = null;
-
-            if (mTabViewLayoutId != 0) {
-                // If there is a custom tab view layout id set, try and inflate it
-                tabView = LayoutInflater.from(getContext()).inflate(mTabViewLayoutId, mTabStrip,
-                        false);
-                tabTitleView = (TextView) tabView.findViewById(mTabViewTextViewId);
-            }
-
-            if (tabView == null) {
-                tabView = createDefaultTabView(getContext());
-            }
-
-            if (tabTitleView == null && TextView.class.isInstance(tabView)) {
-                tabTitleView = (TextView) tabView;
-            }
-
-            tabTitleView.setText(adapter.getPageTitle(i));
-            tabView.setOnClickListener(tabClickListener);
-
-            mTabStrip.addView(tabView);
-        }
-    }
-
-    @Override
-    protected void onAttachedToWindow() {
-        super.onAttachedToWindow();
-
-        if (mViewPager != null) {
-            scrollToTab(mViewPager.getCurrentItem(), 0);
-        }
-    }
-
-    private void scrollToTab(int tabIndex, int positionOffset) {
-        final int tabStripChildCount = mTabStrip.getChildCount();
-        if (tabStripChildCount == 0 || tabIndex < 0 || tabIndex >= tabStripChildCount) {
-            return;
-        }
-
-        View selectedChild = mTabStrip.getChildAt(tabIndex);
-        if (selectedChild != null) {
-            int targetScrollX = selectedChild.getLeft() + positionOffset;
-
-            if (tabIndex > 0 || positionOffset > 0) {
-                // If we're not at the first child and are mid-scroll, make sure we obey the offset
-                targetScrollX -= mTitleOffset;
-            }
-
-            scrollTo(targetScrollX, 0);
-        }
-    }
-
-    private class InternalViewPagerListener implements ViewPager.OnPageChangeListener {
-        private int mScrollState;
-
-        @Override
-        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
-            int tabStripChildCount = mTabStrip.getChildCount();
-            if ((tabStripChildCount == 0) || (position < 0) || (position >= tabStripChildCount)) {
-                return;
-            }
-
-            mTabStrip.onViewPagerPageChanged(position, positionOffset);
-
-            View selectedTitle = mTabStrip.getChildAt(position);
-            int extraOffset = (selectedTitle != null)
-                    ? (int) (positionOffset * selectedTitle.getWidth())
-                    : 0;
-            scrollToTab(position, extraOffset);
-
-            if (mViewPagerPageChangeListener != null) {
-                mViewPagerPageChangeListener.onPageScrolled(position, positionOffset,
-                        positionOffsetPixels);
-            }
-        }
-
-        @Override
-        public void onPageScrollStateChanged(int state) {
-            mScrollState = state;
-
-            if (mViewPagerPageChangeListener != null) {
-                mViewPagerPageChangeListener.onPageScrollStateChanged(state);
-            }
-        }
-
-        @Override
-        public void onPageSelected(int position) {
-            if (mScrollState == ViewPager.SCROLL_STATE_IDLE) {
-                mTabStrip.onViewPagerPageChanged(position, 0f);
-                scrollToTab(position, 0);
-            }
-
-            if (mViewPagerPageChangeListener != null) {
-                mViewPagerPageChangeListener.onPageSelected(position);
-            }
-        }
-
-    }
-
-    private class TabClickListener implements View.OnClickListener {
-        @Override
-        public void onClick(View v) {
-            for (int i = 0; i < mTabStrip.getChildCount(); i++) {
-                if (v == mTabStrip.getChildAt(i)) {
-                    mViewPager.setCurrentItem(i);
-                    return;
-                }
-            }
-        }
-    }
-
-}
diff --git a/samples/browseable/FragmentTransition/src/com.example.android.common/view/SlidingTabStrip.java b/samples/browseable/FragmentTransition/src/com.example.android.common/view/SlidingTabStrip.java
deleted file mode 100644
index d5bbbae..0000000
--- a/samples/browseable/FragmentTransition/src/com.example.android.common/view/SlidingTabStrip.java
+++ /dev/null
@@ -1,208 +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.view;
-
-import android.R;
-import android.content.Context;
-import android.graphics.Canvas;
-import android.graphics.Color;
-import android.graphics.Paint;
-import android.util.AttributeSet;
-import android.util.TypedValue;
-import android.view.View;
-import android.widget.LinearLayout;
-
-class SlidingTabStrip extends LinearLayout {
-
-    private static final int DEFAULT_BOTTOM_BORDER_THICKNESS_DIPS = 2;
-    private static final byte DEFAULT_BOTTOM_BORDER_COLOR_ALPHA = 0x26;
-    private static final int SELECTED_INDICATOR_THICKNESS_DIPS = 8;
-    private static final int DEFAULT_SELECTED_INDICATOR_COLOR = 0xFF33B5E5;
-
-    private static final int DEFAULT_DIVIDER_THICKNESS_DIPS = 1;
-    private static final byte DEFAULT_DIVIDER_COLOR_ALPHA = 0x20;
-    private static final float DEFAULT_DIVIDER_HEIGHT = 0.5f;
-
-    private final int mBottomBorderThickness;
-    private final Paint mBottomBorderPaint;
-
-    private final int mSelectedIndicatorThickness;
-    private final Paint mSelectedIndicatorPaint;
-
-    private final int mDefaultBottomBorderColor;
-
-    private final Paint mDividerPaint;
-    private final float mDividerHeight;
-
-    private int mSelectedPosition;
-    private float mSelectionOffset;
-
-    private SlidingTabLayout.TabColorizer mCustomTabColorizer;
-    private final SimpleTabColorizer mDefaultTabColorizer;
-
-    SlidingTabStrip(Context context) {
-        this(context, null);
-    }
-
-    SlidingTabStrip(Context context, AttributeSet attrs) {
-        super(context, attrs);
-        setWillNotDraw(false);
-
-        final float density = getResources().getDisplayMetrics().density;
-
-        TypedValue outValue = new TypedValue();
-        context.getTheme().resolveAttribute(R.attr.colorForeground, outValue, true);
-        final int themeForegroundColor =  outValue.data;
-
-        mDefaultBottomBorderColor = setColorAlpha(themeForegroundColor,
-                DEFAULT_BOTTOM_BORDER_COLOR_ALPHA);
-
-        mDefaultTabColorizer = new SimpleTabColorizer();
-        mDefaultTabColorizer.setIndicatorColors(DEFAULT_SELECTED_INDICATOR_COLOR);
-        mDefaultTabColorizer.setDividerColors(setColorAlpha(themeForegroundColor,
-                DEFAULT_DIVIDER_COLOR_ALPHA));
-
-        mBottomBorderThickness = (int) (DEFAULT_BOTTOM_BORDER_THICKNESS_DIPS * density);
-        mBottomBorderPaint = new Paint();
-        mBottomBorderPaint.setColor(mDefaultBottomBorderColor);
-
-        mSelectedIndicatorThickness = (int) (SELECTED_INDICATOR_THICKNESS_DIPS * density);
-        mSelectedIndicatorPaint = new Paint();
-
-        mDividerHeight = DEFAULT_DIVIDER_HEIGHT;
-        mDividerPaint = new Paint();
-        mDividerPaint.setStrokeWidth((int) (DEFAULT_DIVIDER_THICKNESS_DIPS * density));
-    }
-
-    void setCustomTabColorizer(SlidingTabLayout.TabColorizer customTabColorizer) {
-        mCustomTabColorizer = customTabColorizer;
-        invalidate();
-    }
-
-    void setSelectedIndicatorColors(int... colors) {
-        // Make sure that the custom colorizer is removed
-        mCustomTabColorizer = null;
-        mDefaultTabColorizer.setIndicatorColors(colors);
-        invalidate();
-    }
-
-    void setDividerColors(int... colors) {
-        // Make sure that the custom colorizer is removed
-        mCustomTabColorizer = null;
-        mDefaultTabColorizer.setDividerColors(colors);
-        invalidate();
-    }
-
-    void onViewPagerPageChanged(int position, float positionOffset) {
-        mSelectedPosition = position;
-        mSelectionOffset = positionOffset;
-        invalidate();
-    }
-
-    @Override
-    protected void onDraw(Canvas canvas) {
-        final int height = getHeight();
-        final int childCount = getChildCount();
-        final int dividerHeightPx = (int) (Math.min(Math.max(0f, mDividerHeight), 1f) * height);
-        final SlidingTabLayout.TabColorizer tabColorizer = mCustomTabColorizer != null
-                ? mCustomTabColorizer
-                : mDefaultTabColorizer;
-
-        // Thick colored underline below the current selection
-        if (childCount > 0) {
-            View selectedTitle = getChildAt(mSelectedPosition);
-            int left = selectedTitle.getLeft();
-            int right = selectedTitle.getRight();
-            int color = tabColorizer.getIndicatorColor(mSelectedPosition);
-
-            if (mSelectionOffset > 0f && mSelectedPosition < (getChildCount() - 1)) {
-                int nextColor = tabColorizer.getIndicatorColor(mSelectedPosition + 1);
-                if (color != nextColor) {
-                    color = blendColors(nextColor, color, mSelectionOffset);
-                }
-
-                // Draw the selection partway between the tabs
-                View nextTitle = getChildAt(mSelectedPosition + 1);
-                left = (int) (mSelectionOffset * nextTitle.getLeft() +
-                        (1.0f - mSelectionOffset) * left);
-                right = (int) (mSelectionOffset * nextTitle.getRight() +
-                        (1.0f - mSelectionOffset) * right);
-            }
-
-            mSelectedIndicatorPaint.setColor(color);
-
-            canvas.drawRect(left, height - mSelectedIndicatorThickness, right,
-                    height, mSelectedIndicatorPaint);
-        }
-
-        // Thin underline along the entire bottom edge
-        canvas.drawRect(0, height - mBottomBorderThickness, getWidth(), height, mBottomBorderPaint);
-
-        // Vertical separators between the titles
-        int separatorTop = (height - dividerHeightPx) / 2;
-        for (int i = 0; i < childCount - 1; i++) {
-            View child = getChildAt(i);
-            mDividerPaint.setColor(tabColorizer.getDividerColor(i));
-            canvas.drawLine(child.getRight(), separatorTop, child.getRight(),
-                    separatorTop + dividerHeightPx, mDividerPaint);
-        }
-    }
-
-    /**
-     * Set the alpha value of the {@code color} to be the given {@code alpha} value.
-     */
-    private static int setColorAlpha(int color, byte alpha) {
-        return Color.argb(alpha, Color.red(color), Color.green(color), Color.blue(color));
-    }
-
-    /**
-     * Blend {@code color1} and {@code color2} using the given ratio.
-     *
-     * @param ratio of which to blend. 1.0 will return {@code color1}, 0.5 will give an even blend,
-     *              0.0 will return {@code color2}.
-     */
-    private static int blendColors(int color1, int color2, float ratio) {
-        final float inverseRation = 1f - ratio;
-        float r = (Color.red(color1) * ratio) + (Color.red(color2) * inverseRation);
-        float g = (Color.green(color1) * ratio) + (Color.green(color2) * inverseRation);
-        float b = (Color.blue(color1) * ratio) + (Color.blue(color2) * inverseRation);
-        return Color.rgb((int) r, (int) g, (int) b);
-    }
-
-    private static class SimpleTabColorizer implements SlidingTabLayout.TabColorizer {
-        private int[] mIndicatorColors;
-        private int[] mDividerColors;
-
-        @Override
-        public final int getIndicatorColor(int position) {
-            return mIndicatorColors[position % mIndicatorColors.length];
-        }
-
-        @Override
-        public final int getDividerColor(int position) {
-            return mDividerColors[position % mDividerColors.length];
-        }
-
-        void setIndicatorColors(int... colors) {
-            mIndicatorColors = colors;
-        }
-
-        void setDividerColors(int... colors) {
-            mDividerColors = colors;
-        }
-    }
-}
\ No newline at end of file
diff --git a/samples/browseable/FragmentTransition/src/com.example.android.fragmenttransition/DetailFragment.java b/samples/browseable/FragmentTransition/src/com.example.android.fragmenttransition/DetailFragment.java
deleted file mode 100644
index 81e7b46..0000000
--- a/samples/browseable/FragmentTransition/src/com.example.android.fragmenttransition/DetailFragment.java
+++ /dev/null
@@ -1,158 +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.
- */
-
-package com.example.android.fragmenttransition;
-
-import com.example.android.common.logger.Log;
-
-import android.content.Context;
-import android.os.Bundle;
-import android.support.v4.app.Fragment;
-import android.transition.Scene;
-import android.transition.TransitionManager;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.animation.Animation;
-import android.view.animation.AnimationUtils;
-import android.widget.FrameLayout;
-import android.widget.ImageView;
-import android.widget.TextView;
-
-public class DetailFragment extends Fragment implements Animation.AnimationListener {
-
-    private static final String TAG = "DetailFragment";
-
-    private static final String ARG_RESOURCE_ID = "resource_id";
-    private static final String ARG_TITLE = "title";
-    private static final String ARG_X = "x";
-    private static final String ARG_Y = "y";
-    private static final String ARG_WIDTH = "width";
-    private static final String ARG_HEIGHT = "height";
-
-    /**
-     * Create a new instance of DetailFragment.
-     *
-     * @param resourceId The resource ID of the Drawable image to show
-     * @param title The title of the image
-     * @param x The horizontal position of the grid item in pixel
-     * @param y The vertical position of the grid item in pixel
-     * @param width The width of the grid item in pixel
-     * @param height The height of the grid item in pixel
-     * @return a new instance of DetailFragment
-     */
-    public static DetailFragment newInstance(int resourceId, String title,
-                                             int x, int y, int width, int height) {
-        DetailFragment fragment = new DetailFragment();
-        Bundle args = new Bundle();
-        args.putInt(ARG_RESOURCE_ID, resourceId);
-        args.putString(ARG_TITLE, title);
-        args.putInt(ARG_X, x);
-        args.putInt(ARG_Y, y);
-        args.putInt(ARG_WIDTH, width);
-        args.putInt(ARG_HEIGHT, height);
-        fragment.setArguments(args);
-        return fragment;
-    }
-
-    public DetailFragment() {
-    }
-
-    @Override
-    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
-        return inflater.inflate(R.layout.fragment_detail, container, false);
-    }
-
-    @Override
-    public void onViewCreated(View view, Bundle savedInstanceState) {
-        FrameLayout root = (FrameLayout) view;
-        Context context = view.getContext();
-        assert context != null;
-        // This is how the fragment looks at first. Since the transition is one-way, we don't need to make
-        // this a Scene.
-        View item = LayoutInflater.from(context).inflate(R.layout.item_meat_grid, root, false);
-        assert item != null;
-        bind(item);
-        // We adjust the position of the initial image with LayoutParams using the values supplied
-        // as the fragment arguments.
-        Bundle args = getArguments();
-        FrameLayout.LayoutParams params = null;
-        if (args != null) {
-            params = new FrameLayout.LayoutParams(
-                    args.getInt(ARG_WIDTH), args.getInt(ARG_HEIGHT));
-            params.topMargin = args.getInt(ARG_Y);
-            params.leftMargin = args.getInt(ARG_X);
-        }
-        root.addView(item, params);
-    }
-
-    @Override
-    public void onResume() {
-        super.onResume();
-    }
-
-    /**
-     * Bind the views inside of parent with the fragment arguments.
-     *
-     * @param parent The parent of views to bind.
-     */
-    private void bind(View parent) {
-        Bundle args = getArguments();
-        if (args == null) {
-            return;
-        }
-        ImageView image = (ImageView) parent.findViewById(R.id.image);
-        image.setImageResource(args.getInt(ARG_RESOURCE_ID));
-        TextView title = (TextView) parent.findViewById(R.id.title);
-        title.setText(args.getString(ARG_TITLE));
-    }
-
-    @Override
-    public Animation onCreateAnimation(int transit, boolean enter, int nextAnim) {
-        Animation animation = AnimationUtils.loadAnimation(getActivity(),
-                enter ? android.R.anim.fade_in : android.R.anim.fade_out);
-        // We bind a listener for the fragment transaction. We only bind it when
-        // this fragment is entering.
-        if (animation != null && enter) {
-            animation.setAnimationListener(this);
-        }
-        return animation;
-    }
-
-    @Override
-    public void onAnimationStart(Animation animation) {
-        // This method is called at the end of the animation for the fragment transaction.
-        // There is nothing we need to do in this sample.
-    }
-
-    @Override
-    public void onAnimationEnd(Animation animation) {
-        // This method is called at the end of the animation for the fragment transaction,
-        // which is perfect time to start our Transition.
-        Log.i(TAG, "Fragment animation ended. Starting a Transition.");
-        final Scene scene = Scene.getSceneForLayout((ViewGroup) getView(),
-                R.layout.fragment_detail_content, getActivity());
-        TransitionManager.go(scene);
-        // Note that we need to bind views with data after we call TransitionManager.go().
-        bind(scene.getSceneRoot());
-    }
-
-    @Override
-    public void onAnimationRepeat(Animation animation) {
-        // This method is never called in this sample because the animation doesn't repeat.
-    }
-
-}
diff --git a/samples/browseable/FragmentTransition/src/com.example.android.fragmenttransition/FragmentTransitionFragment.java b/samples/browseable/FragmentTransition/src/com.example.android.fragmenttransition/FragmentTransitionFragment.java
deleted file mode 100644
index c072eb9..0000000
--- a/samples/browseable/FragmentTransition/src/com.example.android.fragmenttransition/FragmentTransitionFragment.java
+++ /dev/null
@@ -1,83 +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.
- */
-
-package com.example.android.fragmenttransition;
-
-import com.example.android.common.logger.Log;
-
-import android.os.Bundle;
-import android.support.v4.app.Fragment;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.animation.Animation;
-import android.view.animation.AnimationUtils;
-import android.widget.AdapterView;
-import android.widget.GridView;
-
-public class FragmentTransitionFragment extends Fragment implements AdapterView.OnItemClickListener {
-
-    private static final String TAG = "FragmentTransitionFragment";
-
-    private MeatAdapter mAdapter;
-
-    public static FragmentTransitionFragment newInstance() {
-        return new FragmentTransitionFragment();
-    }
-
-    public FragmentTransitionFragment() {
-    }
-
-    @Override
-    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
-        // This is the adapter we use to populate the grid.
-        mAdapter = new MeatAdapter(inflater, R.layout.item_meat_grid);
-        // Inflate the layout with a GridView in it.
-        return inflater.inflate(R.layout.fragment_fragment_transition, container, false);
-    }
-
-    @Override
-    public void onViewCreated(View view, Bundle savedInstanceState) {
-        GridView grid = (GridView) view.findViewById(R.id.grid);
-        grid.setAdapter(mAdapter);
-        grid.setOnItemClickListener(this);
-    }
-
-    @Override
-    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
-        Meat meat = mAdapter.getItem(position);
-        Log.i(TAG, meat.title + " clicked. Replacing fragment.");
-        // We start the fragment transaction here. It is just an ordinary fragment transaction.
-        getActivity().getSupportFragmentManager()
-                .beginTransaction()
-                .replace(R.id.sample_content_fragment,
-                        DetailFragment.newInstance(meat.resourceId, meat.title,
-                                (int) view.getX(), (int) view.getY(),
-                                view.getWidth(), view.getHeight())
-                )
-                // We push the fragment transaction to back stack. User can go back to the
-                // previous fragment by pressing back button.
-                .addToBackStack("detail")
-                .commit();
-    }
-
-    @Override
-    public Animation onCreateAnimation(int transit, boolean enter, int nextAnim) {
-        return AnimationUtils.loadAnimation(getActivity(),
-                enter ? android.R.anim.fade_in : android.R.anim.fade_out);
-    }
-
-}
diff --git a/samples/browseable/FragmentTransition/src/com.example.android.fragmenttransition/MainActivity.java b/samples/browseable/FragmentTransition/src/com.example.android.fragmenttransition/MainActivity.java
deleted file mode 100644
index fa019be..0000000
--- a/samples/browseable/FragmentTransition/src/com.example.android.fragmenttransition/MainActivity.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.
-*/
-
-package com.example.android.fragmenttransition;
-
-import android.os.Bundle;
-import android.support.v4.app.FragmentTransaction;
-import android.view.Menu;
-import android.view.MenuItem;
-import android.widget.ViewAnimator;
-
-import com.example.android.common.activities.SampleActivityBase;
-import com.example.android.common.logger.Log;
-import com.example.android.common.logger.LogFragment;
-import com.example.android.common.logger.LogWrapper;
-import com.example.android.common.logger.MessageOnlyLogFilter;
-
-/**
- * A simple launcher activity containing a summary sample description, sample log and a custom
- * {@link android.support.v4.app.Fragment} which can display a view.
- * <p>
- * For devices with displays with a width of 720dp or greater, the sample log is always visible,
- * on other devices it's visibility is controlled by an item on the Action Bar.
- */
-public class MainActivity extends SampleActivityBase {
-
-    public static final String TAG = "MainActivity";
-
-    // Whether the Log Fragment is currently shown
-    private boolean mLogShown;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.activity_main);
-
-        if (savedInstanceState == null) {
-            FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
-            FragmentTransitionFragment fragment = new FragmentTransitionFragment();
-            transaction.replace(R.id.sample_content_fragment, fragment);
-            transaction.commit();
-        }
-    }
-
-    @Override
-    public boolean onCreateOptionsMenu(Menu menu) {
-        getMenuInflater().inflate(R.menu.main, menu);
-        return true;
-    }
-
-    @Override
-    public boolean onPrepareOptionsMenu(Menu menu) {
-        MenuItem logToggle = menu.findItem(R.id.menu_toggle_log);
-        logToggle.setVisible(findViewById(R.id.sample_output) instanceof ViewAnimator);
-        logToggle.setTitle(mLogShown ? R.string.sample_hide_log : R.string.sample_show_log);
-
-        return super.onPrepareOptionsMenu(menu);
-    }
-
-    @Override
-    public boolean onOptionsItemSelected(MenuItem item) {
-        switch(item.getItemId()) {
-            case R.id.menu_toggle_log:
-                mLogShown = !mLogShown;
-                ViewAnimator output = (ViewAnimator) findViewById(R.id.sample_output);
-                if (mLogShown) {
-                    output.setDisplayedChild(1);
-                } else {
-                    output.setDisplayedChild(0);
-                }
-                supportInvalidateOptionsMenu();
-                return true;
-        }
-        return super.onOptionsItemSelected(item);
-    }
-
-    /** Create a chain of targets that will receive log data */
-    @Override
-    public void initializeLogging() {
-        // Wraps Android's native log framework.
-        LogWrapper logWrapper = new LogWrapper();
-        // Using Log, front-end to the logging chain, emulates android.util.log method signatures.
-        Log.setLogNode(logWrapper);
-
-        // Filter strips out everything except the message text.
-        MessageOnlyLogFilter msgFilter = new MessageOnlyLogFilter();
-        logWrapper.setNext(msgFilter);
-
-        // On screen logging via a fragment with a TextView.
-        LogFragment logFragment = (LogFragment) getSupportFragmentManager()
-                .findFragmentById(R.id.log_fragment);
-        msgFilter.setNext(logFragment.getLogView());
-
-        Log.i(TAG, "Ready");
-    }
-}
diff --git a/samples/browseable/FragmentTransition/src/com.example.android.fragmenttransition/Meat.java b/samples/browseable/FragmentTransition/src/com.example.android.fragmenttransition/Meat.java
deleted file mode 100644
index 2f2fdfa..0000000
--- a/samples/browseable/FragmentTransition/src/com.example.android.fragmenttransition/Meat.java
+++ /dev/null
@@ -1,46 +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.
- */
-
-package com.example.android.fragmenttransition;
-
-/**
- * This represents a sample data.
- */
-public class Meat {
-
-    public int resourceId;
-    public String title;
-
-    public Meat(int resourceId, String title) {
-        this.resourceId = resourceId;
-        this.title = title;
-    }
-
-    public static final Meat[] MEATS = {
-            new Meat(R.drawable.p1, "First"),
-            new Meat(R.drawable.p2, "Second"),
-            new Meat(R.drawable.p3, "Third"),
-            new Meat(R.drawable.p4, "Fourth"),
-            new Meat(R.drawable.p5, "Fifth"),
-            new Meat(R.drawable.p6, "Sixth"),
-            new Meat(R.drawable.p7, "Seventh"),
-            new Meat(R.drawable.p8, "Eighth"),
-            new Meat(R.drawable.p9, "Ninth"),
-            new Meat(R.drawable.p10, "Tenth"),
-            new Meat(R.drawable.p11, "Eleventh"),
-    };
-
-}
diff --git a/samples/browseable/FragmentTransition/src/com.example.android.fragmenttransition/MeatAdapter.java b/samples/browseable/FragmentTransition/src/com.example.android.fragmenttransition/MeatAdapter.java
deleted file mode 100644
index 307fd85..0000000
--- a/samples/browseable/FragmentTransition/src/com.example.android.fragmenttransition/MeatAdapter.java
+++ /dev/null
@@ -1,81 +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.
- */
-
-package com.example.android.fragmenttransition;
-
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.BaseAdapter;
-import android.widget.ImageView;
-import android.widget.TextView;
-
-class MeatAdapter extends BaseAdapter {
-
-    private final LayoutInflater mLayoutInflater;
-    private final int mResourceId;
-
-    public MeatAdapter(LayoutInflater inflater, int resourceId) {
-        mLayoutInflater = inflater;
-        mResourceId = resourceId;
-    }
-
-    @Override
-    public int getCount() {
-        return Meat.MEATS.length;
-    }
-
-    @Override
-    public Meat getItem(int position) {
-        return Meat.MEATS[position];
-    }
-
-    @Override
-    public long getItemId(int position) {
-        return Meat.MEATS[position].resourceId;
-    }
-
-    @Override
-    public View getView(int position, View convertView, ViewGroup parent) {
-        final View view;
-        final ViewHolder holder;
-        if (null == convertView) {
-            view = mLayoutInflater.inflate(mResourceId, parent, false);
-            holder = new ViewHolder();
-            assert view != null;
-            holder.image = (ImageView) view.findViewById(R.id.image);
-            holder.title = (TextView) view.findViewById(R.id.title);
-            view.setTag(holder);
-        } else {
-            view = convertView;
-            holder = (ViewHolder) view.getTag();
-        }
-        bindView(holder, position);
-        return view;
-    }
-
-    public void bindView(ViewHolder holder, int position) {
-        Meat meat = getItem(position);
-        holder.image.setImageResource(meat.resourceId);
-        holder.title.setText(meat.title);
-    }
-
-    public static class ViewHolder {
-        public ImageView image;
-        public TextView title;
-    }
-
-}
diff --git a/samples/browseable/Geofencing/Application/res/layout/activity_main.xml b/samples/browseable/Geofencing/Application/res/layout/activity_main.xml
deleted file mode 100755
index be1aa49..0000000
--- a/samples/browseable/Geofencing/Application/res/layout/activity_main.xml
+++ /dev/null
@@ -1,36 +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.
-  -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
-
-    <LinearLayout style="@style/Widget.SampleMessageTile"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  android:orientation="vertical">
-
-        <TextView style="@style/Widget.SampleMessage"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="@dimen/horizontal_page_margin"
-            android:layout_marginRight="@dimen/horizontal_page_margin"
-            android:layout_marginTop="@dimen/vertical_page_margin"
-            android:layout_marginBottom="@dimen/vertical_page_margin"
-            android:text="@string/intro_message" />
-    </LinearLayout>
-</LinearLayout>
diff --git a/samples/browseable/Geofencing/Application/src/com.example.android.wearable.geofencing/GeofenceTransitionsIntentService.java b/samples/browseable/Geofencing/Application/src/com.example.android.wearable.geofencing/GeofenceTransitionsIntentService.java
index 8ae0cbc..53117e3 100644
--- a/samples/browseable/Geofencing/Application/src/com.example.android.wearable.geofencing/GeofenceTransitionsIntentService.java
+++ b/samples/browseable/Geofencing/Application/src/com.example.android.wearable.geofencing/GeofenceTransitionsIntentService.java
@@ -23,8 +23,11 @@
 import static com.example.android.wearable.geofencing.Constants.TAG;
 
 import android.app.IntentService;
+import android.content.Context;
 import android.content.Intent;
 import android.os.Bundle;
+import android.os.Handler;
+import android.os.Looper;
 import android.util.Log;
 import android.widget.Toast;
 
@@ -100,13 +103,25 @@
                 // Delete the data item when leaving a geofence region.
                 mGoogleApiClient.blockingConnect(CONNECTION_TIME_OUT_MS, TimeUnit.MILLISECONDS);
                 Wearable.DataApi.deleteDataItems(mGoogleApiClient, GEOFENCE_DATA_ITEM_URI).await();
-                Toast.makeText(this, getString(R.string.exiting_geofence),
-                        Toast.LENGTH_SHORT).show();
+                showToast(this, R.string.exiting_geofence);
                 mGoogleApiClient.disconnect();
             }
         }
     }
 
+    /**
+     * Showing a toast message, using the Main thread
+     */
+    private void showToast(final Context context, final int resourceId) {
+        Handler mainThread = new Handler(Looper.getMainLooper());
+        mainThread.post(new Runnable() {
+            @Override
+            public void run() {
+                Toast.makeText(context, context.getString(resourceId), Toast.LENGTH_SHORT).show();
+            }
+        });
+    }
+
     @Override
     public void onConnected(Bundle connectionHint) {
     }
diff --git a/samples/browseable/GridViewPager/Wearable/AndroidManifest.xml b/samples/browseable/GridViewPager/AndroidManifest.xml
similarity index 100%
rename from samples/browseable/GridViewPager/Wearable/AndroidManifest.xml
rename to samples/browseable/GridViewPager/AndroidManifest.xml
diff --git a/samples/browseable/GridViewPager/Application/res/drawable-hdpi/ic_launcher.png b/samples/browseable/GridViewPager/Application/res/drawable-hdpi/ic_launcher.png
deleted file mode 100755
index 589f229..0000000
--- a/samples/browseable/GridViewPager/Application/res/drawable-hdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/GridViewPager/Application/res/drawable-hdpi/tile.9.png b/samples/browseable/GridViewPager/Application/res/drawable-hdpi/tile.9.png
deleted file mode 100644
index 1358628..0000000
--- a/samples/browseable/GridViewPager/Application/res/drawable-hdpi/tile.9.png
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/GridViewPager/Application/res/drawable-mdpi/ic_launcher.png b/samples/browseable/GridViewPager/Application/res/drawable-mdpi/ic_launcher.png
deleted file mode 100755
index 77dd571..0000000
--- a/samples/browseable/GridViewPager/Application/res/drawable-mdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/GridViewPager/Application/res/drawable-xhdpi/ic_launcher.png b/samples/browseable/GridViewPager/Application/res/drawable-xhdpi/ic_launcher.png
deleted file mode 100755
index fe34ebe..0000000
--- a/samples/browseable/GridViewPager/Application/res/drawable-xhdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/GridViewPager/Application/res/drawable-xxhdpi/ic_launcher.png b/samples/browseable/GridViewPager/Application/res/drawable-xxhdpi/ic_launcher.png
deleted file mode 100755
index ab80bcd..0000000
--- a/samples/browseable/GridViewPager/Application/res/drawable-xxhdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/samples/browseable/GridViewPager/Application/res/layout/activity_main.xml b/samples/browseable/GridViewPager/Application/res/layout/activity_main.xml
deleted file mode 100755
index be1aa49..0000000
--- a/samples/browseable/GridViewPager/Application/res/layout/activity_main.xml
+++ /dev/null
@@ -1,36 +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.
-  -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
-
-    <LinearLayout style="@style/Widget.SampleMessageTile"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  android:orientation="vertical">
-
-        <TextView style="@style/Widget.SampleMessage"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="@dimen/horizontal_page_margin"
-            android:layout_marginRight="@dimen/horizontal_page_margin"
-            android:layout_marginTop="@dimen/vertical_page_margin"
-            android:layout_marginBottom="@dimen/vertical_page_margin"
-            android:text="@string/intro_message" />
-    </LinearLayout>
-</LinearLayout>
diff --git a/samples/browseable/GridViewPager/Application/res/values-sw600dp/template-dimens.xml b/samples/browseable/GridViewPager/Application/res/values-sw600dp/template-dimens.xml
deleted file mode 100644
index 22074a2..0000000
--- a/samples/browseable/GridViewPager/Application/res/values-sw600dp/template-dimens.xml
+++ /dev/null
@@ -1,24 +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.
-  -->
-
-<resources>
-
-    <!-- Semantic definitions -->
-
-    <dimen name="horizontal_page_margin">@dimen/margin_huge</dimen>
-    <dimen name="vertical_page_margin">@dimen/margin_medium</dimen>
-
-</resources>
diff --git a/samples/browseable/GridViewPager/Application/res/values-sw600dp/template-styles.xml b/samples/browseable/GridViewPager/Application/res/values-sw600dp/template-styles.xml
deleted file mode 100644
index 03d1974..0000000
--- a/samples/browseable/GridViewPager/Application/res/values-sw600dp/template-styles.xml
+++ /dev/null
@@ -1,25 +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.
-  -->
-
-<resources>
-
-    <style name="Widget.SampleMessage">
-        <item name="android:textAppearance">?android:textAppearanceLarge</item>
-        <item name="android:lineSpacingMultiplier">1.2</item>
-        <item name="android:shadowDy">-6.5</item>
-    </style>
-
-</resources>
diff --git a/samples/browseable/GridViewPager/Application/res/values-v11/template-styles.xml b/samples/browseable/GridViewPager/Application/res/values-v11/template-styles.xml
deleted file mode 100644
index 8c1ea66..0000000
--- a/samples/browseable/GridViewPager/Application/res/values-v11/template-styles.xml
+++ /dev/null
@@ -1,22 +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.
-  -->
-
-<resources>
-
-    <!-- Activity themes -->
-    <style name="Theme.Base" parent="android:Theme.Holo.Light" />
-
-</resources>
diff --git a/samples/browseable/GridViewPager/Application/res/values-v21/base-colors.xml b/samples/browseable/GridViewPager/Application/res/values-v21/base-colors.xml
deleted file mode 100644
index 34c9cd1..0000000
--- a/samples/browseable/GridViewPager/Application/res/values-v21/base-colors.xml
+++ /dev/null
@@ -1,20 +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.
--->
-<resources>
-
-
-</resources>
diff --git a/samples/browseable/GridViewPager/Application/res/values-v21/base-template-styles.xml b/samples/browseable/GridViewPager/Application/res/values-v21/base-template-styles.xml
deleted file mode 100644
index 0b2948f..0000000
--- a/samples/browseable/GridViewPager/Application/res/values-v21/base-template-styles.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright 2013 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0