docs: Add AccelerometerPlay sample to prebuilts am: ef51b0db8e
am: 2fbc4b7d6a

Change-Id: Ie5691a6e495b4df968ae35847e976d44772a60f1
diff --git a/apps/Development/src/com/android/development/Connectivity.java b/apps/Development/src/com/android/development/Connectivity.java
index 5650482..0a6a4ca 100644
--- a/apps/Development/src/com/android/development/Connectivity.java
+++ b/apps/Development/src/com/android/development/Connectivity.java
@@ -406,6 +406,7 @@
 
         mWm = (WifiManager)getSystemService(Context.WIFI_SERVICE);
         mWml = mWm.createMulticastLock(TAG);
+        mWml.setReferenceCounted(false);
         mPm = (PowerManager)getSystemService(Context.POWER_SERVICE);
         mCm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
         IBinder b = ServiceManager.getService(Context.NETWORKMANAGEMENT_SERVICE);
@@ -486,9 +487,7 @@
         mCm.unregisterNetworkCallback(mCallback);
         mCallback = null;
         unregisterReceiver(mReceiver);
-        if (mWml.isHeld()) {
-            mWml.release();
-        }
+        mWml.release();
     }
 
     @Override
diff --git a/build/Android.mk b/build/Android.mk
index 49fa2e1..8fbab3b 100644
--- a/build/Android.mk
+++ b/build/Android.mk
@@ -122,6 +122,11 @@
 
 ANDROID_SUPPORT_LIBRARIES := \
     android-support-annotations \
+    android-support-compat \
+    android-support-media-compat \
+    android-support-core-ui \
+    android-support-fragment \
+    android-support-core-utils \
     android-support-v4 \
     android-support-v7-appcompat \
     android-support-v7-cardview \
diff --git a/build/sdk.atree b/build/sdk.atree
index 68ca421..a9c2158 100644
--- a/build/sdk.atree
+++ b/build/sdk.atree
@@ -448,13 +448,17 @@
 ${OUT_DIR}/target/common/obj/PACKAGING/android-support-annotations_intermediates/android-support-annotations.jar extras/android/support/annotations/android-support-annotations.jar
 
 ${OUT_DIR}/target/common/obj/PACKAGING/android-support-v4_intermediates/android-support-v4.jar    extras/android/support/v4/android-support-v4.jar
-frameworks/support/v4                                                                             extras/android/support/v4/src
-development/samples/Support4Demos                                                                 extras/android/support/samples/Support4Demos
-development/samples/SupportAppNavigation                                                          extras/android/support/samples/SupportAppNavigation
+frameworks/support/compat                                                                         extras/android/support/compat/src
+frameworks/support/core-ui                                                                        extras/android/support/core-ui/src
+frameworks/support/core-utils                                                                     extras/android/support/core-utils/src
+frameworks/support/fragment                                                                       extras/android/support/fragment/src
+frameworks/support/media-compat                                                                   extras/android/support/media-compat/src
+frameworks/support/samples/Support4Demos                                                                 extras/android/support/samples/Support4Demos
+frameworks/support/samples/SupportAppNavigation                                                          extras/android/support/samples/SupportAppNavigation
 
 ${OUT_DIR}/target/common/obj/PACKAGING/android-support-v13_intermediates/android-support-v13.jar  extras/android/support/v13/android-support-v13.jar
 frameworks/support/v13                                                                            extras/android/support/v13/src
-development/samples/Support13Demos                                                                extras/android/support/samples/Support13Demos
+frameworks/support/samples/Support13Demos                                                                extras/android/support/samples/Support13Demos
 
 frameworks/support/v7/gridlayout/README.txt                                                       extras/android/support/v7/gridlayout/README.txt
 frameworks/support/v7/gridlayout/.project                                                         extras/android/support/v7/gridlayout/.project
@@ -504,7 +508,7 @@
 frameworks/support/v7/mediarouter/src/.readme                                                      extras/android/support/v7/mediarouter/src/.readme
 ${OUT_DIR}/target/common/obj/PACKAGING/android-support-v7-mediarouter_intermediates/android-support-v7-mediarouter.jar    extras/android/support/v7/mediarouter/libs/android-support-v7-mediarouter.jar
 
-development/samples/Support7Demos                                                                 extras/android/support/samples/Support7Demos
+frameworks/support/samples/Support7Demos                                                                 extras/android/support/samples/Support7Demos
 
 frameworks/support/v7/palette/README.txt                                                          extras/android/support/v7/palette/README.txt
 frameworks/support/v7/palette/.project                                                            extras/android/support/v7/palette/.project
diff --git a/build/tools/mk_sources_zip.py b/build/tools/mk_sources_zip.py
index 76b5b9e..3220e3a 100755
--- a/build/tools/mk_sources_zip.py
+++ b/build/tools/mk_sources_zip.py
@@ -39,7 +39,7 @@
         self.CNT_NOPKG = 0
         # DIR is the list of directories to scan in TOPDIR.
         self.DIR = "frameworks libcore"
-        self.IGNORE_DIR = [ "hosttests" "tools" "tests" ]
+        self.IGNORE_DIR = [ "hosttests", "tools", "tests" ]
         # IGNORE is a list of namespaces to ignore. Must be java
         # package definitions (e.g. "com.blah.foo.")
         self.IGNORE = [ "sun.", "libcore.", "dalvik.",
diff --git a/samples/ApiDemos/AndroidManifest.xml b/samples/ApiDemos/AndroidManifest.xml
index 4ec83c3..6afdd71 100644
--- a/samples/ApiDemos/AndroidManifest.xml
+++ b/samples/ApiDemos/AndroidManifest.xml
@@ -595,6 +595,7 @@
         </activity>
 
         <service android:name=".app.ForegroundService" />
+        <service android:name=".app.ForegroundService2" />
 
         <activity android:name=".app.ForegroundService$Controller"
                 android:label="@string/activity_foreground_service_controller"
diff --git a/samples/ApiDemos/res/layout/foreground_service_controller.xml b/samples/ApiDemos/res/layout/foreground_service_controller.xml
index ca12be1..f2a6274 100644
--- a/samples/ApiDemos/res/layout/foreground_service_controller.xml
+++ b/samples/ApiDemos/res/layout/foreground_service_controller.xml
@@ -37,19 +37,16 @@
     <Button android:id="@+id/start_foreground_wakelock"
         android:layout_width="wrap_content" android:layout_height="wrap_content"
         android:text="@string/start_service_foreground_wakelock">
-        <requestFocus />
     </Button>
 
     <Button android:id="@+id/start_background"
         android:layout_width="wrap_content" android:layout_height="wrap_content" 
         android:text="@string/start_service_background">
-        <requestFocus />
     </Button>
 
     <Button android:id="@+id/start_background_wakelock"
         android:layout_width="wrap_content" android:layout_height="wrap_content"
         android:text="@string/start_service_background_wakelock">
-        <requestFocus />
     </Button>
 
     <Button android:id="@+id/stop"
@@ -57,5 +54,16 @@
         android:text="@string/stop_service">
     </Button>
 
+    <Button android:id="@+id/start_foreground_2"
+            android:layout_width="wrap_content" android:layout_height="wrap_content"
+            android:layout_marginTop="8dp"
+            android:text="@string/start_service_foreground_2">
+    </Button>
+
+    <Button android:id="@+id/stop_2"
+            android:layout_width="wrap_content" android:layout_height="wrap_content"
+            android:text="@string/stop_service_2">
+    </Button>
+
 </LinearLayout>
 
diff --git a/samples/ApiDemos/res/values/strings.xml b/samples/ApiDemos/res/values/strings.xml
index 78de99f..963477a 100644
--- a/samples/ApiDemos/res/values/strings.xml
+++ b/samples/ApiDemos/res/values/strings.xml
@@ -312,6 +312,7 @@
     <string name="start_service_foreground_wakelock">Start Service Foreground w/Wakelock</string>
     <string name="start_service_background">Start Service Background</string>
     <string name="start_service_background_wakelock">Start Service Background w/Wakelock</string>
+    <string name="start_service_foreground_2">Start Service Foreground 2</string>
 
     <string name="activity_isolated_service_controller">App/Service/Isolated Service Controller</string>
     <string name="isolated_service_controller">This demonstrates the use of android:isolatedProcess
diff --git a/samples/ApiDemos/src/com/example/android/apis/app/ForegroundService.java b/samples/ApiDemos/src/com/example/android/apis/app/ForegroundService.java
index bbc3c08..a8c3b86 100644
--- a/samples/ApiDemos/src/com/example/android/apis/app/ForegroundService.java
+++ b/samples/ApiDemos/src/com/example/android/apis/app/ForegroundService.java
@@ -259,6 +259,10 @@
             button.setOnClickListener(mBackgroundWakelockListener);
             button = (Button)findViewById(R.id.stop);
             button.setOnClickListener(mStopListener);
+            button = (Button)findViewById(R.id.start_foreground_2);
+            button.setOnClickListener(mForegroundListener2);
+            button = (Button)findViewById(R.id.stop_2);
+            button.setOnClickListener(mStopListener2);
         }
 
         private OnClickListener mForegroundListener = new OnClickListener() {
@@ -299,5 +303,21 @@
                         ForegroundService.class));
             }
         };
+
+        private OnClickListener mForegroundListener2 = new OnClickListener() {
+            public void onClick(View v) {
+                Intent intent = new Intent(ForegroundService.ACTION_FOREGROUND);
+                intent.setClass(Controller.this, ForegroundService2.class);
+                startService(intent);
+            }
+        };
+
+        private OnClickListener mStopListener2 = new OnClickListener() {
+            public void onClick(View v) {
+                stopService(new Intent(Controller.this,
+                        ForegroundService2.class));
+            }
+        };
+
     }
 }
diff --git a/samples/ApiDemos/src/com/example/android/apis/app/ForegroundService2.java b/samples/ApiDemos/src/com/example/android/apis/app/ForegroundService2.java
new file mode 100644
index 0000000..5d7e96c
--- /dev/null
+++ b/samples/ApiDemos/src/com/example/android/apis/app/ForegroundService2.java
@@ -0,0 +1,20 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.apis.app;
+
+public class ForegroundService2 extends ForegroundService {
+}
diff --git a/samples/ShortcutDemo/Android.mk b/samples/ShortcutDemo/Android.mk
new file mode 100644
index 0000000..2ef28ee
--- /dev/null
+++ b/samples/ShortcutDemo/Android.mk
@@ -0,0 +1,17 @@
+# Copyright (C) 2016 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+LOCAL_PATH := $(call my-dir)
+
+include $(call all-makefiles-under, $(LOCAL_PATH))
diff --git a/samples/ShortcutDemo/common/res/layout/list_item.xml b/samples/ShortcutDemo/common/res/layout/list_item.xml
new file mode 100644
index 0000000..20c7eeb
--- /dev/null
+++ b/samples/ShortcutDemo/common/res/layout/list_item.xml
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT 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="wrap_content"
+    android:orientation="horizontal"
+>
+    <ImageView
+        android:id="@+id/image"
+        android:layout_width="48dip"
+        android:layout_height="48dip"
+        android:layout_marginBottom="8dip"
+        />
+    <LinearLayout
+        android:layout_width="0dip"
+        android:layout_height="wrap_content"
+        android:layout_weight="1"
+        android:layout_gravity="center_vertical"
+        android:orientation="vertical"
+        android:paddingLeft="8dip"
+        >
+        <TextView
+            android:id="@+id/line1"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:textColor="#000000"
+            android:textSize="16sp"
+            />
+        <TextView
+            android:id="@+id/line2"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:textColor="#444444"
+        />
+    </LinearLayout>
+    <Button
+        android:id="@+id/action2"
+        android:layout_width="wrap_content"
+        android:layout_height="match_parent"
+        android:layout_gravity="center"
+        android:gravity="center"
+        android:visibility="gone"
+        style="@android:style/Widget.Material.Button.Borderless"/>
+    <Button
+        android:id="@+id/launch"
+        android:text="@string/launch"
+        android:layout_width="wrap_content"
+        android:layout_height="match_parent"
+        android:layout_gravity="center"
+        android:gravity="center"
+        android:visibility="gone"
+        style="@android:style/Widget.Material.Button.Borderless"/>
+</LinearLayout>
\ No newline at end of file
diff --git a/samples/ShortcutDemo/common/res/values/strings.xml b/samples/ShortcutDemo/common/res/values/strings.xml
new file mode 100644
index 0000000..0d68c75
--- /dev/null
+++ b/samples/ShortcutDemo/common/res/values/strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT 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 xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <add-resource type="string" name="launch"/>
+    <string name="launch">Launch</string>
+</resources>
diff --git a/samples/ShortcutDemo/common/src/com/example/android/pm/shortcutdemo/AppLabelCache.java b/samples/ShortcutDemo/common/src/com/example/android/pm/shortcutdemo/AppLabelCache.java
new file mode 100644
index 0000000..ef05df5
--- /dev/null
+++ b/samples/ShortcutDemo/common/src/com/example/android/pm/shortcutdemo/AppLabelCache.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.pm.shortcutdemo;
+
+import android.content.Context;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageManager;
+import android.content.pm.PackageManager.NameNotFoundException;
+import android.util.ArrayMap;
+
+public class AppLabelCache {
+    private final Context mContext;
+    private ArrayMap<String, String> mAppNames = new ArrayMap<>();
+
+    public AppLabelCache(Context context) {
+        mContext = context;
+    }
+
+    public String getAppLabel(String packageName) {
+        String name = mAppNames.get(packageName);
+        if (name != null) {
+            return name;
+        }
+        PackageManager pm = mContext.getPackageManager();
+        try {
+            final ApplicationInfo ai = pm.getApplicationInfo(packageName, 0);
+            name = pm.getApplicationLabel(ai).toString();
+        } catch (NameNotFoundException e) {
+            return packageName;
+        }
+        mAppNames.put(packageName, name);
+        return name;
+    }
+}
diff --git a/samples/ShortcutDemo/common/src/com/example/android/pm/shortcutdemo/ShortcutAdapter.java b/samples/ShortcutDemo/common/src/com/example/android/pm/shortcutdemo/ShortcutAdapter.java
new file mode 100644
index 0000000..2263d1a
--- /dev/null
+++ b/samples/ShortcutDemo/common/src/com/example/android/pm/shortcutdemo/ShortcutAdapter.java
@@ -0,0 +1,199 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.pm.shortcutdemo;
+
+import android.content.Context;
+import android.content.pm.LauncherApps;
+import android.content.pm.PackageManager;
+import android.content.pm.PackageManager.NameNotFoundException;
+import android.content.pm.ShortcutInfo;
+import android.content.res.Resources;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.graphics.drawable.BitmapDrawable;
+import android.graphics.drawable.Drawable;
+import android.os.ParcelFileDescriptor;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
+import android.widget.Button;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import java.io.IOException;
+import java.util.List;
+
+public abstract class ShortcutAdapter extends BaseAdapter implements OnClickListener {
+    public static final String TAG = "ShortcutDemo";
+
+    private final Context mContext;
+    private final LayoutInflater mInflater;
+    private LauncherApps mLauncherApps;
+    private final AppLabelCache mAppLabelCache;
+    private List<ShortcutInfo> mShortcuts;
+
+    public ShortcutAdapter(Context context) {
+        mContext = context;
+        mAppLabelCache = new AppLabelCache(mContext);
+        mInflater = mContext.getSystemService(LayoutInflater.class);
+        mLauncherApps = mContext.getSystemService(LauncherApps.class);
+    }
+
+    protected abstract int getLayoutId();
+    protected abstract int getText1Id();
+    protected abstract int getText2Id();
+    protected abstract int getImageId();
+    protected abstract int getLaunchId();
+    protected abstract int getAction2Id();
+
+    protected boolean showLine2() {
+        return true;
+    }
+
+    protected boolean showLaunch(ShortcutInfo si) {
+        return false;
+    }
+
+    protected boolean showAction2(ShortcutInfo si) {
+        return false;
+    }
+
+    protected String getAction2Text(ShortcutInfo si) {
+        return "Action2";
+    }
+
+    protected void onLaunchClicked(ShortcutInfo si) {
+    }
+
+    protected void onAction2Clicked(ShortcutInfo si) {
+    }
+
+    public void setShortcuts(List<ShortcutInfo> shortcuts) {
+        mShortcuts = shortcuts;
+        notifyDataSetChanged();
+    }
+
+    public List<ShortcutInfo> getShortcuts() {
+        return mShortcuts;
+    }
+
+    @Override
+    public int getCount() {
+        return mShortcuts == null ? 0 : mShortcuts.size();
+    }
+
+    @Override
+    public Object getItem(int position) {
+        return mShortcuts.get(position);
+    }
+
+    @Override
+    public long getItemId(int position) {
+        return position;
+    }
+
+    @Override
+    public boolean hasStableIds() {
+        return false;
+    }
+
+    @Override
+    public boolean areAllItemsEnabled() {
+        return true;
+    }
+
+    @Override
+    public boolean isEnabled(int position) {
+        return true;
+    }
+
+    @Override
+    public View getView(int position, View convertView, ViewGroup parent) {
+        final View view;
+        if (convertView != null) {
+            view = convertView;
+        } else {
+            view = mInflater.inflate(getLayoutId(), null);
+        }
+
+        bindView(view, position, mShortcuts.get(position));
+
+        return view;
+    }
+
+    public void bindView(View view, int position, ShortcutInfo si) {
+        {
+            final View v = view.findViewById(getLaunchId());
+            v.setVisibility(View.GONE);
+            if (showLaunch(si)) {
+                v.setOnClickListener(this);
+                v.setVisibility(View.VISIBLE);
+            }
+        }
+        {
+            final Button v = (Button) view.findViewById(getAction2Id());
+            v.setVisibility(View.GONE);
+            if (showAction2(si)) {
+                v.setOnClickListener(this);
+                v.setVisibility(View.VISIBLE);
+                v.setText(getAction2Text(si));
+            }
+        }
+
+        final TextView line1 = (TextView) view.findViewById(getText1Id());
+        final TextView line2 = (TextView) view.findViewById(getText2Id());
+
+        view.setTag(si);
+
+        line1.setText(si.getShortLabel());
+        if (showLine2()) {
+            line2.setText(
+                    si.getId() + (si.isDynamic() ? " [dynamic]" : "")
+                            + (si.isDeclaredInManifest() ? " [manifest]" : "")
+                            + (si.isPinned() ? " [pinned]" : "") + "\n"
+                            + "Long label: " + si.getLongLabel() + "\n"
+                            + "App: " + mAppLabelCache.getAppLabel(si.getPackage()));
+            line2.setVisibility(View.VISIBLE);
+        } else {
+            line2.setVisibility(View.GONE);
+        }
+
+        // view.setBackgroundColor(si.isPinned() ? Color.rgb(255, 255, 192) : Color.WHITE);
+
+        // TODO Do it on worker thread
+        final ImageView image = (ImageView) view.findViewById(getImageId());
+        if (!mLauncherApps.hasShortcutHostPermission()) {
+            image.setVisibility(View.GONE);
+        } else {
+            image.setVisibility(View.VISIBLE);
+            image.setImageDrawable(mLauncherApps.getShortcutBadgedIconDrawable(si,
+                    mContext.getResources().getDisplayMetrics().densityDpi));
+        }
+    }
+
+    @Override
+    public void onClick(View v) {
+        final ShortcutInfo si = (ShortcutInfo)(((View) v.getParent()).getTag());
+        if (v.getId() == getLaunchId()) {
+            onLaunchClicked(si);
+        } else if (v.getId() == getAction2Id()) {
+            onAction2Clicked(si);
+        }
+    }
+}
diff --git a/samples/ShortcutDemo/launcher/Android.mk b/samples/ShortcutDemo/launcher/Android.mk
new file mode 100644
index 0000000..ff3d550
--- /dev/null
+++ b/samples/ShortcutDemo/launcher/Android.mk
@@ -0,0 +1,63 @@
+#
+# Copyright (C) 2016 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# We build two apps from the same source
+
+LOCAL_PATH:= $(call my-dir)
+
+# === App 1 ===
+include $(CLEAR_VARS)
+
+LOCAL_PACKAGE_NAME := ShortcutLauncherDemo
+
+LOCAL_MODULE_TAGS := samples tests
+
+LOCAL_AAPT_FLAGS += --rename-manifest-package com.example.android.pm.shortcutlauncherdemo
+
+LOCAL_SRC_FILES := $(call all-java-files-under, src)
+LOCAL_SRC_FILES += $(call all-java-files-under, ../common/src)
+
+LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
+LOCAL_RESOURCE_DIR += $(LOCAL_PATH)/../common/res
+LOCAL_RESOURCE_DIR += $(LOCAL_PATH)/res1
+
+LOCAL_STATIC_JAVA_LIBRARIES = android-support-v4 android-support-v13
+
+LOCAL_SDK_VERSION := current
+
+include $(BUILD_PACKAGE)
+
+# === App 2 ===
+include $(CLEAR_VARS)
+
+LOCAL_PACKAGE_NAME := ShortcutLauncherDemo2
+
+LOCAL_MODULE_TAGS := samples tests
+
+LOCAL_AAPT_FLAGS += --rename-manifest-package com.example.android.pm.shortcutlauncherdemo2
+
+LOCAL_SRC_FILES := $(call all-java-files-under, src)
+LOCAL_SRC_FILES += $(call all-java-files-under, ../common/src)
+
+LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
+LOCAL_RESOURCE_DIR += $(LOCAL_PATH)/../common/res
+LOCAL_RESOURCE_DIR += $(LOCAL_PATH)/res2
+
+LOCAL_STATIC_JAVA_LIBRARIES = android-support-v4 android-support-v13
+
+LOCAL_SDK_VERSION := current
+
+include $(BUILD_PACKAGE)
diff --git a/samples/ShortcutDemo/launcher/AndroidManifest.xml b/samples/ShortcutDemo/launcher/AndroidManifest.xml
new file mode 100644
index 0000000..fb6b46a
--- /dev/null
+++ b/samples/ShortcutDemo/launcher/AndroidManifest.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT 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.pm.shortcutlauncherdemo">
+
+    <uses-sdk android:minSdkVersion="24" />
+
+    <application android:label="@string/app_title"
+        android:resizeableActivity="true">
+        <activity android:name="ShortcutLauncherMain">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+                <category android:name="android.intent.category.HOME" />
+            </intent-filter>
+        </activity>
+        <activity android:name="PackageShortcutActivity"
+            android:theme="@android:style/Theme.Holo.Light.Dialog">
+        </activity>
+    </application>
+</manifest>
diff --git a/samples/ShortcutDemo/launcher/res/layout/framelayout.xml b/samples/ShortcutDemo/launcher/res/layout/framelayout.xml
new file mode 100644
index 0000000..23034c1
--- /dev/null
+++ b/samples/ShortcutDemo/launcher/res/layout/framelayout.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT 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"
+    android:id="@+id/main"
+    android:orientation="vertical"
+    android:layout_width="fill_parent"
+    android:layout_height="fill_parent">
+</FrameLayout>
diff --git a/samples/ShortcutDemo/launcher/res/layout/main.xml b/samples/ShortcutDemo/launcher/res/layout/main.xml
new file mode 100644
index 0000000..c48e40b
--- /dev/null
+++ b/samples/ShortcutDemo/launcher/res/layout/main.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT 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="fill_parent"
+    android:layout_height="fill_parent">
+
+    <android.support.v4.view.ViewPager
+        android:id="@+id/pager"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent" />
+</LinearLayout>
diff --git a/samples/ShortcutDemo/launcher/res/layout/my_list.xml b/samples/ShortcutDemo/launcher/res/layout/my_list.xml
new file mode 100644
index 0000000..f3a4467
--- /dev/null
+++ b/samples/ShortcutDemo/launcher/res/layout/my_list.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT 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="fill_parent"
+        android:layout_height="fill_parent">
+    <ListView
+        android:id="@android:id/list"
+        android:layout_width="match_parent"
+        android:layout_height="0dip"
+        android:layout_weight="1"
+        android:enabled="true"
+        />
+</LinearLayout>
diff --git a/samples/ShortcutDemo/launcher/res/values/strings.xml b/samples/ShortcutDemo/launcher/res/values/strings.xml
new file mode 100644
index 0000000..66c78aa
--- /dev/null
+++ b/samples/ShortcutDemo/launcher/res/values/strings.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT 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 xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+</resources>
diff --git a/samples/ShortcutDemo/launcher/res1/values/strings.xml b/samples/ShortcutDemo/launcher/res1/values/strings.xml
new file mode 100644
index 0000000..ba09d82
--- /dev/null
+++ b/samples/ShortcutDemo/launcher/res1/values/strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT 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 xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_title">[L1] Shortcuts Launcher Demo</string>
+</resources>
diff --git a/samples/ShortcutDemo/launcher/res2/values/strings.xml b/samples/ShortcutDemo/launcher/res2/values/strings.xml
new file mode 100644
index 0000000..f27cccc
--- /dev/null
+++ b/samples/ShortcutDemo/launcher/res2/values/strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT 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 xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_title">[L2] Shortcuts Launcher Demo</string>
+</resources>
diff --git a/samples/ShortcutDemo/launcher/src/com/example/android/pm/shortcutlauncherdemo/AppListFragment.java b/samples/ShortcutDemo/launcher/src/com/example/android/pm/shortcutlauncherdemo/AppListFragment.java
new file mode 100644
index 0000000..8c3edb1
--- /dev/null
+++ b/samples/ShortcutDemo/launcher/src/com/example/android/pm/shortcutlauncherdemo/AppListFragment.java
@@ -0,0 +1,221 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.pm.shortcutlauncherdemo;
+
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.LauncherActivityInfo;
+import android.content.pm.LauncherApps;
+import android.content.pm.LauncherApps.ShortcutQuery;
+import android.graphics.drawable.Drawable;
+import android.os.Bundle;
+import android.os.UserHandle;
+import android.os.UserManager;
+import android.util.DisplayMetrics;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
+import android.widget.Button;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+
+public class AppListFragment extends MyBaseListFragment {
+    private AppAdapter mAdapter;
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        mAdapter = new AppAdapter(getActivity());
+        setListAdapter(mAdapter);
+    }
+
+    @Override
+    protected void refreshList() {
+        Log.d(Global.TAG, "Loading apps and shortcuts...");
+
+        final List<LauncherActivityInfo> apps = new ArrayList<>();
+
+        for (UserHandle user : mUserManager.getUserProfiles()) {
+            apps.addAll(mLauncherApps.getActivityList(null, user));
+        }
+        Collections.sort(apps, sLauncherIconComparator);
+
+        Log.d(Global.TAG, "Apps and shortcuts loaded.");
+
+        mAdapter.setList(apps);
+    }
+
+    private static final Comparator<LauncherActivityInfo> sLauncherIconComparator =
+            (LauncherActivityInfo l1, LauncherActivityInfo l2) -> {
+                int ret = 0;
+                ret = l1.getLabel().toString().compareTo(l2.getLabel().toString());
+                if (ret != 0) return ret;
+
+                // TODO Don't rely on hashCode being the user-id.
+                ret = l1.getUser().hashCode() - l2.getUser().hashCode();
+                if (ret != 0) return ret;
+
+                return 0;
+            };
+
+    public class AppAdapter extends BaseAdapter implements OnClickListener {
+        private final Context mContext;
+        private final LayoutInflater mInflater;
+        private final UserManager mUserManager;
+        private final LauncherApps mLauncherApps;
+        private List<LauncherActivityInfo> mList;
+
+        public AppAdapter(Context context) {
+            mContext = context;
+            mInflater = mContext.getSystemService(LayoutInflater.class);
+            mUserManager = mContext.getSystemService(UserManager.class);
+            mLauncherApps = mContext.getSystemService(LauncherApps.class);
+        }
+
+        public void setList(List<LauncherActivityInfo> list) {
+            mList = list;
+            notifyDataSetChanged();
+        }
+
+        @Override
+        public int getCount() {
+            return mList == null ? 0 : mList.size();
+        }
+
+        @Override
+        public LauncherActivityInfo getItem(int position) {
+            return mList == null ? null : mList.get(position);
+        }
+
+        @Override
+        public long getItemId(int position) {
+            return position;
+        }
+
+        @Override
+        public boolean hasStableIds() {
+            return false;
+        }
+
+        @Override
+        public boolean areAllItemsEnabled() {
+            return true;
+        }
+
+        @Override
+        public boolean isEnabled(int position) {
+            return true;
+        }
+
+        @Override
+        public View getView(int position, View convertView, ViewGroup parent) {
+            final View view;
+            if (convertView != null) {
+                view = convertView;
+            } else {
+                view = mInflater.inflate(R.layout.list_item, null);
+            }
+
+            bindView(view, getItem(position));
+
+            return view;
+        }
+
+        public void bindView(View view, LauncherActivityInfo ai) {
+            {
+                final View v = view.findViewById(R.id.launch);
+
+                v.setTag(ai);
+
+                v.setOnClickListener(this);
+                v.setVisibility(View.VISIBLE);
+            }
+            {
+                final Button v = (Button) view.findViewById(R.id.action2);
+
+                v.setTag(ai);
+
+                v.setVisibility(View.INVISIBLE);
+                try {
+                    if (mUserManager.isUserUnlocked(ai.getUser())
+                            && mLauncherApps.hasShortcutHostPermission()) {
+                        mQuery.setPackage(ai.getComponentName().getPackageName());
+                        mQuery.setQueryFlags(ShortcutQuery.FLAG_MATCH_DYNAMIC
+                                | ShortcutQuery.FLAG_MATCH_PINNED
+                                | ShortcutQuery.FLAG_MATCH_MANIFEST
+                                | ShortcutQuery.FLAG_GET_KEY_FIELDS_ONLY);
+                        mQuery.setActivity(ai.getComponentName());
+
+                        if (mLauncherApps.getShortcuts(mQuery, ai.getUser()).size() > 0) {
+                            v.setOnClickListener(this);
+                            v.setVisibility(View.VISIBLE);
+                            v.setText("Shortcuts");
+                        }
+                    }
+                } catch (Exception e) {
+                    Log.w(Global.TAG, "Caught exception", e);
+                }
+            }
+
+            final TextView line1 = (TextView) view.findViewById(R.id.line1);
+            final TextView line2 = (TextView) view.findViewById(R.id.line2);
+
+            line1.setText(ai.getLabel());
+
+            // TODO Do it on worker thread
+            final Drawable icon = ai.getBadgedIcon(DisplayMetrics.DENSITY_DEFAULT);
+            final ImageView image = (ImageView) view.findViewById(R.id.image);
+            image.setImageDrawable(icon);
+        }
+
+        @Override
+        public void onClick (View v){
+            final LauncherActivityInfo ai = (LauncherActivityInfo) v.getTag();
+            switch (v.getId()) {
+                case R.id.launch:
+                    try {
+                        mLauncherApps.startMainActivity(ai.getComponentName(), ai.getUser(),
+                                null, null);
+                    } catch (Exception e) {
+                        Global.showToast(getContext(), e.getMessage());
+                    }
+                    return;
+                case R.id.action2:
+                    showShortcutsForPackage(ai);
+                    return;
+            }
+        }
+    }
+
+    private void showShortcutsForPackage(LauncherActivityInfo ai) {
+        final Intent i = PackageShortcutActivity.getLaunchIntent(
+                getActivity(),
+                ai.getComponentName().getPackageName(),
+                ai.getComponentName(),
+                ai.getUser(),
+                ai.getLabel());
+        getActivity().startActivity(i);
+    }
+}
\ No newline at end of file
diff --git a/samples/ShortcutDemo/launcher/src/com/example/android/pm/shortcutlauncherdemo/Global.java b/samples/ShortcutDemo/launcher/src/com/example/android/pm/shortcutlauncherdemo/Global.java
new file mode 100644
index 0000000..809b9a2
--- /dev/null
+++ b/samples/ShortcutDemo/launcher/src/com/example/android/pm/shortcutlauncherdemo/Global.java
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.pm.shortcutlauncherdemo;
+
+import android.content.Context;
+import android.widget.Toast;
+
+public class Global {
+    public static final String TAG = "ShortcutLauncherDemo";
+
+    public static void showToast(Context context, String message) {
+        Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
+    }
+}
diff --git a/samples/ShortcutDemo/launcher/src/com/example/android/pm/shortcutlauncherdemo/MyBaseListFragment.java b/samples/ShortcutDemo/launcher/src/com/example/android/pm/shortcutlauncherdemo/MyBaseListFragment.java
new file mode 100644
index 0000000..23044d6
--- /dev/null
+++ b/samples/ShortcutDemo/launcher/src/com/example/android/pm/shortcutlauncherdemo/MyBaseListFragment.java
@@ -0,0 +1,156 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.pm.shortcutlauncherdemo;
+
+import android.app.ListFragment;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.LauncherApps;
+import android.content.pm.LauncherApps.ShortcutQuery;
+import android.content.pm.PackageManager;
+import android.content.pm.PackageManager.NameNotFoundException;
+import android.content.pm.ShortcutInfo;
+import android.os.Bundle;
+import android.os.UserHandle;
+import android.os.UserManager;
+import android.util.ArrayMap;
+import android.util.Log;
+import android.widget.Toast;
+
+import java.util.List;
+
+public abstract class MyBaseListFragment extends ListFragment {
+    protected UserManager mUserManager;
+    protected LauncherApps mLauncherApps;
+
+    private ArrayMap<String, String> mAppNames = new ArrayMap<>();
+
+    protected final ShortcutQuery mQuery = new ShortcutQuery();
+
+    public final static IntentFilter sProfileFilter = new IntentFilter();
+
+    static {
+        sProfileFilter.addAction(Intent.ACTION_MANAGED_PROFILE_ADDED);
+        sProfileFilter.addAction(Intent.ACTION_MANAGED_PROFILE_AVAILABLE);
+        sProfileFilter.addAction(Intent.ACTION_MANAGED_PROFILE_REMOVED);
+        sProfileFilter.addAction(Intent.ACTION_MANAGED_PROFILE_UNAVAILABLE);
+        sProfileFilter.addAction(Intent.ACTION_MANAGED_PROFILE_UNLOCKED);
+    }
+
+    private final BroadcastReceiver mProfileReceiver = new BroadcastReceiver() {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            refreshList();
+        }
+    };
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        mUserManager = getActivity().getSystemService(UserManager.class);
+        mLauncherApps = getActivity().getSystemService(LauncherApps.class);
+        mLauncherApps.registerCallback(mLauncherCallback);
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+
+        Log.d(Global.TAG, "Resumed");
+
+        showPermissionWarningToastWhenNeeded();
+
+        refreshList();
+
+        getActivity().registerReceiver(mProfileReceiver, sProfileFilter);
+    }
+
+    @Override
+    public void onPause() {
+        getActivity().unregisterReceiver(mProfileReceiver);
+
+        super.onPause();
+    }
+
+    @Override
+    public void onDestroy() {
+        mLauncherApps.unregisterCallback(mLauncherCallback);
+
+        super.onDestroy();
+    }
+
+    protected void showPermissionWarningToastWhenNeeded() {
+        if (!mLauncherApps.hasShortcutHostPermission()) {
+            Toast.makeText(getActivity(), "App doesn't have the shortcut permissions",
+                    Toast.LENGTH_SHORT).show();
+        }
+    }
+
+    protected final String getAppLabel(String packageName) {
+        String name = mAppNames.get(packageName);
+        if (name != null) {
+            return name;
+        }
+        PackageManager pm = getActivity().getPackageManager();
+        try {
+            final ApplicationInfo ai = pm.getApplicationInfo(packageName, 0);
+            return pm.getApplicationLabel(ai).toString();
+        } catch (NameNotFoundException e) {
+            return packageName;
+        }
+    }
+
+    protected abstract void refreshList();
+
+    private final LauncherApps.Callback mLauncherCallback = new LauncherApps.Callback() {
+        @Override
+        public void onPackageRemoved(String packageName, UserHandle user) {
+            refreshList();
+        }
+
+        @Override
+        public void onPackageAdded(String packageName, UserHandle user) {
+            refreshList();
+        }
+
+        @Override
+        public void onPackageChanged(String packageName, UserHandle user) {
+            refreshList();
+        }
+
+        @Override
+        public void onPackagesAvailable(String[] packageNames, UserHandle user, boolean replacing) {
+            refreshList();
+        }
+
+        @Override
+        public void onPackagesUnavailable(String[] packageNames, UserHandle user,
+                boolean replacing) {
+            refreshList();
+        }
+
+        @Override
+        public void onShortcutsChanged(String packageName,
+                List<ShortcutInfo> shortcuts, UserHandle user) {
+            refreshList();
+        }
+    };
+
+}
diff --git a/samples/ShortcutDemo/launcher/src/com/example/android/pm/shortcutlauncherdemo/PackageShortcutActivity.java b/samples/ShortcutDemo/launcher/src/com/example/android/pm/shortcutlauncherdemo/PackageShortcutActivity.java
new file mode 100644
index 0000000..d7a0499
--- /dev/null
+++ b/samples/ShortcutDemo/launcher/src/com/example/android/pm/shortcutlauncherdemo/PackageShortcutActivity.java
@@ -0,0 +1,67 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.pm.shortcutlauncherdemo;
+
+import android.app.Activity;
+import android.app.Fragment;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.os.Bundle;
+import android.os.UserHandle;
+
+public class PackageShortcutActivity extends Activity {
+    private static final String KEY_TARGET_PACKAGE = "PackageShortcutActivity.target_package";
+    private static final String KEY_TARGET_ACTIVITY = "PackageShortcutActivity.target_activity";
+    private static final String KEY_TARGET_USER = "PackageShortcutActivity.user";
+    private static final String KEY_TITLE = "PackageShortcutActivity.title";
+
+    public static Intent getLaunchIntent(Context context, String targetPackage,
+            ComponentName targetActivity, UserHandle user, CharSequence title) {
+        final Intent i = new Intent(Intent.ACTION_VIEW);
+        i.setComponent(new ComponentName(context, PackageShortcutActivity.class));
+
+        i.putExtra(KEY_TARGET_PACKAGE, targetPackage);
+        i.putExtra(KEY_TARGET_ACTIVITY, targetActivity);
+        i.putExtra(KEY_TARGET_USER, user);
+        i.putExtra(KEY_TITLE, title);
+
+        return i;
+    }
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        setContentView(R.layout.framelayout);
+
+        final Intent i = getIntent();
+
+        final Fragment f = new ShortcutListFragment().setArguments(
+                i.getStringExtra(KEY_TARGET_PACKAGE),
+                /* targetActivity=*/ i.getParcelableExtra(KEY_TARGET_ACTIVITY),
+                /*includeDynamic=*/ true,
+                /*includeManifest=*/ true,
+                /*includePinned=*/ true,
+                i.getParcelableExtra(KEY_TARGET_USER),
+                /* showDetails =*/ false
+                );
+
+        setTitle(i.getStringExtra(KEY_TITLE));
+
+        getFragmentManager().beginTransaction().replace(R.id.main, f).commit();
+    }
+}
diff --git a/samples/ShortcutDemo/launcher/src/com/example/android/pm/shortcutlauncherdemo/ShortcutLauncherMain.java b/samples/ShortcutDemo/launcher/src/com/example/android/pm/shortcutlauncherdemo/ShortcutLauncherMain.java
new file mode 100644
index 0000000..cc63494
--- /dev/null
+++ b/samples/ShortcutDemo/launcher/src/com/example/android/pm/shortcutlauncherdemo/ShortcutLauncherMain.java
@@ -0,0 +1,110 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.pm.shortcutlauncherdemo;
+
+import android.app.ActionBar;
+import android.app.ActionBar.Tab;
+import android.app.ActionBar.TabListener;
+import android.app.Activity;
+import android.app.Fragment;
+import android.app.FragmentManager;
+import android.app.FragmentTransaction;
+import android.os.Bundle;
+import android.support.v13.app.FragmentStatePagerAdapter;
+import android.support.v4.view.PagerAdapter;
+import android.support.v4.view.ViewPager;
+import android.view.ViewGroup;
+
+public class ShortcutLauncherMain extends Activity {
+    private ViewPager mPager;
+    private PagerAdapter mPagerAdapter;
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        setContentView(R.layout.main);
+
+        mPager = (ViewPager) findViewById(R.id.pager);
+        mPager.setOffscreenPageLimit(2);
+        mPagerAdapter = new MyPagerAdapter(getFragmentManager());
+        mPager.setAdapter(mPagerAdapter);
+
+        final ActionBar ab = getActionBar();
+        ab.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
+        ab.addTab(ab.newTab().setText("App list").setTabListener(mTabListener));
+        ab.addTab(ab.newTab().setText("Pinned shortcuts").setTabListener(mTabListener));
+    }
+
+    @Override
+    public void onBackPressed() {
+        // Ignore.
+    }
+
+    private TabListener mTabListener = new TabListener() {
+        @Override
+        public void onTabSelected(Tab tab, FragmentTransaction ft) {
+            mPager.setCurrentItem(tab.getPosition());
+        }
+
+        @Override
+        public void onTabUnselected(Tab tab, FragmentTransaction ft) {
+
+        }
+
+        @Override
+        public void onTabReselected(Tab tab, FragmentTransaction ft) {
+
+        }
+    };
+
+    private class MyPagerAdapter extends FragmentStatePagerAdapter {
+        public MyPagerAdapter(FragmentManager fm) {
+            super(fm);
+        }
+
+        @Override
+        public Fragment getItem(int position) {
+            switch (position) {
+                case 0:
+                    return new AppListFragment();
+                case 1:
+                    return new ShortcutListFragment().setArguments(
+                            /* targetPackage =*/ null,
+                            /* targetActivity =*/ null,
+                            /* includeDynamic = */ false,
+                            /* includeManifest = */ false,
+                            /* includePinned =*/ true,
+                            null /* means "all profiles" of this user*/,
+                            /* showDetails =*/ true
+                            );
+            }
+            return null;
+        }
+
+        @Override
+        public int getCount() {
+            return 2;
+        }
+
+        @Override
+        public void setPrimaryItem(ViewGroup container, int position, Object object) {
+            super.setPrimaryItem(container, position, object);
+
+            getActionBar().selectTab(getActionBar().getTabAt(position));
+        }
+    }
+}
diff --git a/samples/ShortcutDemo/launcher/src/com/example/android/pm/shortcutlauncherdemo/ShortcutListFragment.java b/samples/ShortcutDemo/launcher/src/com/example/android/pm/shortcutlauncherdemo/ShortcutListFragment.java
new file mode 100644
index 0000000..26d4484
--- /dev/null
+++ b/samples/ShortcutDemo/launcher/src/com/example/android/pm/shortcutlauncherdemo/ShortcutListFragment.java
@@ -0,0 +1,258 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.pm.shortcutlauncherdemo;
+
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.pm.LauncherApps;
+import android.content.pm.LauncherApps.ShortcutQuery;
+import android.content.pm.ShortcutInfo;
+import android.os.Bundle;
+import android.os.UserHandle;
+import android.os.UserManager;
+import android.util.Log;
+import android.widget.Toast;
+
+import com.example.android.pm.shortcutdemo.ShortcutAdapter;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+
+public class ShortcutListFragment extends MyBaseListFragment {
+    private static final String TAG = "ShortcutListFragment";
+
+    private static final String ARG_TARGET_PACKAGE = "target_package";
+    private static final String ARG_TARGET_ACTIVITY = "target_activity";
+    private static final String ARG_INCLUDE_DYNAMIC = "include_dynamic";
+    private static final String ARG_INCLUDE_MANIFEST = "include_manifest";
+    private static final String ARG_INCLUDE_PINNED = "include_pinned";
+    private static final String ARG_USER = "user";
+    private static final String ARG_SHOW_DETAILS = "show_details";
+
+    private MyAdapter mAdapter;
+
+    public ShortcutListFragment setArguments(String targetPackage, ComponentName targetActivity,
+            boolean includeDynamic, boolean includeManifest,
+            boolean includePinned, UserHandle user, boolean showDetails) {
+        final Bundle b = new Bundle();
+        b.putString(ARG_TARGET_PACKAGE, targetPackage);
+        b.putParcelable(ARG_TARGET_ACTIVITY, targetActivity);
+        b.putBoolean(ARG_INCLUDE_DYNAMIC, includeDynamic);
+        b.putBoolean(ARG_INCLUDE_MANIFEST, includeManifest);
+        b.putBoolean(ARG_INCLUDE_PINNED, includePinned);
+        b.putParcelable(ARG_USER, user);
+        b.putBoolean(ARG_SHOW_DETAILS, showDetails);
+
+        setArguments(b);
+
+        return this;
+    }
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        mUserManager = getActivity().getSystemService(UserManager.class);
+        mLauncherApps = getActivity().getSystemService(LauncherApps.class);
+        if (!mLauncherApps.hasShortcutHostPermission()) {
+            Toast.makeText(getActivity(), "App doesn't have the shortcut permissions",
+                    Toast.LENGTH_LONG).show();
+        } else {
+            mAdapter = new MyAdapter(getActivity(), getArguments().getBoolean(ARG_SHOW_DETAILS));
+
+            setListAdapter(mAdapter);
+        }
+    }
+
+    private List<UserHandle> getTargetUsers() {
+        final UserHandle arg = getArguments().getParcelable(ARG_USER);
+        if (arg == null) {
+            return mUserManager.getUserProfiles();
+        } else {
+            final List<UserHandle> ret = new ArrayList<>();
+            ret.add(arg);
+            return ret;
+        }
+    }
+
+    private void togglePin(ShortcutInfo selected) {
+        final String packageName = selected.getPackage();
+        final UserHandle user = selected.getUserHandle();
+
+        try {
+            final ShortcutQuery q = new ShortcutQuery()
+                    .setPackage(packageName)
+                    .setQueryFlags(ShortcutQuery.FLAG_MATCH_PINNED)
+                    ;
+
+            final List<String> pinned = new ArrayList<>();
+            for (ShortcutInfo si : mLauncherApps.getShortcuts(q, user)) {
+                pinned.add(si.getId());
+            }
+            if (selected.isPinned()) {
+                pinned.remove(selected.getId());
+            } else {
+                pinned.add(selected.getId());
+            }
+            mLauncherApps.pinShortcuts(packageName, pinned, selected.getUserHandle());
+        } catch (Exception e) {
+            Global.showToast(getContext(), e.getMessage());
+        }
+    }
+
+    private void launch(ShortcutInfo si) {
+        try {
+            mLauncherApps.startShortcut(si.getPackage(), si.getId(), null, null,
+                    si.getUserHandle());
+        } catch (Exception e) {
+            Global.showToast(getContext(), e.getMessage());
+        }
+    }
+
+    @Override
+    protected void refreshList() {
+        Log.i(TAG, "Refreshing shortcuts");
+        try {
+            if (!mLauncherApps.hasShortcutHostPermission()) {
+                return;
+            }
+
+            final List<ShortcutInfo> list = new ArrayList<>();
+
+            for (UserHandle user : getTargetUsers()) {
+                if (!mUserManager.isUserUnlocked(user)) {
+                    continue;
+                }
+
+                // To detect a race condition, first fetch all shortcuts and report if none found.
+                mQuery.setQueryFlags(
+                        ShortcutQuery.FLAG_MATCH_PINNED | ShortcutQuery.FLAG_MATCH_DYNAMIC
+                                | ShortcutQuery.FLAG_MATCH_MANIFEST
+                                | ShortcutQuery.FLAG_GET_KEY_FIELDS_ONLY);
+                mQuery.setPackage(null);
+                mQuery.setActivity(null);
+                mQuery.setChangedSince(0);
+                final int numShortcuts = mLauncherApps.getShortcuts(mQuery, user).size();
+                if (numShortcuts == 0) {
+                    final String message = "No shortcut found for " + user;
+                    Log.e(TAG, message);
+                    Global.showToast(getContext(), message);
+                }
+
+                final Bundle b = getArguments();
+                mQuery.setQueryFlags(
+                        (b.getBoolean(ARG_INCLUDE_DYNAMIC) ? ShortcutQuery.FLAG_MATCH_DYNAMIC : 0) |
+                        (b.getBoolean(ARG_INCLUDE_MANIFEST) ? ShortcutQuery.FLAG_MATCH_MANIFEST : 0) |
+                        (b.getBoolean(ARG_INCLUDE_PINNED) ? ShortcutQuery.FLAG_MATCH_PINNED : 0));
+                mQuery.setPackage(b.getString(ARG_TARGET_PACKAGE));
+                mQuery.setActivity(b.getParcelable(ARG_TARGET_ACTIVITY));
+
+                list.addAll(mLauncherApps.getShortcuts(mQuery, user));
+            }
+            Collections.sort(list, mShortcutComparator);
+
+            mAdapter.setShortcuts(list);
+        } catch (Exception e) {
+            Log.w(Global.TAG, "Caught exception", e);
+        }
+    }
+
+    private final Comparator<ShortcutInfo> mShortcutComparator =
+            (ShortcutInfo s1, ShortcutInfo s2) -> {
+                int ret = 0;
+                ret = getAppLabel(s1.getPackage()).compareTo(getAppLabel(s2.getPackage()));
+                if (ret != 0) return ret;
+
+                ret = s1.getUserHandle().hashCode() - s2.getUserHandle().hashCode();
+                if (ret != 0) return ret;
+
+                ret = s1.getId().compareTo(s2.getId());
+                if (ret != 0) return ret;
+
+                return 0;
+            };
+
+    class MyAdapter extends ShortcutAdapter {
+        private final boolean mShowLine2;
+
+        public MyAdapter(Context context, boolean showLine2) {
+            super(context);
+            mShowLine2 = showLine2;
+        }
+
+        @Override
+        protected int getLayoutId() {
+            return R.layout.list_item;
+        }
+
+        @Override
+        protected int getText1Id() {
+            return R.id.line1;
+        }
+
+        @Override
+        protected int getText2Id() {
+            return R.id.line2;
+        }
+
+        @Override
+        protected int getImageId() {
+            return R.id.image;
+        }
+
+        @Override
+        protected int getLaunchId() {
+            return R.id.launch;
+        }
+
+        @Override
+        protected int getAction2Id() {
+            return R.id.action2;
+        }
+
+        @Override
+        protected boolean showLaunch(ShortcutInfo si) {
+            return true;
+        }
+
+        @Override
+        protected boolean showAction2(ShortcutInfo si) {
+            return true;
+        }
+
+        @Override
+        protected String getAction2Text(ShortcutInfo si) {
+            return si.isPinned() ? "Unpin" : "Pin";
+        }
+
+        @Override
+        protected void onLaunchClicked(ShortcutInfo si) {
+            launch(si);
+        }
+
+        @Override
+        protected void onAction2Clicked(ShortcutInfo si) {
+            togglePin(si);
+        }
+
+        @Override
+        protected boolean showLine2() {
+            return mShowLine2;
+        }
+    }
+}
diff --git a/samples/ShortcutDemo/publisher/Android.mk b/samples/ShortcutDemo/publisher/Android.mk
new file mode 100644
index 0000000..75f3bb6
--- /dev/null
+++ b/samples/ShortcutDemo/publisher/Android.mk
@@ -0,0 +1,59 @@
+#
+# Copyright (C) 2016 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# We build two apps from the same source
+
+LOCAL_PATH:= $(call my-dir)
+
+# === App 1 ===
+include $(CLEAR_VARS)
+
+LOCAL_PACKAGE_NAME := ShortcutDemo
+
+LOCAL_MODULE_TAGS := samples tests
+
+LOCAL_AAPT_FLAGS += --rename-manifest-package com.example.android.pm.shortcutdemo
+
+LOCAL_SRC_FILES := $(call all-java-files-under, src)
+LOCAL_SRC_FILES += $(call all-java-files-under, ../common/src)
+
+LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
+LOCAL_RESOURCE_DIR += $(LOCAL_PATH)/../common/res
+LOCAL_RESOURCE_DIR += $(LOCAL_PATH)/res1
+
+LOCAL_SDK_VERSION := current
+
+include $(BUILD_PACKAGE)
+
+# === App 2 ===
+include $(CLEAR_VARS)
+
+LOCAL_PACKAGE_NAME := ShortcutDemo2
+
+LOCAL_MODULE_TAGS := samples tests
+
+LOCAL_AAPT_FLAGS += --rename-manifest-package com.example.android.pm.shortcutdemo2
+
+LOCAL_SRC_FILES := $(call all-java-files-under, src)
+LOCAL_SRC_FILES += $(call all-java-files-under, ../common/src)
+
+LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
+LOCAL_RESOURCE_DIR += $(LOCAL_PATH)/../common/res
+LOCAL_RESOURCE_DIR += $(LOCAL_PATH)/res2
+
+LOCAL_SDK_VERSION := current
+
+include $(BUILD_PACKAGE)
diff --git a/samples/ShortcutDemo/publisher/AndroidManifest.xml b/samples/ShortcutDemo/publisher/AndroidManifest.xml
new file mode 100644
index 0000000..83b9820
--- /dev/null
+++ b/samples/ShortcutDemo/publisher/AndroidManifest.xml
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT 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.pm.shortcutdemo">
+
+    <uses-sdk android:minSdkVersion="24" />
+
+    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
+    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+
+    <application android:label="@string/app_title"
+        android:resizeableActivity="true">
+
+        <activity android:name="ShortcutPublisher">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+            <meta-data android:name="android.app.shortcuts" android:resource="@xml/shortcuts"/>
+        </activity>
+
+        <activity-alias android:name="ShortcutPublisherAlias"
+            android:targetActivity="ShortcutPublisher"
+            android:label="@string/activity_alias_label"
+            >
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+            <meta-data android:name="android.app.shortcuts" android:resource="@xml/shortcuts2"/>
+        </activity-alias>
+
+        <service android:name="ShortcutPublishingService">
+            <intent-filter>
+                <action android:name="com.example.android.pm.shortcutdemo.ADD" />
+            </intent-filter>
+        </service>
+        <receiver android:name="ShortcutReceiver" />
+    </application>
+</manifest>
diff --git a/samples/ShortcutDemo/publisher/res/drawable-nodpi/icon1.png b/samples/ShortcutDemo/publisher/res/drawable-nodpi/icon1.png
new file mode 100644
index 0000000..64eb294
--- /dev/null
+++ b/samples/ShortcutDemo/publisher/res/drawable-nodpi/icon1.png
Binary files differ
diff --git a/samples/ShortcutDemo/publisher/res/drawable-nodpi/icon2.png b/samples/ShortcutDemo/publisher/res/drawable-nodpi/icon2.png
new file mode 100644
index 0000000..7502484
--- /dev/null
+++ b/samples/ShortcutDemo/publisher/res/drawable-nodpi/icon2.png
Binary files differ
diff --git a/samples/ShortcutDemo/publisher/res/drawable-nodpi/icon_large_1.png b/samples/ShortcutDemo/publisher/res/drawable-nodpi/icon_large_1.png
new file mode 100644
index 0000000..36125ca
--- /dev/null
+++ b/samples/ShortcutDemo/publisher/res/drawable-nodpi/icon_large_1.png
Binary files differ
diff --git a/samples/ShortcutDemo/publisher/res/drawable-nodpi/icon_large_2.png b/samples/ShortcutDemo/publisher/res/drawable-nodpi/icon_large_2.png
new file mode 100644
index 0000000..5913e24
--- /dev/null
+++ b/samples/ShortcutDemo/publisher/res/drawable-nodpi/icon_large_2.png
Binary files differ
diff --git a/samples/ShortcutDemo/publisher/res/drawable-nodpi/icon_large_3.png b/samples/ShortcutDemo/publisher/res/drawable-nodpi/icon_large_3.png
new file mode 100644
index 0000000..236ee69
--- /dev/null
+++ b/samples/ShortcutDemo/publisher/res/drawable-nodpi/icon_large_3.png
Binary files differ
diff --git a/samples/ShortcutDemo/publisher/res/layout/main.xml b/samples/ShortcutDemo/publisher/res/layout/main.xml
new file mode 100644
index 0000000..ff659e4
--- /dev/null
+++ b/samples/ShortcutDemo/publisher/res/layout/main.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT 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="fill_parent"
+        android:layout_height="fill_parent">
+    <Button
+        android:id="@+id/publish"
+        android:text="@string/publish"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:onClick="onPublishPressed"/>
+    <Button
+        android:id="@+id/add_shortcut"
+        android:text="@string/add_shortcut"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:onClick="onAddPressed"/>
+    <Button
+        android:id="@+id/update_shortcuts"
+        android:text="@string/update_shortcuts"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:onClick="onUpdatePressed"/>
+    <Button
+        android:id="@+id/delete_all"
+        android:text="@string/delete_all"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:onClick="onDeleteAllPressed"/>
+    <Button
+        android:id="@+id/show_notification"
+        android:text="@string/show_notification"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:onClick="onShowNotificationPressed"/>
+    <ListView
+        android:id="@android:id/list"
+        android:layout_width="match_parent"
+        android:layout_height="0dip"
+        android:layout_weight="1"
+        android:enabled="true"
+    />
+</LinearLayout>
+
+
diff --git a/samples/ShortcutDemo/publisher/res/values-ja/strings.xml b/samples/ShortcutDemo/publisher/res/values-ja/strings.xml
new file mode 100644
index 0000000..6f9eefa
--- /dev/null
+++ b/samples/ShortcutDemo/publisher/res/values-ja/strings.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT 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 xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <add-resource type="string" name="publish"/>
+    <string name="publish">ショートカット生成</string>
+
+    <add-resource type="string" name="add_shortcut"/>
+    <string name="add_shortcut">ショートカット追加</string>
+
+    <add-resource type="string" name="update_shortcuts"/>
+    <string name="update_shortcuts">ショートカット更新</string>
+
+    <add-resource type="string" name="delete_all"/>
+    <string name="delete_all">全ダイナミックショートカット削除</string>
+
+    <add-resource type="string" name="shortcut_short_text1"/>
+    <string name="shortcut_short_text1">マニフェストショートカット</string>
+
+    <add-resource type="string" name="shortcut_long_text1"/>
+    <string name="shortcut_long_text1">[長いラベル] マニフェストショートカット</string>
+
+    <add-resource type="string" name="shortcut_disabled_message1"/>
+    <string name="shortcut_disabled_message1">ショートカットは使用不可</string>
+
+    <add-resource type="string" name="shortcut_short_text2"/>
+    <string name="shortcut_short_text2">ショートカット2</string>
+
+    <add-resource type="string" name="shortcut_long_text2"/>
+    <string name="shortcut_long_text2">[長いラベル] ショートカット2</string>
+
+    <add-resource type="string" name="shortcut_disabled_message2"/>
+    <string name="shortcut_disabled_message2">無効</string>
+
+    <add-resource type="string" name="show_notification"/>
+    <string name="show_notification">通知を表示</string>
+
+</resources>
diff --git a/samples/ShortcutDemo/publisher/res/values/strings.xml b/samples/ShortcutDemo/publisher/res/values/strings.xml
new file mode 100644
index 0000000..6ee5b88
--- /dev/null
+++ b/samples/ShortcutDemo/publisher/res/values/strings.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT 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 xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <add-resource type="string" name="publish"/>
+    <string name="publish">Publish shortcuts</string>
+
+    <add-resource type="string" name="add_shortcut"/>
+    <string name="add_shortcut">Add shortcut</string>
+
+    <add-resource type="string" name="update_shortcuts"/>
+    <string name="update_shortcuts">Update shortcuts</string>
+
+    <add-resource type="string" name="delete_all"/>
+    <string name="delete_all">Delete all dynamic shortcuts</string>
+
+    <add-resource type="string" name="shortcut_short_text1"/>
+    <string name="shortcut_short_text1">Manifest Shortcut</string>
+
+    <add-resource type="string" name="shortcut_long_text1"/>
+    <string name="shortcut_long_text1">Subtext for manifest shortcut</string>
+
+    <add-resource type="string" name="shortcut_disabled_message1"/>
+    <string name="shortcut_disabled_message1">No longer exists</string>
+
+    <add-resource type="string" name="shortcut_short_text2"/>
+    <string name="shortcut_short_text2">Shortcut2</string>
+
+    <add-resource type="string" name="shortcut_long_text2"/>
+    <string name="shortcut_long_text2">Sample manifest shortcut 2</string>
+
+    <add-resource type="string" name="shortcut_disabled_message2"/>
+    <string name="shortcut_disabled_message2">Disabled</string>
+
+    <add-resource type="string" name="show_notification"/>
+    <string name="show_notification">Show notification</string>
+
+</resources>
diff --git a/samples/ShortcutDemo/publisher/res/xml/shortcuts.xml b/samples/ShortcutDemo/publisher/res/xml/shortcuts.xml
new file mode 100644
index 0000000..4699441
--- /dev/null
+++ b/samples/ShortcutDemo/publisher/res/xml/shortcuts.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<shortcuts xmlns:android="http://schemas.android.com/apk/res/android" >
+    <shortcut
+        android:shortcutId="manifest-shortcut-1"
+        android:enabled="true"
+        android:icon="@drawable/icon1"
+        android:shortcutShortLabel="@string/shortcut_short_text1"
+        android:shortcutLongLabel="@string/shortcut_long_text1"
+        android:shortcutDisabledMessage="@string/shortcut_disabled_message1"
+        >
+        <intent
+            android:action="android.intent.action.VIEW"
+            android:data="http://www.google.com/"
+            />
+        <categories android:name="android.shortcut.conversation" />
+        <categories android:name="android.shortcut.media" />
+    </shortcut>
+    <shortcut
+        android:shortcutId="manifest-shortcut-2"
+        android:enabled="true"
+        android:icon="@drawable/icon2"
+        android:shortcutShortLabel="@string/shortcut_short_text2"
+        android:shortcutLongLabel="@string/shortcut_long_text2"
+        android:shortcutDisabledMessage="@string/shortcut_disabled_message2"
+        >
+        <intent
+            android:action="android.intent.action.DIAL"
+            android:data="tel:555"
+            />
+        <categories android:name="android.shortcut.conversation" />
+    </shortcut>
+</shortcuts>
diff --git a/samples/ShortcutDemo/publisher/res/xml/shortcuts2.xml b/samples/ShortcutDemo/publisher/res/xml/shortcuts2.xml
new file mode 100644
index 0000000..8dbc90a
--- /dev/null
+++ b/samples/ShortcutDemo/publisher/res/xml/shortcuts2.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<shortcuts xmlns:android="http://schemas.android.com/apk/res/android" >
+    <shortcut
+        android:shortcutId="manifest-shortcut-xyz"
+        android:icon="@drawable/icon_large_1"
+        android:shortcutShortLabel="@string/shortcut_short_text1"
+        >
+        <intent
+            android:action="android.intent.action.VIEW"
+            android:data="http://www.google.com/"
+            />
+    </shortcut>
+</shortcuts>
diff --git a/samples/ShortcutDemo/publisher/res1/values/strings.xml b/samples/ShortcutDemo/publisher/res1/values/strings.xml
new file mode 100644
index 0000000..af12500
--- /dev/null
+++ b/samples/ShortcutDemo/publisher/res1/values/strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT 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 xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_title">[P1] Shortcuts Demo</string>
+    <string name="activity_alias_label">[P1] Shortcuts Demo Alias</string>
+</resources>
diff --git a/samples/ShortcutDemo/publisher/res2/values/strings.xml b/samples/ShortcutDemo/publisher/res2/values/strings.xml
new file mode 100644
index 0000000..daede92
--- /dev/null
+++ b/samples/ShortcutDemo/publisher/res2/values/strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT 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 xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_title">[P2] Shortcuts Demo</string>
+    <string name="activity_alias_label">[P2] Shortcuts Demo Alias</string>
+</resources>
diff --git a/samples/ShortcutDemo/publisher/src/com/example/android/pm/shortcutdemo/ShortcutPublisher.java b/samples/ShortcutDemo/publisher/src/com/example/android/pm/shortcutdemo/ShortcutPublisher.java
new file mode 100644
index 0000000..5dc8559
--- /dev/null
+++ b/samples/ShortcutDemo/publisher/src/com/example/android/pm/shortcutdemo/ShortcutPublisher.java
@@ -0,0 +1,355 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.pm.shortcutdemo;
+
+import android.app.Activity;
+import android.app.Notification;
+import android.app.Notification.Action;
+import android.app.Notification.Builder;
+import android.app.NotificationManager;
+import android.app.PendingIntent;
+import android.app.RemoteInput;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.ShortcutInfo;
+import android.content.pm.ShortcutManager;
+import android.graphics.BitmapFactory;
+import android.graphics.drawable.Icon;
+import android.net.Uri;
+import android.os.Bundle;
+import android.text.format.Time;
+import android.util.ArrayMap;
+import android.util.Log;
+import android.util.Pair;
+import android.view.View;
+import android.widget.ListView;
+import android.widget.Toast;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+import java.util.Map;
+import java.util.Random;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.function.BooleanSupplier;
+
+public class ShortcutPublisher extends Activity {
+    public static final String TAG = "ShortcutDemo";
+
+    private static final String SETUP_SHORTCUT_ID = "setup";
+
+    private ShortcutManager mShortcutManager;
+
+    private ListView mList;
+    private MyAdapter mAdapter;
+
+    private static final Random sRandom = new Random();
+
+    private static final AtomicInteger sSequenceNumber = new AtomicInteger();
+
+    private ComponentName mMyActivity;
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        setContentView(R.layout.main);
+
+        mShortcutManager = getSystemService(ShortcutManager.class);
+
+        mMyActivity = getIntent().getComponent();
+        if (mMyActivity == null) {
+            mMyActivity = new ComponentName(this, ShortcutPublisher.class);
+        }
+
+        mList = (ListView) findViewById(android.R.id.list);
+        mAdapter = new MyAdapter(this);
+        mList.setAdapter(mAdapter);
+
+        Log.d(TAG, "intent=" + getIntent());
+        Log.d(TAG, "extras=" + getIntent().getExtras());
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+
+        refreshList();
+    }
+
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+    }
+
+    private List<ShortcutInfo> getAllShortcuts() {
+        final Map<String, ShortcutInfo> map = new ArrayMap<>();
+        for (ShortcutInfo si : mShortcutManager.getManifestShortcuts()) {
+            if (!si.getActivity().equals(mMyActivity)) continue;
+            if (!map.containsKey(si.getId())) {
+                map.put(si.getId(), si);
+            }
+        }
+        for (ShortcutInfo si : mShortcutManager.getDynamicShortcuts()) {
+            if (!si.getActivity().equals(mMyActivity)) continue;
+            if (!map.containsKey(si.getId())) {
+                map.put(si.getId(), si);
+            }
+        }
+        for (ShortcutInfo si : mShortcutManager.getPinnedShortcuts()) {
+            if (!si.getActivity().equals(mMyActivity)) continue;
+            if (!map.containsKey(si.getId())) {
+                map.put(si.getId(), si);
+            }
+        }
+        return new ArrayList<>(map.values());
+    }
+
+    private void refreshList() {
+        final List<ShortcutInfo> list = getAllShortcuts();
+        Collections.sort(list, mShortcutComparator);
+        mAdapter.setShortcuts(list);
+    }
+
+    private final Comparator<ShortcutInfo> mShortcutComparator =
+            (ShortcutInfo s1, ShortcutInfo s2) -> {
+                int ret = 0;
+                ret = (s1.isDeclaredInManifest() ? 0 : 1) - (s2.isDeclaredInManifest() ? 0 : 1);
+                if (ret != 0) return ret;
+
+                ret = (s1.isDynamic() ? 0 : 1) - (s2.isDynamic() ? 0 : 1);
+                if (ret != 0) return ret;
+
+                ret = s1.getId().compareTo(s2.getId());
+                if (ret != 0) return ret;
+
+                return 0;
+            };
+
+    private void dumpCurrentShortcuts() {
+        Log.d(TAG, "Dynamic shortcuts:");
+        for (ShortcutInfo si : mShortcutManager.getDynamicShortcuts()) {
+            Log.d(TAG, "  " + si.toString());
+        }
+        Log.d(TAG, "Pinned shortcuts:");
+        for (ShortcutInfo si : mShortcutManager.getPinnedShortcuts()) {
+            Log.d(TAG, "  " + si.toString());
+        }
+    }
+
+    private static void showToast(Context context, String message) {
+        Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
+    }
+
+    private static void showThrottledToast(Context context) {
+        showToast(context,
+                "Throttled, use \"adb shell cmd shortcut reset-throttling\" to reset counters");
+    }
+
+    public static void callApi(Context context, BooleanSupplier call) {
+        try {
+            if (!call.getAsBoolean()) {
+                showThrottledToast(context);
+            }
+        } catch (RuntimeException r) {
+            Log.w(TAG, r.getMessage(), r);
+            showToast(context, r.getMessage());
+        }
+    }
+
+    private static List<Pair<String, String>> sIntentList = Arrays.asList(
+            Pair.create("Google Search", "http://www.google.com"),
+            Pair.create("Google Mail", "http://mail.google.com"),
+            Pair.create("Google Maps", "http://maps.google.com"),
+            Pair.create("Google Drive", "http://drive.google.com"),
+            Pair.create("Google Photos", "http://photos.google.com"),
+            Pair.create("Google Hangouts", "http://hangouts.google.com"),
+            Pair.create("Google+", "http://plus.google.com")
+    );
+
+    public static ShortcutInfo.Builder addRandomIntents(Context context, ShortcutInfo.Builder b) {
+        final int i = sRandom.nextInt(sIntentList.size());
+        b.setShortLabel(sIntentList.get(i).first);
+        b.setIntent(new Intent(Intent.ACTION_VIEW, Uri.parse(sIntentList.get(i).second)));
+        b.setIcon(Icon.createWithResource(context, R.drawable.icon2));
+        return b;
+    }
+
+    public void onPublishPressed(View view) {
+        dumpCurrentShortcuts();
+        final Icon icon2 = Icon.createWithBitmap(BitmapFactory.decodeResource(getResources(),
+                R.drawable.icon_large_2));
+        final Icon icon3 = Icon.createWithResource(this, R.drawable.icon_large_3);
+
+        final Intent intent2 = new Intent(Intent.ACTION_VIEW);
+        intent2.setClass(this, ShortcutPublisher.class);
+
+        final Intent intent3 = new Intent(Intent.ACTION_VIEW);
+        intent3.setClass(this, ShortcutPublisher.class);
+        intent3.putExtra("str", "str-value");
+        intent3.putExtra("nest", new Bundle());
+        intent3.getBundleExtra("nest").putInt("int", 123);
+
+        final ShortcutInfo si1 = addRandomIntents(this, new ShortcutInfo.Builder(this, "shortcut1"))
+                .setActivity(mMyActivity)
+                .build();
+
+        final ShortcutInfo si2 = new ShortcutInfo.Builder(this, SETUP_SHORTCUT_ID)
+                .setActivity(mMyActivity)
+                .setShortLabel("Shortcut Demo Main")
+                .setIcon(icon2)
+                .setIntent(intent2)
+                .build();
+
+        final ShortcutInfo si3 = new ShortcutInfo.Builder(this, "shortcut3")
+                .setActivity(mMyActivity)
+                .setShortLabel("Shortcut Demo Main with extras")
+                .setIcon(icon3)
+                .setIntent(intent3)
+                .build();
+
+        callApi(this, () -> mShortcutManager.setDynamicShortcuts(Arrays.asList(si1, si2, si3)));
+        refreshList();
+    }
+
+    public void onDeleteAllPressed(View view) {
+        callApi(this, () -> {
+            mShortcutManager.removeAllDynamicShortcuts();
+            return true;
+        });
+        refreshList();
+    }
+
+    static String formatTime(long time) {
+        Time tobj = new Time();
+        tobj.set(time);
+        return tobj.format("%Y-%m-%d %H:%M:%S");
+    }
+
+    public void onAddPressed(View view) {
+        final ShortcutInfo si = addRandomIntents(this, new ShortcutInfo.Builder(this,
+                    "shortcut-" + formatTime(System.currentTimeMillis()) + "-"
+                        + sSequenceNumber.getAndIncrement()))
+                .setActivity(mMyActivity)
+                .build();
+        callApi(this, () -> mShortcutManager.addDynamicShortcuts(Arrays.asList(si)));
+        refreshList();
+    }
+
+    public void onUpdatePressed(View view) {
+        final List updateList = new ArrayList<>();
+
+        for (ShortcutInfo si : getAllShortcuts()) {
+            if (SETUP_SHORTCUT_ID.equals(si.getId())) continue;
+            if (si.isImmutable()) continue;
+            if (!si.getActivity().equals(mMyActivity)) continue;
+            updateList.add(addRandomIntents(this, new ShortcutInfo.Builder(this, si.getId()))
+                    .build());
+        }
+        callApi(this, () -> mShortcutManager.updateShortcuts(updateList));
+        refreshList();
+    }
+
+    void launch(ShortcutInfo si) {
+        startActivity(si.getIntent());
+    }
+
+    void deleteDynamic(ShortcutInfo si) {
+        mShortcutManager.removeDynamicShortcuts(Arrays.asList(si.getId()));
+        refreshList();
+    }
+
+    public void onShowNotificationPressed(View v) {
+        final PendingIntent receiverIntent =
+                PendingIntent.getBroadcast(this, 0,
+                        new Intent().setComponent(new ComponentName(this, ShortcutReceiver.class)),
+                        PendingIntent.FLAG_UPDATE_CURRENT);
+        final RemoteInput ri = new RemoteInput.Builder("result").setLabel("Remote input").build();
+
+        final Notification.Builder nb = new Builder(this)
+                .setContentText("Test")
+                .setContentTitle(getPackageName())
+                .setSmallIcon(R.drawable.icon_large_2)
+                .addAction(new Action.Builder(0, "Remote input", receiverIntent)
+                        .addRemoteInput(ri)
+                        .build());
+        getSystemService(NotificationManager.class).notify(0, nb.build());
+    }
+
+    class MyAdapter extends ShortcutAdapter {
+        public MyAdapter(Context context) {
+            super(context);
+        }
+
+        @Override
+        protected int getLayoutId() {
+            return R.layout.list_item;
+        }
+
+        @Override
+        protected int getText1Id() {
+            return R.id.line1;
+        }
+
+        @Override
+        protected int getText2Id() {
+            return R.id.line2;
+        }
+
+        @Override
+        protected int getImageId() {
+            return R.id.image;
+        }
+
+        @Override
+        protected int getLaunchId() {
+            return R.id.launch;
+        }
+
+        @Override
+        protected int getAction2Id() {
+            return R.id.action2;
+        }
+
+        @Override
+        protected boolean showLaunch(ShortcutInfo si) {
+            return true;
+        }
+
+        @Override
+        protected boolean showAction2(ShortcutInfo si) {
+            return si.isDynamic(); // TODO Need disable too.
+        }
+
+        @Override
+        protected String getAction2Text(ShortcutInfo si) {
+            return "Delete";
+        }
+
+        @Override
+        protected void onLaunchClicked(ShortcutInfo si) {
+            launch(si);
+        }
+
+        @Override
+        protected void onAction2Clicked(ShortcutInfo si) {
+            deleteDynamic(si);
+        }
+    }
+}
diff --git a/samples/ShortcutDemo/publisher/src/com/example/android/pm/shortcutdemo/ShortcutPublishingService.java b/samples/ShortcutDemo/publisher/src/com/example/android/pm/shortcutdemo/ShortcutPublishingService.java
new file mode 100644
index 0000000..3e20094
--- /dev/null
+++ b/samples/ShortcutDemo/publisher/src/com/example/android/pm/shortcutdemo/ShortcutPublishingService.java
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.pm.shortcutdemo;
+
+import android.app.IntentService;
+import android.content.ComponentName;
+import android.content.Intent;
+import android.content.pm.ShortcutInfo;
+import android.content.pm.ShortcutManager;
+
+import java.util.Arrays;
+
+/**
+ * This allows to create a shortcut in background.
+ *
+ * Usage:
+   adb shell am startservice -a com.example.android.pm.shortcutdemo.ADD \
+     com.example.android.pm.shortcutdemo/com.example.android.pm.shortcutdemo.ShortcutPublishingService
+ * Or for package 2,
+   adb shell am startservice -a com.example.android.pm.shortcutdemo.ADD \
+     com.example.android.pm.shortcutdemo2/com.example.android.pm.shortcutdemo.ShortcutPublishingService
+
+ */
+public class ShortcutPublishingService extends IntentService {
+    public ShortcutPublishingService() {
+        super("ShortcutPublishingService");
+    }
+
+    @Override
+    protected void onHandleIntent(Intent intent) {
+        if (intent.getAction().endsWith(".ADD")) {
+            addShortcut();
+            return;
+        }
+    }
+
+    private void addShortcut() {
+        final ShortcutInfo si1 = ShortcutPublisher.addRandomIntents(
+                this, new ShortcutInfo.Builder(this, ("shortcut-" + System.currentTimeMillis())))
+                .build();
+        ShortcutPublisher.callApi(this, () ->
+            getSystemService(ShortcutManager.class).addDynamicShortcuts(Arrays.asList(si1)));
+    }
+}
diff --git a/samples/ShortcutDemo/publisher/src/com/example/android/pm/shortcutdemo/ShortcutReceiver.java b/samples/ShortcutDemo/publisher/src/com/example/android/pm/shortcutdemo/ShortcutReceiver.java
new file mode 100644
index 0000000..779244f
--- /dev/null
+++ b/samples/ShortcutDemo/publisher/src/com/example/android/pm/shortcutdemo/ShortcutReceiver.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.pm.shortcutdemo;
+
+import android.app.NotificationManager;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.util.Log;
+
+public class ShortcutReceiver extends BroadcastReceiver {
+    private static final String TAG = "ShortcutReceiver";
+
+    @Override
+    public void onReceive(Context context, Intent intent) {
+        Log.i(TAG, "Received: " + intent);
+        context.getSystemService(NotificationManager.class).cancelAll();
+    }
+}
diff --git a/samples/ShortcutSample/Android.mk b/samples/ShortcutSample/Android.mk
new file mode 100644
index 0000000..83a9d1b
--- /dev/null
+++ b/samples/ShortcutSample/Android.mk
@@ -0,0 +1,34 @@
+#
+# Copyright (C) 2016 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# We build two apps from the same source
+
+LOCAL_PATH:= $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_PACKAGE_NAME := ShortcutSample
+
+LOCAL_MODULE_TAGS := samples tests
+
+LOCAL_SRC_FILES := $(call all-java-files-under, src)
+
+LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
+
+# TODO Change to 25
+LOCAL_SDK_VERSION := current
+
+include $(BUILD_PACKAGE)
diff --git a/samples/ShortcutSample/AndroidManifest.xml b/samples/ShortcutSample/AndroidManifest.xml
new file mode 100644
index 0000000..88b0544
--- /dev/null
+++ b/samples/ShortcutSample/AndroidManifest.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT 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.shortcutsample">
+
+    <uses-sdk android:minSdkVersion="25" />
+
+    <application
+        android:label="@string/app_name"
+        android:icon="@drawable/app"
+        android:resizeableActivity="true">
+
+        <activity android:name="Main">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+            <meta-data android:name="android.app.shortcuts" android:resource="@xml/shortcuts"/>
+        </activity>
+        <receiver android:name="MyReceiver">
+            <intent-filter>
+                <action android:name="android.intent.action.LOCALE_CHANGED" />
+            </intent-filter>
+        </receiver>
+    </application>
+</manifest>
diff --git a/samples/ShortcutSample/res/drawable-nodpi/add.png b/samples/ShortcutSample/res/drawable-nodpi/add.png
new file mode 100644
index 0000000..86a2ebd
--- /dev/null
+++ b/samples/ShortcutSample/res/drawable-nodpi/add.png
Binary files differ
diff --git a/samples/ShortcutSample/res/drawable-nodpi/app.png b/samples/ShortcutSample/res/drawable-nodpi/app.png
new file mode 100644
index 0000000..39ca2f9
--- /dev/null
+++ b/samples/ShortcutSample/res/drawable-nodpi/app.png
Binary files differ
diff --git a/samples/ShortcutSample/res/drawable-nodpi/link.png b/samples/ShortcutSample/res/drawable-nodpi/link.png
new file mode 100644
index 0000000..c4297c4
--- /dev/null
+++ b/samples/ShortcutSample/res/drawable-nodpi/link.png
Binary files differ
diff --git a/samples/ShortcutSample/res/layout/list_item.xml b/samples/ShortcutSample/res/layout/list_item.xml
new file mode 100644
index 0000000..f7129a8
--- /dev/null
+++ b/samples/ShortcutSample/res/layout/list_item.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT 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="wrap_content"
+    android:orientation="horizontal"
+>
+    <LinearLayout
+        android:layout_width="0dip"
+        android:layout_height="wrap_content"
+        android:layout_weight="1"
+        android:layout_gravity="center_vertical"
+        android:orientation="vertical"
+        android:paddingLeft="8dip"
+        >
+        <TextView
+            android:id="@+id/line1"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:textColor="#000000"
+            android:textSize="16sp"
+            />
+        <TextView
+            android:id="@+id/line2"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:textColor="#444444"
+        />
+    </LinearLayout>
+    <Button
+        android:id="@+id/remove"
+        android:text="@string/remove_shortcut"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center"
+        android:gravity="center"
+        android:visibility="visible"
+        style="@android:style/Widget.Material.Button.Borderless"/>
+    <Button
+        android:id="@+id/disable"
+        android:text="@string/disable_shortcut"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center"
+        android:gravity="center"
+        android:visibility="visible"
+        style="@android:style/Widget.Material.Button.Borderless"/>
+</LinearLayout>
\ No newline at end of file
diff --git a/samples/ShortcutSample/res/layout/main.xml b/samples/ShortcutSample/res/layout/main.xml
new file mode 100644
index 0000000..2d87c07
--- /dev/null
+++ b/samples/ShortcutSample/res/layout/main.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT 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="fill_parent"
+        android:layout_height="fill_parent">
+    <Button
+        android:id="@+id/add"
+        android:text="@string/add_new_website"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:onClick="onAddPressed"/>
+    <TextView
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:textColor="#444444"
+        android:text="@string/existing_shortcuts"
+    />
+    <ListView
+        android:id="@android:id/list"
+        android:layout_width="match_parent"
+        android:layout_height="0dip"
+        android:layout_weight="1"
+        android:enabled="true"
+    />
+</LinearLayout>
+
+
diff --git a/samples/ShortcutSample/res/values-ja/strings.xml b/samples/ShortcutSample/res/values-ja/strings.xml
new file mode 100644
index 0000000..bfc9a1a
--- /dev/null
+++ b/samples/ShortcutSample/res/values-ja/strings.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT 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 xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name">ショートカットサンプル</string>
+    <string name="add_new_website">ウェブサイト追加</string>
+    <string name="add_new_website_short">追加</string>
+    <string name="existing_shortcuts">既存のショートカット:</string>
+    <string name="remove_shortcut">削除</string>
+    <string name="disable_shortcut">無効</string>
+    <string name="enable_shortcut">有効</string>
+</resources>
diff --git a/samples/ShortcutSample/res/values/strings.xml b/samples/ShortcutSample/res/values/strings.xml
new file mode 100644
index 0000000..a9ffe9d
--- /dev/null
+++ b/samples/ShortcutSample/res/values/strings.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT 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 xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name">Shortcut Sample</string>
+    <string name="add_new_website">Add New Website</string>
+    <string name="add_new_website_short">Add Website</string>
+    <string name="existing_shortcuts">Existing shortcuts:</string>
+    <string name="remove_shortcut">Remove</string>
+    <string name="disable_shortcut">Disable</string>
+    <string name="enable_shortcut">Enable</string>
+</resources>
diff --git a/samples/ShortcutSample/res/xml/shortcuts.xml b/samples/ShortcutSample/res/xml/shortcuts.xml
new file mode 100644
index 0000000..e7243ed
--- /dev/null
+++ b/samples/ShortcutSample/res/xml/shortcuts.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<shortcuts xmlns:android="http://schemas.android.com/apk/res/android" >
+    <shortcut
+        android:shortcutId="add_website"
+        android:icon="@drawable/add"
+        android:shortcutShortLabel="@string/add_new_website_short"
+        android:shortcutLongLabel="@string/add_new_website"
+        >
+        <intent
+            android:action="com.example.android.shortcutsample.ADD_WEBSITE"
+            android:targetPackage="com.example.android.shortcutsample"
+            android:targetClass="com.example.android.shortcutsample.Main"
+            />
+    </shortcut>
+</shortcuts>
diff --git a/samples/ShortcutSample/src/com/example/android/shortcutsample/Main.java b/samples/ShortcutSample/src/com/example/android/shortcutsample/Main.java
new file mode 100644
index 0000000..41f0b2b
--- /dev/null
+++ b/samples/ShortcutSample/src/com/example/android/shortcutsample/Main.java
@@ -0,0 +1,234 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.shortcutsample;
+
+import android.app.AlertDialog;
+import android.app.ListActivity;
+import android.content.Context;
+import android.content.pm.ShortcutInfo;
+import android.os.Bundle;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.view.ViewGroup;
+import android.view.inputmethod.EditorInfo;
+import android.widget.BaseAdapter;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.TextView;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class Main extends ListActivity implements OnClickListener {
+    static final String TAG = "ShortcutSample";
+
+    private static final String ID_ADD_WEBSITE = "add_website";
+
+    private static final String ACTION_ADD_WEBSITE =
+            "com.example.android.shortcutsample.ADD_WEBSITE";
+
+    private MyAdapter mAdapter;
+
+    private ShortcutHelper mHelper;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        setContentView(R.layout.main);
+
+        mHelper = new ShortcutHelper(this);
+
+        mHelper.maybeRestoreAllDynamicShortcuts();
+
+        mHelper.refreshShortcuts(/*force=*/ false);
+
+        if (ACTION_ADD_WEBSITE.equals(getIntent().getAction())) {
+            // Invoked via the manifest shortcut.
+            addWebSite();
+        }
+
+        mAdapter = new MyAdapter(this.getApplicationContext());
+        setListAdapter(mAdapter);
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+        refreshList();
+    }
+
+    /**
+     * Handle the add button.
+     */
+    public void onAddPressed(View v) {
+        addWebSite();
+    }
+
+    private void addWebSite() {
+        Log.i(TAG, "addWebSite");
+
+        // This is important.  This allows the launcher to build a prediction model.
+        mHelper.reportShortcutUsed(ID_ADD_WEBSITE);
+
+        final EditText editUri = new EditText(this);
+
+        editUri.setHint("http://www.android.com/");
+        editUri.setInputType(EditorInfo.TYPE_TEXT_VARIATION_URI);
+
+        new AlertDialog.Builder(this)
+                .setTitle("Add new website")
+                .setMessage("Type URL of a website")
+                .setView(editUri)
+                .setPositiveButton("Add", (dialog, whichButton) -> {
+                    final String url = editUri.getText().toString().trim();
+                    if (url.length() > 0) {
+                        mHelper.addWebSiteShortcut(url);
+                        refreshList();
+                    }
+                })
+                .show();
+    }
+
+    private void refreshList() {
+        mAdapter.setShortcuts(mHelper.getShortcuts());
+    }
+
+    @Override
+    public void onClick(View v) {
+        final ShortcutInfo shortcut = (ShortcutInfo) ((View) v.getParent()).getTag();
+
+        switch (v.getId()) {
+            case R.id.disable:
+                if (shortcut.isEnabled()) {
+                    mHelper.disableShortcut(shortcut);
+                } else {
+                    mHelper.enableShortcut(shortcut);
+                }
+                refreshList();
+                break;
+            case R.id.remove:
+                mHelper.removeShortcut(shortcut);
+                refreshList();
+                break;
+        }
+    }
+
+    private static final List<ShortcutInfo> EMPTY_LIST = new ArrayList<>();
+
+    private String getType(ShortcutInfo shortcut) {
+        final StringBuilder sb = new StringBuilder();
+        String sep = "";
+        if (shortcut.isDynamic()) {
+            sb.append(sep);
+            sb.append("Dynamic");
+            sep = ", ";
+        }
+        if (shortcut.isPinned()) {
+            sb.append(sep);
+            sb.append("Pinned");
+            sep = ", ";
+        }
+        if (!shortcut.isEnabled()) {
+            sb.append(sep);
+            sb.append("Disabled");
+            sep = ", ";
+        }
+        return sb.toString();
+    }
+
+    private class MyAdapter extends BaseAdapter {
+        private final Context mContext;
+        private final LayoutInflater mInflater;
+        private List<ShortcutInfo> mList = EMPTY_LIST;
+
+        public MyAdapter(Context context) {
+            mContext = context;
+            mInflater = mContext.getSystemService(LayoutInflater.class);
+        }
+
+        @Override
+        public int getCount() {
+            return mList.size();
+        }
+
+        @Override
+        public Object getItem(int position) {
+            return mList.get(position);
+        }
+
+        @Override
+        public long getItemId(int position) {
+            return position;
+        }
+
+        @Override
+        public boolean hasStableIds() {
+            return false;
+        }
+
+        @Override
+        public boolean areAllItemsEnabled() {
+            return true;
+        }
+
+        @Override
+        public boolean isEnabled(int position) {
+            return true;
+        }
+
+        public void setShortcuts(List<ShortcutInfo> list) {
+            mList = list;
+            notifyDataSetChanged();
+        }
+
+        @Override
+        public View getView(int position, View convertView, ViewGroup parent) {
+            final View view;
+            if (convertView != null) {
+                view = convertView;
+            } else {
+                view = mInflater.inflate(R.layout.list_item, null);
+            }
+
+            bindView(view, position, mList.get(position));
+
+            return view;
+        }
+
+        public void bindView(View view, int position, ShortcutInfo shortcut) {
+            view.setTag(shortcut);
+
+            final TextView line1 = (TextView) view.findViewById(R.id.line1);
+            final TextView line2 = (TextView) view.findViewById(R.id.line2);
+
+            line1.setText(shortcut.getLongLabel());
+
+            line2.setText(getType(shortcut));
+
+            final Button remove = (Button) view.findViewById(R.id.remove);
+            final Button disable = (Button) view.findViewById(R.id.disable);
+
+            disable.setText(
+                    shortcut.isEnabled() ? R.string.disable_shortcut : R.string.enable_shortcut);
+
+            remove.setOnClickListener(Main.this);
+            disable.setOnClickListener(Main.this);
+        }
+    }
+}
diff --git a/samples/ShortcutSample/src/com/example/android/shortcutsample/MyReceiver.java b/samples/ShortcutSample/src/com/example/android/shortcutsample/MyReceiver.java
new file mode 100644
index 0000000..e09fe72
--- /dev/null
+++ b/samples/ShortcutSample/src/com/example/android/shortcutsample/MyReceiver.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.shortcutsample;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.util.Log;
+
+public class MyReceiver extends BroadcastReceiver {
+    private static final String TAG = Main.TAG;
+
+    @Override
+    public void onReceive(Context context, Intent intent) {
+        Log.i(TAG, "onReceive: " + intent);
+        if (Intent.ACTION_LOCALE_CHANGED.equals(intent.getAction())) {
+            // Refresh all shortcut to update the labels.
+            // (Right now shortcut labels don't contain localized strings though.)
+            new ShortcutHelper(context).refreshShortcuts(/*force=*/ true);
+        }
+    }
+}
diff --git a/samples/ShortcutSample/src/com/example/android/shortcutsample/ShortcutHelper.java b/samples/ShortcutSample/src/com/example/android/shortcutsample/ShortcutHelper.java
new file mode 100644
index 0000000..61c4f29
--- /dev/null
+++ b/samples/ShortcutSample/src/com/example/android/shortcutsample/ShortcutHelper.java
@@ -0,0 +1,212 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.shortcutsample;
+
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.ShortcutInfo;
+import android.content.pm.ShortcutManager;
+import android.graphics.drawable.Icon;
+import android.net.Uri;
+import android.os.AsyncTask;
+import android.os.PersistableBundle;
+import android.util.Log;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+import java.util.function.BooleanSupplier;
+
+public class ShortcutHelper {
+    private static final String TAG = Main.TAG;
+
+    private static final String EXTRA_LAST_REFRESH =
+            "com.example.android.shortcutsample.EXTRA_LAST_REFRESH";
+
+    private static final long REFRESH_INTERVAL_MS = 60 * 60 * 1000;
+
+    private final Context mContext;
+
+    private final ShortcutManager mShortcutManager;
+
+    public ShortcutHelper(Context context) {
+        mContext = context;
+        mShortcutManager = mContext.getSystemService(ShortcutManager.class);
+    }
+
+    public void maybeRestoreAllDynamicShortcuts() {
+        if (mShortcutManager.getDynamicShortcuts().size() == 0) {
+            // NOTE: If this application is always supposed to have dynamic shortcuts, then publish
+            // them here.
+            // Note when an application is "restored" on a new device, all dynamic shortcuts
+            // will *not* be restored but the pinned shortcuts *will*.
+        }
+    }
+
+    public void reportShortcutUsed(String id) {
+        mShortcutManager.reportShortcutUsed(id);
+    }
+
+    /**
+     * Use this when interacting with ShortcutManager to show consistent error messages.
+     */
+    private void callShortcutManager(BooleanSupplier r) {
+        try {
+            if (!r.getAsBoolean()) {
+                Utils.showToast(mContext, "Call to ShortcutManager is rate-limited");
+            }
+        } catch (Exception e) {
+            Log.e(TAG, "Caught Exception", e);
+            Utils.showToast(mContext, "Error while calling ShortcutManager: " + e.toString());
+        }
+    }
+
+    /**
+     * Return all mutable shortcuts from this app self.
+     */
+    public List<ShortcutInfo> getShortcuts() {
+        // Load mutable dynamic shortcuts and pinned shortcuts and put them into a single list
+        // removing duplicates.
+
+        final List<ShortcutInfo> ret = new ArrayList<>();
+        final HashSet<String> seenKeys = new HashSet<>();
+
+        // Check existing shortcuts shortcuts
+        for (ShortcutInfo shortcut : mShortcutManager.getDynamicShortcuts()) {
+            if (!shortcut.isImmutable()) {
+                ret.add(shortcut);
+                seenKeys.add(shortcut.getId());
+            }
+        }
+        for (ShortcutInfo shortcut : mShortcutManager.getPinnedShortcuts()) {
+            if (!shortcut.isImmutable() && !seenKeys.contains(shortcut.getId())) {
+                ret.add(shortcut);
+                seenKeys.add(shortcut.getId());
+            }
+        }
+        return ret;
+    }
+
+    /**
+     * Called when the activity starts.  Looks for shortcuts that have been pushed and refreshes
+     * them (but the refresh part isn't implemented yet...).
+     */
+    public void refreshShortcuts(boolean force) {
+        new AsyncTask<Void, Void, Void>() {
+            @Override
+            protected Void doInBackground(Void... params) {
+                Log.i(TAG, "refreshingShortcuts...");
+
+                final long now = System.currentTimeMillis();
+                final long staleThreshold = force ? now : now - REFRESH_INTERVAL_MS;
+
+                // Check all existing dynamic and pinned shortcut, and if their last refresh
+                // time is older than a certain threshold, update them.
+
+                final List<ShortcutInfo> updateList = new ArrayList<>();
+
+                for (ShortcutInfo shortcut : getShortcuts()) {
+                    if (shortcut.isImmutable()) {
+                        continue;
+                    }
+
+                    final PersistableBundle extras = shortcut.getExtras();
+                    if (extras != null && extras.getLong(EXTRA_LAST_REFRESH) >= staleThreshold) {
+                        // Shortcut still fresh.
+                        continue;
+                    }
+                    Log.i(TAG, "Refreshing shortcut: " + shortcut.getId());
+
+                    final ShortcutInfo.Builder b = new ShortcutInfo.Builder(
+                            mContext, shortcut.getId());
+
+                    setSiteInformation(b, shortcut.getIntent().getData());
+                    setExtras(b);
+
+                    updateList.add(b.build());
+                }
+                // Call update.
+                if (updateList.size() > 0) {
+                    callShortcutManager(() -> mShortcutManager.updateShortcuts(updateList));
+                }
+
+                return null;
+            }
+        }.execute();
+    }
+
+    private ShortcutInfo createShortcutForUrl(String urlAsString) {
+        Log.i(TAG, "createShortcutForUrl: " + urlAsString);
+
+        final ShortcutInfo.Builder b = new ShortcutInfo.Builder(mContext, urlAsString);
+
+        final Uri uri = Uri.parse(urlAsString);
+        b.setIntent(new Intent(Intent.ACTION_VIEW, uri));
+
+        setSiteInformation(b, uri);
+        setExtras(b);
+
+        return b.build();
+    }
+
+    private ShortcutInfo.Builder setSiteInformation(ShortcutInfo.Builder b, Uri uri) {
+        // TODO Get the actual site <title> and use it.
+        // TODO Set the current locale to accept-language to get localized title.
+        b.setShortLabel(uri.getHost());
+        b.setLongLabel(uri.toString());
+
+        // TODO Fetch the favicon from the URI and sets to the icon.
+        b.setIcon(Icon.createWithResource(mContext, R.drawable.link));
+
+        return b;
+    }
+
+    private ShortcutInfo.Builder setExtras(ShortcutInfo.Builder b) {
+        final PersistableBundle extras = new PersistableBundle();
+        extras.putLong(EXTRA_LAST_REFRESH, System.currentTimeMillis());
+        b.setExtras(extras);
+        return b;
+    }
+
+    private String normalizeUrl(String urlAsString) {
+        if (urlAsString.startsWith("http://") || urlAsString.startsWith("https://")) {
+            return urlAsString;
+        } else {
+            return "http://" + urlAsString;
+        }
+    }
+
+    public void addWebSiteShortcut(String urlAsString) {
+        final String uriFinal = urlAsString;
+        callShortcutManager(() -> {
+            final ShortcutInfo shortcut = createShortcutForUrl(normalizeUrl(uriFinal));
+            return mShortcutManager.addDynamicShortcuts(Arrays.asList(shortcut));
+        });
+    }
+
+    public void removeShortcut(ShortcutInfo shortcut) {
+        mShortcutManager.removeDynamicShortcuts(Arrays.asList(shortcut.getId()));
+    }
+
+    public void disableShortcut(ShortcutInfo shortcut) {
+        mShortcutManager.disableShortcuts(Arrays.asList(shortcut.getId()));
+    }
+
+    public void enableShortcut(ShortcutInfo shortcut) {
+        mShortcutManager.enableShortcuts(Arrays.asList(shortcut.getId()));
+    }
+}
diff --git a/samples/ShortcutSample/src/com/example/android/shortcutsample/Utils.java b/samples/ShortcutSample/src/com/example/android/shortcutsample/Utils.java
new file mode 100644
index 0000000..523f4dc
--- /dev/null
+++ b/samples/ShortcutSample/src/com/example/android/shortcutsample/Utils.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.shortcutsample;
+
+import android.content.Context;
+import android.content.pm.ShortcutInfo;
+import android.os.AsyncTask;
+import android.os.PersistableBundle;
+import android.util.Log;
+import android.widget.Toast;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class Utils {
+    private Utils() {
+    }
+
+    public static void showToast(Context context, String message) {
+        Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
+    }
+}
diff --git a/samples/Support13Demos/Android.mk b/samples/Support13Demos/Android.mk
deleted file mode 100644
index 68f3b1a..0000000
--- a/samples/Support13Demos/Android.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-include $(CLEAR_VARS)
-
-LOCAL_MODULE_TAGS := samples tests
-
-# Only compile source java files in this apk.
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-
-LOCAL_STATIC_JAVA_LIBRARIES += android-support-v13
-
-LOCAL_PACKAGE_NAME := Support13Demos
-
-LOCAL_SDK_VERSION := current
-
-LOCAL_MIN_SDK_VERSION := 13
-
-include $(BUILD_PACKAGE)
-
-# Use the folloing include to make our test apk.
-include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/samples/Support13Demos/AndroidManifest.xml b/samples/Support13Demos/AndroidManifest.xml
deleted file mode 100644
index dfa4e64..0000000
--- a/samples/Support13Demos/AndroidManifest.xml
+++ /dev/null
@@ -1,91 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<!-- Declare the contents of this Android application.  The namespace
-     attribute brings in the Android platform namespace, and the package
-     supplies a unique name for the application.  When writing your
-     own application, the package name must be changed from "com.example.*"
-     to come from a domain that you own or have control over. -->
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.example.android.supportv13">
-
-    <uses-permission android:name="android.permission.READ_CONTACTS" />
-
-    <uses-sdk android:minSdkVersion="13" />
-
-    <!-- The smallest screen this app works on is a phone.  The app will
-         scale its UI to larger screens but doesn't make good use of them
-         so allow the compatibility mode button to be shown (mostly because
-         this is just convenient for testing). -->
-    <supports-screens android:requiresSmallestWidthDp="320"
-            android:compatibleWidthLimitDp="480" />
-
-    <application android:label="@string/activity_sample_code"
-            android:icon="@drawable/app_sample_code"
-            android:hardwareAccelerated="true">
-
-        <activity android:name="Support13Demos">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.DEFAULT" />
-                <category android:name="android.intent.category.LAUNCHER" />
-            </intent-filter>
-        </activity>
-
-        <!-- Fragment Support Samples -->
-
-        <activity android:name=".app.FragmentNestingPagerSupport"
-                android:label="@string/fragment_nesting_pager_support">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv13.SUPPORT13_SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".app.FragmentNestingStatePagerSupport"
-                android:label="@string/fragment_nesting_state_pager_support">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv13.SUPPORT13_SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".app.FragmentPagerSupport"
-                android:label="@string/fragment_pager_support">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv13.SUPPORT13_SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".app.FragmentStatePagerSupport"
-                android:label="@string/fragment_state_pager_support">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv13.SUPPORT13_SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".app.ActionBarTabsPager"
-                android:label="@string/action_bar_tabs_pager">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv13.SUPPORT13_SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-    </application>
-</manifest>
diff --git a/samples/Support13Demos/_index.html b/samples/Support13Demos/_index.html
deleted file mode 100644
index f913a99..0000000
--- a/samples/Support13Demos/_index.html
+++ /dev/null
@@ -1,26 +0,0 @@
-<p>The Support v13 Demos application contains a variety of small sample
-code showing how to use key features of the Android API 13+ Support Library.
-This library contains code that you can
-build in to your application to access new features and common
-utilities while being able to run down to version 3.2 (API 13)
-of the platform.
-</p>
-
-<script type="text/javascript">
-
-// This is a totally temporary hack to display the following content only
-// when the docs are online. This will be changed once the samples get moved.
-
-if (toRoot == "/") {
-
-document.write(""+
-"<p>You'll notice that all the samples are included in a single Android "+
-"project, so the application code and other resource files for all samples are batched "+
-"together. Current samples are only for the fragment and loader in the "+
-"application part of the support library:</p>"+
-
-"<ul><li><a href='src/com/example/android/supportv13/app/index.html'>App</a></li></ul>");
-
-}
-
-</script>
diff --git a/samples/Support13Demos/res/drawable-hdpi/alert_dialog_icon.png b/samples/Support13Demos/res/drawable-hdpi/alert_dialog_icon.png
deleted file mode 100755
index fe54477..0000000
--- a/samples/Support13Demos/res/drawable-hdpi/alert_dialog_icon.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support13Demos/res/drawable-hdpi/app_sample_code.png b/samples/Support13Demos/res/drawable-hdpi/app_sample_code.png
deleted file mode 100755
index 66a1984..0000000
--- a/samples/Support13Demos/res/drawable-hdpi/app_sample_code.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support13Demos/res/drawable-mdpi/alert_dialog_icon.png b/samples/Support13Demos/res/drawable-mdpi/alert_dialog_icon.png
deleted file mode 100644
index 0a7de04..0000000
--- a/samples/Support13Demos/res/drawable-mdpi/alert_dialog_icon.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support13Demos/res/drawable-mdpi/app_sample_code.png b/samples/Support13Demos/res/drawable-mdpi/app_sample_code.png
deleted file mode 100644
index 5ae7701..0000000
--- a/samples/Support13Demos/res/drawable-mdpi/app_sample_code.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support13Demos/res/layout/counting.xml b/samples/Support13Demos/res/layout/counting.xml
deleted file mode 100644
index 7d37c37..0000000
--- a/samples/Support13Demos/res/layout/counting.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<!-- Demonstrates basic application screen.
-     See corresponding Java code com.android.sdk.app.HelloWorld.java. -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:orientation="vertical"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:background="@android:drawable/gallery_thumb">
-    <TextView android:id="@+id/text"
-        android:layout_width="match_parent" android:layout_height="wrap_content"
-        android:gravity="center_vertical|center_horizontal"
-        android:textAppearance="?android:attr/textAppearanceMedium"
-        android:text="@string/hello_world"/>
-    <CheckBox android:id="@+id/menu1"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_gravity="center"
-        android:checked="true"
-        android:text="@string/retained">
-    </CheckBox>
-</LinearLayout>
diff --git a/samples/Support13Demos/res/layout/fragment_pager.xml b/samples/Support13Demos/res/layout/fragment_pager.xml
deleted file mode 100644
index 3fe844d..0000000
--- a/samples/Support13Demos/res/layout/fragment_pager.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<!-- Top-level content view for the simple fragment sample. -->
-
-<!-- BEGIN_INCLUDE(complete) -->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-        android:orientation="vertical" android:padding="4dip"
-        android:gravity="center_horizontal"
-        android:layout_width="match_parent" android:layout_height="match_parent">
-
-    <android.support.v4.view.ViewPager
-            android:id="@+id/pager"
-            android:layout_width="match_parent"
-            android:layout_height="0px"
-            android:layout_weight="1">
-    </android.support.v4.view.ViewPager>
-
-    <LinearLayout android:orientation="horizontal"
-            android:gravity="center" android:measureWithLargestChild="true"
-            android:layout_width="match_parent" android:layout_height="wrap_content"
-            android:layout_weight="0">
-        <Button android:id="@+id/goto_first"
-            android:layout_width="wrap_content" android:layout_height="wrap_content"
-            android:text="@string/first">
-        </Button>
-        <Button android:id="@+id/goto_last"
-            android:layout_width="wrap_content" android:layout_height="wrap_content"
-            android:text="@string/last">
-        </Button>
-    </LinearLayout>
-</LinearLayout>
-<!-- END_INCLUDE(complete) -->
diff --git a/samples/Support13Demos/res/layout/fragment_pager_list.xml b/samples/Support13Demos/res/layout/fragment_pager_list.xml
deleted file mode 100644
index 189cfff..0000000
--- a/samples/Support13Demos/res/layout/fragment_pager_list.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<!-- BEGIN_INCLUDE(complete) -->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:orientation="vertical"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:background="@android:drawable/gallery_thumb">
-
-    <TextView android:id="@+id/text"
-        android:layout_width="match_parent" android:layout_height="wrap_content"
-        android:gravity="center_vertical|center_horizontal"
-        android:textAppearance="?android:attr/textAppearanceMedium"
-        android:text="@string/hello_world"/>
-
-    <!-- The frame layout is here since we will be showing either
-    the empty view or the list view.  -->
-    <FrameLayout
-        android:layout_width="match_parent"
-        android:layout_height="0dip"
-        android:layout_weight="1" >
-        <!-- Here is the list. Since we are using a ListActivity, we
-             have to call it "@android:id/list" so ListActivity will
-             find it -->
-        <ListView android:id="@android:id/list"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:drawSelectorOnTop="false"/>
-
-        <!-- Here is the view to show if the list is emtpy -->
-        <TextView android:id="@android:id/empty"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:textAppearance="?android:attr/textAppearanceMedium"
-            android:text="No items."/>
-
-    </FrameLayout>
-
-</LinearLayout>
-<!-- END_INCLUDE(complete) -->
diff --git a/samples/Support13Demos/res/layout/simple_list_item_checkable_1.xml b/samples/Support13Demos/res/layout/simple_list_item_checkable_1.xml
deleted file mode 100644
index 84017a6..0000000
--- a/samples/Support13Demos/res/layout/simple_list_item_checkable_1.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<com.example.android.supportv4.view.CheckableFrameLayout
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content">
-    <TextView
-            android:id="@android:id/text1"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:textAppearance="?android:attr/textAppearanceLarge"
-            android:minHeight="?android:attr/listPreferredItemHeight"
-            android:gravity="center_vertical"
-    />
-</com.example.android.supportv4.view.CheckableFrameLayout>
diff --git a/samples/Support13Demos/res/values/colors.xml b/samples/Support13Demos/res/values/colors.xml
deleted file mode 100644
index a1daf63..0000000
--- a/samples/Support13Demos/res/values/colors.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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>
-    <drawable name="red">#7f00</drawable>
-    <drawable name="blue">#770000ff</drawable>
-    <drawable name="green">#7700ff00</drawable>
-	<drawable name="yellow">#77ffff00</drawable>
-</resources>
diff --git a/samples/Support13Demos/res/values/strings.xml b/samples/Support13Demos/res/values/strings.xml
deleted file mode 100644
index 92316d0..0000000
--- a/samples/Support13Demos/res/values/strings.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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 xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="activity_sample_code">Support v13 Demos</string>
-
-    <string name="hello_world"><b>Hello, <i>World!</i></b></string>
-    <string name="retained">Retained state</string>
-
-    <string name="alert_dialog_two_buttons_title">
-        Lorem ipsum dolor sit aie consectetur adipiscing\nPlloaso mako nuto
-        siwuf cakso dodtos anr koop.
-    </string>
-
-    <string name="fragment_nesting_pager_support">Fragment/Nesting Pager</string>
-
-    <string name="fragment_nesting_state_pager_support">Fragment/Nesting State Pager</string>
-
-    <string name="fragment_pager_support">Fragment/Pager</string>
-    <string name="first">First</string>
-    <string name="last">Last</string>
-
-    <string name="fragment_state_pager_support">Fragment/State Pager</string>
-
-    <string name="action_bar_tabs_pager">Fragment/Action Bar Tabs Pager</string>
-</resources>
diff --git a/samples/Support13Demos/src/com/example/android/supportv13/Cheeses.java b/samples/Support13Demos/src/com/example/android/supportv13/Cheeses.java
deleted file mode 100644
index d0c58d8..0000000
--- a/samples/Support13Demos/src/com/example/android/supportv13/Cheeses.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv13;
-
-public class Cheeses {
-
-    public static final String[] sCheeseStrings = {
-            "Abbaye de Belloc", "Abbaye du Mont des Cats", "Abertam", "Abondance", "Ackawi",
-            "Acorn", "Adelost", "Affidelice au Chablis", "Afuega'l Pitu", "Airag", "Airedale",
-            "Aisy Cendre", "Allgauer Emmentaler", "Alverca", "Ambert", "American Cheese",
-            "Ami du Chambertin", "Anejo Enchilado", "Anneau du Vic-Bilh", "Anthoriro", "Appenzell",
-            "Aragon", "Ardi Gasna", "Ardrahan", "Armenian String", "Aromes au Gene de Marc",
-            "Asadero", "Asiago", "Aubisque Pyrenees", "Autun", "Avaxtskyr", "Baby Swiss",
-            "Babybel", "Baguette Laonnaise", "Bakers", "Baladi", "Balaton", "Bandal", "Banon",
-            "Barry's Bay Cheddar", "Basing", "Basket Cheese", "Bath Cheese", "Bavarian Bergkase",
-            "Baylough", "Beaufort", "Beauvoorde", "Beenleigh Blue", "Beer Cheese", "Bel Paese",
-            "Bergader", "Bergere Bleue", "Berkswell", "Beyaz Peynir", "Bierkase", "Bishop Kennedy",
-            "Blarney", "Bleu d'Auvergne", "Bleu de Gex", "Bleu de Laqueuille",
-            "Bleu de Septmoncel", "Bleu Des Causses", "Blue", "Blue Castello", "Blue Rathgore",
-            "Blue Vein (Australian)", "Blue Vein Cheeses", "Bocconcini", "Bocconcini (Australian)",
-            "Boeren Leidenkaas", "Bonchester", "Bosworth", "Bougon", "Boule Du Roves",
-            "Boulette d'Avesnes", "Boursault", "Boursin", "Bouyssou", "Bra", "Braudostur",
-            "Breakfast Cheese", "Brebis du Lavort", "Brebis du Lochois", "Brebis du Puyfaucon",
-            "Bresse Bleu", "Brick", "Brie", "Brie de Meaux", "Brie de Melun", "Brillat-Savarin",
-            "Brin", "Brin d' Amour", "Brin d'Amour", "Brinza (Burduf Brinza)",
-            "Briquette de Brebis", "Briquette du Forez", "Broccio", "Broccio Demi-Affine",
-            "Brousse du Rove", "Bruder Basil", "Brusselae Kaas (Fromage de Bruxelles)", "Bryndza",
-            "Buchette d'Anjou", "Buffalo", "Burgos", "Butte", "Butterkase", "Button (Innes)",
-            "Buxton Blue", "Cabecou", "Caboc", "Cabrales", "Cachaille", "Caciocavallo", "Caciotta",
-            "Caerphilly", "Cairnsmore", "Calenzana", "Cambazola", "Camembert de Normandie",
-            "Canadian Cheddar", "Canestrato", "Cantal", "Caprice des Dieux", "Capricorn Goat",
-            "Capriole Banon", "Carre de l'Est", "Casciotta di Urbino", "Cashel Blue", "Castellano",
-            "Castelleno", "Castelmagno", "Castelo Branco", "Castigliano", "Cathelain",
-            "Celtic Promise", "Cendre d'Olivet", "Cerney", "Chabichou", "Chabichou du Poitou",
-            "Chabis de Gatine", "Chaource", "Charolais", "Chaumes", "Cheddar",
-            "Cheddar Clothbound", "Cheshire", "Chevres", "Chevrotin des Aravis", "Chontaleno",
-            "Civray", "Coeur de Camembert au Calvados", "Coeur de Chevre", "Colby", "Cold Pack",
-            "Comte", "Coolea", "Cooleney", "Coquetdale", "Corleggy", "Cornish Pepper",
-            "Cotherstone", "Cotija", "Cottage Cheese", "Cottage Cheese (Australian)",
-            "Cougar Gold", "Coulommiers", "Coverdale", "Crayeux de Roncq", "Cream Cheese",
-            "Cream Havarti", "Crema Agria", "Crema Mexicana", "Creme Fraiche", "Crescenza",
-            "Croghan", "Crottin de Chavignol", "Crottin du Chavignol", "Crowdie", "Crowley",
-            "Cuajada", "Curd", "Cure Nantais", "Curworthy", "Cwmtawe Pecorino",
-            "Cypress Grove Chevre", "Danablu (Danish Blue)", "Danbo", "Danish Fontina",
-            "Daralagjazsky", "Dauphin", "Delice des Fiouves", "Denhany Dorset Drum", "Derby",
-            "Dessertnyj Belyj", "Devon Blue", "Devon Garland", "Dolcelatte", "Doolin",
-            "Doppelrhamstufel", "Dorset Blue Vinney", "Double Gloucester", "Double Worcester",
-            "Dreux a la Feuille", "Dry Jack", "Duddleswell", "Dunbarra", "Dunlop", "Dunsyre Blue",
-            "Duroblando", "Durrus", "Dutch Mimolette (Commissiekaas)", "Edam", "Edelpilz",
-            "Emental Grand Cru", "Emlett", "Emmental", "Epoisses de Bourgogne", "Esbareich",
-            "Esrom", "Etorki", "Evansdale Farmhouse Brie", "Evora De L'Alentejo", "Exmoor Blue",
-            "Explorateur", "Feta", "Feta (Australian)", "Figue", "Filetta", "Fin-de-Siecle",
-            "Finlandia Swiss", "Finn", "Fiore Sardo", "Fleur du Maquis", "Flor de Guia",
-            "Flower Marie", "Folded", "Folded cheese with mint", "Fondant de Brebis",
-            "Fontainebleau", "Fontal", "Fontina Val d'Aosta", "Formaggio di capra", "Fougerus",
-            "Four Herb Gouda", "Fourme d' Ambert", "Fourme de Haute Loire", "Fourme de Montbrison",
-            "Fresh Jack", "Fresh Mozzarella", "Fresh Ricotta", "Fresh Truffles", "Fribourgeois",
-            "Friesekaas", "Friesian", "Friesla", "Frinault", "Fromage a Raclette", "Fromage Corse",
-            "Fromage de Montagne de Savoie", "Fromage Frais", "Fruit Cream Cheese",
-            "Frying Cheese", "Fynbo", "Gabriel", "Galette du Paludier", "Galette Lyonnaise",
-            "Galloway Goat's Milk Gems", "Gammelost", "Gaperon a l'Ail", "Garrotxa", "Gastanberra",
-            "Geitost", "Gippsland Blue", "Gjetost", "Gloucester", "Golden Cross", "Gorgonzola",
-            "Gornyaltajski", "Gospel Green", "Gouda", "Goutu", "Gowrie", "Grabetto", "Graddost",
-            "Grafton Village Cheddar", "Grana", "Grana Padano", "Grand Vatel",
-            "Grataron d' Areches", "Gratte-Paille", "Graviera", "Greuilh", "Greve",
-            "Gris de Lille", "Gruyere", "Gubbeen", "Guerbigny", "Halloumi",
-            "Halloumy (Australian)", "Haloumi-Style Cheese", "Harbourne Blue", "Havarti",
-            "Heidi Gruyere", "Hereford Hop", "Herrgardsost", "Herriot Farmhouse", "Herve",
-            "Hipi Iti", "Hubbardston Blue Cow", "Hushallsost", "Iberico", "Idaho Goatster",
-            "Idiazabal", "Il Boschetto al Tartufo", "Ile d'Yeu", "Isle of Mull", "Jarlsberg",
-            "Jermi Tortes", "Jibneh Arabieh", "Jindi Brie", "Jubilee Blue", "Juustoleipa",
-            "Kadchgall", "Kaseri", "Kashta", "Kefalotyri", "Kenafa", "Kernhem", "Kervella Affine",
-            "Kikorangi", "King Island Cape Wickham Brie", "King River Gold", "Klosterkaese",
-            "Knockalara", "Kugelkase", "L'Aveyronnais", "L'Ecir de l'Aubrac", "La Taupiniere",
-            "La Vache Qui Rit", "Laguiole", "Lairobell", "Lajta", "Lanark Blue", "Lancashire",
-            "Langres", "Lappi", "Laruns", "Lavistown", "Le Brin", "Le Fium Orbo", "Le Lacandou",
-            "Le Roule", "Leafield", "Lebbene", "Leerdammer", "Leicester", "Leyden", "Limburger",
-            "Lincolnshire Poacher", "Lingot Saint Bousquet d'Orb", "Liptauer", "Little Rydings",
-            "Livarot", "Llanboidy", "Llanglofan Farmhouse", "Loch Arthur Farmhouse",
-            "Loddiswell Avondale", "Longhorn", "Lou Palou", "Lou Pevre", "Lyonnais", "Maasdam",
-            "Macconais", "Mahoe Aged Gouda", "Mahon", "Malvern", "Mamirolle", "Manchego",
-            "Manouri", "Manur", "Marble Cheddar", "Marbled Cheeses", "Maredsous", "Margotin",
-            "Maribo", "Maroilles", "Mascares", "Mascarpone", "Mascarpone (Australian)",
-            "Mascarpone Torta", "Matocq", "Maytag Blue", "Meira", "Menallack Farmhouse",
-            "Menonita", "Meredith Blue", "Mesost", "Metton (Cancoillotte)", "Meyer Vintage Gouda",
-            "Mihalic Peynir", "Milleens", "Mimolette", "Mine-Gabhar", "Mini Baby Bells", "Mixte",
-            "Molbo", "Monastery Cheeses", "Mondseer", "Mont D'or Lyonnais", "Montasio",
-            "Monterey Jack", "Monterey Jack Dry", "Morbier", "Morbier Cru de Montagne",
-            "Mothais a la Feuille", "Mozzarella", "Mozzarella (Australian)",
-            "Mozzarella di Bufala", "Mozzarella Fresh, in water", "Mozzarella Rolls", "Munster",
-            "Murol", "Mycella", "Myzithra", "Naboulsi", "Nantais", "Neufchatel",
-            "Neufchatel (Australian)", "Niolo", "Nokkelost", "Northumberland", "Oaxaca",
-            "Olde York", "Olivet au Foin", "Olivet Bleu", "Olivet Cendre",
-            "Orkney Extra Mature Cheddar", "Orla", "Oschtjepka", "Ossau Fermier", "Ossau-Iraty",
-            "Oszczypek", "Oxford Blue", "P'tit Berrichon", "Palet de Babligny", "Paneer", "Panela",
-            "Pannerone", "Pant ys Gawn", "Parmesan (Parmigiano)", "Parmigiano Reggiano",
-            "Pas de l'Escalette", "Passendale", "Pasteurized Processed", "Pate de Fromage",
-            "Patefine Fort", "Pave d'Affinois", "Pave d'Auge", "Pave de Chirac", "Pave du Berry",
-            "Pecorino", "Pecorino in Walnut Leaves", "Pecorino Romano", "Peekskill Pyramid",
-            "Pelardon des Cevennes", "Pelardon des Corbieres", "Penamellera", "Penbryn",
-            "Pencarreg", "Perail de Brebis", "Petit Morin", "Petit Pardou", "Petit-Suisse",
-            "Picodon de Chevre", "Picos de Europa", "Piora", "Pithtviers au Foin",
-            "Plateau de Herve", "Plymouth Cheese", "Podhalanski", "Poivre d'Ane", "Polkolbin",
-            "Pont l'Eveque", "Port Nicholson", "Port-Salut", "Postel", "Pouligny-Saint-Pierre",
-            "Pourly", "Prastost", "Pressato", "Prince-Jean", "Processed Cheddar", "Provolone",
-            "Provolone (Australian)", "Pyengana Cheddar", "Pyramide", "Quark",
-            "Quark (Australian)", "Quartirolo Lombardo", "Quatre-Vents", "Quercy Petit",
-            "Queso Blanco", "Queso Blanco con Frutas --Pina y Mango", "Queso de Murcia",
-            "Queso del Montsec", "Queso del Tietar", "Queso Fresco", "Queso Fresco (Adobera)",
-            "Queso Iberico", "Queso Jalapeno", "Queso Majorero", "Queso Media Luna",
-            "Queso Para Frier", "Queso Quesadilla", "Rabacal", "Raclette", "Ragusano", "Raschera",
-            "Reblochon", "Red Leicester", "Regal de la Dombes", "Reggianito", "Remedou",
-            "Requeson", "Richelieu", "Ricotta", "Ricotta (Australian)", "Ricotta Salata", "Ridder",
-            "Rigotte", "Rocamadour", "Rollot", "Romano", "Romans Part Dieu", "Roncal", "Roquefort",
-            "Roule", "Rouleau De Beaulieu", "Royalp Tilsit", "Rubens", "Rustinu", "Saaland Pfarr",
-            "Saanenkaese", "Saga", "Sage Derby", "Sainte Maure", "Saint-Marcellin",
-            "Saint-Nectaire", "Saint-Paulin", "Salers", "Samso", "San Simon", "Sancerre",
-            "Sap Sago", "Sardo", "Sardo Egyptian", "Sbrinz", "Scamorza", "Schabzieger", "Schloss",
-            "Selles sur Cher", "Selva", "Serat", "Seriously Strong Cheddar", "Serra da Estrela",
-            "Sharpam", "Shelburne Cheddar", "Shropshire Blue", "Siraz", "Sirene", "Smoked Gouda",
-            "Somerset Brie", "Sonoma Jack", "Sottocenare al Tartufo", "Soumaintrain",
-            "Sourire Lozerien", "Spenwood", "Sraffordshire Organic", "St. Agur Blue Cheese",
-            "Stilton", "Stinking Bishop", "String", "Sussex Slipcote", "Sveciaost", "Swaledale",
-            "Sweet Style Swiss", "Swiss", "Syrian (Armenian String)", "Tala", "Taleggio", "Tamie",
-            "Tasmania Highland Chevre Log", "Taupiniere", "Teifi", "Telemea", "Testouri",
-            "Tete de Moine", "Tetilla", "Texas Goat Cheese", "Tibet", "Tillamook Cheddar",
-            "Tilsit", "Timboon Brie", "Toma", "Tomme Brulee", "Tomme d'Abondance",
-            "Tomme de Chevre", "Tomme de Romans", "Tomme de Savoie", "Tomme des Chouans", "Tommes",
-            "Torta del Casar", "Toscanello", "Touree de L'Aubier", "Tourmalet",
-            "Trappe (Veritable)", "Trois Cornes De Vendee", "Tronchon", "Trou du Cru", "Truffe",
-            "Tupi", "Turunmaa", "Tymsboro", "Tyn Grug", "Tyning", "Ubriaco", "Ulloa",
-            "Vacherin-Fribourgeois", "Valencay", "Vasterbottenost", "Venaco", "Vendomois",
-            "Vieux Corse", "Vignotte", "Vulscombe", "Waimata Farmhouse Blue",
-            "Washed Rind Cheese (Australian)", "Waterloo", "Weichkaese", "Wellington",
-            "Wensleydale", "White Stilton", "Whitestone Farmhouse", "Wigmore", "Woodside Cabecou",
-            "Xanadu", "Xynotyro", "Yarg Cornish", "Yarra Valley Pyramid", "Yorkshire Blue",
-            "Zamorano", "Zanetti Grana Padano", "Zanetti Parmigiano Reggiano"
-    };
-
-}
diff --git a/samples/Support13Demos/src/com/example/android/supportv13/Shakespeare.java b/samples/Support13Demos/src/com/example/android/supportv13/Shakespeare.java
deleted file mode 100644
index 01f8dc8..0000000
--- a/samples/Support13Demos/src/com/example/android/supportv13/Shakespeare.java
+++ /dev/null
@@ -1,223 +0,0 @@
-package com.example.android.supportv13;
-
-public final class Shakespeare {
-    /**
-     * Our data, part 1.
-     */
-    public static final String[] TITLES =
-    {
-            "Henry IV (1)",
-            "Henry V",
-            "Henry VIII",
-            "Richard II",
-            "Richard III",
-            "Merchant of Venice",
-            "Othello",
-            "King Lear"
-    };
-
-    /**
-     * Our data, part 2.
-     */
-    public static final String[] DIALOGUE =
-    {
-            "So shaken as we are, so wan with care," +
-            "Find we a time for frighted peace to pant," +
-            "And breathe short-winded accents of new broils" +
-            "To be commenced in strands afar remote." +
-            "No more the thirsty entrance of this soil" +
-            "Shall daub her lips with her own children's blood;" +
-            "Nor more shall trenching war channel her fields," +
-            "Nor bruise her flowerets with the armed hoofs" +
-            "Of hostile paces: those opposed eyes," +
-            "Which, like the meteors of a troubled heaven," +
-            "All of one nature, of one substance bred," +
-            "Did lately meet in the intestine shock" +
-            "And furious close of civil butchery" +
-            "Shall now, in mutual well-beseeming ranks," +
-            "March all one way and be no more opposed" +
-            "Against acquaintance, kindred and allies:" +
-            "The edge of war, like an ill-sheathed knife," +
-            "No more shall cut his master. Therefore, friends," +
-            "As far as to the sepulchre of Christ," +
-            "Whose soldier now, under whose blessed cross" +
-            "We are impressed and engaged to fight," +
-            "Forthwith a power of English shall we levy;" +
-            "Whose arms were moulded in their mothers' womb" +
-            "To chase these pagans in those holy fields" +
-            "Over whose acres walk'd those blessed feet" +
-            "Which fourteen hundred years ago were nail'd" +
-            "For our advantage on the bitter cross." +
-            "But this our purpose now is twelve month old," +
-            "And bootless 'tis to tell you we will go:" +
-            "Therefore we meet not now. Then let me hear" +
-            "Of you, my gentle cousin Westmoreland," +
-            "What yesternight our council did decree" +
-            "In forwarding this dear expedience.",
-
-            "Hear him but reason in divinity," +
-            "And all-admiring with an inward wish" +
-            "You would desire the king were made a prelate:" +
-            "Hear him debate of commonwealth affairs," +
-            "You would say it hath been all in all his study:" +
-            "List his discourse of war, and you shall hear" +
-            "A fearful battle render'd you in music:" +
-            "Turn him to any cause of policy," +
-            "The Gordian knot of it he will unloose," +
-            "Familiar as his garter: that, when he speaks," +
-            "The air, a charter'd libertine, is still," +
-            "And the mute wonder lurketh in men's ears," +
-            "To steal his sweet and honey'd sentences;" +
-            "So that the art and practic part of life" +
-            "Must be the mistress to this theoric:" +
-            "Which is a wonder how his grace should glean it," +
-            "Since his addiction was to courses vain," +
-            "His companies unletter'd, rude and shallow," +
-            "His hours fill'd up with riots, banquets, sports," +
-            "And never noted in him any study," +
-            "Any retirement, any sequestration" +
-            "From open haunts and popularity.",
-
-            "I come no more to make you laugh: things now," +
-            "That bear a weighty and a serious brow," +
-            "Sad, high, and working, full of state and woe," +
-            "Such noble scenes as draw the eye to flow," +
-            "We now present. Those that can pity, here" +
-            "May, if they think it well, let fall a tear;" +
-            "The subject will deserve it. Such as give" +
-            "Their money out of hope they may believe," +
-            "May here find truth too. Those that come to see" +
-            "Only a show or two, and so agree" +
-            "The play may pass, if they be still and willing," +
-            "I'll undertake may see away their shilling" +
-            "Richly in two short hours. Only they" +
-            "That come to hear a merry bawdy play," +
-            "A noise of targets, or to see a fellow" +
-            "In a long motley coat guarded with yellow," +
-            "Will be deceived; for, gentle hearers, know," +
-            "To rank our chosen truth with such a show" +
-            "As fool and fight is, beside forfeiting" +
-            "Our own brains, and the opinion that we bring," +
-            "To make that only true we now intend," +
-            "Will leave us never an understanding friend." +
-            "Therefore, for goodness' sake, and as you are known" +
-            "The first and happiest hearers of the town," +
-            "Be sad, as we would make ye: think ye see" +
-            "The very persons of our noble story" +
-            "As they were living; think you see them great," +
-            "And follow'd with the general throng and sweat" +
-            "Of thousand friends; then in a moment, see" +
-            "How soon this mightiness meets misery:" +
-            "And, if you can be merry then, I'll say" +
-            "A man may weep upon his wedding-day.",
-
-            "First, heaven be the record to my speech!" +
-            "In the devotion of a subject's love," +
-            "Tendering the precious safety of my prince," +
-            "And free from other misbegotten hate," +
-            "Come I appellant to this princely presence." +
-            "Now, Thomas Mowbray, do I turn to thee," +
-            "And mark my greeting well; for what I speak" +
-            "My body shall make good upon this earth," +
-            "Or my divine soul answer it in heaven." +
-            "Thou art a traitor and a miscreant," +
-            "Too good to be so and too bad to live," +
-            "Since the more fair and crystal is the sky," +
-            "The uglier seem the clouds that in it fly." +
-            "Once more, the more to aggravate the note," +
-            "With a foul traitor's name stuff I thy throat;" +
-            "And wish, so please my sovereign, ere I move," +
-            "What my tongue speaks my right drawn sword may prove.",
-
-            "Now is the winter of our discontent" +
-            "Made glorious summer by this sun of York;" +
-            "And all the clouds that lour'd upon our house" +
-            "In the deep bosom of the ocean buried." +
-            "Now are our brows bound with victorious wreaths;" +
-            "Our bruised arms hung up for monuments;" +
-            "Our stern alarums changed to merry meetings," +
-            "Our dreadful marches to delightful measures." +
-            "Grim-visaged war hath smooth'd his wrinkled front;" +
-            "And now, instead of mounting barded steeds" +
-            "To fright the souls of fearful adversaries," +
-            "He capers nimbly in a lady's chamber" +
-            "To the lascivious pleasing of a lute." +
-            "But I, that am not shaped for sportive tricks," +
-            "Nor made to court an amorous looking-glass;" +
-            "I, that am rudely stamp'd, and want love's majesty" +
-            "To strut before a wanton ambling nymph;" +
-            "I, that am curtail'd of this fair proportion," +
-            "Cheated of feature by dissembling nature," +
-            "Deformed, unfinish'd, sent before my time" +
-            "Into this breathing world, scarce half made up," +
-            "And that so lamely and unfashionable" +
-            "That dogs bark at me as I halt by them;" +
-            "Why, I, in this weak piping time of peace," +
-            "Have no delight to pass away the time," +
-            "Unless to spy my shadow in the sun" +
-            "And descant on mine own deformity:" +
-            "And therefore, since I cannot prove a lover," +
-            "To entertain these fair well-spoken days," +
-            "I am determined to prove a villain" +
-            "And hate the idle pleasures of these days." +
-            "Plots have I laid, inductions dangerous," +
-            "By drunken prophecies, libels and dreams," +
-            "To set my brother Clarence and the king" +
-            "In deadly hate the one against the other:" +
-            "And if King Edward be as true and just" +
-            "As I am subtle, false and treacherous," +
-            "This day should Clarence closely be mew'd up," +
-            "About a prophecy, which says that 'G'" +
-            "Of Edward's heirs the murderer shall be." +
-            "Dive, thoughts, down to my soul: here" +
-            "Clarence comes.",
-
-            "To bait fish withal: if it will feed nothing else," +
-            "it will feed my revenge. He hath disgraced me, and" +
-            "hindered me half a million; laughed at my losses," +
-            "mocked at my gains, scorned my nation, thwarted my" +
-            "bargains, cooled my friends, heated mine" +
-            "enemies; and what's his reason? I am a Jew. Hath" +
-            "not a Jew eyes? hath not a Jew hands, organs," +
-            "dimensions, senses, affections, passions? fed with" +
-            "the same food, hurt with the same weapons, subject" +
-            "to the same diseases, healed by the same means," +
-            "warmed and cooled by the same winter and summer, as" +
-            "a Christian is? If you prick us, do we not bleed?" +
-            "if you tickle us, do we not laugh? if you poison" +
-            "us, do we not die? and if you wrong us, shall we not" +
-            "revenge? If we are like you in the rest, we will" +
-            "resemble you in that. If a Jew wrong a Christian," +
-            "what is his humility? Revenge. If a Christian" +
-            "wrong a Jew, what should his sufferance be by" +
-            "Christian example? Why, revenge. The villany you" +
-            "teach me, I will execute, and it shall go hard but I" +
-            "will better the instruction.",
-
-            "Virtue! a fig! 'tis in ourselves that we are thus" +
-            "or thus. Our bodies are our gardens, to the which" +
-            "our wills are gardeners: so that if we will plant" +
-            "nettles, or sow lettuce, set hyssop and weed up" +
-            "thyme, supply it with one gender of herbs, or" +
-            "distract it with many, either to have it sterile" +
-            "with idleness, or manured with industry, why, the" +
-            "power and corrigible authority of this lies in our" +
-            "wills. If the balance of our lives had not one" +
-            "scale of reason to poise another of sensuality, the" +
-            "blood and baseness of our natures would conduct us" +
-            "to most preposterous conclusions: but we have" +
-            "reason to cool our raging motions, our carnal" +
-            "stings, our unbitted lusts, whereof I take this that" +
-            "you call love to be a sect or scion.",
-
-            "Blow, winds, and crack your cheeks! rage! blow!" +
-            "You cataracts and hurricanoes, spout" +
-            "Till you have drench'd our steeples, drown'd the cocks!" +
-            "You sulphurous and thought-executing fires," +
-            "Vaunt-couriers to oak-cleaving thunderbolts," +
-            "Singe my white head! And thou, all-shaking thunder," +
-            "Smite flat the thick rotundity o' the world!" +
-            "Crack nature's moulds, an germens spill at once," +
-            "That make ingrateful man!"
-    };
-}
diff --git a/samples/Support13Demos/src/com/example/android/supportv13/Support13Demos.java b/samples/Support13Demos/src/com/example/android/supportv13/Support13Demos.java
deleted file mode 100644
index fda4b34..0000000
--- a/samples/Support13Demos/src/com/example/android/supportv13/Support13Demos.java
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv13;
-
-import android.app.ListActivity;
-import android.content.Intent;
-import android.content.pm.PackageManager;
-import android.content.pm.ResolveInfo;
-import android.os.Bundle;
-import android.view.View;
-import android.widget.ListView;
-import android.widget.SimpleAdapter;
-
-import java.text.Collator;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-public class Support13Demos extends ListActivity {
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        Intent intent = getIntent();
-        String path = intent.getStringExtra("com.example.android.apis.Path");
-
-        if (path == null) {
-            path = "";
-        }
-
-        setListAdapter(new SimpleAdapter(this, getData(path),
-                android.R.layout.simple_list_item_1, new String[] { "title" },
-                new int[] { android.R.id.text1 }));
-        getListView().setTextFilterEnabled(true);
-    }
-
-    protected List<Map<String, Object>> getData(String prefix) {
-        List<Map<String, Object>> myData = new ArrayList<Map<String, Object>>();
-
-        Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
-        mainIntent.addCategory("com.example.android.supportv13.SUPPORT13_SAMPLE_CODE");
-
-        PackageManager pm = getPackageManager();
-        List<ResolveInfo> list = pm.queryIntentActivities(mainIntent, 0);
-
-        if (null == list)
-            return myData;
-
-        String[] prefixPath;
-        String prefixWithSlash = prefix;
-
-        if (prefix.equals("")) {
-            prefixPath = null;
-        } else {
-            prefixPath = prefix.split("/");
-            prefixWithSlash = prefix + "/";
-        }
-
-        int len = list.size();
-
-        Map<String, Boolean> entries = new HashMap<String, Boolean>();
-
-        for (int i = 0; i < len; i++) {
-            ResolveInfo info = list.get(i);
-            CharSequence labelSeq = info.loadLabel(pm);
-            String label = labelSeq != null
-                    ? labelSeq.toString()
-                    : info.activityInfo.name;
-
-            if (prefixWithSlash.length() == 0 || label.startsWith(prefixWithSlash)) {
-
-                String[] labelPath = label.split("/");
-
-                String nextLabel = prefixPath == null ? labelPath[0] : labelPath[prefixPath.length];
-
-                if ((prefixPath != null ? prefixPath.length : 0) == labelPath.length - 1) {
-                    addItem(myData, nextLabel, activityIntent(
-                            info.activityInfo.applicationInfo.packageName,
-                            info.activityInfo.name));
-                } else {
-                    if (entries.get(nextLabel) == null) {
-                        addItem(myData, nextLabel, browseIntent(prefix.equals("") ? nextLabel : prefix + "/" + nextLabel));
-                        entries.put(nextLabel, true);
-                    }
-                }
-            }
-        }
-
-        Collections.sort(myData, sDisplayNameComparator);
-
-        return myData;
-    }
-
-    private final static Comparator<Map<String, Object>> sDisplayNameComparator =
-        new Comparator<Map<String, Object>>() {
-        private final Collator   collator = Collator.getInstance();
-
-        public int compare(Map<String, Object> map1, Map<String, Object> map2) {
-            return collator.compare(map1.get("title"), map2.get("title"));
-        }
-    };
-
-    protected Intent activityIntent(String pkg, String componentName) {
-        Intent result = new Intent();
-        result.setClassName(pkg, componentName);
-        return result;
-    }
-
-    protected Intent browseIntent(String path) {
-        Intent result = new Intent();
-        result.setClass(this, Support13Demos.class);
-        result.putExtra("com.example.android.apis.Path", path);
-        return result;
-    }
-
-    protected void addItem(List<Map<String, Object>> data, String name, Intent intent) {
-        Map<String, Object> temp = new HashMap<String, Object>();
-        temp.put("title", name);
-        temp.put("intent", intent);
-        data.add(temp);
-    }
-
-    @Override
-    @SuppressWarnings("unchecked")
-    protected void onListItemClick(ListView l, View v, int position, long id) {
-        Map<String, Object> map = (Map<String, Object>)l.getItemAtPosition(position);
-
-        Intent intent = (Intent) map.get("intent");
-        startActivity(intent);
-    }
-}
diff --git a/samples/Support13Demos/src/com/example/android/supportv13/_package.html b/samples/Support13Demos/src/com/example/android/supportv13/_package.html
deleted file mode 100644
index 4657c4c..0000000
--- a/samples/Support13Demos/src/com/example/android/supportv13/_package.html
+++ /dev/null
@@ -1,24 +0,0 @@
-<html>
-<head>
-<link rel="stylesheet" type="text/css" href="assets/style.css" />
-<script type="text/javascript" src="http://www.corp.google.com/style/prettify.js"></script>
-<script src="http://www.corp.google.com/eng/techpubs/include/navbar.js" type="text/javascript"></script>
-
-
-
-</head>
-
-<body>
-
-<p>
-Examples of how to use support library APIs.  See:
-
-<ol>
-    <li> <a href="com.example.android.supportv4.app">sdk.app</a> for examples
-        of using the application package support APIs.
-</ol>
-</p>
-
-
-</body>
-</html>
diff --git a/samples/Support13Demos/src/com/example/android/supportv13/app/ActionBarTabsPager.java b/samples/Support13Demos/src/com/example/android/supportv13/app/ActionBarTabsPager.java
deleted file mode 100644
index 301a2f8..0000000
--- a/samples/Support13Demos/src/com/example/android/supportv13/app/ActionBarTabsPager.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv13.app;
-
-import java.util.ArrayList;
-
-import com.example.android.supportv13.R;
-
-import android.app.ActionBar;
-import android.app.ActionBar.Tab;
-import android.app.Activity;
-import android.app.Fragment;
-import android.app.FragmentTransaction;
-import android.content.Context;
-import android.os.Bundle;
-import android.support.v13.app.FragmentPagerAdapter;
-import android.support.v4.view.ViewPager;
-
-/**
- * This demonstrates the use of action bar tabs and how they interact
- * with other action bar features.
- */
-//BEGIN_INCLUDE(complete)
-public class ActionBarTabsPager extends Activity {
-    ViewPager mViewPager;
-    TabsAdapter mTabsAdapter;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        mViewPager = new ViewPager(this);
-        mViewPager.setId(R.id.pager);
-        setContentView(mViewPager);
-
-        final ActionBar bar = getActionBar();
-        bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
-        bar.setDisplayOptions(0, ActionBar.DISPLAY_SHOW_TITLE);
-
-        mTabsAdapter = new TabsAdapter(this, mViewPager);
-        mTabsAdapter.addTab(bar.newTab().setText("Simple"),
-                CountingFragment.class, null);
-        mTabsAdapter.addTab(bar.newTab().setText("List"),
-                FragmentPagerSupport.ArrayListFragment.class, null);
-        mTabsAdapter.addTab(bar.newTab().setText("Cursor"),
-                CursorFragment.class, null);
-
-        if (savedInstanceState != null) {
-            bar.setSelectedNavigationItem(savedInstanceState.getInt("tab", 0));
-        }
-    }
-
-    @Override
-    protected void onSaveInstanceState(Bundle outState) {
-        super.onSaveInstanceState(outState);
-        outState.putInt("tab", getActionBar().getSelectedNavigationIndex());
-    }
-
-    /**
-     * This is a helper class that implements the management of tabs and all
-     * details of connecting a ViewPager with associated TabHost.  It relies on a
-     * trick.  Normally a tab host has a simple API for supplying a View or
-     * Intent that each tab will show.  This is not sufficient for switching
-     * between pages.  So instead we make the content part of the tab host
-     * 0dp high (it is not shown) and the TabsAdapter supplies its own dummy
-     * view to show as the tab content.  It listens to changes in tabs, and takes
-     * care of switch to the correct paged in the ViewPager whenever the selected
-     * tab changes.
-     */
-    public static class TabsAdapter extends FragmentPagerAdapter
-            implements ActionBar.TabListener, ViewPager.OnPageChangeListener {
-        private final Context mContext;
-        private final ActionBar mActionBar;
-        private final ViewPager mViewPager;
-        private final ArrayList<TabInfo> mTabs = new ArrayList<TabInfo>();
-
-        static final class TabInfo {
-            private final Class<?> clss;
-            private final Bundle args;
-
-            TabInfo(Class<?> _class, Bundle _args) {
-                clss = _class;
-                args = _args;
-            }
-        }
-
-        public TabsAdapter(Activity activity, ViewPager pager) {
-            super(activity.getFragmentManager());
-            mContext = activity;
-            mActionBar = activity.getActionBar();
-            mViewPager = pager;
-            mViewPager.setAdapter(this);
-            mViewPager.setOnPageChangeListener(this);
-        }
-
-        public void addTab(ActionBar.Tab tab, Class<?> clss, Bundle args) {
-            TabInfo info = new TabInfo(clss, args);
-            tab.setTag(info);
-            tab.setTabListener(this);
-            mTabs.add(info);
-            mActionBar.addTab(tab);
-            notifyDataSetChanged();
-        }
-
-        @Override
-        public int getCount() {
-            return mTabs.size();
-        }
-
-        @Override
-        public Fragment getItem(int position) {
-            TabInfo info = mTabs.get(position);
-            return Fragment.instantiate(mContext, info.clss.getName(), info.args);
-        }
-
-        @Override
-        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
-        }
-
-        @Override
-        public void onPageSelected(int position) {
-            mActionBar.setSelectedNavigationItem(position);
-        }
-
-        @Override
-        public void onPageScrollStateChanged(int state) {
-        }
-
-        @Override
-        public void onTabSelected(Tab tab, FragmentTransaction ft) {
-            Object tag = tab.getTag();
-            for (int i=0; i<mTabs.size(); i++) {
-                if (mTabs.get(i) == tag) {
-                    mViewPager.setCurrentItem(i);
-                }
-            }
-        }
-
-        @Override
-        public void onTabUnselected(Tab tab, FragmentTransaction ft) {
-        }
-
-        @Override
-        public void onTabReselected(Tab tab, FragmentTransaction ft) {
-        }
-    }
-}
-//END_INCLUDE(complete)
diff --git a/samples/Support13Demos/src/com/example/android/supportv13/app/CountingFragment.java b/samples/Support13Demos/src/com/example/android/supportv13/app/CountingFragment.java
deleted file mode 100644
index d52955b..0000000
--- a/samples/Support13Demos/src/com/example/android/supportv13/app/CountingFragment.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv13.app;
-
-import com.example.android.supportv13.R;
-
-import android.app.Fragment;
-import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.TextView;
-
-public class CountingFragment extends Fragment {
-    int mNum;
-
-    /**
-     * Create a new instance of CountingFragment, providing "num"
-     * as an argument.
-     */
-    static CountingFragment newInstance(int num) {
-        CountingFragment f = new CountingFragment();
-
-        // Supply num input as an argument.
-        Bundle args = new Bundle();
-        args.putInt("num", num);
-        f.setArguments(args);
-
-        return f;
-    }
-
-    /**
-     * When creating, retrieve this instance's number from its arguments.
-     */
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        mNum = getArguments() != null ? getArguments().getInt("num") : 1;
-    }
-
-    /**
-     * The Fragment's UI is just a simple text view showing its
-     * instance number.
-     */
-    @Override
-    public View onCreateView(LayoutInflater inflater, ViewGroup container,
-            Bundle savedInstanceState) {
-        View v = inflater.inflate(R.layout.counting, container, false);
-        View tv = v.findViewById(R.id.text);
-        ((TextView)tv).setText("Fragment #" + mNum);
-        return v;
-    }
-}
diff --git a/samples/Support13Demos/src/com/example/android/supportv13/app/CursorFragment.java b/samples/Support13Demos/src/com/example/android/supportv13/app/CursorFragment.java
deleted file mode 100644
index 57f0e10..0000000
--- a/samples/Support13Demos/src/com/example/android/supportv13/app/CursorFragment.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv13.app;
-
-import android.app.ListFragment;
-import android.app.LoaderManager;
-import android.content.CursorLoader;
-import android.content.Loader;
-import android.database.Cursor;
-import android.net.Uri;
-import android.os.Bundle;
-import android.provider.ContactsContract.Contacts;
-import android.text.TextUtils;
-import android.util.Log;
-import android.view.Menu;
-import android.view.MenuInflater;
-import android.view.MenuItem;
-import android.view.View;
-import android.widget.ListView;
-import android.widget.SearchView;
-import android.widget.SimpleCursorAdapter;
-import android.widget.SearchView.OnQueryTextListener;
-
-
-public class CursorFragment extends ListFragment
-        implements OnQueryTextListener, LoaderManager.LoaderCallbacks<Cursor> {
-
-    // This is the Adapter being used to display the list's data.
-    SimpleCursorAdapter mAdapter;
-
-    // If non-null, this is the current filter the user has provided.
-    String mCurFilter;
-
-    @Override public void onActivityCreated(Bundle savedInstanceState) {
-        super.onActivityCreated(savedInstanceState);
-
-        // Give some text to display if there is no data.  In a real
-        // application this would come from a resource.
-        setEmptyText("No phone numbers");
-
-        // We have a menu item to show in action bar.
-        setHasOptionsMenu(true);
-
-        // Create an empty adapter we will use to display the loaded data.
-        mAdapter = new SimpleCursorAdapter(getActivity(),
-                android.R.layout.simple_list_item_2, null,
-                new String[] { Contacts.DISPLAY_NAME, Contacts.CONTACT_STATUS },
-                new int[] { android.R.id.text1, android.R.id.text2 }, 0);
-        setListAdapter(mAdapter);
-
-        // Start out with a progress indicator.
-        setListShown(false);
-
-        // Prepare the loader.  Either re-connect with an existing one,
-        // or start a new one.
-        getLoaderManager().initLoader(0, null, this);
-    }
-
-    @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
-        // Place an action bar item for searching.
-        MenuItem item = menu.add("Search");
-        item.setIcon(android.R.drawable.ic_menu_search);
-        item.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM
-                | MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);
-        SearchView sv = new SearchView(getActivity());
-        sv.setOnQueryTextListener(this);
-        item.setActionView(sv);
-    }
-
-    public boolean onQueryTextChange(String newText) {
-        // Called when the action bar search text has changed.  Update
-        // the search filter, and restart the loader to do a new query
-        // with this filter.
-        mCurFilter = !TextUtils.isEmpty(newText) ? newText : null;
-        getLoaderManager().restartLoader(0, null, this);
-        return true;
-    }
-
-    @Override public boolean onQueryTextSubmit(String query) {
-        // Don't care about this.
-        return true;
-    }
-
-    @Override public void onListItemClick(ListView l, View v, int position, long id) {
-        // Insert desired behavior here.
-        Log.i("FragmentComplexList", "Item clicked: " + id);
-    }
-
-    // These are the Contacts rows that we will retrieve.
-    static final String[] CONTACTS_SUMMARY_PROJECTION = new String[] {
-        Contacts._ID,
-        Contacts.DISPLAY_NAME,
-        Contacts.CONTACT_STATUS,
-        Contacts.CONTACT_PRESENCE,
-        Contacts.PHOTO_ID,
-        Contacts.LOOKUP_KEY,
-    };
-
-    public Loader<Cursor> onCreateLoader(int id, Bundle args) {
-        // This is called when a new Loader needs to be created.  This
-        // sample only has one Loader, so we don't care about the ID.
-        // First, pick the base URI to use depending on whether we are
-        // currently filtering.
-        Uri baseUri;
-        if (mCurFilter != null) {
-            baseUri = Uri.withAppendedPath(Contacts.CONTENT_FILTER_URI,
-                    Uri.encode(mCurFilter));
-        } else {
-            baseUri = Contacts.CONTENT_URI;
-        }
-
-        // Now create and return a CursorLoader that will take care of
-        // creating a Cursor for the data being displayed.
-        String select = "((" + Contacts.DISPLAY_NAME + " NOTNULL) AND ("
-                + Contacts.HAS_PHONE_NUMBER + "=1) AND ("
-                + Contacts.DISPLAY_NAME + " != '' ))";
-        return new CursorLoader(getActivity(), baseUri,
-                CONTACTS_SUMMARY_PROJECTION, select, null,
-                Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC");
-    }
-
-    public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
-        // Swap the new cursor in.  (The framework will take care of closing the
-        // old cursor once we return.)
-        mAdapter.swapCursor(data);
-
-        // The list should now be shown.
-        if (isResumed()) {
-            setListShown(true);
-        } else {
-            setListShownNoAnimation(true);
-        }
-    }
-
-    public void onLoaderReset(Loader<Cursor> loader) {
-        // This is called when the last Cursor provided to onLoadFinished()
-        // above is about to be closed.  We need to make sure we are no
-        // longer using it.
-        mAdapter.swapCursor(null);
-    }
-}
diff --git a/samples/Support13Demos/src/com/example/android/supportv13/app/FragmentNestingPagerSupport.java b/samples/Support13Demos/src/com/example/android/supportv13/app/FragmentNestingPagerSupport.java
deleted file mode 100644
index 0a88a05..0000000
--- a/samples/Support13Demos/src/com/example/android/supportv13/app/FragmentNestingPagerSupport.java
+++ /dev/null
@@ -1,159 +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.supportv13.app;
-
-import java.util.ArrayList;
-
-import com.example.android.supportv13.R;
-
-import android.app.ActionBar;
-import android.app.ActionBar.Tab;
-import android.app.Activity;
-import android.app.Fragment;
-import android.app.FragmentTransaction;
-import android.content.Context;
-import android.os.Bundle;
-import android.support.v13.app.FragmentPagerAdapter;
-import android.support.v4.view.ViewPager;
-
-//BEGIN_INCLUDE(complete)
-public class FragmentNestingPagerSupport extends Activity {
-    ViewPager mViewPager;
-    TabsAdapter mTabsAdapter;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        mViewPager = new ViewPager(this);
-        mViewPager.setId(R.id.pager);
-        setContentView(mViewPager);
-
-        final ActionBar bar = getActionBar();
-        bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
-        bar.setDisplayOptions(0, ActionBar.DISPLAY_SHOW_TITLE);
-
-        mTabsAdapter = new TabsAdapter(this, mViewPager);
-        mTabsAdapter.addTab(bar.newTab().setText("Simple"),
-                CountingFragment.class, null);
-        mTabsAdapter.addTab(bar.newTab().setText("List"),
-                FragmentPagerSupport.ArrayListFragment.class, null);
-        mTabsAdapter.addTab(bar.newTab().setText("Cursor"),
-                CursorFragment.class, null);
-        mTabsAdapter.addTab(bar.newTab().setText("Tabs"),
-                FragmentTabsFragment.class, null);
-
-        if (savedInstanceState != null) {
-            bar.setSelectedNavigationItem(savedInstanceState.getInt("tab", 0));
-        }
-    }
-
-    @Override
-    protected void onSaveInstanceState(Bundle outState) {
-        super.onSaveInstanceState(outState);
-        outState.putInt("tab", getActionBar().getSelectedNavigationIndex());
-    }
-
-    /**
-     * This is a helper class that implements the management of tabs and all
-     * details of connecting a ViewPager with associated TabHost.  It relies on a
-     * trick.  Normally a tab host has a simple API for supplying a View or
-     * Intent that each tab will show.  This is not sufficient for switching
-     * between pages.  So instead we make the content part of the tab host
-     * 0dp high (it is not shown) and the TabsAdapter supplies its own dummy
-     * view to show as the tab content.  It listens to changes in tabs, and takes
-     * care of switch to the correct paged in the ViewPager whenever the selected
-     * tab changes.
-     */
-    public static class TabsAdapter extends FragmentPagerAdapter
-            implements ActionBar.TabListener, ViewPager.OnPageChangeListener {
-        private final Context mContext;
-        private final ActionBar mActionBar;
-        private final ViewPager mViewPager;
-        private final ArrayList<TabInfo> mTabs = new ArrayList<TabInfo>();
-
-        static final class TabInfo {
-            private final Class<?> clss;
-            private final Bundle args;
-
-            TabInfo(Class<?> _class, Bundle _args) {
-                clss = _class;
-                args = _args;
-            }
-        }
-
-        public TabsAdapter(Activity activity, ViewPager pager) {
-            super(activity.getFragmentManager());
-            mContext = activity;
-            mActionBar = activity.getActionBar();
-            mViewPager = pager;
-            mViewPager.setAdapter(this);
-            mViewPager.setOnPageChangeListener(this);
-        }
-
-        public void addTab(ActionBar.Tab tab, Class<?> clss, Bundle args) {
-            TabInfo info = new TabInfo(clss, args);
-            tab.setTag(info);
-            tab.setTabListener(this);
-            mTabs.add(info);
-            mActionBar.addTab(tab);
-            notifyDataSetChanged();
-        }
-
-        @Override
-        public int getCount() {
-            return mTabs.size();
-        }
-
-        @Override
-        public Fragment getItem(int position) {
-            TabInfo info = mTabs.get(position);
-            return Fragment.instantiate(mContext, info.clss.getName(), info.args);
-        }
-
-        @Override
-        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
-        }
-
-        @Override
-        public void onPageSelected(int position) {
-            mActionBar.setSelectedNavigationItem(position);
-        }
-
-        @Override
-        public void onPageScrollStateChanged(int state) {
-        }
-
-        @Override
-        public void onTabSelected(Tab tab, FragmentTransaction ft) {
-            Object tag = tab.getTag();
-            for (int i=0; i<mTabs.size(); i++) {
-                if (mTabs.get(i) == tag) {
-                    mViewPager.setCurrentItem(i);
-                }
-            }
-        }
-
-        @Override
-        public void onTabUnselected(Tab tab, FragmentTransaction ft) {
-        }
-
-        @Override
-        public void onTabReselected(Tab tab, FragmentTransaction ft) {
-        }
-    }
-}
-//END_INCLUDE(complete)
diff --git a/samples/Support13Demos/src/com/example/android/supportv13/app/FragmentNestingStatePagerSupport.java b/samples/Support13Demos/src/com/example/android/supportv13/app/FragmentNestingStatePagerSupport.java
deleted file mode 100644
index 5863852..0000000
--- a/samples/Support13Demos/src/com/example/android/supportv13/app/FragmentNestingStatePagerSupport.java
+++ /dev/null
@@ -1,159 +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.supportv13.app;
-
-import java.util.ArrayList;
-
-import com.example.android.supportv13.R;
-
-import android.app.ActionBar;
-import android.app.ActionBar.Tab;
-import android.app.Activity;
-import android.app.Fragment;
-import android.app.FragmentTransaction;
-import android.content.Context;
-import android.os.Bundle;
-import android.support.v13.app.FragmentStatePagerAdapter;
-import android.support.v4.view.ViewPager;
-
-//BEGIN_INCLUDE(complete)
-public class FragmentNestingStatePagerSupport extends Activity {
-    ViewPager mViewPager;
-    TabsAdapter mTabsAdapter;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        mViewPager = new ViewPager(this);
-        mViewPager.setId(R.id.pager);
-        setContentView(mViewPager);
-
-        final ActionBar bar = getActionBar();
-        bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
-        bar.setDisplayOptions(0, ActionBar.DISPLAY_SHOW_TITLE);
-
-        mTabsAdapter = new TabsAdapter(this, mViewPager);
-        mTabsAdapter.addTab(bar.newTab().setText("Simple"),
-                CountingFragment.class, null);
-        mTabsAdapter.addTab(bar.newTab().setText("List"),
-                FragmentPagerSupport.ArrayListFragment.class, null);
-        mTabsAdapter.addTab(bar.newTab().setText("Cursor"),
-                CursorFragment.class, null);
-        mTabsAdapter.addTab(bar.newTab().setText("Tabs"),
-                FragmentTabsFragment.class, null);
-
-        if (savedInstanceState != null) {
-            bar.setSelectedNavigationItem(savedInstanceState.getInt("tab", 0));
-        }
-    }
-
-    @Override
-    protected void onSaveInstanceState(Bundle outState) {
-        super.onSaveInstanceState(outState);
-        outState.putInt("tab", getActionBar().getSelectedNavigationIndex());
-    }
-
-    /**
-     * This is a helper class that implements the management of tabs and all
-     * details of connecting a ViewPager with associated TabHost.  It relies on a
-     * trick.  Normally a tab host has a simple API for supplying a View or
-     * Intent that each tab will show.  This is not sufficient for switching
-     * between pages.  So instead we make the content part of the tab host
-     * 0dp high (it is not shown) and the TabsAdapter supplies its own dummy
-     * view to show as the tab content.  It listens to changes in tabs, and takes
-     * care of switch to the correct paged in the ViewPager whenever the selected
-     * tab changes.
-     */
-    public static class TabsAdapter extends FragmentStatePagerAdapter
-            implements ActionBar.TabListener, ViewPager.OnPageChangeListener {
-        private final Context mContext;
-        private final ActionBar mActionBar;
-        private final ViewPager mViewPager;
-        private final ArrayList<TabInfo> mTabs = new ArrayList<TabInfo>();
-
-        static final class TabInfo {
-            private final Class<?> clss;
-            private final Bundle args;
-
-            TabInfo(Class<?> _class, Bundle _args) {
-                clss = _class;
-                args = _args;
-            }
-        }
-
-        public TabsAdapter(Activity activity, ViewPager pager) {
-            super(activity.getFragmentManager());
-            mContext = activity;
-            mActionBar = activity.getActionBar();
-            mViewPager = pager;
-            mViewPager.setAdapter(this);
-            mViewPager.setOnPageChangeListener(this);
-        }
-
-        public void addTab(ActionBar.Tab tab, Class<?> clss, Bundle args) {
-            TabInfo info = new TabInfo(clss, args);
-            tab.setTag(info);
-            tab.setTabListener(this);
-            mTabs.add(info);
-            mActionBar.addTab(tab);
-            notifyDataSetChanged();
-        }
-
-        @Override
-        public int getCount() {
-            return mTabs.size();
-        }
-
-        @Override
-        public Fragment getItem(int position) {
-            TabInfo info = mTabs.get(position);
-            return Fragment.instantiate(mContext, info.clss.getName(), info.args);
-        }
-
-        @Override
-        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
-        }
-
-        @Override
-        public void onPageSelected(int position) {
-            mActionBar.setSelectedNavigationItem(position);
-        }
-
-        @Override
-        public void onPageScrollStateChanged(int state) {
-        }
-
-        @Override
-        public void onTabSelected(Tab tab, FragmentTransaction ft) {
-            Object tag = tab.getTag();
-            for (int i=0; i<mTabs.size(); i++) {
-                if (mTabs.get(i) == tag) {
-                    mViewPager.setCurrentItem(i);
-                }
-            }
-        }
-
-        @Override
-        public void onTabUnselected(Tab tab, FragmentTransaction ft) {
-        }
-
-        @Override
-        public void onTabReselected(Tab tab, FragmentTransaction ft) {
-        }
-    }
-}
-//END_INCLUDE(complete)
diff --git a/samples/Support13Demos/src/com/example/android/supportv13/app/FragmentPagerSupport.java b/samples/Support13Demos/src/com/example/android/supportv13/app/FragmentPagerSupport.java
deleted file mode 100644
index 04532b8..0000000
--- a/samples/Support13Demos/src/com/example/android/supportv13/app/FragmentPagerSupport.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv13.app;
-
-import com.example.android.supportv13.Cheeses;
-import com.example.android.supportv13.R;
-
-import android.support.v13.app.FragmentPagerAdapter;
-import android.support.v4.view.ViewPager;
-
-import android.os.Bundle;
-import android.app.Activity;
-import android.app.Fragment;
-import android.app.FragmentManager;
-import android.app.ListFragment;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.View.OnClickListener;
-import android.widget.ArrayAdapter;
-import android.widget.Button;
-import android.widget.ListView;
-import android.widget.TextView;
-
-//BEGIN_INCLUDE(complete)
-public class FragmentPagerSupport extends Activity {
-    static final int NUM_ITEMS = 10;
-
-    MyAdapter mAdapter;
-
-    ViewPager mPager;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.fragment_pager);
-
-        mAdapter = new MyAdapter(getFragmentManager());
-
-        mPager = (ViewPager)findViewById(R.id.pager);
-        mPager.setAdapter(mAdapter);
-
-        // Watch for button clicks.
-        Button button = (Button)findViewById(R.id.goto_first);
-        button.setOnClickListener(new OnClickListener() {
-            public void onClick(View v) {
-                mPager.setCurrentItem(0);
-            }
-        });
-        button = (Button)findViewById(R.id.goto_last);
-        button.setOnClickListener(new OnClickListener() {
-            public void onClick(View v) {
-                mPager.setCurrentItem(NUM_ITEMS-1);
-            }
-        });
-    }
-
-    public static class MyAdapter extends FragmentPagerAdapter {
-        public MyAdapter(FragmentManager fm) {
-            super(fm);
-        }
-
-        @Override
-        public int getCount() {
-            return NUM_ITEMS;
-        }
-
-        @Override
-        public Fragment getItem(int position) {
-            return ArrayListFragment.newInstance(position);
-        }
-    }
-
-    public static class ArrayListFragment extends ListFragment {
-        int mNum;
-
-        /**
-         * Create a new instance of CountingFragment, providing "num"
-         * as an argument.
-         */
-        static ArrayListFragment newInstance(int num) {
-            ArrayListFragment f = new ArrayListFragment();
-
-            // Supply num input as an argument.
-            Bundle args = new Bundle();
-            args.putInt("num", num);
-            f.setArguments(args);
-
-            return f;
-        }
-
-        /**
-         * When creating, retrieve this instance's number from its arguments.
-         */
-        @Override
-        public void onCreate(Bundle savedInstanceState) {
-            super.onCreate(savedInstanceState);
-            mNum = getArguments() != null ? getArguments().getInt("num") : 1;
-        }
-
-        /**
-         * The Fragment's UI is just a simple text view showing its
-         * instance number.
-         */
-        @Override
-        public View onCreateView(LayoutInflater inflater, ViewGroup container,
-                Bundle savedInstanceState) {
-            View v = inflater.inflate(R.layout.fragment_pager_list, container, false);
-            View tv = v.findViewById(R.id.text);
-            ((TextView)tv).setText("Fragment #" + mNum);
-            return v;
-        }
-
-        @Override
-        public void onActivityCreated(Bundle savedInstanceState) {
-            super.onActivityCreated(savedInstanceState);
-            setListAdapter(new ArrayAdapter<String>(getActivity(),
-                    android.R.layout.simple_list_item_1, Cheeses.sCheeseStrings));
-        }
-
-        @Override
-        public void onListItemClick(ListView l, View v, int position, long id) {
-            Log.i("FragmentList", "Item clicked: " + id);
-        }
-    }
-}
-//END_INCLUDE(complete)
diff --git a/samples/Support13Demos/src/com/example/android/supportv13/app/FragmentStatePagerSupport.java b/samples/Support13Demos/src/com/example/android/supportv13/app/FragmentStatePagerSupport.java
deleted file mode 100644
index e60c268..0000000
--- a/samples/Support13Demos/src/com/example/android/supportv13/app/FragmentStatePagerSupport.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv13.app;
-
-import com.example.android.supportv13.Cheeses;
-import com.example.android.supportv13.R;
-
-import android.support.v13.app.FragmentStatePagerAdapter;
-import android.support.v4.view.ViewPager;
-
-import android.os.Bundle;
-import android.app.Activity;
-import android.app.Fragment;
-import android.app.FragmentManager;
-import android.app.ListFragment;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.View.OnClickListener;
-import android.widget.ArrayAdapter;
-import android.widget.Button;
-import android.widget.ListView;
-import android.widget.TextView;
-
-//BEGIN_INCLUDE(complete)
-public class FragmentStatePagerSupport extends Activity {
-    static final int NUM_ITEMS = 10;
-
-    MyAdapter mAdapter;
-
-    ViewPager mPager;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.fragment_pager);
-
-        mAdapter = new MyAdapter(getFragmentManager());
-
-        mPager = (ViewPager)findViewById(R.id.pager);
-        mPager.setAdapter(mAdapter);
-
-        // Watch for button clicks.
-        Button button = (Button)findViewById(R.id.goto_first);
-        button.setOnClickListener(new OnClickListener() {
-            public void onClick(View v) {
-                mPager.setCurrentItem(0);
-            }
-        });
-        button = (Button)findViewById(R.id.goto_last);
-        button.setOnClickListener(new OnClickListener() {
-            public void onClick(View v) {
-                mPager.setCurrentItem(NUM_ITEMS-1);
-            }
-        });
-    }
-
-    public static class MyAdapter extends FragmentStatePagerAdapter {
-        public MyAdapter(FragmentManager fm) {
-            super(fm);
-        }
-
-        @Override
-        public int getCount() {
-            return NUM_ITEMS;
-        }
-
-        @Override
-        public Fragment getItem(int position) {
-            return ArrayListFragment.newInstance(position);
-        }
-    }
-
-    public static class ArrayListFragment extends ListFragment {
-        int mNum;
-
-        /**
-         * Create a new instance of CountingFragment, providing "num"
-         * as an argument.
-         */
-        static ArrayListFragment newInstance(int num) {
-            ArrayListFragment f = new ArrayListFragment();
-
-            // Supply num input as an argument.
-            Bundle args = new Bundle();
-            args.putInt("num", num);
-            f.setArguments(args);
-
-            return f;
-        }
-
-        /**
-         * When creating, retrieve this instance's number from its arguments.
-         */
-        @Override
-        public void onCreate(Bundle savedInstanceState) {
-            super.onCreate(savedInstanceState);
-            mNum = getArguments() != null ? getArguments().getInt("num") : 1;
-        }
-
-        /**
-         * The Fragment's UI is just a simple text view showing its
-         * instance number.
-         */
-        @Override
-        public View onCreateView(LayoutInflater inflater, ViewGroup container,
-                Bundle savedInstanceState) {
-            View v = inflater.inflate(R.layout.fragment_pager_list, container, false);
-            View tv = v.findViewById(R.id.text);
-            ((TextView)tv).setText("Fragment #" + mNum);
-            return v;
-        }
-
-        @Override
-        public void onActivityCreated(Bundle savedInstanceState) {
-            super.onActivityCreated(savedInstanceState);
-            setListAdapter(new ArrayAdapter<String>(getActivity(),
-                    android.R.layout.simple_list_item_1, Cheeses.sCheeseStrings));
-        }
-
-        @Override
-        public void onListItemClick(ListView l, View v, int position, long id) {
-            Log.i("FragmentList", "Item clicked: " + id);
-        }
-    }
-}
-//END_INCLUDE(complete)
diff --git a/samples/Support13Demos/src/com/example/android/supportv13/app/FragmentTabsFragment.java b/samples/Support13Demos/src/com/example/android/supportv13/app/FragmentTabsFragment.java
deleted file mode 100644
index 4415851..0000000
--- a/samples/Support13Demos/src/com/example/android/supportv13/app/FragmentTabsFragment.java
+++ /dev/null
@@ -1,52 +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.supportv13.app;
-
-import com.example.android.supportv13.R;
-
-import android.app.Fragment;
-import android.os.Bundle;
-import android.support.v13.app.FragmentTabHost;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-
-public class FragmentTabsFragment extends Fragment {
-    private FragmentTabHost mTabHost;
-
-    @Override
-    public View onCreateView(LayoutInflater inflater, ViewGroup container,
-            Bundle savedInstanceState) {
-        mTabHost = new FragmentTabHost(getActivity());
-        mTabHost.setup(getActivity(), getChildFragmentManager(), R.id.pager);
-
-        mTabHost.addTab(mTabHost.newTabSpec("simple").setIndicator("Simple"),
-                CountingFragment.class, null);
-        mTabHost.addTab(mTabHost.newTabSpec("array").setIndicator("Array"),
-                FragmentPagerSupport.ArrayListFragment.class, null);
-        mTabHost.addTab(mTabHost.newTabSpec("cursor").setIndicator("Cursor"),
-                CursorFragment.class, null);
-
-        return mTabHost;
-    }
-
-    @Override
-    public void onDestroyView() {
-        super.onDestroyView();
-        mTabHost = null;
-    }
-}
-//END_INCLUDE(complete)
diff --git a/samples/Support13Demos/src/com/example/android/supportv13/app/_index.html b/samples/Support13Demos/src/com/example/android/supportv13/app/_index.html
deleted file mode 100644
index 832d60e..0000000
--- a/samples/Support13Demos/src/com/example/android/supportv13/app/_index.html
+++ /dev/null
@@ -1,26 +0,0 @@
-
-<p>This section includes samples showing the use of the application
-package features of the static support library fir API 13 or later.
-<ul>
-  <li><a href="#Fragment">Fragment</a></li>
-</ul>
-
-
-<h3 id="Fragment">Fragment</h3>
-<dl>
-  <dt><a href="ActionBarTabsPager.html">Action Bar Tabs Pager</a></dt>
-  <dd>Demonstrates the use of fragments to implement switching between
-  ActionBar tabs, using a ViewPager to manager the fragments so that
-  the user can also fling left and right to switch tabs.</dd>
-
-  <dt><a href="FragmentPagerSupport.html">Fragment Pager Support</a></dt>
-  <dd>Demonstrates the use of the v4 support class ViewPager with a
-  FragmentPagerAdapter to build a user interface where the user can fling
-  left or right to switch between fragments.</dd>
-
-  <dt><a href="FragmentStatePagerSupport.html">Fragment State Pager Support</a></dt>
-  <dd>Demonstrates the use of the v4 support class ViewPager with a
-  FragmentStatePagerAdapter to build a user interface where the user can fling
-  left or right to switch between fragments.  This versions of the adapter
-  doesn't keep around the fragment instances that ViewPager has destroyed.</dd>
-</dl>
diff --git a/samples/Support13Demos/src/com/example/android/supportv13/view/CheckableFrameLayout.java b/samples/Support13Demos/src/com/example/android/supportv13/view/CheckableFrameLayout.java
deleted file mode 100644
index f642e8e..0000000
--- a/samples/Support13Demos/src/com/example/android/supportv13/view/CheckableFrameLayout.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv13.view;
-
-import android.content.Context;
-import android.graphics.drawable.ColorDrawable;
-import android.util.AttributeSet;
-import android.widget.Checkable;
-import android.widget.FrameLayout;
-
-public class CheckableFrameLayout extends FrameLayout implements Checkable {
-    private boolean mChecked;
-
-    public CheckableFrameLayout(Context context) {
-        super(context);
-    }
-
-    public CheckableFrameLayout(Context context, AttributeSet attrs) {
-        super(context, attrs);
-    }
-
-    public void setChecked(boolean checked) {
-        mChecked = checked;
-        setBackgroundDrawable(checked ? new ColorDrawable(0xff0000a0) : null);
-    }
-
-    public boolean isChecked() {
-        return mChecked;
-    }
-
-    public void toggle() {
-        setChecked(!mChecked);
-    }
-
-}
diff --git a/samples/Support4Demos/Android.mk b/samples/Support4Demos/Android.mk
deleted file mode 100644
index 89515b3..0000000
--- a/samples/Support4Demos/Android.mk
+++ /dev/null
@@ -1,19 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-include $(CLEAR_VARS)
-
-LOCAL_MODULE_TAGS := samples tests
-
-# Only compile source java files in this apk.
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-
-LOCAL_STATIC_JAVA_LIBRARIES += android-support-v4
-
-LOCAL_PACKAGE_NAME := Support4Demos
-
-LOCAL_SDK_VERSION := current
-LOCAL_MIN_SDK_VERSION := 4
-
-include $(BUILD_PACKAGE)
-
-# Use the following include to make our test apk.
-include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/samples/Support4Demos/AndroidManifest.xml b/samples/Support4Demos/AndroidManifest.xml
deleted file mode 100644
index c48e790..0000000
--- a/samples/Support4Demos/AndroidManifest.xml
+++ /dev/null
@@ -1,463 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<!-- Declare the contents of this Android application.  The namespace
-     attribute brings in the Android platform namespace, and the package
-     supplies a unique name for the application.  When writing your
-     own application, the package name must be changed from "com.example.*"
-     to come from a domain that you own or have control over. -->
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.example.android.supportv4">
-
-    <uses-permission android:name="android.permission.READ_CONTACTS" />
-    <uses-permission android:name="android.permission.INTERNET" />
-    <uses-permission android:name="android.permission.WAKE_LOCK" />
-
-    <uses-sdk android:minSdkVersion="4" android:targetSdkVersion="22" />
-
-    <!-- The smallest screen this app works on is a phone.  The app will
-         scale its UI to larger screens but doesn't make good use of them
-         so allow the compatibility mode button to be shown (mostly because
-         this is just convenient for testing). -->
-    <supports-screens android:requiresSmallestWidthDp="320"
-            android:compatibleWidthLimitDp="480" />
-
-    <application android:label="@string/activity_sample_code"
-            android:icon="@drawable/app_sample_code"
-            android:hardwareAccelerated="true"
-            android:supportsRtl="true">
-
-        <activity android:name="Support4Demos">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.DEFAULT" />
-                <category android:name="android.intent.category.LAUNCHER" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".app.SendResult"
-                android:theme="@style/ThemeDialogWhenLarge">
-        </activity>
-        
-        <!-- Fragment Support Samples -->
-
-        <activity android:name=".app.FragmentAlertDialogSupport"
-                android:label="@string/fragment_alert_dialog_support">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv4.SUPPORT4_SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".app.FragmentArgumentsSupport"
-                android:label="@string/fragment_arguments_support">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv4.SUPPORT4_SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".app.FragmentCustomAnimationSupport"
-                android:label="@string/fragment_custom_animation_support">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv4.SUPPORT4_SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".app.FragmentHideShowSupport"
-                android:label="@string/fragment_hide_show_support"
-                android:windowSoftInputMode="stateUnchanged">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv4.SUPPORT4_SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".app.FragmentContextMenuSupport"
-                android:label="@string/fragment_context_menu_support">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv4.SUPPORT4_SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".app.FragmentDialogSupport"
-                android:label="@string/fragment_dialog_support">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv4.SUPPORT4_SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".app.FragmentDialogOrActivitySupport"
-                android:label="@string/fragment_dialog_or_activity_support">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv4.SUPPORT4_SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".app.FragmentLayoutSupport"
-                android:label="@string/fragment_layout_support">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv4.SUPPORT4_SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".app.FragmentListArraySupport"
-                android:label="@string/fragment_list_array_support">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv4.SUPPORT4_SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".app.FragmentLayoutSupport$DetailsActivity" />
-
-        <activity android:name=".app.FragmentMenuSupport"
-                android:label="@string/fragment_menu_support">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv4.SUPPORT4_SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".app.FragmentNestingTabsSupport"
-                android:label="@string/fragment_nesting_tabs_support">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv4.SUPPORT4_SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-        
-        <activity android:name=".app.FragmentRetainInstanceSupport"
-                android:label="@string/fragment_retain_instance_support">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv4.SUPPORT4_SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".app.FragmentReceiveResultSupport"
-                android:label="@string/fragment_receive_result_support">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv4.SUPPORT4_SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".app.FragmentStackSupport"
-                android:label="@string/fragment_stack_support">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv4.SUPPORT4_SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".app.FragmentTabs"
-                android:label="@string/fragment_tabs">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv4.SUPPORT4_SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".app.FragmentTabsPager"
-                android:label="@string/fragment_tabs_pager">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv4.SUPPORT4_SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".app.FragmentPagerSupport"
-                android:label="@string/fragment_pager_support">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv4.SUPPORT4_SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".app.FragmentStatePagerSupport"
-                android:label="@string/fragment_state_pager_support">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv4.SUPPORT4_SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".app.LoaderCursorSupport"
-                android:label="@string/loader_cursor_support">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv4.SUPPORT4_SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".app.LoaderRetainedSupport"
-                android:label="@string/loader_retained_support">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv4.SUPPORT4_SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-        
-        <activity android:name=".app.LoaderCustomSupport"
-                android:label="@string/loader_custom_support">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv4.SUPPORT4_SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".app.LoaderThrottleSupport"
-                android:label="@string/loader_throttle_support">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv4.SUPPORT4_SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-        <provider android:name=".app.LoaderThrottleSupport$SimpleProvider"
-                  android:authorities="com.example.android.apis.supportv4.app.LoaderThrottle" />
-
-        <activity android:name=".content.LocalServiceBroadcaster"
-                android:label="@string/local_service_broadcaster">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv4.SUPPORT4_SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-        <service android:name=".content.LocalServiceBroadcaster$LocalService"
-                android:stopWithTask="true" />
-
-        <activity android:name=".content.SimpleWakefulController"
-                  android:label="@string/simple_wakeful_controller">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv4.SUPPORT4_SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <receiver android:name=".content.SimpleWakefulReceiver" />
-        <service android:name=".content.SimpleWakefulService" />
-
-        <activity android:name=".accessibility.AccessibilityManagerSupportActivity"
-                android:label="@string/accessibility_manager_title">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv4.SUPPORT4_SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".accessibility.AccessibilityDelegateSupportActivity"
-                android:label="@string/accessibility_delegate_title">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv4.SUPPORT4_SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".accessibility.AccessibilityRoleDescriptionSupportActivity"
-                android:label="@string/accessibility_roledescription_title">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv4.SUPPORT4_SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".app.SharingSupport"
-                  android:label="@string/sharing_support_title">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv4.SUPPORT4_SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".app.SharingReceiverSupport"
-                  android:label="@string/sharing_receiver_title">
-            <intent-filter>
-                <action android:name="android.intent.action.SEND" />
-                <action android:name="android.intent.action.SEND_MULTIPLE" />
-                <data android:mimeType="text/plain" />
-                <category android:name="android.intent.category.DEFAULT" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".text.BidiFormatterSupport"
-                  android:label="@string/bidiformatter_support_title">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv4.SUPPORT4_SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".view.ViewPagerActivity"
-                  android:label="@string/view_pager_layout_support">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv4.SUPPORT4_SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".widget.SwipeRefreshLayoutActivityList"
-                  android:label="@string/swipe_list"
-                  android:theme="@style/ThemeHoloLight">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv4.SUPPORT4_SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".widget.SwipeRefreshLayoutActivityTextView"
-                  android:label="@string/swipe_text"
-                  android:theme="@style/ThemeHoloLight">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv4.SUPPORT4_SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".widget.SwipeRefreshLayoutActivityNestedScrollView"
-                  android:label="@string/swipe_nested_sv"
-                  android:theme="@style/ThemeHoloLight">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv4.SUPPORT4_SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-
-        <activity android:name=".widget.ContentLoadingProgressBarActivity"
-                  android:label="@string/content_loading_progress_bar">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv4.SUPPORT4_SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".widget.SlidingPaneLayoutActivity"
-                  android:label="@string/sliding_pane_layout_support">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv4.SUPPORT4_SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".widget.ExploreByTouchHelperActivity"
-                  android:label="@string/explore_by_touch_helper_support">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv4.SUPPORT4_SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <provider android:authorities="com.example.supportv4.content.sharingsupportprovider"
-                  android:name=".content.SharingSupportProvider" />
-
-        <!-- FileProvider Example -->
-
-        <activity android:name=".content.FileProviderExample"
-                android:label="@string/file_provider_example">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv4.SUPPORT4_SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".widget.NestedScrollActivity"
-                  android:label="@string/nested_scroll">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv4.SUPPORT4_SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".graphics.RoundedBitmapDrawableActivity"
-            android:label="Graphics/RoundedBitmapDrawable">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv4.SUPPORT4_SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".graphics.DrawableCompatActivity"
-                  android:label="Graphics/DrawableCompat">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv4.SUPPORT4_SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-<!-- BEGIN_INCLUDE(file_provider_declaration) -->
-        <provider
-            android:name="android.support.v4.content.FileProvider"
-            android:authorities="com.example.android.supportv4.my_files"
-            android:grantUriPermissions="true"
-            android:exported="false">
-            <meta-data
-                android:name="android.support.FILE_PROVIDER_PATHS"
-                android:resource="@xml/my_paths" />
-        </provider>
-<!-- END_INCLUDE(file_provider_declaration) -->
-
-        <activity android:name=".media.TransportControllerActivity"
-                android:label="@string/sample_transport_controller_activity">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv4.SUPPORT4_SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <!-- MediaBrowserCompat Sample -->
-        <activity android:name=".media.MediaBrowserSupport"
-            android:label="@string/media_browser_support">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv4.SUPPORT4_SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <!-- (OPTIONAL) use this meta data to indicate which icon should be used in media
-            notifications (for example, when the music changes and the user is
-            looking at another app) -->
-        <meta-data android:name="com.google.android.gms.car.notification.SmallIcon"
-            android:resource="@drawable/ic_notification" />
-
-        <!--
-             (OPTIONAL) use this meta data to override the theme from which Android Auto will
-             look for colors. If you don't set this, Android Auto will look
-             for color attributes in your application theme.
-        -->
-        <meta-data android:name="com.google.android.gms.car.application.theme"
-            android:resource="@style/CarTheme" />
-
-        <service android:name=".media.MediaBrowserServiceSupport"
-            android:exported="true" android:process=":service">
-            <intent-filter>
-                <action android:name="android.media.browse.MediaBrowserService" />
-            </intent-filter>
-        </service>
-
-        <receiver android:name="android.support.v4.media.session.MediaButtonReceiver" >
-            <intent-filter>
-                <action android:name="android.intent.action.MEDIA_BUTTON" />
-            </intent-filter>
-        </receiver>
-
-    </application>
-</manifest>
diff --git a/samples/Support4Demos/_index.html b/samples/Support4Demos/_index.html
deleted file mode 100644
index 2b03ca4..0000000
--- a/samples/Support4Demos/_index.html
+++ /dev/null
@@ -1,26 +0,0 @@
-<p>The Support v4 Demos application contains a variety of small sample
-code showing how to use key features of the Android API 4+ Support Library.
-This library contains code that you can
-build in to your application to access new features and common
-utilities while being able to run down to version 1.6 (API 4)
-of the platform.
-</p>
-
-<script type="text/javascript">
-
-// This is a totally temporary hack to display the following content only
-// when the docs are online. This will be changed once the samples get moved.
-
-if (toRoot == "/") {
-
-document.write(""+
-"<p>You'll notice that all the samples are included in a single Android "+
-"project, so the application code and other resource files for all samples are batched "+
-"together. Current samples are only for the fragment and loader in the "+
-"application part of the support library:</p>"+
-
-"<ul><li><a href='src/com/example/android/supportv4/app/index.html'>App</a></li></ul>");
-
-}
-
-</script>
diff --git a/samples/Support4Demos/res/anim/decelerate_quint.xml b/samples/Support4Demos/res/anim/decelerate_quint.xml
deleted file mode 100644
index ff2d5a9..0000000
--- a/samples/Support4Demos/res/anim/decelerate_quint.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-** Copyright 2010, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<decelerateInterpolator xmlns:android="http://schemas.android.com/apk/res/android"
-        android:factor="2.5" />
diff --git a/samples/Support4Demos/res/anim/fragment_slide_left_enter.xml b/samples/Support4Demos/res/anim/fragment_slide_left_enter.xml
deleted file mode 100644
index 6bbf6a2..0000000
--- a/samples/Support4Demos/res/anim/fragment_slide_left_enter.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<set xmlns:android="http://schemas.android.com/apk/res/android"
-        android:interpolator="@anim/decelerate_quint">
-    <translate android:fromXDelta="33%" android:toXDelta="0%p"
-            android:duration="@android:integer/config_mediumAnimTime"/>
-    <alpha android:fromAlpha="0.0" android:toAlpha="1.0"
-            android:duration="@android:integer/config_mediumAnimTime" />
-</set>
diff --git a/samples/Support4Demos/res/anim/fragment_slide_left_exit.xml b/samples/Support4Demos/res/anim/fragment_slide_left_exit.xml
deleted file mode 100644
index 0affbc7..0000000
--- a/samples/Support4Demos/res/anim/fragment_slide_left_exit.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<set xmlns:android="http://schemas.android.com/apk/res/android"
-        android:interpolator="@anim/decelerate_quint">
-    <translate android:fromXDelta="0%" android:toXDelta="-33%p"
-            android:duration="@android:integer/config_mediumAnimTime"/>
-    <alpha android:fromAlpha="1.0" android:toAlpha="0.0"
-            android:duration="@android:integer/config_mediumAnimTime" />
-</set>
diff --git a/samples/Support4Demos/res/anim/fragment_slide_right_enter.xml b/samples/Support4Demos/res/anim/fragment_slide_right_enter.xml
deleted file mode 100644
index e2e1168..0000000
--- a/samples/Support4Demos/res/anim/fragment_slide_right_enter.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<set xmlns:android="http://schemas.android.com/apk/res/android"
-        android:interpolator="@anim/decelerate_quint">
-    <translate android:fromXDelta="-33%" android:toXDelta="0%p"
-            android:duration="@android:integer/config_mediumAnimTime"/>
-    <alpha android:fromAlpha="0.0" android:toAlpha="1.0"
-            android:duration="@android:integer/config_mediumAnimTime" />
-</set>
diff --git a/samples/Support4Demos/res/anim/fragment_slide_right_exit.xml b/samples/Support4Demos/res/anim/fragment_slide_right_exit.xml
deleted file mode 100644
index c8e6e7c..0000000
--- a/samples/Support4Demos/res/anim/fragment_slide_right_exit.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<set xmlns:android="http://schemas.android.com/apk/res/android"
-        android:interpolator="@anim/decelerate_quint">
-    <translate android:fromXDelta="0%" android:toXDelta="33%p"
-            android:duration="@android:integer/config_mediumAnimTime"/>
-    <alpha android:fromAlpha="1.0" android:toAlpha="0.0"
-            android:duration="@android:integer/config_mediumAnimTime" />
-</set>
diff --git a/samples/Support4Demos/res/color/tint_state_list.xml b/samples/Support4Demos/res/color/tint_state_list.xml
deleted file mode 100644
index ea37c52..0000000
--- a/samples/Support4Demos/res/color/tint_state_list.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:state_pressed="true" android:color="#0000FF" />
-    <item android:color="#FF0000" />
-</selector>
\ No newline at end of file
diff --git a/samples/Support4Demos/res/drawable-hdpi/alert_dialog_icon.png b/samples/Support4Demos/res/drawable-hdpi/alert_dialog_icon.png
deleted file mode 100755
index fe54477..0000000
--- a/samples/Support4Demos/res/drawable-hdpi/alert_dialog_icon.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support4Demos/res/drawable-hdpi/android_robot.png b/samples/Support4Demos/res/drawable-hdpi/android_robot.png
deleted file mode 100644
index e2bdf7d..0000000
--- a/samples/Support4Demos/res/drawable-hdpi/android_robot.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support4Demos/res/drawable-hdpi/app_sample_code.png b/samples/Support4Demos/res/drawable-hdpi/app_sample_code.png
deleted file mode 100755
index 66a1984..0000000
--- a/samples/Support4Demos/res/drawable-hdpi/app_sample_code.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support4Demos/res/drawable-hdpi/ic_drawer_am.png b/samples/Support4Demos/res/drawable-hdpi/ic_drawer_am.png
deleted file mode 100644
index ff7b1de..0000000
--- a/samples/Support4Demos/res/drawable-hdpi/ic_drawer_am.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support4Demos/res/drawable-hdpi/ic_favorite.png b/samples/Support4Demos/res/drawable-hdpi/ic_favorite.png
deleted file mode 100644
index 1de4e58..0000000
--- a/samples/Support4Demos/res/drawable-hdpi/ic_favorite.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support4Demos/res/drawable-hdpi/ic_notification.png b/samples/Support4Demos/res/drawable-hdpi/ic_notification.png
deleted file mode 100644
index a8cba40..0000000
--- a/samples/Support4Demos/res/drawable-hdpi/ic_notification.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support4Demos/res/drawable-hdpi/ic_pause_white_24dp.png b/samples/Support4Demos/res/drawable-hdpi/ic_pause_white_24dp.png
deleted file mode 100644
index b4bdbb5..0000000
--- a/samples/Support4Demos/res/drawable-hdpi/ic_pause_white_24dp.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support4Demos/res/drawable-hdpi/ic_play_arrow_white_24dp.png b/samples/Support4Demos/res/drawable-hdpi/ic_play_arrow_white_24dp.png
deleted file mode 100644
index 164385d..0000000
--- a/samples/Support4Demos/res/drawable-hdpi/ic_play_arrow_white_24dp.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support4Demos/res/drawable-hdpi/ic_skip_next_white_24dp.png b/samples/Support4Demos/res/drawable-hdpi/ic_skip_next_white_24dp.png
deleted file mode 100644
index 4eaf7ca..0000000
--- a/samples/Support4Demos/res/drawable-hdpi/ic_skip_next_white_24dp.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support4Demos/res/drawable-hdpi/ic_skip_previous_white_24dp.png b/samples/Support4Demos/res/drawable-hdpi/ic_skip_previous_white_24dp.png
deleted file mode 100644
index e59dedb..0000000
--- a/samples/Support4Demos/res/drawable-hdpi/ic_skip_previous_white_24dp.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support4Demos/res/drawable-hdpi/refresh.png b/samples/Support4Demos/res/drawable-hdpi/refresh.png
deleted file mode 100644
index d65c15f..0000000
--- a/samples/Support4Demos/res/drawable-hdpi/refresh.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support4Demos/res/drawable-mdpi/alert_dialog_icon.png b/samples/Support4Demos/res/drawable-mdpi/alert_dialog_icon.png
deleted file mode 100644
index 0a7de04..0000000
--- a/samples/Support4Demos/res/drawable-mdpi/alert_dialog_icon.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support4Demos/res/drawable-mdpi/android_robot.png b/samples/Support4Demos/res/drawable-mdpi/android_robot.png
deleted file mode 100644
index 62b8e10..0000000
--- a/samples/Support4Demos/res/drawable-mdpi/android_robot.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support4Demos/res/drawable-mdpi/app_sample_code.png b/samples/Support4Demos/res/drawable-mdpi/app_sample_code.png
deleted file mode 100644
index 5ae7701..0000000
--- a/samples/Support4Demos/res/drawable-mdpi/app_sample_code.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support4Demos/res/drawable-mdpi/ic_drawer_am.png b/samples/Support4Demos/res/drawable-mdpi/ic_drawer_am.png
deleted file mode 100644
index fb681ba..0000000
--- a/samples/Support4Demos/res/drawable-mdpi/ic_drawer_am.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support4Demos/res/drawable-mdpi/ic_favorite.png b/samples/Support4Demos/res/drawable-mdpi/ic_favorite.png
deleted file mode 100644
index aa5d340..0000000
--- a/samples/Support4Demos/res/drawable-mdpi/ic_favorite.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support4Demos/res/drawable-mdpi/refresh.png b/samples/Support4Demos/res/drawable-mdpi/refresh.png
deleted file mode 100644
index dc96718..0000000
--- a/samples/Support4Demos/res/drawable-mdpi/refresh.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support4Demos/res/drawable-xhdpi/android_robot.png b/samples/Support4Demos/res/drawable-xhdpi/android_robot.png
deleted file mode 100644
index 88b1113..0000000
--- a/samples/Support4Demos/res/drawable-xhdpi/android_robot.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support4Demos/res/drawable-xhdpi/ic_drawer_am.png b/samples/Support4Demos/res/drawable-xhdpi/ic_drawer_am.png
deleted file mode 100644
index b9bc3d7..0000000
--- a/samples/Support4Demos/res/drawable-xhdpi/ic_drawer_am.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support4Demos/res/drawable-xhdpi/ic_equalizer_white_24dp.png b/samples/Support4Demos/res/drawable-xhdpi/ic_equalizer_white_24dp.png
deleted file mode 100644
index dbba844..0000000
--- a/samples/Support4Demos/res/drawable-xhdpi/ic_equalizer_white_24dp.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support4Demos/res/drawable-xhdpi/ic_favorite.png b/samples/Support4Demos/res/drawable-xhdpi/ic_favorite.png
deleted file mode 100644
index 5868c34..0000000
--- a/samples/Support4Demos/res/drawable-xhdpi/ic_favorite.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support4Demos/res/drawable-xhdpi/ic_pause_white_24dp.png b/samples/Support4Demos/res/drawable-xhdpi/ic_pause_white_24dp.png
deleted file mode 100644
index 14b6d17..0000000
--- a/samples/Support4Demos/res/drawable-xhdpi/ic_pause_white_24dp.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support4Demos/res/drawable-xhdpi/ic_play_arrow_white_24dp.png b/samples/Support4Demos/res/drawable-xhdpi/ic_play_arrow_white_24dp.png
deleted file mode 100644
index a55d199..0000000
--- a/samples/Support4Demos/res/drawable-xhdpi/ic_play_arrow_white_24dp.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support4Demos/res/drawable-xhdpi/ic_skip_next_white_24dp.png b/samples/Support4Demos/res/drawable-xhdpi/ic_skip_next_white_24dp.png
deleted file mode 100644
index f282b92..0000000
--- a/samples/Support4Demos/res/drawable-xhdpi/ic_skip_next_white_24dp.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support4Demos/res/drawable-xhdpi/ic_skip_previous_white_24dp.png b/samples/Support4Demos/res/drawable-xhdpi/ic_skip_previous_white_24dp.png
deleted file mode 100644
index 2522877..0000000
--- a/samples/Support4Demos/res/drawable-xhdpi/ic_skip_previous_white_24dp.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support4Demos/res/drawable-xhdpi/refresh.png b/samples/Support4Demos/res/drawable-xhdpi/refresh.png
deleted file mode 100644
index 47da13e..0000000
--- a/samples/Support4Demos/res/drawable-xhdpi/refresh.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support4Demos/res/drawable-xxhdpi/ic_default_art.png b/samples/Support4Demos/res/drawable-xxhdpi/ic_default_art.png
deleted file mode 100644
index dfb9e67..0000000
--- a/samples/Support4Demos/res/drawable-xxhdpi/ic_default_art.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support4Demos/res/drawable-xxhdpi/ic_equalizer_white_24dp.png b/samples/Support4Demos/res/drawable-xxhdpi/ic_equalizer_white_24dp.png
deleted file mode 100644
index b82a8d9..0000000
--- a/samples/Support4Demos/res/drawable-xxhdpi/ic_equalizer_white_24dp.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support4Demos/res/drawable-xxhdpi/ic_favorite.png b/samples/Support4Demos/res/drawable-xxhdpi/ic_favorite.png
deleted file mode 100644
index 02b46e3..0000000
--- a/samples/Support4Demos/res/drawable-xxhdpi/ic_favorite.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support4Demos/res/drawable-xxhdpi/ic_pause_white_24dp.png b/samples/Support4Demos/res/drawable-xxhdpi/ic_pause_white_24dp.png
deleted file mode 100644
index 72dfa9f..0000000
--- a/samples/Support4Demos/res/drawable-xxhdpi/ic_pause_white_24dp.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support4Demos/res/drawable-xxhdpi/ic_play_arrow_white_24dp.png b/samples/Support4Demos/res/drawable-xxhdpi/ic_play_arrow_white_24dp.png
deleted file mode 100644
index 043acd8..0000000
--- a/samples/Support4Demos/res/drawable-xxhdpi/ic_play_arrow_white_24dp.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support4Demos/res/drawable-xxhdpi/ic_skip_next_white_24dp.png b/samples/Support4Demos/res/drawable-xxhdpi/ic_skip_next_white_24dp.png
deleted file mode 100644
index 4fe6088..0000000
--- a/samples/Support4Demos/res/drawable-xxhdpi/ic_skip_next_white_24dp.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support4Demos/res/drawable-xxhdpi/ic_skip_previous_white_24dp.png b/samples/Support4Demos/res/drawable-xxhdpi/ic_skip_previous_white_24dp.png
deleted file mode 100644
index 2c9310a..0000000
--- a/samples/Support4Demos/res/drawable-xxhdpi/ic_skip_previous_white_24dp.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support4Demos/res/drawable-xxhdpi/ic_star_off.png b/samples/Support4Demos/res/drawable-xxhdpi/ic_star_off.png
deleted file mode 100644
index fb7afb0..0000000
--- a/samples/Support4Demos/res/drawable-xxhdpi/ic_star_off.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support4Demos/res/drawable-xxhdpi/ic_star_on.png b/samples/Support4Demos/res/drawable-xxhdpi/ic_star_on.png
deleted file mode 100644
index 6f7fc75..0000000
--- a/samples/Support4Demos/res/drawable-xxhdpi/ic_star_on.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support4Demos/res/drawable-xxxhdpi/ic_favorite.png b/samples/Support4Demos/res/drawable-xxxhdpi/ic_favorite.png
deleted file mode 100644
index d7684c4..0000000
--- a/samples/Support4Demos/res/drawable-xxxhdpi/ic_favorite.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support4Demos/res/drawable/gradient.xml b/samples/Support4Demos/res/drawable/gradient.xml
deleted file mode 100644
index 8c77d29..0000000
--- a/samples/Support4Demos/res/drawable/gradient.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<shape xmlns:android="http://schemas.android.com/apk/res/android">
-    <gradient android:startColor="#c8c8ff"
-              android:endColor="#c8ffc8"
-              android:angle="270" />
-</shape>
\ No newline at end of file
diff --git a/samples/Support4Demos/res/drawable/ic_drawer.xml b/samples/Support4Demos/res/drawable/ic_drawer.xml
deleted file mode 100644
index 919540f..0000000
--- a/samples/Support4Demos/res/drawable/ic_drawer.xml
+++ /dev/null
@@ -1,24 +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.
- */
--->
-
-<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
-        android:src="@drawable/ic_drawer_am"
-        android:autoMirrored="true">
-</bitmap>
-
diff --git a/samples/Support4Demos/res/layout-land/fragment_arguments_support.xml b/samples/Support4Demos/res/layout-land/fragment_arguments_support.xml
deleted file mode 100644
index b0b89fb..0000000
--- a/samples/Support4Demos/res/layout-land/fragment_arguments_support.xml
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<!-- Top-level content view for the simple fragment sample. -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:orientation="vertical" android:padding="4dip"
-    android:gravity="center_horizontal"
-    android:layout_width="match_parent" android:layout_height="match_parent">
-
-    <TextView
-            android:id="@+id/text"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_weight="0"
-            android:padding="4dip"
-            android:layout_gravity="center_vertical|center_horizontal"
-            android:gravity="top|center_horizontal"
-            android:textAppearance="?android:attr/textAppearanceMedium"
-            android:text="@string/fragment_arguments_msg" />
-
-    <LinearLayout android:orientation="horizontal" android:padding="4dip"
-        android:layout_width="match_parent" android:layout_height="wrap_content">
-
-        <fragment class="com.example.android.supportv4.app.FragmentArgumentsSupport$MyFragment"
-                android:id="@+id/embedded"
-                android:layout_width="0px" android:layout_height="wrap_content"
-                android:layout_weight="1"
-                android:label="@string/fragment_arguments_embedded" />
-
-        <FrameLayout
-                android:id="@+id/created"
-                android:layout_width="0px"
-                android:layout_height="wrap_content"
-                android:layout_weight="1" />
-
-    </LinearLayout>
-
-    <fragment class="com.example.android.supportv4.app.FragmentArgumentsSupport$MyFragment"
-            android:id="@+id/embedded_land"
-            android:layout_width="match_parent" android:layout_height="wrap_content"
-            android:label="@string/fragment_arguments_embedded_land" />
-
-</LinearLayout>
diff --git a/samples/Support4Demos/res/layout-land/fragment_layout_support.xml b/samples/Support4Demos/res/layout-land/fragment_layout_support.xml
deleted file mode 100644
index 85de600..0000000
--- a/samples/Support4Demos/res/layout-land/fragment_layout_support.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<!-- Top-level content view for the layout fragment sample.  This version is
-     for display when in landscape: we can fit both titles and dialog. -->
-
-<!-- BEGIN_INCLUDE(layout) -->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:orientation="horizontal"
-    android:layout_width="match_parent" android:layout_height="match_parent">
-
-    <fragment class="com.example.android.supportv4.app.FragmentLayoutSupport$TitlesFragment"
-            android:id="@+id/titles" android:layout_weight="1"
-            android:layout_width="0px" android:layout_height="match_parent" />
-
-    <FrameLayout android:id="@+id/details" android:layout_weight="1"
-            android:layout_width="0px" android:layout_height="match_parent" />
-
-</LinearLayout>
-<!-- END_INCLUDE(layout) -->
diff --git a/samples/Support4Demos/res/layout/accessibility_delegate.xml b/samples/Support4Demos/res/layout/accessibility_delegate.xml
deleted file mode 100644
index 333f90d..0000000
--- a/samples/Support4Demos/res/layout/accessibility_delegate.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
-
-    <TextView
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:text="@string/accessibility_delegate_instructions"/>
-
-    <view class="com.example.android.supportv4.accessibility.AccessibilityDelegateSupportActivity$AccessibilityDelegateSupportView"
-        android:layout_width="wrap_content"
-        android:layout_height="50dip"
-        android:layout_marginTop="50dip"
-        android:background="@android:drawable/btn_default"/>
-
-</LinearLayout>
diff --git a/samples/Support4Demos/res/layout/accessibility_manager.xml b/samples/Support4Demos/res/layout/accessibility_manager.xml
deleted file mode 100644
index e8814c4..0000000
--- a/samples/Support4Demos/res/layout/accessibility_manager.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent">
-
-    <LinearLayout
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:orientation="vertical">
-
-    <TextView
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:text="@string/accessibility_manager_instructions"/>
-
-        <TextView
-            android:id="@+id/accessibility_state"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginTop="50dip"/>
-
-    </LinearLayout>
-
-</ScrollView>
diff --git a/samples/Support4Demos/res/layout/accessibility_roledescription.xml b/samples/Support4Demos/res/layout/accessibility_roledescription.xml
deleted file mode 100644
index a617e09..0000000
--- a/samples/Support4Demos/res/layout/accessibility_roledescription.xml
+++ /dev/null
@@ -1,100 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<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="match_parent"
-        android:orientation="vertical">
-
-        <TextView
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:text="@string/accessibility_roledescription_instructions"/>
-
-        <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:orientation="horizontal"
-            android:padding="24dp">
-
-            <TextView
-                android:id="@+id/text_view_1"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:padding="24dp"
-                android:background="#ffffff"
-                android:textColor="#000000"
-                android:text="@string/accessibility_roledescription_item"/>
-
-            <TextView
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_marginStart="24dp"
-                android:padding="24dp"
-                android:background="#ffffff"
-                android:textColor="#000000"
-                android:text="@string/accessibility_roledescription_item"/>
-
-        </LinearLayout>
-
-        <TextView
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:text="@string/accessibility_roledescription_example"/>
-
-        <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:orientation="vertical"
-            android:padding="24dp">
-
-            <TextView
-                android:id="@+id/text_heading_1"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_marginStart="0dp"
-                android:textSize="24sp"
-                android:text="@string/accessibility_roledescription_h1_item"/>
-
-            <TextView
-                android:id="@+id/text_heading_2"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_marginStart="24dp"
-                android:textSize="20sp"
-                android:text="@string/accessibility_roledescription_h2_item"/>
-
-            <TextView
-                android:id="@+id/text_heading_3"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_marginStart="48dp"
-                android:textSize="16sp"
-                android:text="@string/accessibility_roledescription_h3_item"/>
-
-        </LinearLayout>
-
-        <TextView
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:text="@string/accessibility_roledescription_counterexample"/>
-
-        <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:orientation="vertical"
-            android:padding="24dp">
-
-            <Button
-                android:id="@+id/button"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:text="@string/accessibility_roledescription_button_item"/>
-
-        </LinearLayout>
-
-    </LinearLayout>
-
-</ScrollView>
diff --git a/samples/Support4Demos/res/layout/activity_player.xml b/samples/Support4Demos/res/layout/activity_player.xml
deleted file mode 100644
index 21cdbbd..0000000
--- a/samples/Support4Demos/res/layout/activity_player.xml
+++ /dev/null
@@ -1,22 +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.
-  -->
-<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=".MusicPlayerActivity"
-             tools:ignore="MergeRootFrame" />
diff --git a/samples/Support4Demos/res/layout/activity_rounded_bitmap.xml b/samples/Support4Demos/res/layout/activity_rounded_bitmap.xml
deleted file mode 100644
index b40d288..0000000
--- a/samples/Support4Demos/res/layout/activity_rounded_bitmap.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<!--
-  ~ 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"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:gravity="center_horizontal"
-    android:orientation="vertical">
-
-    <ToggleButton
-        android:id="@+id/toggle_round"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:textOff="@string/regular"
-        android:textOn="@string/round"
-        android:layout_marginBottom="16dp"/>
-
-    <ImageView
-        android:id="@+id/image"
-        android:layout_width="200dp"
-        android:layout_height="200dp" />
-
-</LinearLayout>
diff --git a/samples/Support4Demos/res/layout/bidiformater_support.xml b/samples/Support4Demos/res/layout/bidiformater_support.xml
deleted file mode 100644
index 92f4ae0..0000000
--- a/samples/Support4Demos/res/layout/bidiformater_support.xml
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-              android:orientation="vertical"
-              android:padding="16dp"
-              android:layout_width="match_parent"
-              android:layout_height="match_parent">
-
-    <LinearLayout android:orientation="horizontal"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content">
-
-        <TextView android:layout_width="wrap_content"
-                  android:layout_height="wrap_content"
-                  android:textSize="24dip"
-                  android:text="@string/without_bidiformatter"
-                 />
-
-        <TextView android:id="@+id/textview_without_bidiformatter"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  android:textSize="24dip"
-                 />
-
-    </LinearLayout>
-
-    <LinearLayout android:orientation="horizontal"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content">
-
-        <TextView android:layout_width="wrap_content"
-                  android:layout_height="wrap_content"
-                  android:textSize="24dip"
-                  android:text="@string/with_bidiformatter"
-                />
-
-        <TextView android:id="@+id/textview_with_bidiformatter"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  android:textSize="24dip"
-                  />
-
-    </LinearLayout>
-
-</LinearLayout>
diff --git a/samples/Support4Demos/res/layout/content_loading_progressbar.xml b/samples/Support4Demos/res/layout/content_loading_progressbar.xml
deleted file mode 100644
index 7e7d9e0..0000000
--- a/samples/Support4Demos/res/layout/content_loading_progressbar.xml
+++ /dev/null
@@ -1,55 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:orientation="vertical"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content">
-
-    <android.support.v4.widget.ContentLoadingProgressBar
-        android:id="@+id/progressbar"
-        style="?android:attr/progressBarStyleLarge"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:visibility="gone" />
-
-    <Button android:id="@+id/show"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:text="@string/show" />
-
-    <Button android:id="@+id/hide"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:text="@string/hide" />
-
-    <TextView android:id="@+id/show_text"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"/>
-
-    <TextView android:id="@+id/show_text_done"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"/>
-
-    <TextView android:id="@+id/hide_text"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"/>
-
-    <TextView android:id="@+id/hide_text_done"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"/>
-
-</LinearLayout>
diff --git a/samples/Support4Demos/res/layout/drawable_compat.xml b/samples/Support4Demos/res/layout/drawable_compat.xml
deleted file mode 100644
index dbf0413..0000000
--- a/samples/Support4Demos/res/layout/drawable_compat.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<!--
-  ~ 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"
-              android:layout_width="match_parent"
-              android:layout_height="match_parent"
-              android:gravity="center_horizontal"
-              android:orientation="vertical">
-
-    <ImageView
-            android:id="@+id/image"
-            android:layout_width="200dp"
-            android:layout_height="200dp"
-            android:clickable="true"/>
-
-    <RadioGroup
-            android:id="@+id/drawable_compat_options"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content">
-
-        <RadioButton android:id="@+id/drawable_compat_no_tint"
-                     android:layout_width="wrap_content"
-                     android:layout_height="wrap_content"
-                     android:text="@string/drawable_compat_no_tint"/>
-
-        <RadioButton android:id="@+id/drawable_compat_color"
-                     android:layout_width="wrap_content"
-                     android:layout_height="wrap_content"
-                     android:text="@string/drawable_compat_color_tint"/>
-
-        <RadioButton android:id="@+id/drawable_compat_state_list"
-                     android:layout_width="wrap_content"
-                     android:layout_height="wrap_content"
-                     android:text="@string/drawable_compat_color_list_tint"/>
-
-    </RadioGroup>
-
-</LinearLayout>
diff --git a/samples/Support4Demos/res/layout/explore_by_touch_helper.xml b/samples/Support4Demos/res/layout/explore_by_touch_helper.xml
deleted file mode 100644
index 0b367a4..0000000
--- a/samples/Support4Demos/res/layout/explore_by_touch_helper.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical" >
-
-    <view
-        class="com.example.android.supportv4.widget.ExploreByTouchHelperActivity$CustomView"
-        android:id="@+id/custom_view"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent" />
-
-</LinearLayout>
\ No newline at end of file
diff --git a/samples/Support4Demos/res/layout/file_provider_example.xml b/samples/Support4Demos/res/layout/file_provider_example.xml
deleted file mode 100644
index 2e53c3b..0000000
--- a/samples/Support4Demos/res/layout/file_provider_example.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:orientation="vertical"
-    android:padding="16dp"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent">
-
-    <Button
-        android:text="@string/share_file"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:onClick="onShareFileClick" />
-
-</LinearLayout>
diff --git a/samples/Support4Demos/res/layout/fragment_arguments_support.xml b/samples/Support4Demos/res/layout/fragment_arguments_support.xml
deleted file mode 100644
index 466583e..0000000
--- a/samples/Support4Demos/res/layout/fragment_arguments_support.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<!-- Top-level content view for the simple fragment sample. -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:orientation="vertical" android:padding="4dip"
-    android:gravity="center_horizontal"
-    android:layout_width="match_parent" android:layout_height="match_parent">
-
-    <TextView
-            android:id="@+id/text"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_weight="0"
-            android:padding="4dip"
-            android:layout_gravity="center_vertical|center_horizontal"
-            android:gravity="top|center_horizontal"
-            android:textAppearance="?android:attr/textAppearanceMedium"
-            android:text="@string/fragment_arguments_msg" />
-
-    <LinearLayout android:orientation="horizontal" android:padding="4dip"
-        android:layout_width="match_parent" android:layout_height="wrap_content">
-
-<!-- BEGIN_INCLUDE(from_attributes) -->
-        <fragment class="com.example.android.supportv4.app.FragmentArgumentsSupport$MyFragment"
-                android:id="@+id/embedded"
-                android:layout_width="0px" android:layout_height="wrap_content"
-                android:layout_weight="1"
-                android:label="@string/fragment_arguments_embedded" />
-<!-- END_INCLUDE(from_attributes) -->
-
-        <FrameLayout
-                android:id="@+id/created"
-                android:layout_width="0px"
-                android:layout_height="wrap_content"
-                android:layout_weight="1" />
-
-    </LinearLayout>
-
-</LinearLayout>
diff --git a/samples/Support4Demos/res/layout/fragment_context_menu.xml b/samples/Support4Demos/res/layout/fragment_context_menu.xml
deleted file mode 100644
index b5dac8e..0000000
--- a/samples/Support4Demos/res/layout/fragment_context_menu.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-  
-          http://www.apache.org/licenses/LICENSE-2.0
-  
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="wrap_content"
-    android:padding="8dp">
-
-    <TextView
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_gravity="center"
-        android:textAppearance="?android:attr/textAppearanceMedium"
-        android:text="@string/fragment_context_menu_msg" />
-
-    <Button android:id="@+id/long_press"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_gravity="center"
-        android:text="@string/long_press">
-        <requestFocus />
-    </Button>
-    
-</LinearLayout>
diff --git a/samples/Support4Demos/res/layout/fragment_dialog.xml b/samples/Support4Demos/res/layout/fragment_dialog.xml
deleted file mode 100644
index f9dec59..0000000
--- a/samples/Support4Demos/res/layout/fragment_dialog.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<!-- Top-level content view for the simple fragment sample. -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:orientation="vertical" android:padding="4dip"
-    android:gravity="center_horizontal"
-    android:layout_width="match_parent" android:layout_height="match_parent">
-
-    <TextView
-            android:id="@+id/text"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_weight="1"
-            android:layout_gravity="center_vertical|center_horizontal"
-            android:textAppearance="?android:attr/textAppearanceMedium"
-            android:gravity="top|center_horizontal" />
-
-    <Button android:id="@+id/show"
-        android:layout_width="wrap_content" android:layout_height="wrap_content"
-        android:layout_weight="0"
-        android:text="@string/show">
-        <requestFocus />
-    </Button>
-
-</LinearLayout>
diff --git a/samples/Support4Demos/res/layout/fragment_dialog_or_activity.xml b/samples/Support4Demos/res/layout/fragment_dialog_or_activity.xml
deleted file mode 100644
index 295f017..0000000
--- a/samples/Support4Demos/res/layout/fragment_dialog_or_activity.xml
+++ /dev/null
@@ -1,64 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<!-- Top-level content view for the simple fragment sample. -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:orientation="vertical" android:padding="4dip"
-    android:gravity="center_horizontal"
-    android:layout_width="match_parent" android:layout_height="match_parent">
-
-    <TextView
-            android:id="@+id/text"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_weight="0"
-            android:layout_gravity="center_vertical|center_horizontal"
-            android:gravity="top|center_horizontal"
-            android:textAppearance="?android:attr/textAppearanceMedium"
-            android:text="@string/fragment_dialog_or_activity_msg" />
-
-    <Button android:id="@+id/show_dialog"
-        android:layout_width="wrap_content" android:layout_height="wrap_content"
-        android:layout_weight="0"
-        android:text="@string/show">
-        <requestFocus />
-    </Button>
-
-    <View android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_weight="1" />
-
-    <TextView
-            android:id="@+id/inline_text"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_weight="0"
-            android:layout_gravity="center_vertical|center_horizontal"
-            android:textAppearance="?android:attr/textAppearanceMedium"
-            android:text="@string/fragment_dialog_or_activity_inline" />
-
-    <FrameLayout
-            android:id="@+id/embedded"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_weight="0"
-            android:layout_gravity="center_vertical|center_horizontal"
-            android:padding="6dp"
-            android:background="#ff303030"
-            android:gravity="top|center_horizontal" />
-
-</LinearLayout>
diff --git a/samples/Support4Demos/res/layout/fragment_hide_show_support.xml b/samples/Support4Demos/res/layout/fragment_hide_show_support.xml
deleted file mode 100644
index 604cf42..0000000
--- a/samples/Support4Demos/res/layout/fragment_hide_show_support.xml
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<!-- Top-level content view for the layout fragment sample. -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:orientation="vertical"
-    android:gravity="center_horizontal"
-    android:layout_width="match_parent" android:layout_height="match_parent">
-
-    <TextView android:layout_width="match_parent" android:layout_height="wrap_content"
-        android:gravity="center_vertical|center_horizontal"
-        android:textAppearance="?android:attr/textAppearanceMedium"
-        android:text="Demonstration of hiding and showing fragments." />
-
-    <LinearLayout android:orientation="horizontal" android:padding="4dip"
-        android:gravity="center_vertical" android:layout_weight="1"
-        android:layout_width="match_parent" android:layout_height="wrap_content">
-
-        <Button android:id="@+id/frag1hide"
-            android:layout_width="wrap_content" android:layout_height="wrap_content"
-            android:text="Hide" />
-
-        <fragment android:name="com.example.android.supportv4.app.FragmentHideShowSupport$FirstFragment"
-                android:id="@+id/fragment1" android:layout_weight="1"
-                android:layout_width="0px" android:layout_height="wrap_content" />
-
-    </LinearLayout>
-
-    <LinearLayout android:orientation="horizontal" android:padding="4dip"
-        android:gravity="center_vertical" android:layout_weight="1"
-        android:layout_width="match_parent" android:layout_height="wrap_content">
-
-        <Button android:id="@+id/frag2hide"
-            android:layout_width="wrap_content" android:layout_height="wrap_content"
-            android:text="Hide" />
-
-        <fragment android:name="com.example.android.supportv4.app.FragmentHideShowSupport$SecondFragment"
-                android:id="@+id/fragment2" android:layout_weight="1"
-                android:layout_width="0px" android:layout_height="wrap_content" />
-
-    </LinearLayout>
-
-</LinearLayout>
diff --git a/samples/Support4Demos/res/layout/fragment_layout_support.xml b/samples/Support4Demos/res/layout/fragment_layout_support.xml
deleted file mode 100644
index 5910b78..0000000
--- a/samples/Support4Demos/res/layout/fragment_layout_support.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<!-- Top-level content view for the layout fragment sample.  This version is
-     for display when not in landscape: we can only fit the list of titles. -->
-
-<!-- BEGIN_INCLUDE(layout) -->
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent" android:layout_height="match_parent">
-    <fragment class="com.example.android.supportv4.app.FragmentLayoutSupport$TitlesFragment"
-            android:id="@+id/titles"
-            android:layout_width="match_parent" android:layout_height="match_parent" />
-</FrameLayout>
-<!-- END_INCLUDE(layout) -->
diff --git a/samples/Support4Demos/res/layout/fragment_list.xml b/samples/Support4Demos/res/layout/fragment_list.xml
deleted file mode 100644
index c169fec..0000000
--- a/samples/Support4Demos/res/layout/fragment_list.xml
+++ /dev/null
@@ -1,60 +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.
-  -->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-              android:orientation="vertical"
-              android:layout_width="match_parent"
-              android:layout_height="match_parent"
-              android:padding="@dimen/fragment_list_padding">
-
-    <LinearLayout
-        android:id="@+id/controls"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:orientation="horizontal">
-
-        <ImageButton
-            android:id="@+id/skip_previous"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_weight="1"
-            android:src="@drawable/ic_skip_previous_white_24dp"
-            android:contentDescription="@string/skip_previous"/>
-
-        <ImageButton
-            android:id="@+id/play_pause"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_weight="1"
-            android:src="@drawable/ic_play_arrow_white_24dp"
-            android:contentDescription="@string/play_pause"/>
-
-        <ImageButton
-            android:id="@+id/skip_next"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_weight="1"
-            android:src="@drawable/ic_skip_next_white_24dp"
-            android:contentDescription="@string/skip_next"/>
-
-    </LinearLayout>
-
-    <ListView
-        android:id="@+id/list_view"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent">
-    </ListView>
-
-</LinearLayout>
diff --git a/samples/Support4Demos/res/layout/fragment_menu.xml b/samples/Support4Demos/res/layout/fragment_menu.xml
deleted file mode 100644
index 7f0278c..0000000
--- a/samples/Support4Demos/res/layout/fragment_menu.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-  
-          http://www.apache.org/licenses/LICENSE-2.0
-  
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="wrap_content"
-    android:padding="8dp">
-
-    <TextView
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_gravity="center"
-        android:textAppearance="?android:attr/textAppearanceMedium"
-        android:text="@string/fragment_menu_msg" />
-
-    <CheckBox android:id="@+id/menu1"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_gravity="center"
-        android:checked="true"
-        android:text="@string/fragment1menu">
-    </CheckBox>
-    
-    <CheckBox android:id="@+id/menu2"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_gravity="center"
-        android:checked="true"
-        android:text="@string/fragment2menu">
-    </CheckBox>
-    
-</LinearLayout>
diff --git a/samples/Support4Demos/res/layout/fragment_pager.xml b/samples/Support4Demos/res/layout/fragment_pager.xml
deleted file mode 100644
index 3fe844d..0000000
--- a/samples/Support4Demos/res/layout/fragment_pager.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<!-- Top-level content view for the simple fragment sample. -->
-
-<!-- BEGIN_INCLUDE(complete) -->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-        android:orientation="vertical" android:padding="4dip"
-        android:gravity="center_horizontal"
-        android:layout_width="match_parent" android:layout_height="match_parent">
-
-    <android.support.v4.view.ViewPager
-            android:id="@+id/pager"
-            android:layout_width="match_parent"
-            android:layout_height="0px"
-            android:layout_weight="1">
-    </android.support.v4.view.ViewPager>
-
-    <LinearLayout android:orientation="horizontal"
-            android:gravity="center" android:measureWithLargestChild="true"
-            android:layout_width="match_parent" android:layout_height="wrap_content"
-            android:layout_weight="0">
-        <Button android:id="@+id/goto_first"
-            android:layout_width="wrap_content" android:layout_height="wrap_content"
-            android:text="@string/first">
-        </Button>
-        <Button android:id="@+id/goto_last"
-            android:layout_width="wrap_content" android:layout_height="wrap_content"
-            android:text="@string/last">
-        </Button>
-    </LinearLayout>
-</LinearLayout>
-<!-- END_INCLUDE(complete) -->
diff --git a/samples/Support4Demos/res/layout/fragment_pager_list.xml b/samples/Support4Demos/res/layout/fragment_pager_list.xml
deleted file mode 100644
index 189cfff..0000000
--- a/samples/Support4Demos/res/layout/fragment_pager_list.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<!-- BEGIN_INCLUDE(complete) -->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:orientation="vertical"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:background="@android:drawable/gallery_thumb">
-
-    <TextView android:id="@+id/text"
-        android:layout_width="match_parent" android:layout_height="wrap_content"
-        android:gravity="center_vertical|center_horizontal"
-        android:textAppearance="?android:attr/textAppearanceMedium"
-        android:text="@string/hello_world"/>
-
-    <!-- The frame layout is here since we will be showing either
-    the empty view or the list view.  -->
-    <FrameLayout
-        android:layout_width="match_parent"
-        android:layout_height="0dip"
-        android:layout_weight="1" >
-        <!-- Here is the list. Since we are using a ListActivity, we
-             have to call it "@android:id/list" so ListActivity will
-             find it -->
-        <ListView android:id="@android:id/list"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:drawSelectorOnTop="false"/>
-
-        <!-- Here is the view to show if the list is emtpy -->
-        <TextView android:id="@android:id/empty"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:textAppearance="?android:attr/textAppearanceMedium"
-            android:text="No items."/>
-
-    </FrameLayout>
-
-</LinearLayout>
-<!-- END_INCLUDE(complete) -->
diff --git a/samples/Support4Demos/res/layout/fragment_retain_instance.xml b/samples/Support4Demos/res/layout/fragment_retain_instance.xml
deleted file mode 100644
index 0dc3985..0000000
--- a/samples/Support4Demos/res/layout/fragment_retain_instance.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-  
-          http://www.apache.org/licenses/LICENSE-2.0
-  
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="wrap_content"
-    android:padding="8dp">
-
-    <TextView
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_gravity="center"
-        android:textAppearance="?android:attr/textAppearanceMedium"
-        android:text="@string/fragment_retain_instance_msg" />
-
-    <ProgressBar android:id="@+id/progress_horizontal"
-        style="?android:attr/progressBarStyleHorizontal"
-        android:layout_width="200dip"
-        android:layout_height="wrap_content"
-        android:layout_gravity="center"
-        android:padding="6dp"
-        android:max="500" />
-
-    <Button android:id="@+id/restart"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_gravity="center"
-        android:text="@string/restart">
-        <requestFocus />
-    </Button>
-    
-</LinearLayout>
diff --git a/samples/Support4Demos/res/layout/fragment_stack.xml b/samples/Support4Demos/res/layout/fragment_stack.xml
deleted file mode 100644
index 3825516..0000000
--- a/samples/Support4Demos/res/layout/fragment_stack.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-  
-          http://www.apache.org/licenses/LICENSE-2.0
-  
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<!-- Top-level content view for the simple fragment sample. -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:orientation="vertical" android:padding="4dip"
-    android:gravity="center_horizontal"
-    android:layout_width="match_parent" android:layout_height="match_parent">
-
-    <FrameLayout
-            android:id="@+id/simple_fragment"
-            android:layout_width="match_parent"
-            android:layout_height="0px"
-            android:layout_weight="1">
-    </FrameLayout>
-
-    <LinearLayout
-        android:layout_width="wrap_content" android:layout_height="wrap_content"
-        android:layout_weight="0" android:orientation="horizontal">
-        <Button android:id="@+id/home"
-            android:layout_width="wrap_content" android:layout_height="wrap_content"
-            android:text="@string/home">
-            <requestFocus />
-        </Button>
-        <Button android:id="@+id/new_fragment"
-            android:layout_width="wrap_content" android:layout_height="wrap_content"
-            android:text="@string/new_fragment">
-        </Button>
-        <Button android:id="@+id/delete_fragment"
-            android:layout_width="wrap_content" android:layout_height="wrap_content"
-            android:text="@string/delete_fragment">
-        </Button>
-        </LinearLayout>
-
-</LinearLayout>
diff --git a/samples/Support4Demos/res/layout/fragment_tabs.xml b/samples/Support4Demos/res/layout/fragment_tabs.xml
deleted file mode 100644
index e443391..0000000
--- a/samples/Support4Demos/res/layout/fragment_tabs.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/* //device/apps/common/assets/res/layout/tab_content.xml
-**
-** Copyright 2011, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<!-- BEGIN_INCLUDE(complete) -->
-<android.support.v4.app.FragmentTabHost
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@android:id/tabhost"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent">
-
-    <LinearLayout
-        android:orientation="vertical"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent">
-
-        <TabWidget
-            android:id="@android:id/tabs"
-            android:orientation="horizontal"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_weight="0"/>
-
-        <FrameLayout
-            android:id="@android:id/tabcontent"
-            android:layout_width="0dp"
-            android:layout_height="0dp"
-            android:layout_weight="0"/>
-
-        <FrameLayout
-            android:id="@+id/realtabcontent"
-            android:layout_width="match_parent"
-            android:layout_height="0dp"
-            android:layout_weight="1"/>
-
-    </LinearLayout>
-</android.support.v4.app.FragmentTabHost>
-<!-- END_INCLUDE(complete) -->
diff --git a/samples/Support4Demos/res/layout/fragment_tabs_pager.xml b/samples/Support4Demos/res/layout/fragment_tabs_pager.xml
deleted file mode 100644
index c36cf3c..0000000
--- a/samples/Support4Demos/res/layout/fragment_tabs_pager.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/* //device/apps/common/assets/res/layout/tab_content.xml
-**
-** Copyright 2011, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<TabHost
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@android:id/tabhost"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent">
-
-    <LinearLayout
-        android:orientation="vertical"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent">
-
-        <TabWidget
-            android:id="@android:id/tabs"
-            android:orientation="horizontal"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_weight="0"/>
-
-        <FrameLayout
-            android:id="@android:id/tabcontent"
-            android:layout_width="0dp"
-            android:layout_height="0dp"
-            android:layout_weight="0"/>
-
-        <android.support.v4.view.ViewPager
-            android:id="@+id/pager"
-            android:layout_width="match_parent"
-            android:layout_height="0dp"
-            android:layout_weight="1"/>
-
-    </LinearLayout>
-</TabHost>
diff --git a/samples/Support4Demos/res/layout/hello_world.xml b/samples/Support4Demos/res/layout/hello_world.xml
deleted file mode 100644
index 3d90a33..0000000
--- a/samples/Support4Demos/res/layout/hello_world.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-  
-          http://www.apache.org/licenses/LICENSE-2.0
-  
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<!-- Demonstrates basic application screen.
-     See corresponding Java code com.android.sdk.app.HelloWorld.java. -->
-
-<!-- This screen consists of a single text field that
-     displays our "Hello, World!" text. -->
-<TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/text"
-    android:layout_width="match_parent" android:layout_height="match_parent"
-    android:gravity="center_vertical|center_horizontal"
-    android:textAppearance="?android:attr/textAppearanceMedium"
-    android:text="@string/hello_world"/>
diff --git a/samples/Support4Demos/res/layout/labeled_text_edit.xml b/samples/Support4Demos/res/layout/labeled_text_edit.xml
deleted file mode 100644
index 27568af..0000000
--- a/samples/Support4Demos/res/layout/labeled_text_edit.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-  
-          http://www.apache.org/licenses/LICENSE-2.0
-  
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<!-- Content for a fragment with a text editor. -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:orientation="vertical" android:padding="4dip"
-    android:layout_width="match_parent" android:layout_height="wrap_content">
-
-    <TextView android:id="@+id/msg"
-        android:layout_width="match_parent" android:layout_height="wrap_content"
-        android:layout_weight="0"
-        android:paddingBottom="4dip" />
-
-    <EditText android:id="@+id/saved"
-        android:layout_width="match_parent" android:layout_height="wrap_content"
-        android:layout_weight="1"
-        android:background="@drawable/green"
-        android:text="@string/initial_text"
-        android:freezesText="true">
-        <requestFocus />
-    </EditText>
-
-</LinearLayout>
-
diff --git a/samples/Support4Demos/res/layout/list_item_icon_text.xml b/samples/Support4Demos/res/layout/list_item_icon_text.xml
deleted file mode 100644
index c3825b7..0000000
--- a/samples/Support4Demos/res/layout/list_item_icon_text.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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">
-
-    <ImageView android:id="@+id/icon"
-        android:layout_width="48dip"
-        android:layout_height="48dip" />
-
-    <TextView android:id="@+id/text"
-        android:layout_gravity="center_vertical"
-        android:layout_width="0dip"
-        android:layout_weight="1.0"
-        android:layout_height="wrap_content" />
-
-</LinearLayout>
diff --git a/samples/Support4Demos/res/layout/local_service_broadcaster.xml b/samples/Support4Demos/res/layout/local_service_broadcaster.xml
deleted file mode 100644
index f01120d..0000000
--- a/samples/Support4Demos/res/layout/local_service_broadcaster.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<!-- Demonstrates starting and stopping a local service.
-     See corresponding Java code com.android.sdk.app.LocalSerice.java. -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:padding="4dip"
-    android:gravity="center_horizontal"
-    android:layout_width="match_parent" android:layout_height="match_parent">
-
-    <TextView
-        android:layout_width="match_parent" android:layout_height="wrap_content"
-        android:layout_weight="0"
-        android:paddingBottom="4dip"
-        android:text="@string/local_service_broadcaster_msg"/>
-
-    <Button android:id="@+id/start"
-        android:layout_width="wrap_content" android:layout_height="wrap_content"
-        android:text="@string/start_service">
-        <requestFocus />
-    </Button>
-
-    <Button android:id="@+id/stop"
-        android:layout_width="wrap_content" android:layout_height="wrap_content"
-        android:text="@string/stop_service">
-    </Button>
-
-    <TextView android:id="@+id/callback"
-        android:layout_width="match_parent" android:layout_height="wrap_content"
-        android:layout_weight="0"
-        android:gravity="center_horizontal" android:paddingTop="4dip"/>
-
-</LinearLayout>
diff --git a/samples/Support4Demos/res/layout/media_controller.xml b/samples/Support4Demos/res/layout/media_controller.xml
deleted file mode 100644
index b5e58b1..0000000
--- a/samples/Support4Demos/res/layout/media_controller.xml
+++ /dev/null
@@ -1,76 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="wrap_content"
-    android:background="#CC000000"
-    android:orientation="vertical"
-    android:layoutDirection="ltr">
-
-    <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:gravity="center"
-        android:paddingTop="4dip"
-        android:orientation="horizontal">
-
-        <ImageButton android:id="@+id/prev" style="@android:style/MediaButton.Previous" />
-        <ImageButton android:id="@+id/rew" style="@android:style/MediaButton.Rew" />
-        <ImageButton android:id="@+id/pause" style="@android:style/MediaButton.Play" />
-        <ImageButton android:id="@+id/ffwd" style="@android:style/MediaButton.Ffwd" />
-        <ImageButton android:id="@+id/next" style="@android:style/MediaButton.Next" />
-
-    </LinearLayout>
-
-    <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:orientation="horizontal">
-
-        <TextView android:id="@+id/time_current"
-            android:textSize="14sp"
-            android:textStyle="bold"
-            android:paddingTop="4dip"
-            android:paddingStart="4dip"
-            android:layout_gravity="center_horizontal"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:paddingEnd="4dip"
-            android:textColor="?android:attr/textColorSecondary" />
-
-        <SeekBar
-            android:id="@+id/mediacontroller_progress"
-            style="?android:attr/progressBarStyleHorizontal"
-            android:layout_width="0dip"
-            android:layout_weight="1"
-            android:layout_height="32dip"
-            android:layout_alignParentStart="true"
-            android:layout_alignParentEnd="true" />
-
-        <TextView android:id="@+id/time"
-            android:textSize="14sp"
-            android:textStyle="bold"
-            android:paddingTop="4dip"
-            android:paddingEnd="4dip"
-            android:layout_gravity="center_horizontal"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:paddingStart="4dip"
-            android:textColor="?android:attr/textColorSecondary" />
-    </LinearLayout>
-
-</LinearLayout>
diff --git a/samples/Support4Demos/res/layout/media_list_item.xml b/samples/Support4Demos/res/layout/media_list_item.xml
deleted file mode 100644
index 72c0ccf..0000000
--- a/samples/Support4Demos/res/layout/media_list_item.xml
+++ /dev/null
@@ -1,55 +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.
-  -->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-              android:layout_width="match_parent"
-              android:layout_height="wrap_content"
-              android:minHeight="?android:listPreferredItemHeight"
-              android:orientation="horizontal">
-
-    <ImageView
-        android:id="@+id/play_eq"
-        android:layout_width="wrap_content"
-        android:layout_height="match_parent"
-        android:contentDescription="@string/play_item"
-        android:src="@drawable/ic_play_arrow_white_24dp"/>
-
-    <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:minHeight="?android:attr/listPreferredItemHeight"
-        android:mode="twoLine"
-        android:padding="@dimen/list_item_padding"
-        android:orientation="vertical">
-
-        <TextView
-            android:id="@+id/title"
-            android:layout_width="fill_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginStart="@dimen/margin_text_view"
-            android:layout_marginTop="@dimen/margin_text_view"
-            android:textAppearance="?android:attr/textAppearanceMedium"/>
-
-        <TextView
-            android:id="@+id/description"
-            android:layout_width="fill_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginStart="@dimen/margin_text_view"
-            android:layout_marginTop="@dimen/margin_text_view"
-            android:textAppearance="?android:attr/textAppearanceSmall"/>
-
-    </LinearLayout>
-
-</LinearLayout>
diff --git a/samples/Support4Demos/res/layout/nested_scroll.xml b/samples/Support4Demos/res/layout/nested_scroll.xml
deleted file mode 100644
index 7793535..0000000
--- a/samples/Support4Demos/res/layout/nested_scroll.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-
-<!--
-    A NestedScrollView behaves like a ScrollView, but it can be placed into
-    other nested scrolling containers or have other nested scrolling containers
-    placed into it.
--->
-<android.support.v4.widget.NestedScrollView
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:padding="16dp">
-    <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:textAppearance="?android:attr/textAppearance"
-            android:text="@string/nested_scroll_long_text" />
-        <android.support.v4.widget.NestedScrollView
-            android:layout_width="match_parent"
-            android:layout_height="200dp"
-            android:padding="16dp">
-            <TextView
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:textAppearance="?android:attr/textAppearance"
-                android:text="@string/nested_scroll_long_text" />
-        </android.support.v4.widget.NestedScrollView>
-        <TextView
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:textAppearance="?android:attr/textAppearance"
-            android:text="@string/nested_scroll_long_text" />
-    </LinearLayout>
-</android.support.v4.widget.NestedScrollView>
\ No newline at end of file
diff --git a/samples/Support4Demos/res/layout/receive_result.xml b/samples/Support4Demos/res/layout/receive_result.xml
deleted file mode 100644
index dbaa29b..0000000
--- a/samples/Support4Demos/res/layout/receive_result.xml
+++ /dev/null
@@ -1,61 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-  
-          http://www.apache.org/licenses/LICENSE-2.0
-  
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<!--
-    Demonstrates receiving activity results.
-    See corresponding Java code com.android.sdk.app.ReceiveResult.java.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:padding="4dip"
-    android:gravity="center_horizontal"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent">
-
-    <TextView
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_weight="0"
-        android:paddingBottom="4dip"
-        android:textAppearance="?android:attr/textAppearanceMedium"
-        android:text="@string/receive_result_instructions"/>
-
-    <TextView android:id="@+id/results"
-        android:layout_width="match_parent"
-        android:layout_height="10dip"
-        android:layout_weight="1"
-        android:paddingBottom="4dip"
-        android:textAppearance="?android:attr/textAppearanceMedium"
-        android:textColor="#000"
-        android:background="@drawable/green">
-    </TextView>
-
-    <Button android:id="@+id/get"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_weight="0"
-            android:text="@string/receive_result_result">
-        <requestFocus />
-    </Button>
-
-    <Button android:id="@+id/get_intentsender"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_weight="0"
-            android:text="@string/receive_result_intentsender">
-    </Button>
-
-</LinearLayout>
-
diff --git a/samples/Support4Demos/res/layout/send_result.xml b/samples/Support4Demos/res/layout/send_result.xml
deleted file mode 100644
index bdd927c..0000000
--- a/samples/Support4Demos/res/layout/send_result.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-  
-          http://www.apache.org/licenses/LICENSE-2.0
-  
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<!-- Demonstrates receiving activity results.
-     See corresponding Java code com.android.sdk.app.ReceiveResult.java. -->
-
-<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="4dip"
-        android:gravity="center_horizontal">
-
-    <TextView
-            android:layout_width="match_parent" android:layout_height="wrap_content"
-            android:layout_weight="0"
-            android:paddingBottom="8dip"
-            android:textAppearance="?android:attr/textAppearanceMedium"
-            android:text="@string/pick_result"/>
-
-    <Button android:id="@+id/corky"
-            android:layout_width="wrap_content" android:layout_height="wrap_content"
-            android:text="@string/corky">
-            <requestFocus />
-    </Button>
-
-    <Button android:id="@+id/violet"
-            android:layout_width="wrap_content" android:layout_height="wrap_content"
-            android:text="@string/violet">
-    </Button>
-
-</LinearLayout>
-
diff --git a/samples/Support4Demos/res/layout/sharing_receiver_support.xml b/samples/Support4Demos/res/layout/sharing_receiver_support.xml
deleted file mode 100644
index a7b4c38..0000000
--- a/samples/Support4Demos/res/layout/sharing_receiver_support.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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:padding="16dp"
-              android:layout_width="match_parent"
-              android:layout_height="match_parent">
-    <TextView android:id="@+id/app_info"
-              android:layout_width="match_parent"
-              android:layout_height="wrap_content"
-              android:gravity="center_vertical"/>
-    <ScrollView android:layout_width="match_parent"
-                android:layout_height="match_parent">
-        <TextView android:id="@+id/text"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content" />
-    </ScrollView>
-</LinearLayout>
diff --git a/samples/Support4Demos/res/layout/sharing_support.xml b/samples/Support4Demos/res/layout/sharing_support.xml
deleted file mode 100644
index 8b88dca..0000000
--- a/samples/Support4Demos/res/layout/sharing_support.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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:padding="16dp"
-              android:layout_width="match_parent"
-              android:layout_height="match_parent">
-    <Button android:id="@+id/share_text"
-            android:text="@string/share_text"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:onClick="onShareTextClick" />
-    <Button android:id="@+id/share_file"
-            android:text="@string/share_file"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:onClick="onShareFileClick" />
-    <Button android:id="@+id/share_multiple_file"
-            android:text="@string/share_multiple_file"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:onClick="onShareMultipleFileClick" />
-</LinearLayout>
diff --git a/samples/Support4Demos/res/layout/simple_list_item_checkable_1.xml b/samples/Support4Demos/res/layout/simple_list_item_checkable_1.xml
deleted file mode 100644
index 84017a6..0000000
--- a/samples/Support4Demos/res/layout/simple_list_item_checkable_1.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<com.example.android.supportv4.view.CheckableFrameLayout
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content">
-    <TextView
-            android:id="@android:id/text1"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:textAppearance="?android:attr/textAppearanceLarge"
-            android:minHeight="?android:attr/listPreferredItemHeight"
-            android:gravity="center_vertical"
-    />
-</com.example.android.supportv4.view.CheckableFrameLayout>
diff --git a/samples/Support4Demos/res/layout/sliding_pane_layout.xml b/samples/Support4Demos/res/layout/sliding_pane_layout.xml
deleted file mode 100644
index ea0ff96..0000000
--- a/samples/Support4Demos/res/layout/sliding_pane_layout.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<!--
-    A SlidingPaneLayout is indended to be used as the top-level content view
-    using match_parent for both width and height to consume the full space available.
--->
-<android.support.v4.widget.SlidingPaneLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/sliding_pane_layout"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent">
-    <!-- The first child view becomes the left pane. When the combined
-         desired width (expressed using android:layout_width) would
-         not fit on-screen at once, the right pane is permitted to
-         overlap the left. -->
-    <ListView android:id="@+id/left_pane"
-              android:layout_width="280dp"
-              android:layout_height="match_parent"
-              android:layout_gravity="left"/>
-    <!-- The second child becomes the right (content) pane. In this
-         example, android:layout_weight is used to express that this
-         pane should grow to consume leftover available space when the
-         window is wide enough. This allows the content pane to
-         responsively grow in width on larger screens while still
-         requiring at least the minimum width expressed by
-         android:layout_width. -->
-    <ScrollView
-        android:layout_width="300dp"
-        android:layout_height="match_parent"
-        android:layout_weight="1"
-        android:paddingLeft="16dp"
-        android:paddingRight="16dp"
-        android:scrollbarStyle="outsideOverlay"
-        android:background="#ff333333">
-        <TextView android:id="@+id/content_text"
-                  android:layout_width="match_parent"
-                  android:layout_height="match_parent"
-                  android:text="@string/sliding_pane_layout_summary"
-                  android:textAppearance="?android:attr/textAppearanceMedium"/>
-    </ScrollView>
-</android.support.v4.widget.SlidingPaneLayout>
-
diff --git a/samples/Support4Demos/res/layout/swipe_refresh_widget_listview.xml b/samples/Support4Demos/res/layout/swipe_refresh_widget_listview.xml
deleted file mode 100644
index af27b23..0000000
--- a/samples/Support4Demos/res/layout/swipe_refresh_widget_listview.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/swipe_refresh_widget"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent">
-
-    <!-- some full screen pullable view that will be the offsetable content -->
-    <ListView
-        android:id="@+id/content"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent" />
-
-</android.support.v4.widget.SwipeRefreshLayout>
\ No newline at end of file
diff --git a/samples/Support4Demos/res/layout/swipe_refresh_widget_nestedscrolling.xml b/samples/Support4Demos/res/layout/swipe_refresh_widget_nestedscrolling.xml
deleted file mode 100644
index 5e18dff..0000000
--- a/samples/Support4Demos/res/layout/swipe_refresh_widget_nestedscrolling.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/swipe_refresh_widget"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent">
-
-    <android.support.v4.widget.NestedScrollView
-        android:id="@+id/content"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:fillViewport="true">
-
-        <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:background="@drawable/gradient">
-
-            <TextView
-                android:layout_width="match_parent"
-                android:layout_height="2000dp"
-                android:text="@string/hello_world"
-                android:gravity="center"/>
-
-        </LinearLayout>
-
-    </android.support.v4.widget.NestedScrollView>
-
-</android.support.v4.widget.SwipeRefreshLayout>
\ No newline at end of file
diff --git a/samples/Support4Demos/res/layout/swipe_refresh_widget_textview.xml b/samples/Support4Demos/res/layout/swipe_refresh_widget_textview.xml
deleted file mode 100644
index 183e172..0000000
--- a/samples/Support4Demos/res/layout/swipe_refresh_widget_textview.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/swipe_refresh_widget"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent">
-
-    <TextView
-        android:id="@+id/content"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:text="@string/hello_world"
-        android:gravity="center"/>
-
-</android.support.v4.widget.SwipeRefreshLayout>
\ No newline at end of file
diff --git a/samples/Support4Demos/res/layout/videoview.xml b/samples/Support4Demos/res/layout/videoview.xml
deleted file mode 100644
index 6d562cb..0000000
--- a/samples/Support4Demos/res/layout/videoview.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-
-<!-- BEGIN_INCLUDE(complete) -->
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent" android:layout_height="match_parent"
-    >
-    <view class="com.example.android.supportv4.media.TransportControllerActivity$Content"
-        android:id="@+id/content"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:layout_gravity="center"
-        />
-    <FrameLayout
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:fitsSystemWindows="true"
-        android:animateLayoutChanges="true"
-        >
-        <com.example.android.supportv4.media.MediaController
-                android:id="@+id/media_controller"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_gravity="bottom">
-        </com.example.android.supportv4.media.MediaController>
-    </FrameLayout>
-</FrameLayout>
-<!-- END_INCLUDE(complete) -->
diff --git a/samples/Support4Demos/res/layout/view_pager_layout.xml b/samples/Support4Demos/res/layout/view_pager_layout.xml
deleted file mode 100644
index de248df..0000000
--- a/samples/Support4Demos/res/layout/view_pager_layout.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-
-<android.support.v4.view.ViewPager
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/pager"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent">
-
-    <android.support.v4.view.PagerTitleStrip
-        android:id="@+id/titles"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_gravity="top" />
-
-</android.support.v4.view.ViewPager>
-
diff --git a/samples/Support4Demos/res/layout/wakeful_alarm_controller.xml b/samples/Support4Demos/res/layout/wakeful_alarm_controller.xml
deleted file mode 100644
index 725331d..0000000
--- a/samples/Support4Demos/res/layout/wakeful_alarm_controller.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-        android:orientation="vertical" android:padding="4dip"
-        android:gravity="center_horizontal"
-        android:layout_width="match_parent" android:layout_height="match_parent">
-
-    <TextView
-        android:layout_width="match_parent" android:layout_height="wrap_content"
-        android:layout_weight="0" android:paddingBottom="4dip"
-        android:textAppearance="?android:attr/textAppearanceMedium"
-        android:text="@string/simple_wakeful_controller_msg"/>
-
-    <Button android:id="@+id/schedule"
-        android:layout_width="wrap_content" android:layout_height="wrap_content"
-        android:text="@string/schedule_wakeful_alarm">
-        <requestFocus />
-    </Button>
-
-</LinearLayout>
-
diff --git a/samples/Support4Demos/res/menu/shortcuts.xml b/samples/Support4Demos/res/menu/shortcuts.xml
deleted file mode 100644
index b5e938a..0000000
--- a/samples/Support4Demos/res/menu/shortcuts.xml
+++ /dev/null
@@ -1,60 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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/invisible_item"
-        android:visible="false"
-        android:alphabeticShortcut="i"
-        android:title="Invisible item" />
-
-    <item android:id="@+id/a_item"
-        android:alphabeticShortcut="a"
-        android:title="Alvin" />
-
-    <item android:id="@+id/b_item"
-        android:alphabeticShortcut="b"
-        android:title="Bart" />
-
-    <item android:id="@+id/c_item"
-        android:alphabeticShortcut="c"
-        android:title="Chris" />
-
-    <item android:id="@+id/d_item"
-        android:alphabeticShortcut="d"
-        android:title="David" />
-
-    <item android:id="@+id/e_item"
-        android:alphabeticShortcut="e"
-        android:title="Eric" />
-
-    <item android:id="@+id/f_item"
-        android:alphabeticShortcut="f"
-        android:title="Frank" />
-
-    <item android:id="@+id/g_item"
-        android:alphabeticShortcut="g"
-        android:title="Gary" />
-
-    <item android:id="@+id/h_item"
-        android:alphabeticShortcut="h"
-        android:title="Henry" />
-
-    <item android:id="@+id/excl_item"
-        android:alphabeticShortcut="!"
-        android:title="Exclamation" />
-
-</menu>
diff --git a/samples/Support4Demos/res/menu/swipe_refresh_menu.xml b/samples/Support4Demos/res/menu/swipe_refresh_menu.xml
deleted file mode 100644
index 214c637..0000000
--- a/samples/Support4Demos/res/menu/swipe_refresh_menu.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<menu xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:id="@+id/force_refresh"
-        android:showAsAction="ifRoom"
-        android:icon="@drawable/refresh"
-        android:title="Refresh" />
-</menu>
\ No newline at end of file
diff --git a/samples/Support4Demos/res/raw/videoviewdemo.mp4 b/samples/Support4Demos/res/raw/videoviewdemo.mp4
deleted file mode 100644
index 5772810..0000000
--- a/samples/Support4Demos/res/raw/videoviewdemo.mp4
+++ /dev/null
Binary files differ
diff --git a/samples/Support4Demos/res/values-v11/styles.xml b/samples/Support4Demos/res/values-v11/styles.xml
deleted file mode 100644
index c21e6d8..0000000
--- a/samples/Support4Demos/res/values-v11/styles.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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>
-    <!-- For API level 11 or later, the Holo theme is available and we prefer that. -->
-    <style name="ThemeHolo" parent="android:Theme.Holo">
-    </style>
-
-    <!-- For API level 11 or later, the Holo theme is available and we prefer that. -->
-    <style name="ThemeHoloLight" parent="android:Theme.Holo.Light">
-    </style>
-
-    <!-- For API level 11 or later, we can use the magical DialogWhenLarge theme. -->
-    <style name="ThemeDialogWhenLarge" parent="android:style/Theme.Holo.DialogWhenLarge">
-    </style>
-</resources>
diff --git a/samples/Support4Demos/res/values/attrs.xml b/samples/Support4Demos/res/values/attrs.xml
deleted file mode 100644
index ce7c910..0000000
--- a/samples/Support4Demos/res/values/attrs.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-  
-          http://www.apache.org/licenses/LICENSE-2.0
-  
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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>
-    <!-- These are the attributes that we want to retrieve for
-         app/FragmentArguments.java -->
-<!-- BEGIN_INCLUDE(fragment_arguments) -->
-    <declare-styleable name="FragmentArguments">
-        <attr name="android:label" />
-    </declare-styleable>
-<!-- END_INCLUDE(fragment_arguments) -->
-</resources>
diff --git a/samples/Support4Demos/res/values/colors.xml b/samples/Support4Demos/res/values/colors.xml
deleted file mode 100644
index ce3d633..0000000
--- a/samples/Support4Demos/res/values/colors.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-  
-          http://www.apache.org/licenses/LICENSE-2.0
-  
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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>
-    <drawable name="red">#7f00</drawable>
-    <drawable name="blue">#770000ff</drawable>
-    <drawable name="green">#7700ff00</drawable>
-    <drawable name="yellow">#77ffff00</drawable>
-    <color name="color1">#ff0f9d58</color>
-    <color name="color2">#ffdb4437</color>
-    <color name="color3">#ff4285f4</color>
-    <color name="color4">#fff4b400</color>
-</resources>
diff --git a/samples/Support4Demos/res/values/dimens.xml b/samples/Support4Demos/res/values/dimens.xml
deleted file mode 100644
index e57a8c9..0000000
--- a/samples/Support4Demos/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>
-    <dimen name="fragment_list_padding">16dp</dimen>
-    <dimen name="list_item_padding">4dp</dimen>
-    <dimen name="margin_text_view">6dp</dimen>
-</resources>
diff --git a/samples/Support4Demos/res/values/strings.xml b/samples/Support4Demos/res/values/strings.xml
deleted file mode 100644
index bd6b31b..0000000
--- a/samples/Support4Demos/res/values/strings.xml
+++ /dev/null
@@ -1,235 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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 xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="activity_sample_code">Support v4 Demos</string>
-
-    <string name="hello_world"><b>Hello, <i>World!</i></b></string>
-    <string name="alert_dialog_two_buttons_title">
-        Lorem ipsum dolor sit aie consectetur adipiscing\nPlloaso mako nuto
-        siwuf cakso dodtos anr koop.
-    </string>
-    <string name="alert_dialog_ok">OK</string>
-    <string name="alert_dialog_cancel">Cancel</string>
-    
-    <string name="initial_text">Initial text.</string>
-    
-    <string name="pick_result">Pick a result to send, or BACK to cancel.</string>
-    <string name="corky">Corky</string>
-    <string name="violet">Violet</string>
-    <string name="receive_result_instructions">Press the buttons below to get an activity or intent sender result, which will be displayed here:</string>
-    <string name="receive_result_result">Get Activity Result</string>
-    <string name="receive_result_intentsender">Get IntentSender Result</string>
-
-    <!-- Fragment API -->
-
-    <string name="fragment_alert_dialog_support">Fragment/Alert Dialog</string>
-
-    <string name="fragment_arguments_support">Fragment/Arguments</string>
-    <string name="fragment_arguments_msg">Demonstrates a fragment that takes arguments
-        as a Bundle at runtime (on the right) or from attributes in a layout (on the left).</string>
-    <string name="fragment_arguments_embedded">From Attributes</string>
-    <string name="fragment_arguments_embedded_land">Landscape Only</string>
-
-    <string name="fragment_custom_animation_support">Fragment/Custom Animation</string>
-
-    <string name="fragment_hide_show_support">Fragment/Hide and Show</string>
-
-    <string name="fragment_context_menu_support">Fragment/Context Menu</string>
-    <string name="fragment_context_menu_msg">Fragment populating a context
-            menu; long press the button to see.</string>
-    <string name="long_press">Long press me</string>
-
-    <string name="fragment_dialog_support">Fragment/Dialog</string>
-    <string name="show">Show</string>
-    <string name="hide">Hide</string>
-
-    <string name="fragment_dialog_or_activity_support">Fragment/Dialog or Activity</string>
-    <string name="fragment_dialog_or_activity_msg">Demonstrates the same fragment
-            being shown as a dialog and embedded inside of an activity.</string>
-    <string name="fragment_dialog_or_activity_inline">Fragment embedded inside
-            of the activity:</string>
-
-    <string name="fragment_layout_support">Fragment/Layout</string>
-
-    <string name="fragment_list_array_support">Fragment/List Array</string>
-
-    <string name="fragment_menu_support">Fragment/Menu</string>
-    <string name="fragment_menu_msg">Build menus from two fragments, allowing
-        you to hide them to remove them..</string>
-    <string name="fragment1menu">Show fragment 1 menu</string>
-    <string name="fragment2menu">Show fragment 2 menu</string>
-
-    <string name="fragment_nesting_tabs_support">Fragment/Nesting Tabs</string>
-
-    <string name="fragment_retain_instance_support">Fragment/Retain Instance</string>
-    <string name="fragment_retain_instance_msg">Current progress of retained fragment;
-    restarts if fragment is re-created.</string>
-    <string name="restart">Restart</string>
-
-    <string name="fragment_receive_result_support">Fragment/Receive Result</string>
-
-    <string name="fragment_stack_support">Fragment/Stack</string>
-    <string name="home">Go home</string>
-    <string name="new_fragment">Add new</string>
-    <string name="delete_fragment">Pop top</string>
-    
-    <string name="fragment_tabs">Fragment/Tabs</string>
-
-    <string name="fragment_tabs_pager">Fragment/Tabs and Pager</string>
-
-    <string name="fragment_pager_support">Fragment/Pager</string>
-    <string name="first">First</string>
-    <string name="last">Last</string>
-
-    <string name="fragment_state_pager_support">Fragment/State Pager</string>
-
-    <string name="loader_cursor_support">Loader/Cursor</string>
-
-    <string name="loader_retained_support">Loader/Retained</string>
-
-    <string name="loader_custom_support">Loader/Custom</string>
-
-    <string name="loader_throttle_support">Loader/Throttle</string>
-
-    <string name="local_service_broadcaster">Content/Local Service Broadcaster</string>
-
-    <string name="local_service_broadcaster_msg">Demonstrates use of LocalBroadcastManager
-        to communicate from a Service to an Activity.</string>
-    <string name="start_service">Start Service</string>
-    <string name="stop_service">Stop Service</string>
-
-    <string name="simple_wakeful_controller">Content/Simple WakefulReceiver</string>
-
-    <string name="simple_wakeful_controller_msg">Demonstrates use of WakefulBroadcastReceiver
-        to keep the device awake while dispatching a broadcast to a service.</string>
-    <string name="schedule_wakeful_alarm">Wakeup in 30 seconds</string>
-    <string name="simple_wakeful_scheduled">Alarm scheduled</string>
-
-    <!-- Accessibility API -->
-
-    <string name="accessibility_manager_title">Accessibility/Accessibility Manager</string>
-    <string name="accessibility_manager_instructions">
-        1. Enable TalkBack from Settings->Accessibility.
-        \n2. Go back to this activity.
-        \n3. Disable TalkBack from Settings->Accessibility.</string>
-    <string name="accessibility_manager_no_enabled_services">No enabled accessibility services or API level lower than ICS.</string>
-    <string name="accessibility_manager_enabled_service">ENABLED ACCESSIBILITY SERVICES:
-        \n\nService: %1$s\nFeedback: %2$s\nDescription: %3$s\nSettings: %4$s\n</string>
-    <string name="accessibility_manager_accessibility_state">Accessibility enabled: %1$s</string>
-
-    <string name="accessibility_delegate_title">Accessibility/Accessibility Delegate</string>
-    <string name="accessibility_delegate_instructions">
-        1. Enable TalkBack from Settings->Accessibility.
-        \n2. Go back to this activity.
-        \n3. Touch the button below.</string>
-    <string name="accessibility_delegate_button">Button</string>
-    <string name="accessibility_delegate_custom_text_added">Custom text added via an accessibility delegate.</string>
-
-    <string name="accessibility_roledescription_title">Accessibility/Role Description</string>
-    <string name="accessibility_roledescription_instructions">
-        1. Make sure that you have TalkBack 4.5 or later from the Play Store.
-        \n2. Enable TalkBack from Settings->Accessibility.
-        \n3. Go back to this activity.
-        \n4. Touch the two items below.
-        \n5. The first item has a role description, but the second item does not.</string>
-    <string name="accessibility_roledescription_item">Android rocks!</string>
-    <string name="accessibility_roledescription_role">Custom role description</string>
-    <string name="accessibility_roledescription_example">
-        One possible use of role description is to notate heading levels in structured text:</string>
-    <string name="accessibility_roledescription_h1_item">Milky Way Galaxy</string>
-    <string name="accessibility_roledescription_h2_item">Solar System</string>
-    <string name="accessibility_roledescription_h3_item">Planet Earth</string>
-    <string name="accessibility_roledescription_h1_role">heading level 1</string>
-    <string name="accessibility_roledescription_h2_role">heading level 2</string>
-    <string name="accessibility_roledescription_h3_role">heading level 3</string>
-    <string name="accessibility_roledescription_counterexample">
-        Do not set the role description for standard widgets.
-        \nThe following button has a role description, which is incorrect.
-        \nYou should let accessibility services determine feedback for standard widgets.</string>
-    <string name="accessibility_roledescription_button_item">Click me</string>
-    <string name="accessibility_roledescription_button_role">Button with incorrect role description</string>
-
-    <string name="share_text">Share some text</string>
-    <string name="share_file">Share a file</string>
-    <string name="share_multiple_file">Share multiple files</string>
-    <string name="sharing_support_title">App/ShareCompat Demo</string>
-    <string name="sharing_receiver_title">ShareCompat Receiver</string>
-
-    <string name="file_provider_example">Content/FileProvider example</string>
-
-    <!-- Text API -->
-
-    <string name="without_bidiformatter">Without BidiFormatter:</string>
-    <string name="with_bidiformatter">With BidiFormatter:</string>
-    <string name="bidiformatter_support_title">Text/BidiFormatter Demo</string>
-
-    <!-- TransportController -->
-
-    <string name="sample_transport_controller_activity">Media/TransportController</string>
-
-    <string name="view_pager_layout_support">View/View pager</string>
-
-    <string name="sliding_pane_layout_support">Widget/Sliding pane layout</string>
-
-    <string name="sliding_pane_layout_summary">This activity illustrates the use of sliding panes. The content pane may be slid to one side on narrow devices to reveal the left pane used to select content. Sliding panes can be used to fit a UI intended for wider screens in a smaller space. Tapping the Action Bar\'s Up button at the left side of the bar will navigate up in the hierarchy, represented by the left pane. If you rotate the device to landscape mode, on most devices you will see that both panes fit together side by side with no sliding necessary.</string>
-
-    <!-- MediaBrowserCompat Sample -->
-
-    <string name="media_browser_support">Media/MediaBrowserCompat Sample</string>
-    <string name="favorite">Favorite</string>
-    <string name="error_no_metadata">Unable to retrieve metadata.</string>
-    <string name="browse_genres">Genres</string>
-    <string name="browse_genre_subtitle">Songs by genre</string>
-    <string name="browse_musics_by_genre_subtitle">%1$s songs</string>
-    <string name="random_queue_title">Random music</string>
-    <string name="error_cannot_skip">Cannot skip</string>
-    <string name="error_loading_media">Error Loading Media</string>
-    <string name="play_item">Play item</string>
-    <string name="skip_previous">Skip to previous</string>
-    <string name="play_pause">play or pause</string>
-    <string name="skip_next">Skip to next</string>
-    <string name="no_search_results">No search results.</string>
-    <string name="label_pause">Pause</string>
-    <string name="label_play">Play</string>
-    <string name="label_previous">Previous</string>
-    <string name="label_next">Next</string>
-    <string name="error_empty_metadata">Empty metadata!</string>
-
-    <!-- ExploreByTouchHelper -->
-
-    <string name="explore_by_touch_helper_support">Widget/Explore by Touch helper</string>
-    <string name="sample_item_a">Sample item A</string>
-    <string name="sample_item_b">Sample item B</string>
-
-    <!-- ContentLoadingProgressBar -->
-    <string name="content_loading_progress_bar">Widget/Content Loading Progress Bar</string>
-
-    <!--  Swipe refresh -->
-    <string name="swipe_list">Widget/SwipeRefreshLayout ListView</string>
-    <string name="swipe_text">Widget/SwipeRefreshLayout TextView</string>
-    <string name="swipe_nested_sv">Widget/SwipeRefreshLayout NestedScrollView</string>
-
-    <string name="nested_scroll">Widget/Nested Scrolling</string>
-
-    <string name="nested_scroll_long_text">This is some long text. It just keeps going. Look at it. Scroll it. Scroll the nested version of it. This is some long text. It just keeps going. Look at it. Scroll it. Scroll the nested version of it. This is some long text. It just keeps going. Look at it. Scroll it. Scroll the nested version of it. This is some long text. It just keeps going. Look at it. Scroll it. Scroll the nested version of it. This is some long text. It just keeps going. Look at it. Scroll it. Scroll the nested version of it. This is some long text. It just keeps going. Look at it. Scroll it. Scroll the nested version of it. This is some long text. It just keeps going. Look at it. Scroll it. Scroll the nested version of it. This is some long text. It just keeps going. Look at it. Scroll it. Scroll the nested version of it. This is some long text. It just keeps going. Look at it. Scroll it. Scroll the nested version of it. This is some long text. It just keeps going. Look at it. Scroll it. Scroll the nested version of it.</string>
-    <string name="regular">regular</string>
-    <string name="round">round</string>
-
-    <string name="drawable_compat_no_tint">Not tint</string>
-    <string name="drawable_compat_color_tint">Color tint</string>
-    <string name="drawable_compat_color_list_tint">Color state list</string>
-</resources>
diff --git a/samples/Support4Demos/res/values/styles.xml b/samples/Support4Demos/res/values/styles.xml
deleted file mode 100644
index d94f9b0..0000000
--- a/samples/Support4Demos/res/values/styles.xml
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-  
-          http://www.apache.org/licenses/LICENSE-2.0
-  
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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>
-    <!-- This is a theme that will adjust itself depending on the API version.
-         The default definition is the safe one, using a theme that has always
-         been defined.  Look at values-11/styles.xml for a variation that is
-         selected when the holographic theme is available. -->
-    <style name="ThemeHolo" parent="android:Theme">
-    </style>
-
-    <!-- This is a theme that will adjust itself depending on the API version.
-         The default definition is the safe one, using a theme that has always
-         been defined.  Look at values-11/styles.xml for a variation that is
-         selected when the holographic theme is available. -->
-    <style name="ThemeHoloLight" parent="android:Theme.Light">
-    </style>
-
-    <!-- Older platforms don't have Theme.Holo.DialogWhenLarge; we will define
-         our own wrapper theme that uses it only when running on the appropriate
-         platform version.  On older platforms, we always use the generic
-         fullscreen theme, because they don't support some feature that help
-         in correctly laying out an activity as a dialog. -->
-    <style name="ThemeDialogWhenLarge" parent="android:style/Theme">
-    </style>
-
-    <style name="AppTheme" parent="android:Theme.Material">
-        <item name="android:colorPrimary">#ffff5722</item>
-        <item name="android:colorPrimaryDark">#ffbf360c</item>
-        <item name="android:colorAccent">#ffff5722</item>
-    </style>
-
-    <style name="CarTheme" parent="AppTheme">
-        <!-- colorPrimaryDark is currently used in Android Auto for:
-             - App background
-             - Drawer right side ("more" custom actions) background
-             - Notification icon badge tinting
-             - Overview “now playing” icon tinting
-         -->
-        <item name="android:colorPrimaryDark">#ffbf360c</item>
-
-        <!-- colorAccent is used in Android Auto for:
-             - Spinner
-             - progress bar
-             - floating action button background (Play/Pause in media apps)
-         -->
-        <item name="android:colorAccent">#ffff5722</item>
-    </style>
-</resources>
diff --git a/samples/Support4Demos/res/xml/allowed_media_browser_callers.xml b/samples/Support4Demos/res/xml/allowed_media_browser_callers.xml
deleted file mode 100644
index 5c326cf..0000000
--- a/samples/Support4Demos/res/xml/allowed_media_browser_callers.xml
+++ /dev/null
@@ -1,174 +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.
--->
-<allowed_callers>
-    <signing_certificate name="Android Auto" release="false"
-                         package="com.google.android.projection.gearhead">
-        MIIEqDCCA5CgAwIBAgIJANWFuGx90071MA0GCSqGSIb3DQEBBAUAMIGUMQswCQYD
-        VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4g
-        VmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UE
-        AxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTAe
-        Fw0wODA0MTUyMzM2NTZaFw0zNTA5MDEyMzM2NTZaMIGUMQswCQYDVQQGEwJVUzET
-        MBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4G
-        A1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9p
-        ZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTCCASAwDQYJKoZI
-        hvcNAQEBBQADggENADCCAQgCggEBANbOLggKv+IxTdGNs8/TGFy0PTP6DHThvbbR
-        24kT9ixcOd9W+EaBPWW+wPPKQmsHxajtWjmQwWfna8mZuSeJS48LIgAZlKkpFeVy
-        xW0qMBujb8X8ETrWy550NaFtI6t9+u7hZeTfHwqNvacKhp1RbE6dBRGWynwMVX8X
-        W8N1+UjFaq6GCJukT4qmpN2afb8sCjUigq0GuMwYXrFVee74bQgLHWGJwPmvmLHC
-        69EH6kWr22ijx4OKXlSIx2xT1AsSHee70w5iDBiK4aph27yH3TxkXy9V89TDdexA
-        cKk/cVHYNnDBapcavl7y0RiQ4biu8ymM8Ga/nmzhRKya6G0cGw8CAQOjgfwwgfkw
-        HQYDVR0OBBYEFI0cxb6VTEM8YYY6FbBMvAPyT+CyMIHJBgNVHSMEgcEwgb6AFI0c
-        xb6VTEM8YYY6FbBMvAPyT+CyoYGapIGXMIGUMQswCQYDVQQGEwJVUzETMBEGA1UE
-        CBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMH
-        QW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAG
-        CSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbYIJANWFuGx90071MAwGA1Ud
-        EwQFMAMBAf8wDQYJKoZIhvcNAQEEBQADggEBABnTDPEF+3iSP0wNfdIjIz1AlnrP
-        zgAIHVvXxunW7SBrDhEglQZBbKJEk5kT0mtKoOD1JMrSu1xuTKEBahWRbqHsXcla
-        XjoBADb0kkjVEJu/Lh5hgYZnOjvlba8Ld7HCKePCVePoTJBdI4fvugnL8TsgK05a
-        IskyY0hKI9L8KfqfGTl1lzOv2KoWD0KWwtAWPoGChZxmQ+nBli+gwYMzM1vAkP+a
-        ayLe0a1EQimlOalO762r0GXO0ks+UeXde2Z4e+8S/pf7pITEI/tP+MxJTALw9QUW
-        Ev9lKTk+jkbqxbsh8nfBUapfKqYn0eidpwq2AzVp3juYl7//fKnaPhJD9gs=
-    </signing_certificate>
-    <signing_certificate name="Android Auto" release="false"
-                         package="com.google.android.projection.gearhead">
-        MIIDvTCCAqWgAwIBAgIJAOfkBvDXw5bzMA0GCSqGSIb3DQEBBQUAMHUxCzAJBgNV
-        BAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBW
-        aWV3MRQwEgYDVQQKDAtHb29nbGUgSW5jLjEQMA4GA1UECwwHQW5kcm9pZDERMA8G
-        A1UEAwwIZ2VhcmhlYWQwHhcNMTQwNTI3MjMwMjUxWhcNNDExMDEyMjMwMjUxWjB1
-        MQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91
-        bnRhaW4gVmlldzEUMBIGA1UECgwLR29vZ2xlIEluYy4xEDAOBgNVBAsMB0FuZHJv
-        aWQxETAPBgNVBAMMCGdlYXJoZWFkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
-        CgKCAQEAou7wwBKFyznqpRretJ3EVp55/Yr049Ag5wlGvrCnjIP8DrMrU+skfKe1
-        DmwpsLNtnhhiNH+J000Lok3hc8jdWKeKOopzKGDNvL/HvnS70Zyk26gj9jtMMHz9
-        2aZdpmwD67FNmTlG2FERr+TwMD5agaPnsFR2zla6ugUvHGzz65YDxpCZsQ/TowyD
-        LnxgMagvhvS+Oex3yh2FN7pJfwS03KdGdkWPbLqf9Fem09s5jjeZW/O3RgnKoRPI
-        J4QLK70efjAZqJyBGcDZyQMwOs+8HIknraf8+cRZJDzqOx7rttl8M3KGB2EFljTp
-        6/FyxJLnAo6QlXn7GrYalTI0yLU9dQIDAQABo1AwTjAdBgNVHQ4EFgQU9QPJ5xJE
-        DA8MDQMrj0hm2/A2BRkwHwYDVR0jBBgwFoAU9QPJ5xJEDA8MDQMrj0hm2/A2BRkw
-        DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEADcr5h1FR8IpmN4hSsUA9
-        SnCQVyXa1GQhzpQgRbF+npkgOn2Mebp8bd28VpfgooD2OBNQXCUcZkn7pWj++ut9
-        HhObHVaV5FNg0pdDqLna9QZ9Y4oS+ZrijK70XZ/EjlYUHvhu0pIjZAbD8CmCFlow
-        SR55qCSjM5iS37LZB32SMr1BBiYrNAvncKjYQVK8ctTRzhpNQQPBgXBA98Xl+d1D
-        Py00JWQuF0ssmhKcJuvfdEnFF7Hvaxz/gCQ9nzarQI3CJB8dOXVwF8mcyDRBz4JR
-        +YDpXo6BD+fGt15ov+zmqC8xaT9P1/JgoDXiMhy/6rwgdi9WxPf8mb7TnBC+CksX
-        0A==
-    </signing_certificate>
-    <signing_certificate name="Android Auto" release="true"
-                         package="com.google.android.projection.gearhead">
-        MIIDvTCCAqWgAwIBAgIJAMePnkuTQTAGMA0GCSqGSIb3DQEBBQUAMHUxCzAJBgNV
-        BAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBW
-        aWV3MRQwEgYDVQQKDAtHb29nbGUgSW5jLjEQMA4GA1UECwwHQW5kcm9pZDERMA8G
-        A1UEAwwIZ2VhcmhlYWQwHhcNMTQwNTI3MjMwNTM0WhcNNDExMDEyMjMwNTM0WjB1
-        MQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91
-        bnRhaW4gVmlldzEUMBIGA1UECgwLR29vZ2xlIEluYy4xEDAOBgNVBAsMB0FuZHJv
-        aWQxETAPBgNVBAMMCGdlYXJoZWFkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
-        CgKCAQEA050XDkNIsVRMX2wTvVplpCu4OtnyNK2v5B7PS+DggmH2yuZiwpTurdKD
-        Q9R9UzxH9U4lsC+mIxXkiBYKIWNVgMtiTgxkEy7cgWvdYHgNYpFu8IxZKYDyXes+
-        02pfvpu63MIBD/PnvVFipo1oUrbfetj+mroEpjnA71gUS0Ok+H6XWWsmb8xFHQVM
-        oZWEIzsUJ2nhm8EcnPkAPfNZAG++XLPROoRQCaswyYsd42JuYAP3CwZuhDcUbMWm
-        k7rBi9BVQ8gmkrbwqo94A7qStLUp3NyCmlKSWHaZ05SspEPwsfctka0oXG5bhgT6
-        67EMCzQ+YsFN1oJRL7Qq+mMQjFJs3wIDAQABo1AwTjAdBgNVHQ4EFgQUGvBfYNeu
-        6JSJUnJZCiaBGsnXztswHwYDVR0jBBgwFoAUGvBfYNeu6JSJUnJZCiaBGsnXztsw
-        DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAlGsDY0EPu3NBSH5k6iw/
-        wJh9e3xMwS17ErKGlhyWogxJMzLjAN6g0aCPHxB40IQC+8qAl+RL7VQx6oxttf0m
-        31yUGQPcNYbt2CxBTCAr885oLK5t2TAi5tQzhd6ZEYihWSUWUd/X8BQRouxboss9
-        QbBA/iIx0OpDaxiAcq7Cb67TheXZDxGuQ8fmHYbLx84pEvm3DQOB/LIMkkpQSfEC
-        1f+oP1zB3urPU/dSvED/LCgOdrpxZ5di7SwSyue+Vq/TZQy34tPygEzD2d8hFlh/
-        yfhWkMizOeIXcayVAQdNn5zpBkuay1skGOjQQ5kTbDcDzigO2R2rqn6HCd9l5Z0W
-        IQ==
-    </signing_certificate>
-    <signing_certificate name="Media Browser Service Simulator" release="true"
-                         package="com.google.android.mediasimulator">
-        MIIDvTCCAqWgAwIBAgIJAMePnkuTQTAGMA0GCSqGSIb3DQEBBQUAMHUxCzAJBgNV
-        BAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBW
-        aWV3MRQwEgYDVQQKDAtHb29nbGUgSW5jLjEQMA4GA1UECwwHQW5kcm9pZDERMA8G
-        A1UEAwwIZ2VhcmhlYWQwHhcNMTQwNTI3MjMwNTM0WhcNNDExMDEyMjMwNTM0WjB1
-        MQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91
-        bnRhaW4gVmlldzEUMBIGA1UECgwLR29vZ2xlIEluYy4xEDAOBgNVBAsMB0FuZHJv
-        aWQxETAPBgNVBAMMCGdlYXJoZWFkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
-        CgKCAQEA050XDkNIsVRMX2wTvVplpCu4OtnyNK2v5B7PS+DggmH2yuZiwpTurdKD
-        Q9R9UzxH9U4lsC+mIxXkiBYKIWNVgMtiTgxkEy7cgWvdYHgNYpFu8IxZKYDyXes+
-        02pfvpu63MIBD/PnvVFipo1oUrbfetj+mroEpjnA71gUS0Ok+H6XWWsmb8xFHQVM
-        oZWEIzsUJ2nhm8EcnPkAPfNZAG++XLPROoRQCaswyYsd42JuYAP3CwZuhDcUbMWm
-        k7rBi9BVQ8gmkrbwqo94A7qStLUp3NyCmlKSWHaZ05SspEPwsfctka0oXG5bhgT6
-        67EMCzQ+YsFN1oJRL7Qq+mMQjFJs3wIDAQABo1AwTjAdBgNVHQ4EFgQUGvBfYNeu
-        6JSJUnJZCiaBGsnXztswHwYDVR0jBBgwFoAUGvBfYNeu6JSJUnJZCiaBGsnXztsw
-        DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAlGsDY0EPu3NBSH5k6iw/
-        wJh9e3xMwS17ErKGlhyWogxJMzLjAN6g0aCPHxB40IQC+8qAl+RL7VQx6oxttf0m
-        31yUGQPcNYbt2CxBTCAr885oLK5t2TAi5tQzhd6ZEYihWSUWUd/X8BQRouxboss9
-        QbBA/iIx0OpDaxiAcq7Cb67TheXZDxGuQ8fmHYbLx84pEvm3DQOB/LIMkkpQSfEC
-        1f+oP1zB3urPU/dSvED/LCgOdrpxZ5di7SwSyue+Vq/TZQy34tPygEzD2d8hFlh/
-        yfhWkMizOeIXcayVAQdNn5zpBkuay1skGOjQQ5kTbDcDzigO2R2rqn6HCd9l5Z0W
-        IQ==
-    </signing_certificate>
-    <signing_certificate name="Android Auto Simulator" release="true"
-                         package="com.google.android.autosimulator">
-        MIIEqDCCA5CgAwIBAgIJANWFuGx90071MA0GCSqGSIb3DQEBBAUAMIGUMQswCQYD
-        VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4g
-        VmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UE
-        AxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTAe
-        Fw0wODA0MTUyMzM2NTZaFw0zNTA5MDEyMzM2NTZaMIGUMQswCQYDVQQGEwJVUzET
-        MBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4G
-        A1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9p
-        ZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTCCASAwDQYJKoZI
-        hvcNAQEBBQADggENADCCAQgCggEBANbOLggKv+IxTdGNs8/TGFy0PTP6DHThvbbR
-        24kT9ixcOd9W+EaBPWW+wPPKQmsHxajtWjmQwWfna8mZuSeJS48LIgAZlKkpFeVy
-        xW0qMBujb8X8ETrWy550NaFtI6t9+u7hZeTfHwqNvacKhp1RbE6dBRGWynwMVX8X
-        W8N1+UjFaq6GCJukT4qmpN2afb8sCjUigq0GuMwYXrFVee74bQgLHWGJwPmvmLHC
-        69EH6kWr22ijx4OKXlSIx2xT1AsSHee70w5iDBiK4aph27yH3TxkXy9V89TDdexA
-        cKk/cVHYNnDBapcavl7y0RiQ4biu8ymM8Ga/nmzhRKya6G0cGw8CAQOjgfwwgfkw
-        HQYDVR0OBBYEFI0cxb6VTEM8YYY6FbBMvAPyT+CyMIHJBgNVHSMEgcEwgb6AFI0c
-        xb6VTEM8YYY6FbBMvAPyT+CyoYGapIGXMIGUMQswCQYDVQQGEwJVUzETMBEGA1UE
-        CBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMH
-        QW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAG
-        CSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbYIJANWFuGx90071MAwGA1Ud
-        EwQFMAMBAf8wDQYJKoZIhvcNAQEEBQADggEBABnTDPEF+3iSP0wNfdIjIz1AlnrP
-        zgAIHVvXxunW7SBrDhEglQZBbKJEk5kT0mtKoOD1JMrSu1xuTKEBahWRbqHsXcla
-        XjoBADb0kkjVEJu/Lh5hgYZnOjvlba8Ld7HCKePCVePoTJBdI4fvugnL8TsgK05a
-        IskyY0hKI9L8KfqfGTl1lzOv2KoWD0KWwtAWPoGChZxmQ+nBli+gwYMzM1vAkP+a
-        ayLe0a1EQimlOalO762r0GXO0ks+UeXde2Z4e+8S/pf7pITEI/tP+MxJTALw9QUW
-        Ev9lKTk+jkbqxbsh8nfBUapfKqYn0eidpwq2AzVp3juYl7//fKnaPhJD9gs=
-    </signing_certificate>
-    <signing_certificate name="Media Browser Simulator" release="true"
-                         package="com.google.android.mediasimulator">
-        MIIEqDCCA5CgAwIBAgIJANWFuGx90071MA0GCSqGSIb3DQEBBAUAMIGUMQswCQYD
-        VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4g
-        VmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UE
-        AxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTAe
-        Fw0wODA0MTUyMzM2NTZaFw0zNTA5MDEyMzM2NTZaMIGUMQswCQYDVQQGEwJVUzET
-        MBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4G
-        A1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9p
-        ZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTCCASAwDQYJKoZI
-        hvcNAQEBBQADggENADCCAQgCggEBANbOLggKv+IxTdGNs8/TGFy0PTP6DHThvbbR
-        24kT9ixcOd9W+EaBPWW+wPPKQmsHxajtWjmQwWfna8mZuSeJS48LIgAZlKkpFeVy
-        xW0qMBujb8X8ETrWy550NaFtI6t9+u7hZeTfHwqNvacKhp1RbE6dBRGWynwMVX8X
-        W8N1+UjFaq6GCJukT4qmpN2afb8sCjUigq0GuMwYXrFVee74bQgLHWGJwPmvmLHC
-        69EH6kWr22ijx4OKXlSIx2xT1AsSHee70w5iDBiK4aph27yH3TxkXy9V89TDdexA
-        cKk/cVHYNnDBapcavl7y0RiQ4biu8ymM8Ga/nmzhRKya6G0cGw8CAQOjgfwwgfkw
-        HQYDVR0OBBYEFI0cxb6VTEM8YYY6FbBMvAPyT+CyMIHJBgNVHSMEgcEwgb6AFI0c
-        xb6VTEM8YYY6FbBMvAPyT+CyoYGapIGXMIGUMQswCQYDVQQGEwJVUzETMBEGA1UE
-        CBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMH
-        QW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAG
-        CSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbYIJANWFuGx90071MAwGA1Ud
-        EwQFMAMBAf8wDQYJKoZIhvcNAQEEBQADggEBABnTDPEF+3iSP0wNfdIjIz1AlnrP
-        zgAIHVvXxunW7SBrDhEglQZBbKJEk5kT0mtKoOD1JMrSu1xuTKEBahWRbqHsXcla
-        XjoBADb0kkjVEJu/Lh5hgYZnOjvlba8Ld7HCKePCVePoTJBdI4fvugnL8TsgK05a
-        IskyY0hKI9L8KfqfGTl1lzOv2KoWD0KWwtAWPoGChZxmQ+nBli+gwYMzM1vAkP+a
-        ayLe0a1EQimlOalO762r0GXO0ks+UeXde2Z4e+8S/pf7pITEI/tP+MxJTALw9QUW
-        Ev9lKTk+jkbqxbsh8nfBUapfKqYn0eidpwq2AzVp3juYl7//fKnaPhJD9gs=
-    </signing_certificate>
-</allowed_callers>
diff --git a/samples/Support4Demos/res/xml/my_paths.xml b/samples/Support4Demos/res/xml/my_paths.xml
deleted file mode 100644
index 1407657..0000000
--- a/samples/Support4Demos/res/xml/my_paths.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<!-- BEGIN_INCLUDE(file_provider_paths_declaration) -->
-<paths xmlns:android="http://schemas.android.com/apk/res/android">
-    <!-- Offer access to files under Context.getFilesDir() + "thumbs/"
-         through alias "my_thumbs" -->
-    <files-path name="my_thumbs" path="thumbs/" />
-
-    <!-- Offer access to files under Environment.getExternalStorageDirectory()
-         through alias "my_external" -->
-    <external-path name="my_external" />
-
-    <!-- Offer access to files under Context.getCacheDir() -->
-    <cache-path name="my_cache" />
-</paths>
-<!-- END_INCLUDE(file_provider_paths_declaration) -->
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/Cheeses.java b/samples/Support4Demos/src/com/example/android/supportv4/Cheeses.java
deleted file mode 100644
index 11d9143..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/Cheeses.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv4;
-
-public class Cheeses {
-
-    public static final String[] sCheeseStrings = {
-            "Abbaye de Belloc", "Abbaye du Mont des Cats", "Abertam", "Abondance", "Ackawi",
-            "Acorn", "Adelost", "Affidelice au Chablis", "Afuega'l Pitu", "Airag", "Airedale",
-            "Aisy Cendre", "Allgauer Emmentaler", "Alverca", "Ambert", "American Cheese",
-            "Ami du Chambertin", "Anejo Enchilado", "Anneau du Vic-Bilh", "Anthoriro", "Appenzell",
-            "Aragon", "Ardi Gasna", "Ardrahan", "Armenian String", "Aromes au Gene de Marc",
-            "Asadero", "Asiago", "Aubisque Pyrenees", "Autun", "Avaxtskyr", "Baby Swiss",
-            "Babybel", "Baguette Laonnaise", "Bakers", "Baladi", "Balaton", "Bandal", "Banon",
-            "Barry's Bay Cheddar", "Basing", "Basket Cheese", "Bath Cheese", "Bavarian Bergkase",
-            "Baylough", "Beaufort", "Beauvoorde", "Beenleigh Blue", "Beer Cheese", "Bel Paese",
-            "Bergader", "Bergere Bleue", "Berkswell", "Beyaz Peynir", "Bierkase", "Bishop Kennedy",
-            "Blarney", "Bleu d'Auvergne", "Bleu de Gex", "Bleu de Laqueuille",
-            "Bleu de Septmoncel", "Bleu Des Causses", "Blue", "Blue Castello", "Blue Rathgore",
-            "Blue Vein (Australian)", "Blue Vein Cheeses", "Bocconcini", "Bocconcini (Australian)",
-            "Boeren Leidenkaas", "Bonchester", "Bosworth", "Bougon", "Boule Du Roves",
-            "Boulette d'Avesnes", "Boursault", "Boursin", "Bouyssou", "Bra", "Braudostur",
-            "Breakfast Cheese", "Brebis du Lavort", "Brebis du Lochois", "Brebis du Puyfaucon",
-            "Bresse Bleu", "Brick", "Brie", "Brie de Meaux", "Brie de Melun", "Brillat-Savarin",
-            "Brin", "Brin d' Amour", "Brin d'Amour", "Brinza (Burduf Brinza)",
-            "Briquette de Brebis", "Briquette du Forez", "Broccio", "Broccio Demi-Affine",
-            "Brousse du Rove", "Bruder Basil", "Brusselae Kaas (Fromage de Bruxelles)", "Bryndza",
-            "Buchette d'Anjou", "Buffalo", "Burgos", "Butte", "Butterkase", "Button (Innes)",
-            "Buxton Blue", "Cabecou", "Caboc", "Cabrales", "Cachaille", "Caciocavallo", "Caciotta",
-            "Caerphilly", "Cairnsmore", "Calenzana", "Cambazola", "Camembert de Normandie",
-            "Canadian Cheddar", "Canestrato", "Cantal", "Caprice des Dieux", "Capricorn Goat",
-            "Capriole Banon", "Carre de l'Est", "Casciotta di Urbino", "Cashel Blue", "Castellano",
-            "Castelleno", "Castelmagno", "Castelo Branco", "Castigliano", "Cathelain",
-            "Celtic Promise", "Cendre d'Olivet", "Cerney", "Chabichou", "Chabichou du Poitou",
-            "Chabis de Gatine", "Chaource", "Charolais", "Chaumes", "Cheddar",
-            "Cheddar Clothbound", "Cheshire", "Chevres", "Chevrotin des Aravis", "Chontaleno",
-            "Civray", "Coeur de Camembert au Calvados", "Coeur de Chevre", "Colby", "Cold Pack",
-            "Comte", "Coolea", "Cooleney", "Coquetdale", "Corleggy", "Cornish Pepper",
-            "Cotherstone", "Cotija", "Cottage Cheese", "Cottage Cheese (Australian)",
-            "Cougar Gold", "Coulommiers", "Coverdale", "Crayeux de Roncq", "Cream Cheese",
-            "Cream Havarti", "Crema Agria", "Crema Mexicana", "Creme Fraiche", "Crescenza",
-            "Croghan", "Crottin de Chavignol", "Crottin du Chavignol", "Crowdie", "Crowley",
-            "Cuajada", "Curd", "Cure Nantais", "Curworthy", "Cwmtawe Pecorino",
-            "Cypress Grove Chevre", "Danablu (Danish Blue)", "Danbo", "Danish Fontina",
-            "Daralagjazsky", "Dauphin", "Delice des Fiouves", "Denhany Dorset Drum", "Derby",
-            "Dessertnyj Belyj", "Devon Blue", "Devon Garland", "Dolcelatte", "Doolin",
-            "Doppelrhamstufel", "Dorset Blue Vinney", "Double Gloucester", "Double Worcester",
-            "Dreux a la Feuille", "Dry Jack", "Duddleswell", "Dunbarra", "Dunlop", "Dunsyre Blue",
-            "Duroblando", "Durrus", "Dutch Mimolette (Commissiekaas)", "Edam", "Edelpilz",
-            "Emental Grand Cru", "Emlett", "Emmental", "Epoisses de Bourgogne", "Esbareich",
-            "Esrom", "Etorki", "Evansdale Farmhouse Brie", "Evora De L'Alentejo", "Exmoor Blue",
-            "Explorateur", "Feta", "Feta (Australian)", "Figue", "Filetta", "Fin-de-Siecle",
-            "Finlandia Swiss", "Finn", "Fiore Sardo", "Fleur du Maquis", "Flor de Guia",
-            "Flower Marie", "Folded", "Folded cheese with mint", "Fondant de Brebis",
-            "Fontainebleau", "Fontal", "Fontina Val d'Aosta", "Formaggio di capra", "Fougerus",
-            "Four Herb Gouda", "Fourme d' Ambert", "Fourme de Haute Loire", "Fourme de Montbrison",
-            "Fresh Jack", "Fresh Mozzarella", "Fresh Ricotta", "Fresh Truffles", "Fribourgeois",
-            "Friesekaas", "Friesian", "Friesla", "Frinault", "Fromage a Raclette", "Fromage Corse",
-            "Fromage de Montagne de Savoie", "Fromage Frais", "Fruit Cream Cheese",
-            "Frying Cheese", "Fynbo", "Gabriel", "Galette du Paludier", "Galette Lyonnaise",
-            "Galloway Goat's Milk Gems", "Gammelost", "Gaperon a l'Ail", "Garrotxa", "Gastanberra",
-            "Geitost", "Gippsland Blue", "Gjetost", "Gloucester", "Golden Cross", "Gorgonzola",
-            "Gornyaltajski", "Gospel Green", "Gouda", "Goutu", "Gowrie", "Grabetto", "Graddost",
-            "Grafton Village Cheddar", "Grana", "Grana Padano", "Grand Vatel",
-            "Grataron d' Areches", "Gratte-Paille", "Graviera", "Greuilh", "Greve",
-            "Gris de Lille", "Gruyere", "Gubbeen", "Guerbigny", "Halloumi",
-            "Halloumy (Australian)", "Haloumi-Style Cheese", "Harbourne Blue", "Havarti",
-            "Heidi Gruyere", "Hereford Hop", "Herrgardsost", "Herriot Farmhouse", "Herve",
-            "Hipi Iti", "Hubbardston Blue Cow", "Hushallsost", "Iberico", "Idaho Goatster",
-            "Idiazabal", "Il Boschetto al Tartufo", "Ile d'Yeu", "Isle of Mull", "Jarlsberg",
-            "Jermi Tortes", "Jibneh Arabieh", "Jindi Brie", "Jubilee Blue", "Juustoleipa",
-            "Kadchgall", "Kaseri", "Kashta", "Kefalotyri", "Kenafa", "Kernhem", "Kervella Affine",
-            "Kikorangi", "King Island Cape Wickham Brie", "King River Gold", "Klosterkaese",
-            "Knockalara", "Kugelkase", "L'Aveyronnais", "L'Ecir de l'Aubrac", "La Taupiniere",
-            "La Vache Qui Rit", "Laguiole", "Lairobell", "Lajta", "Lanark Blue", "Lancashire",
-            "Langres", "Lappi", "Laruns", "Lavistown", "Le Brin", "Le Fium Orbo", "Le Lacandou",
-            "Le Roule", "Leafield", "Lebbene", "Leerdammer", "Leicester", "Leyden", "Limburger",
-            "Lincolnshire Poacher", "Lingot Saint Bousquet d'Orb", "Liptauer", "Little Rydings",
-            "Livarot", "Llanboidy", "Llanglofan Farmhouse", "Loch Arthur Farmhouse",
-            "Loddiswell Avondale", "Longhorn", "Lou Palou", "Lou Pevre", "Lyonnais", "Maasdam",
-            "Macconais", "Mahoe Aged Gouda", "Mahon", "Malvern", "Mamirolle", "Manchego",
-            "Manouri", "Manur", "Marble Cheddar", "Marbled Cheeses", "Maredsous", "Margotin",
-            "Maribo", "Maroilles", "Mascares", "Mascarpone", "Mascarpone (Australian)",
-            "Mascarpone Torta", "Matocq", "Maytag Blue", "Meira", "Menallack Farmhouse",
-            "Menonita", "Meredith Blue", "Mesost", "Metton (Cancoillotte)", "Meyer Vintage Gouda",
-            "Mihalic Peynir", "Milleens", "Mimolette", "Mine-Gabhar", "Mini Baby Bells", "Mixte",
-            "Molbo", "Monastery Cheeses", "Mondseer", "Mont D'or Lyonnais", "Montasio",
-            "Monterey Jack", "Monterey Jack Dry", "Morbier", "Morbier Cru de Montagne",
-            "Mothais a la Feuille", "Mozzarella", "Mozzarella (Australian)",
-            "Mozzarella di Bufala", "Mozzarella Fresh, in water", "Mozzarella Rolls", "Munster",
-            "Murol", "Mycella", "Myzithra", "Naboulsi", "Nantais", "Neufchatel",
-            "Neufchatel (Australian)", "Niolo", "Nokkelost", "Northumberland", "Oaxaca",
-            "Olde York", "Olivet au Foin", "Olivet Bleu", "Olivet Cendre",
-            "Orkney Extra Mature Cheddar", "Orla", "Oschtjepka", "Ossau Fermier", "Ossau-Iraty",
-            "Oszczypek", "Oxford Blue", "P'tit Berrichon", "Palet de Babligny", "Paneer", "Panela",
-            "Pannerone", "Pant ys Gawn", "Parmesan (Parmigiano)", "Parmigiano Reggiano",
-            "Pas de l'Escalette", "Passendale", "Pasteurized Processed", "Pate de Fromage",
-            "Patefine Fort", "Pave d'Affinois", "Pave d'Auge", "Pave de Chirac", "Pave du Berry",
-            "Pecorino", "Pecorino in Walnut Leaves", "Pecorino Romano", "Peekskill Pyramid",
-            "Pelardon des Cevennes", "Pelardon des Corbieres", "Penamellera", "Penbryn",
-            "Pencarreg", "Perail de Brebis", "Petit Morin", "Petit Pardou", "Petit-Suisse",
-            "Picodon de Chevre", "Picos de Europa", "Piora", "Pithtviers au Foin",
-            "Plateau de Herve", "Plymouth Cheese", "Podhalanski", "Poivre d'Ane", "Polkolbin",
-            "Pont l'Eveque", "Port Nicholson", "Port-Salut", "Postel", "Pouligny-Saint-Pierre",
-            "Pourly", "Prastost", "Pressato", "Prince-Jean", "Processed Cheddar", "Provolone",
-            "Provolone (Australian)", "Pyengana Cheddar", "Pyramide", "Quark",
-            "Quark (Australian)", "Quartirolo Lombardo", "Quatre-Vents", "Quercy Petit",
-            "Queso Blanco", "Queso Blanco con Frutas --Pina y Mango", "Queso de Murcia",
-            "Queso del Montsec", "Queso del Tietar", "Queso Fresco", "Queso Fresco (Adobera)",
-            "Queso Iberico", "Queso Jalapeno", "Queso Majorero", "Queso Media Luna",
-            "Queso Para Frier", "Queso Quesadilla", "Rabacal", "Raclette", "Ragusano", "Raschera",
-            "Reblochon", "Red Leicester", "Regal de la Dombes", "Reggianito", "Remedou",
-            "Requeson", "Richelieu", "Ricotta", "Ricotta (Australian)", "Ricotta Salata", "Ridder",
-            "Rigotte", "Rocamadour", "Rollot", "Romano", "Romans Part Dieu", "Roncal", "Roquefort",
-            "Roule", "Rouleau De Beaulieu", "Royalp Tilsit", "Rubens", "Rustinu", "Saaland Pfarr",
-            "Saanenkaese", "Saga", "Sage Derby", "Sainte Maure", "Saint-Marcellin",
-            "Saint-Nectaire", "Saint-Paulin", "Salers", "Samso", "San Simon", "Sancerre",
-            "Sap Sago", "Sardo", "Sardo Egyptian", "Sbrinz", "Scamorza", "Schabzieger", "Schloss",
-            "Selles sur Cher", "Selva", "Serat", "Seriously Strong Cheddar", "Serra da Estrela",
-            "Sharpam", "Shelburne Cheddar", "Shropshire Blue", "Siraz", "Sirene", "Smoked Gouda",
-            "Somerset Brie", "Sonoma Jack", "Sottocenare al Tartufo", "Soumaintrain",
-            "Sourire Lozerien", "Spenwood", "Sraffordshire Organic", "St. Agur Blue Cheese",
-            "Stilton", "Stinking Bishop", "String", "Sussex Slipcote", "Sveciaost", "Swaledale",
-            "Sweet Style Swiss", "Swiss", "Syrian (Armenian String)", "Tala", "Taleggio", "Tamie",
-            "Tasmania Highland Chevre Log", "Taupiniere", "Teifi", "Telemea", "Testouri",
-            "Tete de Moine", "Tetilla", "Texas Goat Cheese", "Tibet", "Tillamook Cheddar",
-            "Tilsit", "Timboon Brie", "Toma", "Tomme Brulee", "Tomme d'Abondance",
-            "Tomme de Chevre", "Tomme de Romans", "Tomme de Savoie", "Tomme des Chouans", "Tommes",
-            "Torta del Casar", "Toscanello", "Touree de L'Aubier", "Tourmalet",
-            "Trappe (Veritable)", "Trois Cornes De Vendee", "Tronchon", "Trou du Cru", "Truffe",
-            "Tupi", "Turunmaa", "Tymsboro", "Tyn Grug", "Tyning", "Ubriaco", "Ulloa",
-            "Vacherin-Fribourgeois", "Valencay", "Vasterbottenost", "Venaco", "Vendomois",
-            "Vieux Corse", "Vignotte", "Vulscombe", "Waimata Farmhouse Blue",
-            "Washed Rind Cheese (Australian)", "Waterloo", "Weichkaese", "Wellington",
-            "Wensleydale", "White Stilton", "Whitestone Farmhouse", "Wigmore", "Woodside Cabecou",
-            "Xanadu", "Xynotyro", "Yarg Cornish", "Yarra Valley Pyramid", "Yorkshire Blue",
-            "Zamorano", "Zanetti Grana Padano", "Zanetti Parmigiano Reggiano"
-    };
-
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/Shakespeare.java b/samples/Support4Demos/src/com/example/android/supportv4/Shakespeare.java
deleted file mode 100644
index d6d4a3c..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/Shakespeare.java
+++ /dev/null
@@ -1,238 +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.supportv4;
-
-public final class Shakespeare {
-    /**
-     * Our data, part 1.
-     */
-    public static final String[] TITLES = 
-    {
-            "Henry IV (1)",   
-            "Henry V",
-            "Henry VIII",       
-            "Richard II",
-            "Richard III",
-            "Merchant of Venice",  
-            "Othello",
-            "King Lear"
-    };
-    
-    /**
-     * Our data, part 2.
-     */
-    public static final String[] DIALOGUE = 
-    {
-            "So shaken as we are, so wan with care," +
-            "Find we a time for frighted peace to pant," +
-            "And breathe short-winded accents of new broils" +
-            "To be commenced in strands afar remote." +
-            "No more the thirsty entrance of this soil" +
-            "Shall daub her lips with her own children's blood;" +
-            "Nor more shall trenching war channel her fields," +
-            "Nor bruise her flowerets with the armed hoofs" +
-            "Of hostile paces: those opposed eyes," +
-            "Which, like the meteors of a troubled heaven," +
-            "All of one nature, of one substance bred," +
-            "Did lately meet in the intestine shock" +
-            "And furious close of civil butchery" +
-            "Shall now, in mutual well-beseeming ranks," +
-            "March all one way and be no more opposed" +
-            "Against acquaintance, kindred and allies:" +
-            "The edge of war, like an ill-sheathed knife," +
-            "No more shall cut his master. Therefore, friends," +
-            "As far as to the sepulchre of Christ," +
-            "Whose soldier now, under whose blessed cross" +
-            "We are impressed and engaged to fight," +
-            "Forthwith a power of English shall we levy;" +
-            "Whose arms were moulded in their mothers' womb" +
-            "To chase these pagans in those holy fields" +
-            "Over whose acres walk'd those blessed feet" +
-            "Which fourteen hundred years ago were nail'd" +
-            "For our advantage on the bitter cross." +
-            "But this our purpose now is twelve month old," +
-            "And bootless 'tis to tell you we will go:" +
-            "Therefore we meet not now. Then let me hear" +
-            "Of you, my gentle cousin Westmoreland," +
-            "What yesternight our council did decree" +
-            "In forwarding this dear expedience.",
-            
-            "Hear him but reason in divinity," + 
-            "And all-admiring with an inward wish" + 
-            "You would desire the king were made a prelate:" + 
-            "Hear him debate of commonwealth affairs," + 
-            "You would say it hath been all in all his study:" + 
-            "List his discourse of war, and you shall hear" + 
-            "A fearful battle render'd you in music:" + 
-            "Turn him to any cause of policy," + 
-            "The Gordian knot of it he will unloose," + 
-            "Familiar as his garter: that, when he speaks," + 
-            "The air, a charter'd libertine, is still," + 
-            "And the mute wonder lurketh in men's ears," + 
-            "To steal his sweet and honey'd sentences;" + 
-            "So that the art and practic part of life" + 
-            "Must be the mistress to this theoric:" + 
-            "Which is a wonder how his grace should glean it," + 
-            "Since his addiction was to courses vain," + 
-            "His companies unletter'd, rude and shallow," + 
-            "His hours fill'd up with riots, banquets, sports," + 
-            "And never noted in him any study," + 
-            "Any retirement, any sequestration" + 
-            "From open haunts and popularity.",
-
-            "I come no more to make you laugh: things now," +
-            "That bear a weighty and a serious brow," +
-            "Sad, high, and working, full of state and woe," +
-            "Such noble scenes as draw the eye to flow," +
-            "We now present. Those that can pity, here" +
-            "May, if they think it well, let fall a tear;" +
-            "The subject will deserve it. Such as give" +
-            "Their money out of hope they may believe," +
-            "May here find truth too. Those that come to see" +
-            "Only a show or two, and so agree" +
-            "The play may pass, if they be still and willing," +
-            "I'll undertake may see away their shilling" +
-            "Richly in two short hours. Only they" +
-            "That come to hear a merry bawdy play," +
-            "A noise of targets, or to see a fellow" +
-            "In a long motley coat guarded with yellow," +
-            "Will be deceived; for, gentle hearers, know," +
-            "To rank our chosen truth with such a show" +
-            "As fool and fight is, beside forfeiting" +
-            "Our own brains, and the opinion that we bring," +
-            "To make that only true we now intend," +
-            "Will leave us never an understanding friend." +
-            "Therefore, for goodness' sake, and as you are known" +
-            "The first and happiest hearers of the town," +
-            "Be sad, as we would make ye: think ye see" +
-            "The very persons of our noble story" +
-            "As they were living; think you see them great," +
-            "And follow'd with the general throng and sweat" +
-            "Of thousand friends; then in a moment, see" +
-            "How soon this mightiness meets misery:" +
-            "And, if you can be merry then, I'll say" +
-            "A man may weep upon his wedding-day.",
-            
-            "First, heaven be the record to my speech!" + 
-            "In the devotion of a subject's love," + 
-            "Tendering the precious safety of my prince," + 
-            "And free from other misbegotten hate," + 
-            "Come I appellant to this princely presence." + 
-            "Now, Thomas Mowbray, do I turn to thee," + 
-            "And mark my greeting well; for what I speak" + 
-            "My body shall make good upon this earth," + 
-            "Or my divine soul answer it in heaven." + 
-            "Thou art a traitor and a miscreant," + 
-            "Too good to be so and too bad to live," + 
-            "Since the more fair and crystal is the sky," + 
-            "The uglier seem the clouds that in it fly." + 
-            "Once more, the more to aggravate the note," + 
-            "With a foul traitor's name stuff I thy throat;" + 
-            "And wish, so please my sovereign, ere I move," + 
-            "What my tongue speaks my right drawn sword may prove.",
-            
-            "Now is the winter of our discontent" + 
-            "Made glorious summer by this sun of York;" + 
-            "And all the clouds that lour'd upon our house" + 
-            "In the deep bosom of the ocean buried." + 
-            "Now are our brows bound with victorious wreaths;" + 
-            "Our bruised arms hung up for monuments;" + 
-            "Our stern alarums changed to merry meetings," + 
-            "Our dreadful marches to delightful measures." + 
-            "Grim-visaged war hath smooth'd his wrinkled front;" + 
-            "And now, instead of mounting barded steeds" + 
-            "To fright the souls of fearful adversaries," + 
-            "He capers nimbly in a lady's chamber" + 
-            "To the lascivious pleasing of a lute." + 
-            "But I, that am not shaped for sportive tricks," + 
-            "Nor made to court an amorous looking-glass;" + 
-            "I, that am rudely stamp'd, and want love's majesty" + 
-            "To strut before a wanton ambling nymph;" + 
-            "I, that am curtail'd of this fair proportion," + 
-            "Cheated of feature by dissembling nature," + 
-            "Deformed, unfinish'd, sent before my time" + 
-            "Into this breathing world, scarce half made up," + 
-            "And that so lamely and unfashionable" + 
-            "That dogs bark at me as I halt by them;" + 
-            "Why, I, in this weak piping time of peace," + 
-            "Have no delight to pass away the time," + 
-            "Unless to spy my shadow in the sun" + 
-            "And descant on mine own deformity:" + 
-            "And therefore, since I cannot prove a lover," + 
-            "To entertain these fair well-spoken days," + 
-            "I am determined to prove a villain" + 
-            "And hate the idle pleasures of these days." + 
-            "Plots have I laid, inductions dangerous," + 
-            "By drunken prophecies, libels and dreams," + 
-            "To set my brother Clarence and the king" + 
-            "In deadly hate the one against the other:" + 
-            "And if King Edward be as true and just" + 
-            "As I am subtle, false and treacherous," + 
-            "This day should Clarence closely be mew'd up," + 
-            "About a prophecy, which says that 'G'" + 
-            "Of Edward's heirs the murderer shall be." + 
-            "Dive, thoughts, down to my soul: here" + 
-            "Clarence comes.",
-            
-            "To bait fish withal: if it will feed nothing else," + 
-            "it will feed my revenge. He hath disgraced me, and" + 
-            "hindered me half a million; laughed at my losses," + 
-            "mocked at my gains, scorned my nation, thwarted my" + 
-            "bargains, cooled my friends, heated mine" + 
-            "enemies; and what's his reason? I am a Jew. Hath" + 
-            "not a Jew eyes? hath not a Jew hands, organs," + 
-            "dimensions, senses, affections, passions? fed with" + 
-            "the same food, hurt with the same weapons, subject" + 
-            "to the same diseases, healed by the same means," + 
-            "warmed and cooled by the same winter and summer, as" + 
-            "a Christian is? If you prick us, do we not bleed?" + 
-            "if you tickle us, do we not laugh? if you poison" + 
-            "us, do we not die? and if you wrong us, shall we not" + 
-            "revenge? If we are like you in the rest, we will" + 
-            "resemble you in that. If a Jew wrong a Christian," + 
-            "what is his humility? Revenge. If a Christian" + 
-            "wrong a Jew, what should his sufferance be by" + 
-            "Christian example? Why, revenge. The villany you" + 
-            "teach me, I will execute, and it shall go hard but I" + 
-            "will better the instruction.",
-            
-            "Virtue! a fig! 'tis in ourselves that we are thus" + 
-            "or thus. Our bodies are our gardens, to the which" + 
-            "our wills are gardeners: so that if we will plant" + 
-            "nettles, or sow lettuce, set hyssop and weed up" + 
-            "thyme, supply it with one gender of herbs, or" + 
-            "distract it with many, either to have it sterile" + 
-            "with idleness, or manured with industry, why, the" + 
-            "power and corrigible authority of this lies in our" + 
-            "wills. If the balance of our lives had not one" + 
-            "scale of reason to poise another of sensuality, the" + 
-            "blood and baseness of our natures would conduct us" + 
-            "to most preposterous conclusions: but we have" + 
-            "reason to cool our raging motions, our carnal" + 
-            "stings, our unbitted lusts, whereof I take this that" + 
-            "you call love to be a sect or scion.",
-
-            "Blow, winds, and crack your cheeks! rage! blow!" + 
-            "You cataracts and hurricanoes, spout" + 
-            "Till you have drench'd our steeples, drown'd the cocks!" + 
-            "You sulphurous and thought-executing fires," + 
-            "Vaunt-couriers to oak-cleaving thunderbolts," + 
-            "Singe my white head! And thou, all-shaking thunder," + 
-            "Smite flat the thick rotundity o' the world!" + 
-            "Crack nature's moulds, an germens spill at once," + 
-            "That make ingrateful man!"
-    };
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/Support4Demos.java b/samples/Support4Demos/src/com/example/android/supportv4/Support4Demos.java
deleted file mode 100644
index af445db..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/Support4Demos.java
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv4;
-
-import android.app.ListActivity;
-import android.content.Intent;
-import android.content.pm.PackageManager;
-import android.content.pm.ResolveInfo;
-import android.os.Bundle;
-import android.view.View;
-import android.widget.ListView;
-import android.widget.SimpleAdapter;
-
-import java.text.Collator;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-public class Support4Demos extends ListActivity {
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        
-        Intent intent = getIntent();
-        String path = intent.getStringExtra("com.example.android.apis.Path");
-        
-        if (path == null) {
-            path = "";
-        }
-
-        setListAdapter(new SimpleAdapter(this, getData(path),
-                android.R.layout.simple_list_item_1, new String[] { "title" },
-                new int[] { android.R.id.text1 }));
-        getListView().setTextFilterEnabled(true);
-    }
-
-    protected List<Map<String, Object>> getData(String prefix) {
-        List<Map<String, Object>> myData = new ArrayList<Map<String, Object>>();
-
-        Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
-        mainIntent.addCategory("com.example.android.supportv4.SUPPORT4_SAMPLE_CODE");
-
-        PackageManager pm = getPackageManager();
-        List<ResolveInfo> list = pm.queryIntentActivities(mainIntent, 0);
-
-        if (null == list)
-            return myData;
-
-        String[] prefixPath;
-        String prefixWithSlash = prefix;
-        
-        if (prefix.equals("")) {
-            prefixPath = null;
-        } else {
-            prefixPath = prefix.split("/");
-            prefixWithSlash = prefix + "/";
-        }
-        
-        int len = list.size();
-        
-        Map<String, Boolean> entries = new HashMap<String, Boolean>();
-
-        for (int i = 0; i < len; i++) {
-            ResolveInfo info = list.get(i);
-            CharSequence labelSeq = info.loadLabel(pm);
-            String label = labelSeq != null
-                    ? labelSeq.toString()
-                    : info.activityInfo.name;
-            
-            if (prefixWithSlash.length() == 0 || label.startsWith(prefixWithSlash)) {
-                
-                String[] labelPath = label.split("/");
-
-                String nextLabel = prefixPath == null ? labelPath[0] : labelPath[prefixPath.length];
-
-                if ((prefixPath != null ? prefixPath.length : 0) == labelPath.length - 1) {
-                    addItem(myData, nextLabel, activityIntent(
-                            info.activityInfo.applicationInfo.packageName,
-                            info.activityInfo.name));
-                } else {
-                    if (entries.get(nextLabel) == null) {
-                        addItem(myData, nextLabel, browseIntent(prefix.equals("") ? nextLabel : prefix + "/" + nextLabel));
-                        entries.put(nextLabel, true);
-                    }
-                }
-            }
-        }
-
-        Collections.sort(myData, sDisplayNameComparator);
-        
-        return myData;
-    }
-
-    private final static Comparator<Map<String, Object>> sDisplayNameComparator =
-        new Comparator<Map<String, Object>>() {
-        private final Collator   collator = Collator.getInstance();
-
-        public int compare(Map<String, Object> map1, Map<String, Object> map2) {
-            return collator.compare(map1.get("title"), map2.get("title"));
-        }
-    };
-
-    protected Intent activityIntent(String pkg, String componentName) {
-        Intent result = new Intent();
-        result.setClassName(pkg, componentName);
-        return result;
-    }
-    
-    protected Intent browseIntent(String path) {
-        Intent result = new Intent();
-        result.setClass(this, Support4Demos.class);
-        result.putExtra("com.example.android.apis.Path", path);
-        return result;
-    }
-
-    protected void addItem(List<Map<String, Object>> data, String name, Intent intent) {
-        Map<String, Object> temp = new HashMap<String, Object>();
-        temp.put("title", name);
-        temp.put("intent", intent);
-        data.add(temp);
-    }
-
-    @Override
-    @SuppressWarnings("unchecked")
-    protected void onListItemClick(ListView l, View v, int position, long id) {
-        Map<String, Object> map = (Map<String, Object>)l.getItemAtPosition(position);
-
-        Intent intent = (Intent) map.get("intent");
-        startActivity(intent);
-    }
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/_package.html b/samples/Support4Demos/src/com/example/android/supportv4/_package.html
deleted file mode 100644
index 4657c4c..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/_package.html
+++ /dev/null
@@ -1,24 +0,0 @@
-<html>
-<head>
-<link rel="stylesheet" type="text/css" href="assets/style.css" />
-<script type="text/javascript" src="http://www.corp.google.com/style/prettify.js"></script>
-<script src="http://www.corp.google.com/eng/techpubs/include/navbar.js" type="text/javascript"></script>
-
-
-
-</head>
-
-<body>
-
-<p>
-Examples of how to use support library APIs.  See:
-
-<ol>
-    <li> <a href="com.example.android.supportv4.app">sdk.app</a> for examples
-        of using the application package support APIs.
-</ol>
-</p>
-
-
-</body>
-</html>
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/accessibility/AccessibilityDelegateSupportActivity.java b/samples/Support4Demos/src/com/example/android/supportv4/accessibility/AccessibilityDelegateSupportActivity.java
deleted file mode 100644
index 6fcf855..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/accessibility/AccessibilityDelegateSupportActivity.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv4.accessibility;
-
-import android.app.Activity;
-import android.content.Context;
-import android.os.Bundle;
-import android.support.v4.view.AccessibilityDelegateCompat;
-import android.support.v4.view.ViewCompat;
-import android.support.v4.view.accessibility.AccessibilityNodeInfoCompat;
-import android.util.AttributeSet;
-import android.view.View;
-import android.view.accessibility.AccessibilityEvent;
-
-import com.example.android.supportv4.R;
-
-/**
- * This class demonstrates how to use the support library to register
- * a View.AccessibilityDelegate that customizes the accessibility
- * behavior of a View. Aiming to maximize simplicity this example
- * tweaks the text reported to accessibility services but using
- * these APIs a client can inject any accessibility functionality into
- * a View.
- */
-public class AccessibilityDelegateSupportActivity extends Activity {
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.accessibility_delegate);
-    }
-
-    /**
-     * This class represents a View that is customized via an AccessibilityDelegate
-     * as opposed to inheritance. An accessibility delegate can be used for adding
-     * accessibility to custom Views, i.e. ones that extend classes from android.view,
-     * in a backwards compatible fashion. Note that overriding a method whose return
-     * type or arguments are not part of a target platform APIs makes your application
-     * not backwards compatible with that platform version.
-     */
-    public static class AccessibilityDelegateSupportView extends View {
-
-        public AccessibilityDelegateSupportView(Context context, AttributeSet attrs) {
-            super(context, attrs);
-            installAccessibilityDelegate();
-        }
-
-        private void installAccessibilityDelegate() {
-            // The accessibility delegate enables customizing accessibility behavior
-            // via composition as opposed as inheritance. The main benefit is that
-            // one can write a backwards compatible application by setting the delegate
-            // only if the API level is high enough i.e. the delegate is part of the APIs.
-            // The easiest way to achieve that is by using the support library which
-            // takes the burden of checking API version and knowing which API version
-            // introduced the delegate off the developer.
-            ViewCompat.setAccessibilityDelegate(this, new AccessibilityDelegateCompat() {
-                @Override
-                public void onPopulateAccessibilityEvent(View host, AccessibilityEvent event) {
-                    super.onPopulateAccessibilityEvent(host, event);
-                    // Note that View.onPopulateAccessibilityEvent was introduced in
-                    // ICS and we would like to tweak a bit the text that is reported to
-                    // accessibility services via the AccessibilityEvent.
-                    event.getText().add(getContext().getString(
-                            R.string.accessibility_delegate_custom_text_added));
-                }
-
-                @Override
-                public void onInitializeAccessibilityNodeInfo(View host,
-                        AccessibilityNodeInfoCompat info) {
-                    super.onInitializeAccessibilityNodeInfo(host, info);
-                    // Note that View.onInitializeAccessibilityNodeInfo was introduced in
-                    // ICS and we would like to tweak a bit the text that is reported to
-                    // accessibility services via the AccessibilityNodeInfo.
-                    info.setText(getContext().getString(
-                            R.string.accessibility_delegate_custom_text_added));
-                }
-            });
-        }
-    }
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/accessibility/AccessibilityManagerSupportActivity.java b/samples/Support4Demos/src/com/example/android/supportv4/accessibility/AccessibilityManagerSupportActivity.java
deleted file mode 100644
index 4be078b..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/accessibility/AccessibilityManagerSupportActivity.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv4.accessibility;
-
-import android.accessibilityservice.AccessibilityServiceInfo;
-import android.app.Activity;
-import android.app.Service;
-import android.content.pm.ResolveInfo;
-import android.os.Bundle;
-import android.support.v4.accessibilityservice.AccessibilityServiceInfoCompat;
-import android.support.v4.view.accessibility.AccessibilityManagerCompat;
-import android.support.v4.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListenerCompat;
-import android.view.accessibility.AccessibilityManager;
-import android.widget.TextView;
-import android.widget.Toast;
-
-import com.example.android.supportv4.R;
-
-import java.util.List;
-
-/**
- * <p>
- * This class demonstrates how to use the support library to register
- * an AccessibilityManager.AccessibilityStateChangeListener introduced
- * in ICS to watch changes to the global accessibility state on the
- * device in a backwards compatible manner.
- * </p>
- * <p>
- * This class also demonstrates how to use the support library to query
- * information about enabled accessibility services via APIs introduced
- * in ICS in a backwards compatible manner.
- * </p>
- */
-public class AccessibilityManagerSupportActivity extends Activity {
-
-    /** Handle to the accessibility manager service. */
-    private AccessibilityManager mAccessibilityManager;
-
-    /** Handle to the View showing accessibility services summary */
-    private TextView mAccessibilityStateView;
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.accessibility_manager);
-        mAccessibilityManager = (AccessibilityManager) getSystemService(
-                Service.ACCESSIBILITY_SERVICE);
-        mAccessibilityStateView = (TextView) findViewById(R.id.accessibility_state);
-        registerAccessibilityStateChangeListener();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void onResume() {
-        super.onResume();
-        updateAccessibilityStateView();
-    }
-
-    /**
-     * Registers an AccessibilityStateChangeListener that show a Toast
-     * when the global accessibility state on the device changes.
-     */
-    private void registerAccessibilityStateChangeListener() {
-        // The AccessibilityStateChange listener APIs were added in ICS. Therefore to be
-        // backwards compatible we use the APIs in the support library. Note that if the
-        // platform API version is lower and the called API is not available no listener
-        // is added and you will not receive a call of onAccessibilityStateChanged.
-        AccessibilityManagerCompat.addAccessibilityStateChangeListener(mAccessibilityManager,
-                new AccessibilityStateChangeListenerCompat() {
-            @Override
-            public void onAccessibilityStateChanged(boolean enabled) {
-                Toast.makeText(AccessibilityManagerSupportActivity.this,
-                        getString(R.string.accessibility_manager_accessibility_state, enabled),
-                        Toast.LENGTH_SHORT).show();
-            }
-        });
-    }
-
-    /**
-     * Updates the content of a TextView with description of the enabled
-     * accessibility services.
-     */
-    private void updateAccessibilityStateView() {
-        // The API for getting the enabled accessibility services based on feedback
-        // type was added in ICS. Therefore to be backwards compatible we use the
-        // APIs in the support library. Note that if the platform API version is lower
-        // and the called API is not available an empty list of services is returned.
-        List<AccessibilityServiceInfo> enabledServices =
-            AccessibilityManagerCompat.getEnabledAccessibilityServiceList(mAccessibilityManager,
-                    AccessibilityServiceInfo.FEEDBACK_SPOKEN);
-        if (!enabledServices.isEmpty()) {
-            StringBuilder builder = new StringBuilder();
-            final int enabledServiceCount = enabledServices.size();
-            for (int i = 0; i < enabledServiceCount; i++) {
-                AccessibilityServiceInfo service = enabledServices.get(i);
-                // Some new APIs were added in ICS for getting more information about
-                // an accessibility service. Again accessed them via the support library.
-                ResolveInfo resolveInfo = AccessibilityServiceInfoCompat.getResolveInfo(service);
-                String serviceDescription = getString(
-                        R.string.accessibility_manager_enabled_service,
-                        resolveInfo.loadLabel(getPackageManager()),
-                        AccessibilityServiceInfoCompat.feedbackTypeToString(service.feedbackType),
-                        AccessibilityServiceInfoCompat.getDescription(service),
-                        AccessibilityServiceInfoCompat.getSettingsActivityName(service));
-                builder.append(serviceDescription);
-            }
-            mAccessibilityStateView.setText(builder);
-        } else {
-            // Either no services or the platform API version is not high enough.
-            mAccessibilityStateView.setText(getString(
-                    R.string.accessibility_manager_no_enabled_services));
-        }
-    }
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/accessibility/AccessibilityRoleDescriptionSupportActivity.java b/samples/Support4Demos/src/com/example/android/supportv4/accessibility/AccessibilityRoleDescriptionSupportActivity.java
deleted file mode 100644
index 5715ea4..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/accessibility/AccessibilityRoleDescriptionSupportActivity.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv4.accessibility;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.support.v4.view.AccessibilityDelegateCompat;
-import android.support.v4.view.ViewCompat;
-import android.support.v4.view.accessibility.AccessibilityNodeInfoCompat;
-import android.view.View;
-import android.widget.Button;
-import android.widget.TextView;
-
-import com.example.android.supportv4.R;
-
-/**
- * This class demonstrates how to use the support library to set custom
- * role descriptions on your views. This functionality is supported in the
- * support-v4 library on devices running KitKat (API 19) or later.
- */
-public class AccessibilityRoleDescriptionSupportActivity extends Activity {
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.accessibility_roledescription);
-
-        TextView firstTextView = (TextView) findViewById(R.id.text_view_1);
-        String roleDescriptionTextView = getString(R.string.accessibility_roledescription_role);
-        ViewCompat.setAccessibilityDelegate(firstTextView,
-            new RoleDescriptionAccessibilityDelegate(roleDescriptionTextView));
-
-        TextView heading1 = (TextView) findViewById(R.id.text_heading_1);
-        String roleDescriptionHeading1 = getString(R.string.accessibility_roledescription_h1_role);
-        ViewCompat.setAccessibilityDelegate(heading1,
-            new RoleDescriptionAccessibilityDelegate(roleDescriptionHeading1));
-
-        TextView heading2 = (TextView) findViewById(R.id.text_heading_2);
-        String roleDescriptionHeading2 = getString(R.string.accessibility_roledescription_h2_role);
-        ViewCompat.setAccessibilityDelegate(heading2,
-            new RoleDescriptionAccessibilityDelegate(roleDescriptionHeading2));
-
-        TextView heading3 = (TextView) findViewById(R.id.text_heading_3);
-        String roleDescriptionHeading3 = getString(R.string.accessibility_roledescription_h3_role);
-        ViewCompat.setAccessibilityDelegate(heading3,
-            new RoleDescriptionAccessibilityDelegate(roleDescriptionHeading3));
-
-        // This is an example of an <strong>incorrect</strong> use of the role description.
-        // You should not set the role description for standard widgets in your own code.
-        Button button = (Button) findViewById(R.id.button);
-        String roleDescriptionButton =
-            getString(R.string.accessibility_roledescription_button_role);
-        ViewCompat.setAccessibilityDelegate(button,
-            new RoleDescriptionAccessibilityDelegate(roleDescriptionButton));
-    }
-
-    /**
-     * This class subclasses AccessibilityDelegateCompat to modify a view's role description.
-     * You can either override View.onPopulateAccessibilityEvent (API 14+)  or use an accessibility
-     * delegate to set the role description. Using an accessibility delegate provides pre-ICS
-     * compatibility, and helps to organize your accessibility-related code.
-     */
-    private static class RoleDescriptionAccessibilityDelegate extends AccessibilityDelegateCompat {
-        private final String mRoleDescription;
-
-        public RoleDescriptionAccessibilityDelegate(String roleDescription) {
-          mRoleDescription = roleDescription;
-        }
-
-        @Override
-        public void onInitializeAccessibilityNodeInfo(View host,
-                AccessibilityNodeInfoCompat info) {
-            super.onInitializeAccessibilityNodeInfo(host, info);
-            // This call will succeed on all platforms, but it will only set the role description
-            // on devices running KitKat (API 19) or later. On older platforms the method call
-            // will succeed but do nothing.
-            info.setRoleDescription(mRoleDescription);
-        }
-    }
-
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/accessibility/_index.html b/samples/Support4Demos/src/com/example/android/supportv4/accessibility/_index.html
deleted file mode 100644
index 1b5b4aa..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/accessibility/_index.html
+++ /dev/null
@@ -1,28 +0,0 @@
-
-<p>This section includes samples showing the use of the accessibility
-features of the static support library.</p>
-
-<h3>Accessibility Manager</h3>
-<dl>
-  <dt><a href="AccessibilityManagerSupportActivity.html">Accessibility Manager</a></dt>
-  <dd>This sample demonstrates how to use the support library to register an
-  AccessibilityManager.AccessibilityStateChangeListener to watch changes to
-  the global accessibility state and AccessibilityManager to query information
-  about enabled accessibility services.</dd>
-</dl>
-
-<h3>Accessibility Delegate</h3>
-<dl>
-  <dt><a href="AccessibilityDelegateSupportActivity.html">AccessibilityDelegate</a></dt>
-  <dd>This sample demonstrates how to use the support library to register a
-  View.AccessibilityDelegate that customizes the accessibility behavior of
-  this View.</dd>
-</dl>
-
-<h3>Role Description</h3>
-<dl>
-  <dt><a href="AccessibilityRoleDescriptionSupportActivity.html">Role Description</a></dt>
-  <dd>This sample demonstrates how to use the support library to set a
-  custom role description on your views. It also gives examples of where
-  role descriptions are appropriate and inappropriate.</dd>
-</dl>
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentAlertDialogSupport.java b/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentAlertDialogSupport.java
deleted file mode 100644
index f35e021..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentAlertDialogSupport.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv4.app;
-
-import com.example.android.supportv4.R;
-
-import android.support.v4.app.DialogFragment;
-import android.support.v4.app.FragmentActivity;
-
-import android.app.AlertDialog;
-import android.app.Dialog;
-import android.content.DialogInterface;
-import android.os.Bundle;
-import android.util.Log;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.widget.Button;
-import android.widget.TextView;
-
-/**
- * Demonstrates how to show an AlertDialog that is managed by a Fragment.
- */
-public class FragmentAlertDialogSupport extends FragmentActivity {
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.fragment_dialog);
-
-        View tv = findViewById(R.id.text);
-        ((TextView)tv).setText("Example of displaying an alert dialog with a DialogFragment");
-
-        // Watch for button clicks.
-        Button button = (Button)findViewById(R.id.show);
-        button.setOnClickListener(new OnClickListener() {
-            public void onClick(View v) {
-                showDialog();
-            }
-        });
-    }
-
-//BEGIN_INCLUDE(activity)
-    void showDialog() {
-        DialogFragment newFragment = MyAlertDialogFragment.newInstance(
-                R.string.alert_dialog_two_buttons_title);
-        newFragment.show(getSupportFragmentManager(), "dialog");
-    }
-
-    public void doPositiveClick() {
-        // Do stuff here.
-        Log.i("FragmentAlertDialog", "Positive click!");
-    }
-
-    public void doNegativeClick() {
-        // Do stuff here.
-        Log.i("FragmentAlertDialog", "Negative click!");
-    }
-//END_INCLUDE(activity)
-
-//BEGIN_INCLUDE(dialog)
-    public static class MyAlertDialogFragment extends DialogFragment {
-
-        public static MyAlertDialogFragment newInstance(int title) {
-            MyAlertDialogFragment frag = new MyAlertDialogFragment();
-            Bundle args = new Bundle();
-            args.putInt("title", title);
-            frag.setArguments(args);
-            return frag;
-        }
-
-        @Override
-        public Dialog onCreateDialog(Bundle savedInstanceState) {
-            int title = getArguments().getInt("title");
-
-            return new AlertDialog.Builder(getActivity())
-                    .setIcon(R.drawable.alert_dialog_icon)
-                    .setTitle(title)
-                    .setPositiveButton(R.string.alert_dialog_ok,
-                        new DialogInterface.OnClickListener() {
-                            public void onClick(DialogInterface dialog, int whichButton) {
-                                ((FragmentAlertDialogSupport)getActivity()).doPositiveClick();
-                            }
-                        }
-                    )
-                    .setNegativeButton(R.string.alert_dialog_cancel,
-                        new DialogInterface.OnClickListener() {
-                            public void onClick(DialogInterface dialog, int whichButton) {
-                                ((FragmentAlertDialogSupport)getActivity()).doNegativeClick();
-                            }
-                        }
-                    )
-                    .create();
-        }
-    }
-//END_INCLUDE(dialog)
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentArgumentsSupport.java b/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentArgumentsSupport.java
deleted file mode 100644
index 8def8af..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentArgumentsSupport.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv4.app;
-
-import com.example.android.supportv4.R;
-
-import android.support.v4.app.FragmentActivity;
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentTransaction;
-
-import android.app.Activity;
-import android.content.res.TypedArray;
-import android.os.Bundle;
-import android.util.AttributeSet;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.TextView;
-
-/**
- * Demonstrates a fragment that can be configured through both Bundle arguments
- * and layout attributes.
- */
-public class FragmentArgumentsSupport extends FragmentActivity {
-//BEGIN_INCLUDE(create)
-    @Override protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.fragment_arguments_support);
-
-        if (savedInstanceState == null) {
-            // First-time init; create fragment to embed in activity.
-            FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
-            Fragment newFragment = MyFragment.newInstance("From Arguments");
-            ft.add(R.id.created, newFragment);
-            ft.commit();
-        }
-    }
-//END_INCLUDE(create)
-
-//BEGIN_INCLUDE(fragment)
-    public static class MyFragment extends Fragment {
-        CharSequence mLabel;
-
-        /**
-         * Create a new instance of MyFragment that will be initialized
-         * with the given arguments.
-         */
-        static MyFragment newInstance(CharSequence label) {
-            MyFragment f = new MyFragment();
-            Bundle b = new Bundle();
-            b.putCharSequence("label", label);
-            f.setArguments(b);
-            return f;
-        }
-
-        /**
-         * Parse attributes during inflation from a view hierarchy into the
-         * arguments we handle.
-         */
-        @Override public void onInflate(Activity activity, AttributeSet attrs,
-                Bundle savedInstanceState) {
-            super.onInflate(activity, attrs, savedInstanceState);
-
-            TypedArray a = activity.obtainStyledAttributes(attrs,
-                    R.styleable.FragmentArguments);
-            mLabel = a.getText(R.styleable.FragmentArguments_android_label);
-            a.recycle();
-        }
-
-        /**
-         * During creation, if arguments have been supplied to the fragment
-         * then parse those out.
-         */
-        @Override public void onCreate(Bundle savedInstanceState) {
-            super.onCreate(savedInstanceState);
-
-            Bundle args = getArguments();
-            if (args != null) {
-                CharSequence label = args.getCharSequence("label");
-                if (label != null) {
-                    mLabel = label;
-                }
-            }
-        }
-
-        /**
-         * Create the view for this fragment, using the arguments given to it.
-         */
-        @Override public View onCreateView(LayoutInflater inflater, ViewGroup container,
-                Bundle savedInstanceState) {
-            View v = inflater.inflate(R.layout.hello_world, container, false);
-            View tv = v.findViewById(R.id.text);
-            ((TextView)tv).setText(mLabel != null ? mLabel : "(no label)");
-            tv.setBackgroundDrawable(getResources().getDrawable(android.R.drawable.gallery_thumb));
-            return v;
-        }
-    }
-//END_INCLUDE(fragment)
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentContextMenuSupport.java b/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentContextMenuSupport.java
deleted file mode 100644
index e52e732..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentContextMenuSupport.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv4.app;
-
-import com.example.android.supportv4.R;
-
-import android.os.Bundle;
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentActivity;
-import android.util.Log;
-import android.view.ContextMenu;
-import android.view.ContextMenu.ContextMenuInfo;
-import android.view.LayoutInflater;
-import android.view.Menu;
-import android.view.MenuItem;
-import android.view.View;
-import android.view.ViewGroup;
-
-/**
- * Demonstration of displaying a context menu from a fragment.
- */
-public class FragmentContextMenuSupport extends FragmentActivity {
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        // Create the list fragment and add it as our sole content.
-        ContextMenuFragment content = new ContextMenuFragment();
-        getSupportFragmentManager().beginTransaction().add(
-                android.R.id.content, content).commit();
-    }
-
-    public static class ContextMenuFragment extends Fragment {
-
-        @Override
-        public View onCreateView(LayoutInflater inflater, ViewGroup container,
-                Bundle savedInstanceState) {
-            View root = inflater.inflate(R.layout.fragment_context_menu, container, false);
-            registerForContextMenu(root.findViewById(R.id.long_press));
-            return root;
-        }
-
-        @Override
-        public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
-            super.onCreateContextMenu(menu, v, menuInfo);
-            menu.add(Menu.NONE, R.id.a_item, Menu.NONE, "Menu A");
-            menu.add(Menu.NONE, R.id.b_item, Menu.NONE, "Menu B");
-        }
-
-        @Override
-        public boolean onContextItemSelected(MenuItem item) {
-            switch (item.getItemId()) {
-                case R.id.a_item:
-                    Log.i("ContextMenu", "Item 1a was chosen");
-                    return true;
-                case R.id.b_item:
-                    Log.i("ContextMenu", "Item 1b was chosen");
-                    return true;
-            }
-            return super.onContextItemSelected(item);
-        }
-    }
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentCustomAnimationSupport.java b/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentCustomAnimationSupport.java
deleted file mode 100644
index 5893521..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentCustomAnimationSupport.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv4.app;
-
-import com.example.android.supportv4.R;
-
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentActivity;
-import android.support.v4.app.FragmentTransaction;
-
-import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.View.OnClickListener;
-import android.widget.Button;
-import android.widget.TextView;
-
-public class FragmentCustomAnimationSupport extends FragmentActivity {
-    int mStackLevel = 1;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.fragment_stack);
-
-        // Watch for button clicks.
-        Button button = (Button)findViewById(R.id.new_fragment);
-        button.setOnClickListener(new OnClickListener() {
-            public void onClick(View v) {
-                addFragmentToStack();
-            }
-        });
-
-        if (savedInstanceState == null) {
-            // Do first time initialization -- add initial fragment.
-            Fragment newFragment = CountingFragment.newInstance(mStackLevel);
-            FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
-            ft.add(R.id.simple_fragment, newFragment).commit();
-        } else {
-            mStackLevel = savedInstanceState.getInt("level");
-        }
-    }
-
-    @Override
-    public void onSaveInstanceState(Bundle outState) {
-        super.onSaveInstanceState(outState);
-        outState.putInt("level", mStackLevel);
-    }
-
-//BEGIN_INCLUDE(add_stack)
-    void addFragmentToStack() {
-        mStackLevel++;
-
-        // Instantiate a new fragment.
-        Fragment newFragment = CountingFragment.newInstance(mStackLevel);
-
-        // Add the fragment to the activity, pushing this transaction
-        // on to the back stack.
-        FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
-        ft.setCustomAnimations(R.anim.fragment_slide_left_enter,
-                R.anim.fragment_slide_left_exit,
-                R.anim.fragment_slide_right_enter,
-                R.anim.fragment_slide_right_exit);
-        ft.replace(R.id.simple_fragment, newFragment);
-        ft.addToBackStack(null);
-        ft.commit();
-    }
-//END_INCLUDE(add_stack)
-
-//BEGIN_INCLUDE(fragment)
-    public static class CountingFragment extends Fragment {
-        int mNum;
-
-        /**
-         * Create a new instance of CountingFragment, providing "num"
-         * as an argument.
-         */
-        static CountingFragment newInstance(int num) {
-            CountingFragment f = new CountingFragment();
-
-            // Supply num input as an argument.
-            Bundle args = new Bundle();
-            args.putInt("num", num);
-            f.setArguments(args);
-
-            return f;
-        }
-
-        /**
-         * When creating, retrieve this instance's number from its arguments.
-         */
-        @Override
-        public void onCreate(Bundle savedInstanceState) {
-            super.onCreate(savedInstanceState);
-            mNum = getArguments() != null ? getArguments().getInt("num") : 1;
-        }
-
-        /**
-         * The Fragment's UI is just a simple text view showing its
-         * instance number.
-         */
-        @Override
-        public View onCreateView(LayoutInflater inflater, ViewGroup container,
-                Bundle savedInstanceState) {
-            View v = inflater.inflate(R.layout.hello_world, container, false);
-            View tv = v.findViewById(R.id.text);
-            ((TextView)tv).setText("Fragment #" + mNum);
-            tv.setBackgroundDrawable(getResources().getDrawable(android.R.drawable.gallery_thumb));
-            return v;
-        }
-    }
-//END_INCLUDE(fragment)
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentDialogOrActivitySupport.java b/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentDialogOrActivitySupport.java
deleted file mode 100644
index 06b2730..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentDialogOrActivitySupport.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv4.app;
-
-import com.example.android.supportv4.R;
-
-import android.os.Bundle;
-import android.support.v4.app.DialogFragment;
-import android.support.v4.app.FragmentActivity;
-import android.support.v4.app.FragmentTransaction;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.view.ViewGroup;
-import android.widget.Button;
-import android.widget.TextView;
-
-public class FragmentDialogOrActivitySupport extends FragmentActivity {
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.fragment_dialog_or_activity);
-
-        if (savedInstanceState == null) {
-            // First-time init; create fragment to embed in activity.
-//BEGIN_INCLUDE(embed)
-            FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
-            DialogFragment newFragment = MyDialogFragment.newInstance();
-            ft.add(R.id.embedded, newFragment);
-            ft.commit();
-//END_INCLUDE(embed)
-        }
-
-        // Watch for button clicks.
-        Button button = (Button)findViewById(R.id.show_dialog);
-        button.setOnClickListener(new OnClickListener() {
-            public void onClick(View v) {
-                showDialog();
-            }
-        });
-    }
-
-//BEGIN_INCLUDE(show_dialog)
-    void showDialog() {
-        // Create the fragment and show it as a dialog.
-        DialogFragment newFragment = MyDialogFragment.newInstance();
-        newFragment.show(getSupportFragmentManager(), "dialog");
-    }
-//END_INCLUDE(show_dialog)
-
-//BEGIN_INCLUDE(dialog)
-    public static class MyDialogFragment extends DialogFragment {
-        static MyDialogFragment newInstance() {
-            return new MyDialogFragment();
-        }
-
-        @Override
-        public View onCreateView(LayoutInflater inflater, ViewGroup container,
-                Bundle savedInstanceState) {
-            View v = inflater.inflate(R.layout.hello_world, container, false);
-            View tv = v.findViewById(R.id.text);
-            ((TextView)tv).setText("This is an instance of MyDialogFragment");
-            return v;
-        }
-    }
-//END_INCLUDE(dialog)
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentDialogSupport.java b/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentDialogSupport.java
deleted file mode 100644
index b387bfc..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentDialogSupport.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv4.app;
-
-import com.example.android.supportv4.R;
-
-import android.support.v4.app.DialogFragment;
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentActivity;
-import android.support.v4.app.FragmentTransaction;
-
-import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.view.ViewGroup;
-import android.widget.Button;
-import android.widget.TextView;
-
-public class FragmentDialogSupport extends FragmentActivity {
-    int mStackLevel = 0;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.fragment_dialog);
-
-        View tv = findViewById(R.id.text);
-        ((TextView)tv).setText("Example of displaying dialogs with a DialogFragment.  "
-                + "Press the show button below to see the first dialog; pressing "
-                + "successive show buttons will display other dialog styles as a "
-                + "stack, with dismissing or back going to the previous dialog.");
-
-        // Watch for button clicks.
-        Button button = (Button)findViewById(R.id.show);
-        button.setOnClickListener(new OnClickListener() {
-            public void onClick(View v) {
-                showDialog();
-            }
-        });
-
-        if (savedInstanceState != null) {
-            mStackLevel = savedInstanceState.getInt("level");
-        }
-    }
-
-    @Override
-    public void onSaveInstanceState(Bundle outState) {
-        super.onSaveInstanceState(outState);
-        outState.putInt("level", mStackLevel);
-    }
-
-//BEGIN_INCLUDE(add_dialog)
-    void showDialog() {
-        mStackLevel++;
-
-        // DialogFragment.show() will take care of adding the fragment
-        // in a transaction.  We also want to remove any currently showing
-        // dialog, so make our own transaction and take care of that here.
-        FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
-        Fragment prev = getSupportFragmentManager().findFragmentByTag("dialog");
-        if (prev != null) {
-            ft.remove(prev);
-        }
-        ft.addToBackStack(null);
-
-        // Create and show the dialog.
-        DialogFragment newFragment = MyDialogFragment.newInstance(mStackLevel);
-        newFragment.show(ft, "dialog");
-    }
-//END_INCLUDE(add_dialog)
-
-    static String getNameForNum(int num) {
-        switch ((num-1)%6) {
-            case 1: return "STYLE_NO_TITLE";
-            case 2: return "STYLE_NO_FRAME";
-            case 3: return "STYLE_NO_INPUT (this window can't receive input, so "
-                    + "you will need to press the bottom show button)";
-            case 4: return "STYLE_NORMAL with dark fullscreen theme";
-            case 5: return "STYLE_NORMAL with light theme";
-            case 6: return "STYLE_NO_TITLE with light theme";
-            case 7: return "STYLE_NO_FRAME with light theme";
-            case 8: return "STYLE_NORMAL with light fullscreen theme";
-        }
-        return "STYLE_NORMAL";
-    }
-
-//BEGIN_INCLUDE(dialog)
-    public static class MyDialogFragment extends DialogFragment {
-        int mNum;
-
-        /**
-         * Create a new instance of MyDialogFragment, providing "num"
-         * as an argument.
-         */
-        static MyDialogFragment newInstance(int num) {
-            MyDialogFragment f = new MyDialogFragment();
-
-            // Supply num input as an argument.
-            Bundle args = new Bundle();
-            args.putInt("num", num);
-            f.setArguments(args);
-
-            return f;
-        }
-
-        @Override
-        public void onCreate(Bundle savedInstanceState) {
-            super.onCreate(savedInstanceState);
-            mNum = getArguments().getInt("num");
-
-            // Pick a style based on the num.
-            int style = DialogFragment.STYLE_NORMAL, theme = 0;
-            switch ((mNum-1)%6) {
-                case 1: style = DialogFragment.STYLE_NO_TITLE; break;
-                case 2: style = DialogFragment.STYLE_NO_FRAME; break;
-                case 3: style = DialogFragment.STYLE_NO_INPUT; break;
-                case 4: style = DialogFragment.STYLE_NORMAL; break;
-                case 5: style = DialogFragment.STYLE_NO_TITLE; break;
-                case 6: style = DialogFragment.STYLE_NO_FRAME; break;
-                case 7: style = DialogFragment.STYLE_NORMAL; break;
-            }
-            switch ((mNum-1)%6) {
-                case 2: theme = android.R.style.Theme_Panel; break;
-                case 4: theme = android.R.style.Theme; break;
-                case 5: theme = android.R.style.Theme_Light; break;
-                case 6: theme = android.R.style.Theme_Light_Panel; break;
-                case 7: theme = android.R.style.Theme_Light; break;
-            }
-            setStyle(style, theme);
-        }
-
-        @Override
-        public View onCreateView(LayoutInflater inflater, ViewGroup container,
-                Bundle savedInstanceState) {
-            View v = inflater.inflate(R.layout.fragment_dialog, container, false);
-            View tv = v.findViewById(R.id.text);
-            ((TextView)tv).setText("Dialog #" + mNum + ": using style "
-                    + getNameForNum(mNum));
-
-            // Watch for button clicks.
-            Button button = (Button)v.findViewById(R.id.show);
-            button.setOnClickListener(new OnClickListener() {
-                public void onClick(View v) {
-                    // When button is clicked, call up to owning activity.
-                    ((FragmentDialogSupport)getActivity()).showDialog();
-                }
-            });
-
-            return v;
-        }
-    }
-//END_INCLUDE(dialog)
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentHideShowSupport.java b/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentHideShowSupport.java
deleted file mode 100644
index 3441506..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentHideShowSupport.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv4.app;
-
-import com.example.android.supportv4.R;
-
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentActivity;
-import android.support.v4.app.FragmentManager;
-import android.support.v4.app.FragmentTransaction;
-
-import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.View.OnClickListener;
-import android.widget.Button;
-import android.widget.TextView;
-
-/**
- * Demonstration of hiding and showing fragments.
- */
-public class FragmentHideShowSupport extends FragmentActivity {
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.fragment_hide_show_support);
-
-        // The content view embeds two fragments; now retrieve them and attach
-        // their "hide" button.
-        FragmentManager fm = getSupportFragmentManager();
-        Fragment fragment1 = fm.findFragmentById(R.id.fragment1);
-        addShowHideListener(R.id.frag1hide, fragment1);
-        final Button button1 = (Button)findViewById(R.id.frag1hide);
-        button1.setText(fragment1.isHidden() ? "Show" : "Hide");
-        Fragment fragment2 = fm.findFragmentById(R.id.fragment2);
-        addShowHideListener(R.id.frag2hide, fragment2);
-        final Button button2 = (Button)findViewById(R.id.frag2hide);
-        button2.setText(fragment2.isHidden() ? "Show" : "Hide");
-    }
-
-    void addShowHideListener(int buttonId, final Fragment fragment) {
-        final Button button = (Button)findViewById(buttonId);
-        button.setOnClickListener(new OnClickListener() {
-            public void onClick(View v) {
-                FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
-                ft.setCustomAnimations(android.R.anim.fade_in,
-                        android.R.anim.fade_out);
-                if (fragment.isHidden()) {
-                    ft.show(fragment);
-                    button.setText("Hide");
-                } else {
-                    ft.hide(fragment);
-                    button.setText("Show");
-                }
-                ft.commit();
-            }
-        });
-    }
-
-    public static class FirstFragment extends Fragment {
-        TextView mTextView;
-
-        @Override
-        public View onCreateView(LayoutInflater inflater, ViewGroup container,
-                Bundle savedInstanceState) {
-            View v = inflater.inflate(R.layout.labeled_text_edit, container, false);
-            View tv = v.findViewById(R.id.msg);
-            ((TextView)tv).setText("The fragment saves and restores this text.");
-
-            // Retrieve the text editor, and restore the last saved state if needed.
-            mTextView = (TextView)v.findViewById(R.id.saved);
-            if (savedInstanceState != null) {
-                mTextView.setText(savedInstanceState.getCharSequence("text"));
-            }
-            return v;
-        }
-
-        @Override
-        public void onSaveInstanceState(Bundle outState) {
-            super.onSaveInstanceState(outState);
-
-            // Remember the current text, to restore if we later restart.
-            outState.putCharSequence("text", mTextView.getText());
-        }
-    }
-
-    public static class SecondFragment extends Fragment {
-
-        @Override
-        public View onCreateView(LayoutInflater inflater, ViewGroup container,
-                Bundle savedInstanceState) {
-            View v = inflater.inflate(R.layout.labeled_text_edit, container, false);
-            View tv = v.findViewById(R.id.msg);
-            ((TextView)tv).setText("The TextView saves and restores this text.");
-
-            // Retrieve the text editor and tell it to save and restore its state.
-            // Note that you will often set this in the layout XML, but since
-            // we are sharing our layout with the other fragment we will customize
-            // it here.
-            ((TextView)v.findViewById(R.id.saved)).setSaveEnabled(true);
-            return v;
-        }
-    }
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentLayoutSupport.java b/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentLayoutSupport.java
deleted file mode 100644
index 1230dd3..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentLayoutSupport.java
+++ /dev/null
@@ -1,223 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv4.app;
-
-import com.example.android.supportv4.Shakespeare;
-import com.example.android.supportv4.R;
-
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentActivity;
-import android.support.v4.app.FragmentTransaction;
-import android.support.v4.app.ListFragment;
-
-import android.content.Intent;
-import android.content.res.Configuration;
-import android.os.Bundle;
-import android.util.TypedValue;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.ArrayAdapter;
-import android.widget.ListView;
-import android.widget.ScrollView;
-import android.widget.TextView;
-
-/**
- * Demonstration of using fragments to implement different activity layouts.
- * This sample provides a different layout (and activity flow) when run in
- * landscape.
- */
-public class FragmentLayoutSupport extends FragmentActivity {
-
-//BEGIN_INCLUDE(main)
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        setContentView(R.layout.fragment_layout_support);
-    }
-//END_INCLUDE(main)
-
-    /**
-     * This is a secondary activity, to show what the user has selected
-     * when the screen is not large enough to show it all in one activity.
-     */
-//BEGIN_INCLUDE(details_activity)
-    public static class DetailsActivity extends FragmentActivity {
-
-        @Override
-        protected void onCreate(Bundle savedInstanceState) {
-            super.onCreate(savedInstanceState);
-
-            if (getResources().getConfiguration().orientation
-                    == Configuration.ORIENTATION_LANDSCAPE) {
-                // If the screen is now in landscape mode, we can show the
-                // dialog in-line with the list so we don't need this activity.
-                finish();
-                return;
-            }
-
-            if (savedInstanceState == null) {
-                // During initial setup, plug in the details fragment.
-                DetailsFragment details = new DetailsFragment();
-                details.setArguments(getIntent().getExtras());
-                getSupportFragmentManager().beginTransaction().add(
-                        android.R.id.content, details).commit();
-            }
-        }
-    }
-//END_INCLUDE(details_activity)
-
-    /**
-     * This is the "top-level" fragment, showing a list of items that the
-     * user can pick.  Upon picking an item, it takes care of displaying the
-     * data to the user as appropriate based on the currrent UI layout.
-     */
-//BEGIN_INCLUDE(titles)
-    public static class TitlesFragment extends ListFragment {
-        boolean mDualPane;
-        int mCurCheckPosition = 0;
-
-        @Override
-        public void onActivityCreated(Bundle savedInstanceState) {
-            super.onActivityCreated(savedInstanceState);
-
-            // Populate list with our static array of titles.
-            setListAdapter(new ArrayAdapter<String>(getActivity(),
-                    R.layout.simple_list_item_checkable_1,
-                    android.R.id.text1, Shakespeare.TITLES));
-
-            // Check to see if we have a frame in which to embed the details
-            // fragment directly in the containing UI.
-            View detailsFrame = getActivity().findViewById(R.id.details);
-            mDualPane = detailsFrame != null && detailsFrame.getVisibility() == View.VISIBLE;
-
-            if (savedInstanceState != null) {
-                // Restore last state for checked position.
-                mCurCheckPosition = savedInstanceState.getInt("curChoice", 0);
-            }
-
-            if (mDualPane) {
-                // In dual-pane mode, the list view highlights the selected item.
-                getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
-                // Make sure our UI is in the correct state.
-                showDetails(mCurCheckPosition);
-            }
-        }
-
-        @Override
-        public void onSaveInstanceState(Bundle outState) {
-            super.onSaveInstanceState(outState);
-            outState.putInt("curChoice", mCurCheckPosition);
-        }
-
-        @Override
-        public void onListItemClick(ListView l, View v, int position, long id) {
-            showDetails(position);
-        }
-
-        /**
-         * Helper function to show the details of a selected item, either by
-         * displaying a fragment in-place in the current UI, or starting a
-         * whole new activity in which it is displayed.
-         */
-        void showDetails(int index) {
-            mCurCheckPosition = index;
-
-            if (mDualPane) {
-                // We can display everything in-place with fragments, so update
-                // the list to highlight the selected item and show the data.
-                getListView().setItemChecked(index, true);
-
-                // Check what fragment is currently shown, replace if needed.
-                DetailsFragment details = (DetailsFragment)
-                        getFragmentManager().findFragmentById(R.id.details);
-                if (details == null || details.getShownIndex() != index) {
-                    // Make new fragment to show this selection.
-                    details = DetailsFragment.newInstance(index);
-
-                    // Execute a transaction, replacing any existing fragment
-                    // with this one inside the frame.
-                    getFragmentManager().beginTransaction()
-                            .replace(R.id.details, details)
-                            .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE)
-                            .commit();
-                }
-
-            } else {
-                // Otherwise we need to launch a new activity to display
-                // the dialog fragment with selected text.
-                Intent intent = new Intent();
-                intent.setClass(getActivity(), DetailsActivity.class);
-                intent.putExtra("index", index);
-                startActivity(intent);
-            }
-        }
-    }
-//END_INCLUDE(titles)
-
-    /**
-     * This is the secondary fragment, displaying the details of a particular
-     * item.
-     */
-//BEGIN_INCLUDE(details)
-    public static class DetailsFragment extends Fragment {
-        /**
-         * Create a new instance of DetailsFragment, initialized to
-         * show the text at 'index'.
-         */
-        public static DetailsFragment newInstance(int index) {
-            DetailsFragment f = new DetailsFragment();
-
-            // Supply index input as an argument.
-            Bundle args = new Bundle();
-            args.putInt("index", index);
-            f.setArguments(args);
-
-            return f;
-        }
-
-        public int getShownIndex() {
-            return getArguments().getInt("index", 0);
-        }
-
-        @Override
-        public View onCreateView(LayoutInflater inflater, ViewGroup container,
-                Bundle savedInstanceState) {
-            if (container == null) {
-                // We have different layouts, and in one of them this
-                // fragment's containing frame doesn't exist.  The fragment
-                // may still be created from its saved state, but there is
-                // no reason to try to create its view hierarchy because it
-                // won't be displayed.  Note this is not needed -- we could
-                // just run the code below, where we would create and return
-                // the view hierarchy; it would just never be used.
-                return null;
-            }
-
-            ScrollView scroller = new ScrollView(getActivity());
-            TextView text = new TextView(getActivity());
-            int padding = (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
-                    4, getActivity().getResources().getDisplayMetrics());
-            text.setPadding(padding, padding, padding, padding);
-            scroller.addView(text);
-            text.setText(Shakespeare.DIALOGUE[getShownIndex()]);
-            return scroller;
-        }
-    }
-//END_INCLUDE(details)
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentListArraySupport.java b/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentListArraySupport.java
deleted file mode 100644
index 7efae2c..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentListArraySupport.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv4.app;
-
-import com.example.android.supportv4.Shakespeare;
-
-import android.support.v4.app.FragmentActivity;
-import android.support.v4.app.ListFragment;
-
-import android.os.Bundle;
-import android.util.Log;
-import android.view.View;
-import android.widget.ArrayAdapter;
-import android.widget.ListView;
-
-/**
- * Demonstration of using ListFragment to show a list of items
- * from a canned array.
- */
-public class FragmentListArraySupport extends FragmentActivity {
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        // Create the list fragment and add it as our sole content.
-        if (getSupportFragmentManager().findFragmentById(android.R.id.content) == null) {
-            ArrayListFragment list = new ArrayListFragment();
-            getSupportFragmentManager().beginTransaction().add(android.R.id.content, list).commit();
-        }
-    }
-
-    public static class ArrayListFragment extends ListFragment {
-
-        @Override
-        public void onActivityCreated(Bundle savedInstanceState) {
-            super.onActivityCreated(savedInstanceState);
-            setListAdapter(new ArrayAdapter<String>(getActivity(),
-                    android.R.layout.simple_list_item_1, Shakespeare.TITLES));
-        }
-
-        @Override
-        public void onListItemClick(ListView l, View v, int position, long id) {
-            Log.i("FragmentList", "Item clicked: " + id);
-        }
-    }
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentMenuFragmentSupport.java b/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentMenuFragmentSupport.java
deleted file mode 100644
index fb65a2b..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentMenuFragmentSupport.java
+++ /dev/null
@@ -1,96 +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.supportv4.app;
-
-import com.example.android.supportv4.R;
-
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentManager;
-import android.support.v4.app.FragmentTransaction;
-
-import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.View.OnClickListener;
-import android.widget.CheckBox;
-
-/**
- * Demonstrates how fragments can participate in the options menu.
- */
-public class FragmentMenuFragmentSupport extends Fragment {
-    Fragment mFragment1;
-    Fragment mFragment2;
-    CheckBox mCheckBox1;
-    CheckBox mCheckBox2;
-
-    // Update fragment visibility when check boxes are changed.
-    final OnClickListener mClickListener = new OnClickListener() {
-        public void onClick(View v) {
-            updateFragmentVisibility();
-        }
-    };
-
-    @Override
-    public View onCreateView(LayoutInflater inflater, ViewGroup container,
-            Bundle savedInstanceState) {
-        View v = inflater.inflate(R.layout.fragment_menu, container, false);
-
-        // Make sure the two menu fragments are created.
-        FragmentManager fm = getChildFragmentManager();
-        FragmentTransaction ft = fm.beginTransaction();
-        mFragment1 = fm.findFragmentByTag("f1");
-        if (mFragment1 == null) {
-            mFragment1 = new FragmentMenuSupport.MenuFragment();
-            ft.add(mFragment1, "f1");
-        }
-        mFragment2 = fm.findFragmentByTag("f2");
-        if (mFragment2 == null) {
-            mFragment2 = new FragmentMenuSupport.Menu2Fragment();
-            ft.add(mFragment2, "f2");
-        }
-        ft.commit();
-        
-        // Watch check box clicks.
-        mCheckBox1 = (CheckBox)v.findViewById(R.id.menu1);
-        mCheckBox1.setOnClickListener(mClickListener);
-        mCheckBox2 = (CheckBox)v.findViewById(R.id.menu2);
-        mCheckBox2.setOnClickListener(mClickListener);
-        
-        // Make sure fragments start out with correct visibility.
-        updateFragmentVisibility();
-
-        return v;
-    }
-
-    @Override
-    public void onViewStateRestored(Bundle savedInstanceState) {
-        super.onViewStateRestored(savedInstanceState);
-        // Make sure fragments are updated after check box view state is restored.
-        updateFragmentVisibility();
-    }
-
-    // Update fragment visibility based on current check box state.
-    void updateFragmentVisibility() {
-        FragmentTransaction ft = getChildFragmentManager().beginTransaction();
-        if (mCheckBox1.isChecked()) ft.show(mFragment1);
-        else ft.hide(mFragment1);
-        if (mCheckBox2.isChecked()) ft.show(mFragment2);
-        else ft.hide(mFragment2);
-        ft.commit();
-    }
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentMenuSupport.java b/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentMenuSupport.java
deleted file mode 100644
index f2f5ec1..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentMenuSupport.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv4.app;
-
-import com.example.android.supportv4.R;
-
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentActivity;
-import android.support.v4.app.FragmentManager;
-import android.support.v4.app.FragmentTransaction;
-import android.support.v4.view.MenuItemCompat;
-
-import android.os.Bundle;
-import android.view.Menu;
-import android.view.MenuInflater;
-import android.view.MenuItem;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.widget.CheckBox;
-
-/**
- * Demonstrates how fragments can participate in the options menu.
- */
-public class FragmentMenuSupport extends FragmentActivity {
-    Fragment mFragment1;
-    Fragment mFragment2;
-    CheckBox mCheckBox1;
-    CheckBox mCheckBox2;
-
-    // Update fragment visibility when check boxes are changed.
-    final OnClickListener mClickListener = new OnClickListener() {
-        public void onClick(View v) {
-            updateFragmentVisibility();
-        }
-    };
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.fragment_menu);
-
-        // Make sure the two menu fragments are created.
-        FragmentManager fm = getSupportFragmentManager();
-        FragmentTransaction ft = fm.beginTransaction();
-        mFragment1 = fm.findFragmentByTag("f1");
-        if (mFragment1 == null) {
-            mFragment1 = new MenuFragment();
-            ft.add(mFragment1, "f1");
-        }
-        mFragment2 = fm.findFragmentByTag("f2");
-        if (mFragment2 == null) {
-            mFragment2 = new Menu2Fragment();
-            ft.add(mFragment2, "f2");
-        }
-        ft.commit();
-
-        // Watch check box clicks.
-        mCheckBox1 = (CheckBox)findViewById(R.id.menu1);
-        mCheckBox1.setOnClickListener(mClickListener);
-        mCheckBox2 = (CheckBox)findViewById(R.id.menu2);
-        mCheckBox2.setOnClickListener(mClickListener);
-
-        // Make sure fragments start out with correct visibility.
-        updateFragmentVisibility();
-    }
-
-    @Override
-    protected void onRestoreInstanceState(Bundle savedInstanceState) {
-        super.onRestoreInstanceState(savedInstanceState);
-        // Make sure fragments are updated after check box view state is restored.
-        updateFragmentVisibility();
-    }
-
-    // Update fragment visibility based on current check box state.
-    void updateFragmentVisibility() {
-        FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
-        if (mCheckBox1.isChecked()) ft.show(mFragment1);
-        else ft.hide(mFragment1);
-        if (mCheckBox2.isChecked()) ft.show(mFragment2);
-        else ft.hide(mFragment2);
-        ft.commit();
-    }
-
-    /**
-     * A fragment that displays a menu.  This fragment happens to not
-     * have a UI (it does not implement onCreateView), but it could also
-     * have one if it wanted.
-     */
-    public static class MenuFragment extends Fragment {
-
-        @Override
-        public void onCreate(Bundle savedInstanceState) {
-            super.onCreate(savedInstanceState);
-            setHasOptionsMenu(true);
-        }
-
-        @Override
-        public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
-            MenuItem item;
-            item = menu.add("Menu 1a");
-            MenuItemCompat.setShowAsAction(item, MenuItemCompat.SHOW_AS_ACTION_IF_ROOM);
-            item = menu.add("Menu 1b");
-            MenuItemCompat.setShowAsAction(item, MenuItemCompat.SHOW_AS_ACTION_IF_ROOM);
-        }
-    }
-
-    /**
-     * Second fragment with a menu.
-     */
-    public static class Menu2Fragment extends Fragment {
-
-        @Override
-        public void onCreate(Bundle savedInstanceState) {
-            super.onCreate(savedInstanceState);
-            setHasOptionsMenu(true);
-        }
-
-        @Override
-        public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
-            MenuItem item;
-            item = menu.add("Menu 2");
-            MenuItemCompat.setShowAsAction(item, MenuItemCompat.SHOW_AS_ACTION_IF_ROOM);
-        }
-    }
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentNestingTabsSupport.java b/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentNestingTabsSupport.java
deleted file mode 100644
index dfdbc21..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentNestingTabsSupport.java
+++ /dev/null
@@ -1,46 +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.supportv4.app;
-
-//BEGIN_INCLUDE(complete)
-import com.example.android.supportv4.R;
-
-import android.os.Bundle;
-import android.support.v4.app.FragmentActivity;
-import android.support.v4.app.FragmentTabHost;
-
-public class FragmentNestingTabsSupport extends FragmentActivity {
-    private FragmentTabHost mTabHost;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        mTabHost = new FragmentTabHost(this);
-        setContentView(mTabHost);
-        mTabHost.setup(this, getSupportFragmentManager(), R.id.fragment1);
-
-        mTabHost.addTab(mTabHost.newTabSpec("menus").setIndicator("Menus"),
-                FragmentMenuFragmentSupport.class, null);
-        mTabHost.addTab(mTabHost.newTabSpec("contacts").setIndicator("Contacts"),
-                LoaderCursorSupport.CursorLoaderListFragment.class, null);
-        mTabHost.addTab(mTabHost.newTabSpec("stack").setIndicator("Stack"),
-                FragmentStackFragmentSupport.class, null);
-        mTabHost.addTab(mTabHost.newTabSpec("tabs").setIndicator("Tabs"),
-                FragmentTabsFragmentSupport.class, null);
-    }
-}
-//END_INCLUDE(complete)
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentPagerSupport.java b/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentPagerSupport.java
deleted file mode 100644
index f413744..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentPagerSupport.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv4.app;
-
-import com.example.android.supportv4.Cheeses;
-import com.example.android.supportv4.R;
-
-import android.os.Bundle;
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentActivity;
-import android.support.v4.app.FragmentManager;
-import android.support.v4.app.FragmentPagerAdapter;
-import android.support.v4.app.ListFragment;
-import android.support.v4.view.ViewPager;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.View.OnClickListener;
-import android.widget.ArrayAdapter;
-import android.widget.Button;
-import android.widget.ListView;
-import android.widget.TextView;
-
-//BEGIN_INCLUDE(complete)
-public class FragmentPagerSupport extends FragmentActivity {
-    static final int NUM_ITEMS = 10;
-
-    MyAdapter mAdapter;
-
-    ViewPager mPager;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.fragment_pager);
-
-        mAdapter = new MyAdapter(getSupportFragmentManager());
-
-        mPager = (ViewPager)findViewById(R.id.pager);
-        mPager.setAdapter(mAdapter);
-
-        // Watch for button clicks.
-        Button button = (Button)findViewById(R.id.goto_first);
-        button.setOnClickListener(new OnClickListener() {
-            public void onClick(View v) {
-                mPager.setCurrentItem(0);
-            }
-        });
-        button = (Button)findViewById(R.id.goto_last);
-        button.setOnClickListener(new OnClickListener() {
-            public void onClick(View v) {
-                mPager.setCurrentItem(NUM_ITEMS-1);
-            }
-        });
-    }
-
-    public static class MyAdapter extends FragmentPagerAdapter {
-        public MyAdapter(FragmentManager fm) {
-            super(fm);
-        }
-
-        @Override
-        public int getCount() {
-            return NUM_ITEMS;
-        }
-
-        @Override
-        public Fragment getItem(int position) {
-            return ArrayListFragment.newInstance(position);
-        }
-    }
-
-    public static class ArrayListFragment extends ListFragment {
-        int mNum;
-
-        /**
-         * Create a new instance of CountingFragment, providing "num"
-         * as an argument.
-         */
-        static ArrayListFragment newInstance(int num) {
-            ArrayListFragment f = new ArrayListFragment();
-
-            // Supply num input as an argument.
-            Bundle args = new Bundle();
-            args.putInt("num", num);
-            f.setArguments(args);
-
-            return f;
-        }
-
-        /**
-         * When creating, retrieve this instance's number from its arguments.
-         */
-        @Override
-        public void onCreate(Bundle savedInstanceState) {
-            super.onCreate(savedInstanceState);
-            mNum = getArguments() != null ? getArguments().getInt("num") : 1;
-        }
-
-        /**
-         * The Fragment's UI is just a simple text view showing its
-         * instance number.
-         */
-        @Override
-        public View onCreateView(LayoutInflater inflater, ViewGroup container,
-                Bundle savedInstanceState) {
-            View v = inflater.inflate(R.layout.fragment_pager_list, container, false);
-            View tv = v.findViewById(R.id.text);
-            ((TextView)tv).setText("Fragment #" + mNum);
-            return v;
-        }
-
-        @Override
-        public void onActivityCreated(Bundle savedInstanceState) {
-            super.onActivityCreated(savedInstanceState);
-            setListAdapter(new ArrayAdapter<String>(getActivity(),
-                    android.R.layout.simple_list_item_1, Cheeses.sCheeseStrings));
-        }
-
-        @Override
-        public void onListItemClick(ListView l, View v, int position, long id) {
-            Log.i("FragmentList", "Item clicked: " + id);
-        }
-    }
-}
-//END_INCLUDE(complete)
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentReceiveResultSupport.java b/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentReceiveResultSupport.java
deleted file mode 100644
index 9e2effe..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentReceiveResultSupport.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv4.app;
-
-import com.example.android.supportv4.app.SendResult;
-import com.example.android.supportv4.R;
-
-import android.app.PendingIntent;
-import android.content.IntentSender;
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentActivity;
-import android.support.v4.app.FragmentTransaction;
-
-import android.content.Intent;
-import android.os.Bundle;
-import android.text.Editable;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.view.ViewGroup;
-import android.widget.Button;
-import android.widget.FrameLayout;
-import android.widget.TextView;
-
-public class FragmentReceiveResultSupport extends FragmentActivity {
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(
-                ViewGroup.LayoutParams.FILL_PARENT,
-                ViewGroup.LayoutParams.FILL_PARENT);
-        FrameLayout frame = new FrameLayout(this);
-        frame.setId(R.id.simple_fragment);
-        setContentView(frame, lp);
-
-        if (savedInstanceState == null) {
-            // Do first time initialization -- add fragment.
-            Fragment newFragment = new ReceiveResultFragment();
-            FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
-            ft.add(R.id.simple_fragment, newFragment).commit();
-        }
-    }
-
-    public static class ReceiveResultFragment extends Fragment {
-        // Definition of the one requestCode we use for receiving results.
-        static final private int GET_CODE = 0;
-        static final private int GET_INTENT_SENDER_CODE = 1;
-
-        private TextView mResults;
-
-        private OnClickListener mGetListener = new OnClickListener() {
-            public void onClick(View v) {
-                // Start the activity whose result we want to retrieve.  The
-                // result will come back with request code GET_CODE.
-                Intent intent = new Intent(getActivity(), SendResult.class);
-                startActivityForResult(intent, GET_CODE);
-            }
-        };
-
-        private OnClickListener mIntentSenderListener = new OnClickListener() {
-            public void onClick(View v) {
-                // Start the intent sender whose result we want to retrieve.  The
-                // result will come back with request code GET_INTENT_SENDER_CODE.
-                Intent intent = new Intent(getActivity(), SendResult.class);
-                PendingIntent pendingIntent = PendingIntent.getActivity(getContext(),
-                        GET_INTENT_SENDER_CODE, intent, 0);
-                try {
-                    startIntentSenderForResult(pendingIntent.getIntentSender(),
-                            GET_INTENT_SENDER_CODE, null, 0, 0, 0, null);
-                } catch (IntentSender.SendIntentException e) {
-                    // We will be adding to our text.
-                    Editable text = (Editable)mResults.getText();
-                    text.append(e.getMessage());
-                    text.append("\n");
-                }
-            }
-        };
-
-        @Override
-        public void onCreate(Bundle savedInstanceState) {
-            super.onCreate(savedInstanceState);
-        }
-
-        @Override
-        public void onSaveInstanceState(Bundle outState) {
-            super.onSaveInstanceState(outState);
-        }
-
-        @Override
-        public View onCreateView(LayoutInflater inflater, ViewGroup container,
-                Bundle savedInstanceState) {
-            View v = inflater.inflate(R.layout.receive_result, container, false);
-
-            // Retrieve the TextView widget that will display results.
-            mResults = (TextView)v.findViewById(R.id.results);
-
-            // This allows us to later extend the text buffer.
-            mResults.setText(mResults.getText(), TextView.BufferType.EDITABLE);
-
-            // Watch for button clicks.
-            Button getButton = (Button)v.findViewById(R.id.get);
-            getButton.setOnClickListener(mGetListener);
-            Button intentSenderButton = (Button) v.findViewById(R.id.get_intentsender);
-            intentSenderButton.setOnClickListener(mIntentSenderListener);
-
-            return v;
-        }
-
-        /**
-         * This method is called when the sending activity has finished, with the
-         * result it supplied.
-         */
-        @Override
-        public void onActivityResult(int requestCode, int resultCode, Intent data) {
-            // You can use the requestCode to select between multiple child
-            // activities you may have started.  Here there is only one thing
-            // we launch.
-            if (requestCode == GET_CODE || requestCode == GET_INTENT_SENDER_CODE) {
-
-                // We will be adding to our text.
-                Editable text = (Editable)mResults.getText();
-
-                text.append((requestCode == GET_CODE) ? "Activity " : "IntentSender ");
-
-                // This is a standard resultCode that is sent back if the
-                // activity doesn't supply an explicit result.  It will also
-                // be returned if the activity failed to launch.
-                if (resultCode == RESULT_CANCELED) {
-                    text.append("(cancelled)");
-
-                // Our protocol with the sending activity is that it will send
-                // text in 'data' as its result.
-                } else {
-                    text.append("(okay ");
-                    text.append(Integer.toString(resultCode));
-                    text.append(") ");
-                    if (data != null) {
-                        text.append(data.getAction());
-                    }
-                }
-
-                text.append("\n");
-            }
-        }
-    }
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentRetainInstanceSupport.java b/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentRetainInstanceSupport.java
deleted file mode 100644
index 0ff34dd..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentRetainInstanceSupport.java
+++ /dev/null
@@ -1,233 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv4.app;
-
-import com.example.android.supportv4.R;
-
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentActivity;
-import android.support.v4.app.FragmentManager;
-
-import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.View.OnClickListener;
-import android.widget.Button;
-import android.widget.ProgressBar;
-
-/**
- * This example shows how you can use a Fragment to easily propagate state
- * (such as threads) across activity instances when an activity needs to be
- * restarted due to, for example, a configuration change.  This is a lot
- * easier than using the raw Activity.onRetainNonConfiguratinInstance() API.
- */
-public class FragmentRetainInstanceSupport extends FragmentActivity {
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        // First time init, create the UI.
-        if (savedInstanceState == null) {
-            getSupportFragmentManager().beginTransaction().add(android.R.id.content,
-                    new UiFragment()).commit();
-        }
-    }
-
-    /**
-     * This is a fragment showing UI that will be updated from work done
-     * in the retained fragment.
-     */
-    public static class UiFragment extends Fragment {
-        RetainedFragment mWorkFragment;
-
-        @Override
-        public View onCreateView(LayoutInflater inflater, ViewGroup container,
-                Bundle savedInstanceState) {
-            View v = inflater.inflate(R.layout.fragment_retain_instance, container, false);
-
-            // Watch for button clicks.
-            Button button = (Button)v.findViewById(R.id.restart);
-            button.setOnClickListener(new OnClickListener() {
-                public void onClick(View v) {
-                    mWorkFragment.restart();
-                }
-            });
-
-            return v;
-        }
-
-        @Override
-        public void onActivityCreated(Bundle savedInstanceState) {
-            super.onActivityCreated(savedInstanceState);
-
-            FragmentManager fm = getFragmentManager();
-
-            // Check to see if we have retained the worker fragment.
-            mWorkFragment = (RetainedFragment)fm.findFragmentByTag("work");
-
-            // If not retained (or first time running), we need to create it.
-            if (mWorkFragment == null) {
-                mWorkFragment = new RetainedFragment();
-                // Tell it who it is working with.
-                mWorkFragment.setTargetFragment(this, 0);
-                fm.beginTransaction().add(mWorkFragment, "work").commit();
-            }
-        }
-
-    }
-
-    /**
-     * This is the Fragment implementation that will be retained across
-     * activity instances.  It represents some ongoing work, here a thread
-     * we have that sits around incrementing a progress indicator.
-     */
-    public static class RetainedFragment extends Fragment {
-        ProgressBar mProgressBar;
-        int mPosition;
-        boolean mReady = false;
-        boolean mQuiting = false;
-
-        /**
-         * This is the thread that will do our work.  It sits in a loop running
-         * the progress up until it has reached the top, then stops and waits.
-         */
-        final Thread mThread = new Thread() {
-            @Override
-            public void run() {
-                // We'll figure the real value out later.
-                int max = 10000;
-
-                // This thread runs almost forever.
-                while (true) {
-
-                    // Update our shared state with the UI.
-                    synchronized (this) {
-                        // Our thread is stopped if the UI is not ready
-                        // or it has completed its work.
-                        while (!mReady || mPosition >= max) {
-                            if (mQuiting) {
-                                return;
-                            }
-                            try {
-                                wait();
-                            } catch (InterruptedException e) {
-                            }
-                        }
-
-                        // Now update the progress.  Note it is important that
-                        // we touch the progress bar with the lock held, so it
-                        // doesn't disappear on us.
-                        mPosition++;
-                        max = mProgressBar.getMax();
-                        mProgressBar.setProgress(mPosition);
-                    }
-
-                    // Normally we would be doing some work, but put a kludge
-                    // here to pretend like we are.
-                    synchronized (this) {
-                        try {
-                            wait(50);
-                        } catch (InterruptedException e) {
-                        }
-                    }
-                }
-            }
-        };
-
-        /**
-         * Fragment initialization.  We way we want to be retained and
-         * start our thread.
-         */
-        @Override
-        public void onCreate(Bundle savedInstanceState) {
-            super.onCreate(savedInstanceState);
-
-            // Tell the framework to try to keep this fragment around
-            // during a configuration change.
-            setRetainInstance(true);
-
-            // Start up the worker thread.
-            mThread.start();
-        }
-
-        /**
-         * This is called when the Fragment's Activity is ready to go, after
-         * its content view has been installed; it is called both after
-         * the initial fragment creation and after the fragment is re-attached
-         * to a new activity.
-         */
-        @Override
-        public void onActivityCreated(Bundle savedInstanceState) {
-            super.onActivityCreated(savedInstanceState);
-
-            // Retrieve the progress bar from the target's view hierarchy.
-            mProgressBar = (ProgressBar)getTargetFragment().getView().findViewById(
-                    R.id.progress_horizontal);
-
-            // We are ready for our thread to go.
-            synchronized (mThread) {
-                mReady = true;
-                mThread.notify();
-            }
-        }
-
-        /**
-         * This is called when the fragment is going away.  It is NOT called
-         * when the fragment is being propagated between activity instances.
-         */
-        @Override
-        public void onDestroy() {
-            // Make the thread go away.
-            synchronized (mThread) {
-                mReady = false;
-                mQuiting = true;
-                mThread.notify();
-            }
-
-            super.onDestroy();
-        }
-
-        /**
-         * This is called right before the fragment is detached from its
-         * current activity instance.
-         */
-        @Override
-        public void onDetach() {
-            // This fragment is being detached from its activity.  We need
-            // to make sure its thread is not going to touch any activity
-            // state after returning from this function.
-            synchronized (mThread) {
-                mProgressBar = null;
-                mReady = false;
-                mThread.notify();
-            }
-
-            super.onDetach();
-        }
-
-        /**
-         * API for our UI to restart the progress thread.
-         */
-        public void restart() {
-            synchronized (mThread) {
-                mPosition = 0;
-                mThread.notify();
-            }
-        }
-    }
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentStackFragmentSupport.java b/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentStackFragmentSupport.java
deleted file mode 100644
index d2eb29a..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentStackFragmentSupport.java
+++ /dev/null
@@ -1,101 +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.supportv4.app;
-
-import android.os.Bundle;
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentManager;
-import android.support.v4.app.FragmentTransaction;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.View.OnClickListener;
-import android.widget.Button;
-
-import com.example.android.supportv4.R;
-
-public class FragmentStackFragmentSupport extends Fragment {
-    int mStackLevel = 1;
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        if (savedInstanceState == null) {
-            // Do first time initialization -- add initial fragment.
-            Fragment newFragment = FragmentStackSupport.CountingFragment.newInstance(mStackLevel);
-            FragmentTransaction ft = getChildFragmentManager().beginTransaction();
-            ft.add(R.id.simple_fragment, newFragment).commit();
-        } else {
-            mStackLevel = savedInstanceState.getInt("level");
-        }
-    }
-
-    @Override
-    public View onCreateView(LayoutInflater inflater, ViewGroup container,
-            Bundle savedInstanceState) {
-        View v = inflater.inflate(R.layout.fragment_stack, container, false);
-
-        // Watch for button clicks.
-        Button button = (Button)v.findViewById(R.id.new_fragment);
-        button.setOnClickListener(new OnClickListener() {
-            public void onClick(View v) {
-                addFragmentToStack();
-            }
-        });
-        button = (Button)v.findViewById(R.id.delete_fragment);
-        button.setOnClickListener(new OnClickListener() {
-            public void onClick(View v) {
-                getChildFragmentManager().popBackStack();
-            }
-        });
-        button = (Button)v.findViewById(R.id.home);
-        button.setOnClickListener(new OnClickListener() {
-            public void onClick(View v) {
-                // If there is a back stack, pop it all.
-                FragmentManager fm = getChildFragmentManager();
-                if (fm.getBackStackEntryCount() > 0) {
-                    fm.popBackStack(fm.getBackStackEntryAt(0).getId(),
-                            FragmentManager.POP_BACK_STACK_INCLUSIVE);
-                }
-            }
-        });
-
-        return v;
-    }
-
-    @Override
-    public void onSaveInstanceState(Bundle outState) {
-        super.onSaveInstanceState(outState);
-        outState.putInt("level", mStackLevel);
-    }
-
-    void addFragmentToStack() {
-        mStackLevel++;
-
-        // Instantiate a new fragment.
-        Fragment newFragment = FragmentStackSupport.CountingFragment.newInstance(mStackLevel);
-
-        // Add the fragment to the activity, pushing this transaction
-        // on to the back stack.
-        FragmentTransaction ft = getChildFragmentManager().beginTransaction();
-        ft.replace(R.id.simple_fragment, newFragment);
-        ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
-        ft.addToBackStack(null);
-        ft.commit();
-    }
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentStackSupport.java b/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentStackSupport.java
deleted file mode 100644
index 337f2c1..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentStackSupport.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv4.app;
-
-import com.example.android.supportv4.R;
-
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentActivity;
-import android.support.v4.app.FragmentManager;
-import android.support.v4.app.FragmentTransaction;
-
-import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.View.OnClickListener;
-import android.widget.Button;
-import android.widget.TextView;
-
-public class FragmentStackSupport extends FragmentActivity {
-    int mStackLevel = 1;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.fragment_stack);
-
-        // Watch for button clicks.
-        Button button = (Button)findViewById(R.id.new_fragment);
-        button.setOnClickListener(new OnClickListener() {
-            public void onClick(View v) {
-                addFragmentToStack();
-            }
-        });
-        button = (Button)findViewById(R.id.home);
-        button.setOnClickListener(new OnClickListener() {
-            public void onClick(View v) {
-                // If there is a back stack, pop it all.
-                FragmentManager fm = getSupportFragmentManager();
-                if (fm.getBackStackEntryCount() > 0) {
-                    fm.popBackStack(fm.getBackStackEntryAt(0).getId(),
-                            FragmentManager.POP_BACK_STACK_INCLUSIVE);
-                }
-            }
-        });
-
-        if (savedInstanceState == null) {
-            // Do first time initialization -- add initial fragment.
-            Fragment newFragment = CountingFragment.newInstance(mStackLevel);
-            FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
-            ft.add(R.id.simple_fragment, newFragment).commit();
-        } else {
-            mStackLevel = savedInstanceState.getInt("level");
-        }
-    }
-
-    @Override
-    public void onSaveInstanceState(Bundle outState) {
-        super.onSaveInstanceState(outState);
-        outState.putInt("level", mStackLevel);
-    }
-
-//BEGIN_INCLUDE(add_stack)
-    void addFragmentToStack() {
-        mStackLevel++;
-
-        // Instantiate a new fragment.
-        Fragment newFragment = CountingFragment.newInstance(mStackLevel);
-
-        // Add the fragment to the activity, pushing this transaction
-        // on to the back stack.
-        FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
-        ft.replace(R.id.simple_fragment, newFragment);
-        ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
-        ft.addToBackStack(null);
-        ft.commit();
-    }
-//END_INCLUDE(add_stack)
-
-//BEGIN_INCLUDE(fragment)
-    public static class CountingFragment extends Fragment {
-        int mNum;
-
-        /**
-         * Create a new instance of CountingFragment, providing "num"
-         * as an argument.
-         */
-        static CountingFragment newInstance(int num) {
-            CountingFragment f = new CountingFragment();
-
-            // Supply num input as an argument.
-            Bundle args = new Bundle();
-            args.putInt("num", num);
-            f.setArguments(args);
-
-            return f;
-        }
-
-        /**
-         * When creating, retrieve this instance's number from its arguments.
-         */
-        @Override
-        public void onCreate(Bundle savedInstanceState) {
-            super.onCreate(savedInstanceState);
-            mNum = getArguments() != null ? getArguments().getInt("num") : 1;
-        }
-
-        /**
-         * The Fragment's UI is just a simple text view showing its
-         * instance number.
-         */
-        @Override
-        public View onCreateView(LayoutInflater inflater, ViewGroup container,
-                Bundle savedInstanceState) {
-            View v = inflater.inflate(R.layout.hello_world, container, false);
-            View tv = v.findViewById(R.id.text);
-            ((TextView)tv).setText("Fragment #" + mNum);
-            tv.setBackgroundDrawable(getResources().getDrawable(android.R.drawable.gallery_thumb));
-            return v;
-        }
-    }
-//END_INCLUDE(fragment)
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentStatePagerSupport.java b/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentStatePagerSupport.java
deleted file mode 100644
index 2939b0e..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentStatePagerSupport.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv4.app;
-
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentActivity;
-import android.support.v4.app.FragmentManager;
-import android.support.v4.app.FragmentStatePagerAdapter;
-import android.support.v4.app.ListFragment;
-import android.support.v4.view.ViewPager;
-
-import android.os.Bundle;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.View.OnClickListener;
-import android.widget.ArrayAdapter;
-import android.widget.Button;
-import android.widget.ListView;
-import android.widget.TextView;
-
-import com.example.android.supportv4.Cheeses;
-import com.example.android.supportv4.R;
-
-//BEGIN_INCLUDE(complete)
-public class FragmentStatePagerSupport extends FragmentActivity {
-    static final int NUM_ITEMS = 10;
-
-    MyAdapter mAdapter;
-
-    ViewPager mPager;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.fragment_pager);
-
-        mAdapter = new MyAdapter(getSupportFragmentManager());
-
-        mPager = (ViewPager)findViewById(R.id.pager);
-        mPager.setAdapter(mAdapter);
-
-        // Watch for button clicks.
-        Button button = (Button)findViewById(R.id.goto_first);
-        button.setOnClickListener(new OnClickListener() {
-            public void onClick(View v) {
-                mPager.setCurrentItem(0);
-            }
-        });
-        button = (Button)findViewById(R.id.goto_last);
-        button.setOnClickListener(new OnClickListener() {
-            public void onClick(View v) {
-                mPager.setCurrentItem(NUM_ITEMS-1);
-            }
-        });
-    }
-
-    public static class MyAdapter extends FragmentStatePagerAdapter {
-        public MyAdapter(FragmentManager fm) {
-            super(fm);
-        }
-
-        @Override
-        public int getCount() {
-            return NUM_ITEMS;
-        }
-
-        @Override
-        public Fragment getItem(int position) {
-            return ArrayListFragment.newInstance(position);
-        }
-    }
-
-    public static class ArrayListFragment extends ListFragment {
-        int mNum;
-
-        /**
-         * Create a new instance of CountingFragment, providing "num"
-         * as an argument.
-         */
-        static ArrayListFragment newInstance(int num) {
-            ArrayListFragment f = new ArrayListFragment();
-
-            // Supply num input as an argument.
-            Bundle args = new Bundle();
-            args.putInt("num", num);
-            f.setArguments(args);
-
-            return f;
-        }
-
-        /**
-         * When creating, retrieve this instance's number from its arguments.
-         */
-        @Override
-        public void onCreate(Bundle savedInstanceState) {
-            super.onCreate(savedInstanceState);
-            mNum = getArguments() != null ? getArguments().getInt("num") : 1;
-        }
-
-        /**
-         * The Fragment's UI is just a simple text view showing its
-         * instance number.
-         */
-        @Override
-        public View onCreateView(LayoutInflater inflater, ViewGroup container,
-                Bundle savedInstanceState) {
-            View v = inflater.inflate(R.layout.fragment_pager_list, container, false);
-            View tv = v.findViewById(R.id.text);
-            ((TextView)tv).setText("Fragment #" + mNum);
-            return v;
-        }
-
-        @Override
-        public void onActivityCreated(Bundle savedInstanceState) {
-            super.onActivityCreated(savedInstanceState);
-            setListAdapter(new ArrayAdapter<String>(getActivity(),
-                    android.R.layout.simple_list_item_1, Cheeses.sCheeseStrings));
-        }
-
-        @Override
-        public void onListItemClick(ListView l, View v, int position, long id) {
-            Log.i("FragmentList", "Item clicked: " + id);
-        }
-    }
-}
-//END_INCLUDE(complete)
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentTabs.java b/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentTabs.java
deleted file mode 100644
index 7a7e2fc..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentTabs.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv4.app;
-
-//BEGIN_INCLUDE(complete)
-import com.example.android.supportv4.R;
-
-import android.os.Bundle;
-import android.support.v4.app.FragmentActivity;
-import android.support.v4.app.FragmentTabHost;
-
-/**
- * This demonstrates how you can implement switching between the tabs of a
- * TabHost through fragments, using FragmentTabHost.
- */
-public class FragmentTabs extends FragmentActivity {
-    private FragmentTabHost mTabHost;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        setContentView(R.layout.fragment_tabs);
-        mTabHost = (FragmentTabHost)findViewById(android.R.id.tabhost);
-        mTabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent);
-
-        mTabHost.addTab(mTabHost.newTabSpec("simple").setIndicator("Simple"),
-                FragmentStackSupport.CountingFragment.class, null);
-        mTabHost.addTab(mTabHost.newTabSpec("contacts").setIndicator("Contacts"),
-                LoaderCursorSupport.CursorLoaderListFragment.class, null);
-        mTabHost.addTab(mTabHost.newTabSpec("custom").setIndicator("Custom"),
-                LoaderCustomSupport.AppListFragment.class, null);
-        mTabHost.addTab(mTabHost.newTabSpec("throttle").setIndicator("Throttle"),
-                LoaderThrottleSupport.ThrottledLoaderListFragment.class, null);
-    }
-}
-//END_INCLUDE(complete)
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentTabsFragmentSupport.java b/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentTabsFragmentSupport.java
deleted file mode 100644
index 68f06ef..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentTabsFragmentSupport.java
+++ /dev/null
@@ -1,55 +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.supportv4.app;
-
-//BEGIN_INCLUDE(complete)
-import com.example.android.supportv4.R;
-
-import android.os.Bundle;
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentTabHost;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-
-public class FragmentTabsFragmentSupport extends Fragment {
-    private FragmentTabHost mTabHost;
-
-    @Override
-    public View onCreateView(LayoutInflater inflater, ViewGroup container,
-            Bundle savedInstanceState) {
-        mTabHost = new FragmentTabHost(getActivity());
-        mTabHost.setup(getActivity(), getChildFragmentManager(), R.id.fragment1);
-
-        mTabHost.addTab(mTabHost.newTabSpec("simple").setIndicator("Simple"),
-                FragmentStackSupport.CountingFragment.class, null);
-        mTabHost.addTab(mTabHost.newTabSpec("contacts").setIndicator("Contacts"),
-                LoaderCursorSupport.CursorLoaderListFragment.class, null);
-        mTabHost.addTab(mTabHost.newTabSpec("custom").setIndicator("Custom"),
-                LoaderCustomSupport.AppListFragment.class, null);
-        mTabHost.addTab(mTabHost.newTabSpec("throttle").setIndicator("Throttle"),
-                LoaderThrottleSupport.ThrottledLoaderListFragment.class, null);
-
-        return mTabHost;
-    }
-
-    @Override
-    public void onDestroyView() {
-        super.onDestroyView();
-        mTabHost = null;
-    }
-}
-//END_INCLUDE(complete)
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentTabsPager.java b/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentTabsPager.java
deleted file mode 100644
index cf734d7..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentTabsPager.java
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv4.app;
-
-import com.example.android.supportv4.R;
-
-import android.content.Context;
-import android.os.Bundle;
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentActivity;
-import android.support.v4.app.FragmentPagerAdapter;
-import android.support.v4.view.ViewPager;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.TabHost;
-import android.widget.TabWidget;
-
-import java.util.ArrayList;
-
-/**
- * Demonstrates combining a TabHost with a ViewPager to implement a tab UI
- * that switches between tabs and also allows the user to perform horizontal
- * flicks to move between the tabs.
- */
-public class FragmentTabsPager extends FragmentActivity {
-    TabHost mTabHost;
-    ViewPager  mViewPager;
-    TabsAdapter mTabsAdapter;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        setContentView(R.layout.fragment_tabs_pager);
-        mTabHost = (TabHost)findViewById(android.R.id.tabhost);
-        mTabHost.setup();
-
-        mViewPager = (ViewPager)findViewById(R.id.pager);
-
-        mTabsAdapter = new TabsAdapter(this, mTabHost, mViewPager);
-
-        mTabsAdapter.addTab(mTabHost.newTabSpec("simple").setIndicator("Simple"),
-                FragmentStackSupport.CountingFragment.class, null);
-        mTabsAdapter.addTab(mTabHost.newTabSpec("contacts").setIndicator("Contacts"),
-                LoaderCursorSupport.CursorLoaderListFragment.class, null);
-        mTabsAdapter.addTab(mTabHost.newTabSpec("custom").setIndicator("Custom"),
-                LoaderCustomSupport.AppListFragment.class, null);
-        mTabsAdapter.addTab(mTabHost.newTabSpec("throttle").setIndicator("Throttle"),
-                LoaderThrottleSupport.ThrottledLoaderListFragment.class, null);
-
-        if (savedInstanceState != null) {
-            mTabHost.setCurrentTabByTag(savedInstanceState.getString("tab"));
-        }
-    }
-
-    @Override
-    protected void onSaveInstanceState(Bundle outState) {
-        super.onSaveInstanceState(outState);
-        outState.putString("tab", mTabHost.getCurrentTabTag());
-    }
-
-    /**
-     * This is a helper class that implements the management of tabs and all
-     * details of connecting a ViewPager with associated TabHost.  It relies on a
-     * trick.  Normally a tab host has a simple API for supplying a View or
-     * Intent that each tab will show.  This is not sufficient for switching
-     * between pages.  So instead we make the content part of the tab host
-     * 0dp high (it is not shown) and the TabsAdapter supplies its own dummy
-     * view to show as the tab content.  It listens to changes in tabs, and takes
-     * care of switch to the correct paged in the ViewPager whenever the selected
-     * tab changes.
-     */
-    public static class TabsAdapter extends FragmentPagerAdapter
-            implements TabHost.OnTabChangeListener, ViewPager.OnPageChangeListener {
-        private final Context mContext;
-        private final TabHost mTabHost;
-        private final ViewPager mViewPager;
-        private final ArrayList<TabInfo> mTabs = new ArrayList<TabInfo>();
-
-        static final class TabInfo {
-            private final String tag;
-            private final Class<?> clss;
-            private final Bundle args;
-
-            TabInfo(String _tag, Class<?> _class, Bundle _args) {
-                tag = _tag;
-                clss = _class;
-                args = _args;
-            }
-        }
-
-        static class DummyTabFactory implements TabHost.TabContentFactory {
-            private final Context mContext;
-
-            public DummyTabFactory(Context context) {
-                mContext = context;
-            }
-
-            @Override
-            public View createTabContent(String tag) {
-                View v = new View(mContext);
-                v.setMinimumWidth(0);
-                v.setMinimumHeight(0);
-                return v;
-            }
-        }
-
-        public TabsAdapter(FragmentActivity activity, TabHost tabHost, ViewPager pager) {
-            super(activity.getSupportFragmentManager());
-            mContext = activity;
-            mTabHost = tabHost;
-            mViewPager = pager;
-            mTabHost.setOnTabChangedListener(this);
-            mViewPager.setAdapter(this);
-            mViewPager.setOnPageChangeListener(this);
-        }
-
-        public void addTab(TabHost.TabSpec tabSpec, Class<?> clss, Bundle args) {
-            tabSpec.setContent(new DummyTabFactory(mContext));
-            String tag = tabSpec.getTag();
-
-            TabInfo info = new TabInfo(tag, clss, args);
-            mTabs.add(info);
-            mTabHost.addTab(tabSpec);
-            notifyDataSetChanged();
-        }
-
-        @Override
-        public int getCount() {
-            return mTabs.size();
-        }
-
-        @Override
-        public Fragment getItem(int position) {
-            TabInfo info = mTabs.get(position);
-            return Fragment.instantiate(mContext, info.clss.getName(), info.args);
-        }
-
-        @Override
-        public void onTabChanged(String tabId) {
-            int position = mTabHost.getCurrentTab();
-            mViewPager.setCurrentItem(position);
-        }
-
-        @Override
-        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
-        }
-
-        @Override
-        public void onPageSelected(int position) {
-            // Unfortunately when TabHost changes the current tab, it kindly
-            // also takes care of putting focus on it when not in touch mode.
-            // The jerk.
-            // This hack tries to prevent this from pulling focus out of our
-            // ViewPager.
-            TabWidget widget = mTabHost.getTabWidget();
-            int oldFocusability = widget.getDescendantFocusability();
-            widget.setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS);
-            mTabHost.setCurrentTab(position);
-            widget.setDescendantFocusability(oldFocusability);
-        }
-
-        @Override
-        public void onPageScrollStateChanged(int state) {
-        }
-    }
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/app/LoaderCursorSupport.java b/samples/Support4Demos/src/com/example/android/supportv4/app/LoaderCursorSupport.java
deleted file mode 100644
index f2f9b3c..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/app/LoaderCursorSupport.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv4.app;
-
-import android.support.v4.app.FragmentActivity;
-import android.support.v4.app.FragmentManager;
-import android.support.v4.app.ListFragment;
-import android.support.v4.app.LoaderManager;
-import android.support.v4.content.CursorLoader;
-import android.support.v4.content.Loader;
-import android.support.v4.view.MenuItemCompat;
-import android.support.v4.widget.SearchViewCompat;
-import android.support.v4.widget.SearchViewCompat.OnCloseListenerCompat;
-import android.support.v4.widget.SearchViewCompat.OnQueryTextListenerCompat;
-import android.support.v4.widget.SimpleCursorAdapter;
-
-import android.database.Cursor;
-import android.net.Uri;
-import android.os.Bundle;
-import android.provider.BaseColumns;
-import android.provider.Contacts.People;
-import android.text.TextUtils;
-import android.util.Log;
-import android.view.Menu;
-import android.view.MenuInflater;
-import android.view.MenuItem;
-import android.view.View;
-import android.widget.ListView;
-
-/**
- * Demonstration of the use of a CursorLoader to load and display contacts
- * data in a fragment.
- */
-@SuppressWarnings("all")
-public class LoaderCursorSupport extends FragmentActivity {
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        FragmentManager fm = getSupportFragmentManager();
-
-        // Create the list fragment and add it as our sole content.
-        if (fm.findFragmentById(android.R.id.content) == null) {
-            CursorLoaderListFragment list = new CursorLoaderListFragment();
-            fm.beginTransaction().add(android.R.id.content, list).commit();
-        }
-    }
-
-//BEGIN_INCLUDE(fragment_cursor)
-    public static class CursorLoaderListFragment extends ListFragment
-            implements LoaderManager.LoaderCallbacks<Cursor> {
-
-        // This is the Adapter being used to display the list's data.
-        SimpleCursorAdapter mAdapter;
-
-        // If non-null, this is the current filter the user has provided.
-        String mCurFilter;
-
-        @Override public void onActivityCreated(Bundle savedInstanceState) {
-            super.onActivityCreated(savedInstanceState);
-
-            // Give some text to display if there is no data.  In a real
-            // application this would come from a resource.
-            setEmptyText("No phone numbers");
-
-            // We have a menu item to show in action bar.
-            setHasOptionsMenu(true);
-
-            // Create an empty adapter we will use to display the loaded data.
-            mAdapter = new SimpleCursorAdapter(getActivity(),
-                    android.R.layout.simple_list_item_1, null,
-                    new String[] { People.DISPLAY_NAME },
-                    new int[] { android.R.id.text1}, 0);
-            setListAdapter(mAdapter);
-
-            // Start out with a progress indicator.
-            setListShown(false);
-
-            // Prepare the loader.  Either re-connect with an existing one,
-            // or start a new one.
-            getLoaderManager().initLoader(0, null, this);
-        }
-
-        @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
-            // Place an action bar item for searching.
-            MenuItem item = menu.add("Search");
-            item.setIcon(android.R.drawable.ic_menu_search);
-            MenuItemCompat.setShowAsAction(item, MenuItemCompat.SHOW_AS_ACTION_ALWAYS
-                    | MenuItemCompat.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);
-            final View searchView = SearchViewCompat.newSearchView(getActivity());
-            if (searchView != null) {
-                SearchViewCompat.setOnQueryTextListener(searchView,
-                        new OnQueryTextListenerCompat() {
-                    @Override
-                    public boolean onQueryTextChange(String newText) {
-                        // Called when the action bar search text has changed.  Update
-                        // the search filter, and restart the loader to do a new query
-                        // with this filter.
-                        String newFilter = !TextUtils.isEmpty(newText) ? newText : null;
-                        // Don't do anything if the filter hasn't actually changed.
-                        // Prevents restarting the loader when restoring state.
-                        if (mCurFilter == null && newFilter == null) {
-                            return true;
-                        }
-                        if (mCurFilter != null && mCurFilter.equals(newFilter)) {
-                            return true;
-                        }
-                        mCurFilter = newFilter;
-                        getLoaderManager().restartLoader(0, null, CursorLoaderListFragment.this);
-                        return true;
-                    }
-                });
-                SearchViewCompat.setOnCloseListener(searchView,
-                        new OnCloseListenerCompat() {
-                            @Override
-                            public boolean onClose() {
-                                if (!TextUtils.isEmpty(SearchViewCompat.getQuery(searchView))) {
-                                    SearchViewCompat.setQuery(searchView, null, true);
-                                }
-                                return true;
-                            }
-                    
-                });
-                MenuItemCompat.setActionView(item, searchView);
-            }
-        }
-
-        @Override public void onListItemClick(ListView l, View v, int position, long id) {
-            // Insert desired behavior here.
-            Log.i("FragmentComplexList", "Item clicked: " + id);
-        }
-
-        // These are the Contacts rows that we will retrieve.
-        static final String[] CONTACTS_SUMMARY_PROJECTION = new String[] {
-            People._ID,
-            People.DISPLAY_NAME,
-        };
-
-        public Loader<Cursor> onCreateLoader(int id, Bundle args) {
-            // This is called when a new Loader needs to be created.  This
-            // sample only has one Loader, so we don't care about the ID.
-            // First, pick the base URI to use depending on whether we are
-            // currently filtering.
-            Uri baseUri;
-            if (mCurFilter != null) {
-                baseUri = Uri.withAppendedPath(People.CONTENT_FILTER_URI, Uri.encode(mCurFilter));
-            } else {
-                baseUri = People.CONTENT_URI;
-            }
-
-            // Now create and return a CursorLoader that will take care of
-            // creating a Cursor for the data being displayed.
-            String select = "((" + People.DISPLAY_NAME + " NOTNULL) AND ("
-                    + People.DISPLAY_NAME + " != '' ))";
-            return new CursorLoader(getActivity(), baseUri,
-                    CONTACTS_SUMMARY_PROJECTION, select, null,
-                    People.DISPLAY_NAME + " COLLATE LOCALIZED ASC");
-        }
-
-        public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
-            // Swap the new cursor in.  (The framework will take care of closing the
-            // old cursor once we return.)
-            mAdapter.swapCursor(data);
-
-            // The list should now be shown.
-            if (isResumed()) {
-                setListShown(true);
-            } else {
-                setListShownNoAnimation(true);
-            }
-        }
-
-        public void onLoaderReset(Loader<Cursor> loader) {
-            // This is called when the last Cursor provided to onLoadFinished()
-            // above is about to be closed.  We need to make sure we are no
-            // longer using it.
-            mAdapter.swapCursor(null);
-        }
-    }
-//END_INCLUDE(fragment_cursor)
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/app/LoaderCustomSupport.java b/samples/Support4Demos/src/com/example/android/supportv4/app/LoaderCustomSupport.java
deleted file mode 100644
index 312aba4..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/app/LoaderCustomSupport.java
+++ /dev/null
@@ -1,501 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv4.app;
-
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.content.pm.ActivityInfo;
-import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageManager;
-import android.content.res.Configuration;
-import android.content.res.Resources;
-import android.graphics.drawable.Drawable;
-import android.os.Bundle;
-import android.support.v4.app.FragmentActivity;
-import android.support.v4.app.FragmentManager;
-import android.support.v4.app.ListFragment;
-import android.support.v4.app.LoaderManager;
-import android.support.v4.content.AsyncTaskLoader;
-import android.support.v4.content.IntentCompat;
-import android.support.v4.content.Loader;
-import android.support.v4.content.pm.ActivityInfoCompat;
-import android.support.v4.view.MenuItemCompat;
-import android.support.v4.widget.SearchViewCompat;
-import android.support.v4.widget.SearchViewCompat.OnCloseListenerCompat;
-import android.support.v4.widget.SearchViewCompat.OnQueryTextListenerCompat;
-import android.text.TextUtils;
-import android.util.Log;
-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.ArrayAdapter;
-import android.widget.ImageView;
-import android.widget.ListView;
-import android.widget.TextView;
-
-import com.example.android.supportv4.R;
-
-import java.io.File;
-import java.text.Collator;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-
-/**
- * Demonstration of the implementation of a custom Loader.
- */
-public class LoaderCustomSupport extends FragmentActivity {
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        FragmentManager fm = getSupportFragmentManager();
-
-        // Create the list fragment and add it as our sole content.
-        if (fm.findFragmentById(android.R.id.content) == null) {
-            AppListFragment list = new AppListFragment();
-            fm.beginTransaction().add(android.R.id.content, list).commit();
-        }
-    }
-
-//BEGIN_INCLUDE(loader)
-    /**
-     * This class holds the per-item data in our Loader.
-     */
-    public static class AppEntry {
-        public AppEntry(AppListLoader loader, ApplicationInfo info) {
-            mLoader = loader;
-            mInfo = info;
-            mApkFile = new File(info.sourceDir);
-        }
-
-        public ApplicationInfo getApplicationInfo() {
-            return mInfo;
-        }
-
-        public String getLabel() {
-            return mLabel;
-        }
-
-        public Drawable getIcon() {
-            if (mIcon == null) {
-                if (mApkFile.exists()) {
-                    mIcon = mInfo.loadIcon(mLoader.mPm);
-                    return mIcon;
-                } else {
-                    mMounted = false;
-                }
-            } else if (!mMounted) {
-                // If the app wasn't mounted but is now mounted, reload
-                // its icon.
-                if (mApkFile.exists()) {
-                    mMounted = true;
-                    mIcon = mInfo.loadIcon(mLoader.mPm);
-                    return mIcon;
-                }
-            } else {
-                return mIcon;
-            }
-
-            return mLoader.getContext().getResources().getDrawable(
-                    android.R.drawable.sym_def_app_icon);
-        }
-
-        @Override public String toString() {
-            return mLabel;
-        }
-
-        void loadLabel(Context context) {
-            if (mLabel == null || !mMounted) {
-                if (!mApkFile.exists()) {
-                    mMounted = false;
-                    mLabel = mInfo.packageName;
-                } else {
-                    mMounted = true;
-                    CharSequence label = mInfo.loadLabel(context.getPackageManager());
-                    mLabel = label != null ? label.toString() : mInfo.packageName;
-                }
-            }
-        }
-
-        private final AppListLoader mLoader;
-        private final ApplicationInfo mInfo;
-        private final File mApkFile;
-        private String mLabel;
-        private Drawable mIcon;
-        private boolean mMounted;
-    }
-
-    /**
-     * Perform alphabetical comparison of application entry objects.
-     */
-    public static final Comparator<AppEntry> ALPHA_COMPARATOR = new Comparator<AppEntry>() {
-        private final Collator sCollator = Collator.getInstance();
-        @Override
-        public int compare(AppEntry object1, AppEntry object2) {
-            return sCollator.compare(object1.getLabel(), object2.getLabel());
-        }
-    };
-
-    /**
-     * Helper for determining if the configuration has changed in an interesting
-     * way so we need to rebuild the app list.
-     */
-    public static class InterestingConfigChanges {
-        final Configuration mLastConfiguration = new Configuration();
-        int mLastDensity;
-
-        boolean applyNewConfig(Resources res) {
-            int configChanges = mLastConfiguration.updateFrom(res.getConfiguration());
-            boolean densityChanged = mLastDensity != res.getDisplayMetrics().densityDpi;
-            if (densityChanged || (configChanges&(ActivityInfo.CONFIG_LOCALE
-                    |ActivityInfoCompat.CONFIG_UI_MODE|ActivityInfo.CONFIG_SCREEN_LAYOUT)) != 0) {
-                mLastDensity = res.getDisplayMetrics().densityDpi;
-                return true;
-            }
-            return false;
-        }
-    }
-
-    /**
-     * Helper class to look for interesting changes to the installed apps
-     * so that the loader can be updated.
-     */
-    public static class PackageIntentReceiver extends BroadcastReceiver {
-        final AppListLoader mLoader;
-
-        public PackageIntentReceiver(AppListLoader loader) {
-            mLoader = loader;
-            IntentFilter filter = new IntentFilter(Intent.ACTION_PACKAGE_ADDED);
-            filter.addAction(Intent.ACTION_PACKAGE_REMOVED);
-            filter.addAction(Intent.ACTION_PACKAGE_CHANGED);
-            filter.addDataScheme("package");
-            mLoader.getContext().registerReceiver(this, filter);
-            // Register for events related to sdcard installation.
-            IntentFilter sdFilter = new IntentFilter();
-            sdFilter.addAction(IntentCompat.ACTION_EXTERNAL_APPLICATIONS_AVAILABLE);
-            sdFilter.addAction(IntentCompat.ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE);
-            mLoader.getContext().registerReceiver(this, sdFilter);
-        }
-
-        @Override public void onReceive(Context context, Intent intent) {
-            // Tell the loader about the change.
-            mLoader.onContentChanged();
-        }
-    }
-
-    /**
-     * A custom Loader that loads all of the installed applications.
-     */
-    public static class AppListLoader extends AsyncTaskLoader<List<AppEntry>> {
-        final InterestingConfigChanges mLastConfig = new InterestingConfigChanges();
-        final PackageManager mPm;
-
-        List<AppEntry> mApps;
-        PackageIntentReceiver mPackageObserver;
-
-        public AppListLoader(Context context) {
-            super(context);
-
-            // Retrieve the package manager for later use; note we don't
-            // use 'context' directly but instead the save global application
-            // context returned by getContext().
-            mPm = getContext().getPackageManager();
-        }
-
-        /**
-         * This is where the bulk of our work is done.  This function is
-         * called in a background thread and should generate a new set of
-         * data to be published by the loader.
-         */
-        @Override public List<AppEntry> loadInBackground() {
-            // Retrieve all known applications.
-            List<ApplicationInfo> apps = mPm.getInstalledApplications(
-                    PackageManager.GET_UNINSTALLED_PACKAGES |
-                    PackageManager.GET_DISABLED_COMPONENTS);
-            if (apps == null) {
-                apps = new ArrayList<ApplicationInfo>();
-            }
-
-            final Context context = getContext();
-
-            // Create corresponding array of entries and load their labels.
-            List<AppEntry> entries = new ArrayList<AppEntry>(apps.size());
-            for (int i=0; i<apps.size(); i++) {
-                AppEntry entry = new AppEntry(this, apps.get(i));
-                entry.loadLabel(context);
-                entries.add(entry);
-            }
-
-            // Sort the list.
-            Collections.sort(entries, ALPHA_COMPARATOR);
-
-            // Done!
-            return entries;
-        }
-
-        /**
-         * Called when there is new data to deliver to the client.  The
-         * super class will take care of delivering it; the implementation
-         * here just adds a little more logic.
-         */
-        @Override public void deliverResult(List<AppEntry> apps) {
-            if (isReset()) {
-                // An async query came in while the loader is stopped.  We
-                // don't need the result.
-                if (apps != null) {
-                    onReleaseResources(apps);
-                }
-            }
-            List<AppEntry> oldApps = apps;
-            mApps = apps;
-
-            if (isStarted()) {
-                // If the Loader is currently started, we can immediately
-                // deliver its results.
-                super.deliverResult(apps);
-            }
-
-            // At this point we can release the resources associated with
-            // 'oldApps' if needed; now that the new result is delivered we
-            // know that it is no longer in use.
-            if (oldApps != null) {
-                onReleaseResources(oldApps);
-            }
-        }
-
-        /**
-         * Handles a request to start the Loader.
-         */
-        @Override protected void onStartLoading() {
-            if (mApps != null) {
-                // If we currently have a result available, deliver it
-                // immediately.
-                deliverResult(mApps);
-            }
-
-            // Start watching for changes in the app data.
-            if (mPackageObserver == null) {
-                mPackageObserver = new PackageIntentReceiver(this);
-            }
-
-            // Has something interesting in the configuration changed since we
-            // last built the app list?
-            boolean configChange = mLastConfig.applyNewConfig(getContext().getResources());
-
-            if (takeContentChanged() || mApps == null || configChange) {
-                // If the data has changed since the last time it was loaded
-                // or is not currently available, start a load.
-                forceLoad();
-            }
-        }
-
-        /**
-         * Handles a request to stop the Loader.
-         */
-        @Override protected void onStopLoading() {
-            // Attempt to cancel the current load task if possible.
-            cancelLoad();
-        }
-
-        /**
-         * Handles a request to cancel a load.
-         */
-        @Override public void onCanceled(List<AppEntry> apps) {
-            super.onCanceled(apps);
-
-            // At this point we can release the resources associated with 'apps'
-            // if needed.
-            onReleaseResources(apps);
-        }
-
-        /**
-         * Handles a request to completely reset the Loader.
-         */
-        @Override protected void onReset() {
-            super.onReset();
-
-            // Ensure the loader is stopped
-            onStopLoading();
-
-            // At this point we can release the resources associated with 'apps'
-            // if needed.
-            if (mApps != null) {
-                onReleaseResources(mApps);
-                mApps = null;
-            }
-
-            // Stop monitoring for changes.
-            if (mPackageObserver != null) {
-                getContext().unregisterReceiver(mPackageObserver);
-                mPackageObserver = null;
-            }
-        }
-
-        /**
-         * Helper function to take care of releasing resources associated
-         * with an actively loaded data set.
-         */
-        protected void onReleaseResources(List<AppEntry> apps) {
-            // For a simple List<> there is nothing to do.  For something
-            // like a Cursor, we would close it here.
-        }
-    }
-//END_INCLUDE(loader)
-
-//BEGIN_INCLUDE(fragment)
-    public static class AppListAdapter extends ArrayAdapter<AppEntry> {
-        private final LayoutInflater mInflater;
-
-        public AppListAdapter(Context context) {
-            super(context, android.R.layout.simple_list_item_2);
-            mInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
-        }
-
-        public void setData(List<AppEntry> data) {
-            clear();
-            if (data != null) {
-                for (AppEntry appEntry : data) {
-                    add(appEntry);
-                }
-            }
-        }
-
-        /**
-         * Populate new items in the list.
-         */
-        @Override public View getView(int position, View convertView, ViewGroup parent) {
-            View view;
-
-            if (convertView == null) {
-                view = mInflater.inflate(R.layout.list_item_icon_text, parent, false);
-            } else {
-                view = convertView;
-            }
-
-            AppEntry item = getItem(position);
-            ((ImageView)view.findViewById(R.id.icon)).setImageDrawable(item.getIcon());
-            ((TextView)view.findViewById(R.id.text)).setText(item.getLabel());
-
-            return view;
-        }
-    }
-
-    public static class AppListFragment extends ListFragment
-            implements LoaderManager.LoaderCallbacks<List<AppEntry>> {
-
-        // This is the Adapter being used to display the list's data.
-        AppListAdapter mAdapter;
-
-        // If non-null, this is the current filter the user has provided.
-        String mCurFilter;
-
-        OnQueryTextListenerCompat mOnQueryTextListenerCompat;
-
-        @Override public void onActivityCreated(Bundle savedInstanceState) {
-            super.onActivityCreated(savedInstanceState);
-
-            // Give some text to display if there is no data.  In a real
-            // application this would come from a resource.
-            setEmptyText("No applications");
-
-            // We have a menu item to show in action bar.
-            setHasOptionsMenu(true);
-
-            // Create an empty adapter we will use to display the loaded data.
-            mAdapter = new AppListAdapter(getActivity());
-            setListAdapter(mAdapter);
-
-            // Start out with a progress indicator.
-            setListShown(false);
-
-            // Prepare the loader.  Either re-connect with an existing one,
-            // or start a new one.
-            getLoaderManager().initLoader(0, null, this);
-        }
-
-        @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
-            // Place an action bar item for searching.
-            MenuItem item = menu.add("Search");
-            item.setIcon(android.R.drawable.ic_menu_search);
-            MenuItemCompat.setShowAsAction(item, MenuItemCompat.SHOW_AS_ACTION_IF_ROOM
-                    | MenuItemCompat.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);
-            final View searchView = SearchViewCompat.newSearchView(getActivity());
-            if (searchView != null) {
-                SearchViewCompat.setOnQueryTextListener(searchView,
-                        new OnQueryTextListenerCompat() {
-                    @Override
-                    public boolean onQueryTextChange(String newText) {
-                        // Called when the action bar search text has changed.  Since this
-                        // is a simple array adapter, we can just have it do the filtering.
-                        mCurFilter = !TextUtils.isEmpty(newText) ? newText : null;
-                        mAdapter.getFilter().filter(mCurFilter);
-                        return true;
-                    }
-                });
-                SearchViewCompat.setOnCloseListener(searchView,
-                        new OnCloseListenerCompat() {
-                            @Override
-                            public boolean onClose() {
-                                if (!TextUtils.isEmpty(SearchViewCompat.getQuery(searchView))) {
-                                    SearchViewCompat.setQuery(searchView, null, true);
-                                }
-                                return true;
-                            }
-                    
-                });
-                MenuItemCompat.setActionView(item, searchView);
-            }
-        }
-
-        @Override public void onListItemClick(ListView l, View v, int position, long id) {
-            // Insert desired behavior here.
-            Log.i("LoaderCustom", "Item clicked: " + id);
-        }
-
-        @Override public Loader<List<AppEntry>> onCreateLoader(int id, Bundle args) {
-            // This is called when a new Loader needs to be created.  This
-            // sample only has one Loader with no arguments, so it is simple.
-            return new AppListLoader(getActivity());
-        }
-
-        @Override public void onLoadFinished(Loader<List<AppEntry>> loader, List<AppEntry> data) {
-            // Set the new data in the adapter.
-            mAdapter.setData(data);
-
-            // The list should now be shown.
-            if (isResumed()) {
-                setListShown(true);
-            } else {
-                setListShownNoAnimation(true);
-            }
-        }
-
-        @Override public void onLoaderReset(Loader<List<AppEntry>> loader) {
-            // Clear the data in the adapter.
-            mAdapter.setData(null);
-        }
-    }
-//END_INCLUDE(fragment)
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/app/LoaderRetainedSupport.java b/samples/Support4Demos/src/com/example/android/supportv4/app/LoaderRetainedSupport.java
deleted file mode 100644
index 8ea47e3..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/app/LoaderRetainedSupport.java
+++ /dev/null
@@ -1,187 +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.supportv4.app;
-
-import android.support.v4.app.FragmentActivity;
-import android.support.v4.app.FragmentManager;
-import android.support.v4.app.ListFragment;
-import android.support.v4.app.LoaderManager;
-import android.support.v4.content.CursorLoader;
-import android.support.v4.content.Loader;
-import android.support.v4.view.MenuItemCompat;
-import android.support.v4.widget.SearchViewCompat;
-import android.support.v4.widget.SearchViewCompat.OnQueryTextListenerCompat;
-import android.support.v4.widget.SimpleCursorAdapter;
-
-import android.database.Cursor;
-import android.net.Uri;
-import android.os.Bundle;
-import android.provider.BaseColumns;
-import android.provider.Contacts.People;
-import android.text.TextUtils;
-import android.util.Log;
-import android.view.Menu;
-import android.view.MenuInflater;
-import android.view.MenuItem;
-import android.view.View;
-import android.widget.ListView;
-
-/**
- * Demonstration of the use of a CursorLoader to load and display contacts
- * data in a fragment.
- */
-@SuppressWarnings("all")
-public class LoaderRetainedSupport extends FragmentActivity {
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        FragmentManager fm = getSupportFragmentManager();
-
-        // Create the list fragment and add it as our sole content.
-        if (fm.findFragmentById(android.R.id.content) == null) {
-            CursorLoaderListFragment list = new CursorLoaderListFragment();
-            fm.beginTransaction().add(android.R.id.content, list).commit();
-        }
-    }
-
-//BEGIN_INCLUDE(fragment_cursor)
-    public static class CursorLoaderListFragment extends ListFragment
-            implements LoaderManager.LoaderCallbacks<Cursor> {
-
-        // This is the Adapter being used to display the list's data.
-        SimpleCursorAdapter mAdapter;
-
-        // If non-null, this is the current filter the user has provided.
-        String mCurFilter;
-
-        @Override public void onActivityCreated(Bundle savedInstanceState) {
-            super.onActivityCreated(savedInstanceState);
-
-            // In this sample we are going to use a retained fragment.
-            setRetainInstance(true);
-
-            // Give some text to display if there is no data.  In a real
-            // application this would come from a resource.
-            setEmptyText("No phone numbers");
-
-            // We have a menu item to show in action bar.
-            setHasOptionsMenu(true);
-
-            // Create an empty adapter we will use to display the loaded data.
-            mAdapter = new SimpleCursorAdapter(getActivity(),
-                    android.R.layout.simple_list_item_1, null,
-                    new String[] { People.DISPLAY_NAME },
-                    new int[] { android.R.id.text1}, 0);
-            setListAdapter(mAdapter);
-
-            // Start out with a progress indicator.
-            setListShown(false);
-
-            // Prepare the loader.  Either re-connect with an existing one,
-            // or start a new one.
-            getLoaderManager().initLoader(0, null, this);
-        }
-
-        @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
-            // Place an action bar item for searching.
-            MenuItem item = menu.add("Search");
-            item.setIcon(android.R.drawable.ic_menu_search);
-            MenuItemCompat.setShowAsAction(item, MenuItemCompat.SHOW_AS_ACTION_ALWAYS
-                    | MenuItemCompat.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);
-            View searchView = SearchViewCompat.newSearchView(getActivity());
-            if (searchView != null) {
-                SearchViewCompat.setOnQueryTextListener(searchView,
-                        new OnQueryTextListenerCompat() {
-                    @Override
-                    public boolean onQueryTextChange(String newText) {
-                        // Called when the action bar search text has changed.  Update
-                        // the search filter, and restart the loader to do a new query
-                        // with this filter.
-                        String newFilter = !TextUtils.isEmpty(newText) ? newText : null;
-                        // Don't do anything if the filter hasn't actually changed.
-                        // Prevents restarting the loader when restoring state.
-                        if (mCurFilter == null && newFilter == null) {
-                            return true;
-                        }
-                        if (mCurFilter != null && mCurFilter.equals(newFilter)) {
-                            return true;
-                        }
-                        mCurFilter = newFilter;
-                        getLoaderManager().restartLoader(0, null, CursorLoaderListFragment.this);
-                        return true;
-                    }
-                });
-                MenuItemCompat.setActionView(item, searchView);
-            }
-        }
-
-        @Override public void onListItemClick(ListView l, View v, int position, long id) {
-            // Insert desired behavior here.
-            Log.i("FragmentComplexList", "Item clicked: " + id);
-        }
-
-        // These are the Contacts rows that we will retrieve.
-        static final String[] CONTACTS_SUMMARY_PROJECTION = new String[] {
-            People._ID,
-            People.DISPLAY_NAME,
-        };
-
-        public Loader<Cursor> onCreateLoader(int id, Bundle args) {
-            // This is called when a new Loader needs to be created.  This
-            // sample only has one Loader, so we don't care about the ID.
-            // First, pick the base URI to use depending on whether we are
-            // currently filtering.
-            Uri baseUri;
-            if (mCurFilter != null) {
-                baseUri = Uri.withAppendedPath(People.CONTENT_FILTER_URI, Uri.encode(mCurFilter));
-            } else {
-                baseUri = People.CONTENT_URI;
-            }
-
-            // Now create and return a CursorLoader that will take care of
-            // creating a Cursor for the data being displayed.
-            String select = "((" + People.DISPLAY_NAME + " NOTNULL) AND ("
-                    + People.DISPLAY_NAME + " != '' ))";
-            return new CursorLoader(getActivity(), baseUri,
-                    CONTACTS_SUMMARY_PROJECTION, select, null,
-                    People.DISPLAY_NAME + " COLLATE LOCALIZED ASC");
-        }
-
-        public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
-            // Swap the new cursor in.  (The framework will take care of closing the
-            // old cursor once we return.)
-            mAdapter.swapCursor(data);
-
-            // The list should now be shown.
-            if (isResumed()) {
-                setListShown(true);
-            } else {
-                setListShownNoAnimation(true);
-            }
-        }
-
-        public void onLoaderReset(Loader<Cursor> loader) {
-            // This is called when the last Cursor provided to onLoadFinished()
-            // above is about to be closed.  We need to make sure we are no
-            // longer using it.
-            mAdapter.swapCursor(null);
-        }
-    }
-//END_INCLUDE(fragment_cursor)
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/app/LoaderThrottleSupport.java b/samples/Support4Demos/src/com/example/android/supportv4/app/LoaderThrottleSupport.java
deleted file mode 100644
index a1fb2c7..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/app/LoaderThrottleSupport.java
+++ /dev/null
@@ -1,512 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv4.app;
-
-//BEGIN_INCLUDE(complete)
-import android.content.ContentProvider;
-import android.content.ContentResolver;
-import android.content.ContentUris;
-import android.content.ContentValues;
-import android.content.Context;
-import android.content.UriMatcher;
-import android.database.Cursor;
-import android.database.SQLException;
-import android.database.sqlite.SQLiteDatabase;
-import android.database.sqlite.SQLiteOpenHelper;
-import android.database.sqlite.SQLiteQueryBuilder;
-import android.net.Uri;
-import android.os.AsyncTask;
-import android.os.Bundle;
-import android.provider.BaseColumns;
-import android.support.v4.app.FragmentActivity;
-import android.support.v4.app.FragmentManager;
-import android.support.v4.app.ListFragment;
-import android.support.v4.app.LoaderManager;
-import android.support.v4.content.CursorLoader;
-import android.support.v4.content.Loader;
-import android.support.v4.database.DatabaseUtilsCompat;
-import android.support.v4.view.MenuItemCompat;
-import android.support.v4.widget.SimpleCursorAdapter;
-import android.text.TextUtils;
-import android.util.Log;
-import android.view.Menu;
-import android.view.MenuInflater;
-import android.view.MenuItem;
-import android.view.View;
-import android.widget.ListView;
-
-import java.util.HashMap;
-
-/**
- * Demonstration of bottom to top implementation of a content provider holding
- * structured data through displaying it in the UI, using throttling to reduce
- * the number of queries done when its data changes.
- */
-public class LoaderThrottleSupport extends FragmentActivity {
-    // Debugging.
-    static final String TAG = "LoaderThrottle";
-
-    /**
-     * The authority we use to get to our sample provider.
-     */
-    public static final String AUTHORITY = "com.example.android.apis.supportv4.app.LoaderThrottle";
-
-    /**
-     * Definition of the contract for the main table of our provider.
-     */
-    public static final class MainTable implements BaseColumns {
-
-        // This class cannot be instantiated
-        private MainTable() {}
-
-        /**
-         * The table name offered by this provider
-         */
-        public static final String TABLE_NAME = "main";
-
-        /**
-         * The content:// style URL for this table
-         */
-        public static final Uri CONTENT_URI =  Uri.parse("content://" + AUTHORITY + "/main");
-
-        /**
-         * The content URI base for a single row of data. Callers must
-         * append a numeric row id to this Uri to retrieve a row
-         */
-        public static final Uri CONTENT_ID_URI_BASE
-                = Uri.parse("content://" + AUTHORITY + "/main/");
-
-        /**
-         * The MIME type of {@link #CONTENT_URI}.
-         */
-        public static final String CONTENT_TYPE
-                = "vnd.android.cursor.dir/vnd.example.api-demos-throttle";
-
-        /**
-         * The MIME type of a {@link #CONTENT_URI} sub-directory of a single row.
-         */
-        public static final String CONTENT_ITEM_TYPE
-                = "vnd.android.cursor.item/vnd.example.api-demos-throttle";
-        /**
-         * The default sort order for this table
-         */
-        public static final String DEFAULT_SORT_ORDER = "data COLLATE LOCALIZED ASC";
-
-        /**
-         * Column name for the single column holding our data.
-         * <P>Type: TEXT</P>
-         */
-        public static final String COLUMN_NAME_DATA = "data";
-    }
-
-    /**
-     * This class helps open, create, and upgrade the database file.
-     */
-   static class DatabaseHelper extends SQLiteOpenHelper {
-
-       private static final String DATABASE_NAME = "loader_throttle.db";
-       private static final int DATABASE_VERSION = 2;
-
-       DatabaseHelper(Context context) {
-
-           // calls the super constructor, requesting the default cursor factory.
-           super(context, DATABASE_NAME, null, DATABASE_VERSION);
-       }
-
-       /**
-        *
-        * Creates the underlying database with table name and column names taken from the
-        * NotePad class.
-        */
-       @Override
-       public void onCreate(SQLiteDatabase db) {
-           db.execSQL("CREATE TABLE " + MainTable.TABLE_NAME + " ("
-                   + MainTable._ID + " INTEGER PRIMARY KEY,"
-                   + MainTable.COLUMN_NAME_DATA + " TEXT"
-                   + ");");
-       }
-
-       /**
-        *
-        * Demonstrates that the provider must consider what happens when the
-        * underlying datastore is changed. In this sample, the database is upgraded the database
-        * by destroying the existing data.
-        * A real application should upgrade the database in place.
-        */
-       @Override
-       public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
-
-           // Logs that the database is being upgraded
-           Log.w(TAG, "Upgrading database from version " + oldVersion + " to "
-                   + newVersion + ", which will destroy all old data");
-
-           // Kills the table and existing data
-           db.execSQL("DROP TABLE IF EXISTS notes");
-
-           // Recreates the database with a new version
-           onCreate(db);
-       }
-   }
-
-    /**
-     * A very simple implementation of a content provider.
-     */
-    public static class SimpleProvider extends ContentProvider {
-        // A projection map used to select columns from the database
-        private final HashMap<String, String> mNotesProjectionMap;
-        // Uri matcher to decode incoming URIs.
-        private final UriMatcher mUriMatcher;
-
-        // The incoming URI matches the main table URI pattern
-        private static final int MAIN = 1;
-        // The incoming URI matches the main table row ID URI pattern
-        private static final int MAIN_ID = 2;
-
-        // Handle to a new DatabaseHelper.
-        private DatabaseHelper mOpenHelper;
-
-        /**
-         * Global provider initialization.
-         */
-        public SimpleProvider() {
-            // Create and initialize URI matcher.
-            mUriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
-            mUriMatcher.addURI(AUTHORITY, MainTable.TABLE_NAME, MAIN);
-            mUriMatcher.addURI(AUTHORITY, MainTable.TABLE_NAME + "/#", MAIN_ID);
-
-            // Create and initialize projection map for all columns.  This is
-            // simply an identity mapping.
-            mNotesProjectionMap = new HashMap<String, String>();
-            mNotesProjectionMap.put(MainTable._ID, MainTable._ID);
-            mNotesProjectionMap.put(MainTable.COLUMN_NAME_DATA, MainTable.COLUMN_NAME_DATA);
-        }
-
-        /**
-         * Perform provider creation.
-         */
-        @Override
-        public boolean onCreate() {
-            mOpenHelper = new DatabaseHelper(getContext());
-            // Assumes that any failures will be reported by a thrown exception.
-            return true;
-        }
-
-        /**
-         * Handle incoming queries.
-         */
-        @Override
-        public Cursor query(Uri uri, String[] projection, String selection,
-                String[] selectionArgs, String sortOrder) {
-
-            // Constructs a new query builder and sets its table name
-            SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
-            qb.setTables(MainTable.TABLE_NAME);
-
-            switch (mUriMatcher.match(uri)) {
-                case MAIN:
-                    // If the incoming URI is for main table.
-                    qb.setProjectionMap(mNotesProjectionMap);
-                    break;
-
-                case MAIN_ID:
-                    // The incoming URI is for a single row.
-                    qb.setProjectionMap(mNotesProjectionMap);
-                    qb.appendWhere(MainTable._ID + "=?");
-                    selectionArgs = DatabaseUtilsCompat.appendSelectionArgs(selectionArgs,
-                            new String[] { uri.getLastPathSegment() });
-                    break;
-
-                default:
-                    throw new IllegalArgumentException("Unknown URI " + uri);
-            }
-
-
-            if (TextUtils.isEmpty(sortOrder)) {
-                sortOrder = MainTable.DEFAULT_SORT_ORDER;
-            }
-
-            SQLiteDatabase db = mOpenHelper.getReadableDatabase();
-
-            Cursor c = qb.query(db, projection, selection, selectionArgs,
-                    null /* no group */, null /* no filter */, sortOrder);
-
-            c.setNotificationUri(getContext().getContentResolver(), uri);
-            return c;
-        }
-
-        /**
-         * Return the MIME type for an known URI in the provider.
-         */
-        @Override
-        public String getType(Uri uri) {
-            switch (mUriMatcher.match(uri)) {
-                case MAIN:
-                    return MainTable.CONTENT_TYPE;
-                case MAIN_ID:
-                    return MainTable.CONTENT_ITEM_TYPE;
-                default:
-                    throw new IllegalArgumentException("Unknown URI " + uri);
-            }
-        }
-
-        /**
-         * Handler inserting new data.
-         */
-        @Override
-        public Uri insert(Uri uri, ContentValues initialValues) {
-            if (mUriMatcher.match(uri) != MAIN) {
-                // Can only insert into to main URI.
-                throw new IllegalArgumentException("Unknown URI " + uri);
-            }
-
-            ContentValues values;
-
-            if (initialValues != null) {
-                values = new ContentValues(initialValues);
-            } else {
-                values = new ContentValues();
-            }
-
-            if (values.containsKey(MainTable.COLUMN_NAME_DATA) == false) {
-                values.put(MainTable.COLUMN_NAME_DATA, "");
-            }
-
-            SQLiteDatabase db = mOpenHelper.getWritableDatabase();
-
-            long rowId = db.insert(MainTable.TABLE_NAME, null, values);
-
-            // If the insert succeeded, the row ID exists.
-            if (rowId > 0) {
-                Uri noteUri = ContentUris.withAppendedId(MainTable.CONTENT_ID_URI_BASE, rowId);
-                getContext().getContentResolver().notifyChange(noteUri, null);
-                return noteUri;
-            }
-
-            throw new SQLException("Failed to insert row into " + uri);
-        }
-
-        /**
-         * Handle deleting data.
-         */
-        @Override
-        public int delete(Uri uri, String where, String[] whereArgs) {
-            SQLiteDatabase db = mOpenHelper.getWritableDatabase();
-            String finalWhere;
-
-            int count;
-
-            switch (mUriMatcher.match(uri)) {
-                case MAIN:
-                    // If URI is main table, delete uses incoming where clause and args.
-                    count = db.delete(MainTable.TABLE_NAME, where, whereArgs);
-                    break;
-
-                    // If the incoming URI matches a single note ID, does the delete based on the
-                    // incoming data, but modifies the where clause to restrict it to the
-                    // particular note ID.
-                case MAIN_ID:
-                    // If URI is for a particular row ID, delete is based on incoming
-                    // data but modified to restrict to the given ID.
-                    finalWhere = DatabaseUtilsCompat.concatenateWhere(
-                            MainTable._ID + " = " + ContentUris.parseId(uri), where);
-                    count = db.delete(MainTable.TABLE_NAME, finalWhere, whereArgs);
-                    break;
-
-                default:
-                    throw new IllegalArgumentException("Unknown URI " + uri);
-            }
-
-            getContext().getContentResolver().notifyChange(uri, null);
-
-            return count;
-        }
-
-        /**
-         * Handle updating data.
-         */
-        @Override
-        public int update(Uri uri, ContentValues values, String where, String[] whereArgs) {
-            SQLiteDatabase db = mOpenHelper.getWritableDatabase();
-            int count;
-            String finalWhere;
-
-            switch (mUriMatcher.match(uri)) {
-                case MAIN:
-                    // If URI is main table, update uses incoming where clause and args.
-                    count = db.update(MainTable.TABLE_NAME, values, where, whereArgs);
-                    break;
-
-                case MAIN_ID:
-                    // If URI is for a particular row ID, update is based on incoming
-                    // data but modified to restrict to the given ID.
-                    finalWhere = DatabaseUtilsCompat.concatenateWhere(
-                            MainTable._ID + " = " + ContentUris.parseId(uri), where);
-                    count = db.update(MainTable.TABLE_NAME, values, finalWhere, whereArgs);
-                    break;
-
-                default:
-                    throw new IllegalArgumentException("Unknown URI " + uri);
-            }
-
-            getContext().getContentResolver().notifyChange(uri, null);
-
-            return count;
-        }
-    }
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        FragmentManager fm = getSupportFragmentManager();
-
-        // Create the list fragment and add it as our sole content.
-        if (fm.findFragmentById(android.R.id.content) == null) {
-            ThrottledLoaderListFragment list = new ThrottledLoaderListFragment();
-            fm.beginTransaction().add(android.R.id.content, list).commit();
-        }
-    }
-
-    public static class ThrottledLoaderListFragment extends ListFragment
-            implements LoaderManager.LoaderCallbacks<Cursor> {
-
-        // Menu identifiers
-        static final int POPULATE_ID = Menu.FIRST;
-        static final int CLEAR_ID = Menu.FIRST+1;
-
-        // This is the Adapter being used to display the list's data.
-        SimpleCursorAdapter mAdapter;
-
-        // If non-null, this is the current filter the user has provided.
-        String mCurFilter;
-
-        // Task we have running to populate the database.
-        AsyncTask<Void, Void, Void> mPopulatingTask;
-
-        @Override public void onActivityCreated(Bundle savedInstanceState) {
-            super.onActivityCreated(savedInstanceState);
-
-            setEmptyText("No data.  Select 'Populate' to fill with data from Z to A at a rate of 4 per second.");
-            setHasOptionsMenu(true);
-
-            // Create an empty adapter we will use to display the loaded data.
-            mAdapter = new SimpleCursorAdapter(getActivity(),
-                    android.R.layout.simple_list_item_1, null,
-                    new String[] { MainTable.COLUMN_NAME_DATA },
-                    new int[] { android.R.id.text1 }, 0);
-            setListAdapter(mAdapter);
-
-            // Start out with a progress indicator.
-            setListShown(false);
-
-            // Prepare the loader.  Either re-connect with an existing one,
-            // or start a new one.
-            getLoaderManager().initLoader(0, null, this);
-        }
-
-        @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
-            MenuItem populateItem = menu.add(Menu.NONE, POPULATE_ID, 0, "Populate");
-            MenuItemCompat.setShowAsAction(populateItem, MenuItemCompat.SHOW_AS_ACTION_IF_ROOM);
-            MenuItem clearItem = menu.add(Menu.NONE, CLEAR_ID, 0, "Clear");
-            MenuItemCompat.setShowAsAction(clearItem, MenuItemCompat.SHOW_AS_ACTION_IF_ROOM);
-        }
-
-        @Override public boolean onOptionsItemSelected(MenuItem item) {
-            final ContentResolver cr = getActivity().getContentResolver();
-
-            switch (item.getItemId()) {
-                case POPULATE_ID:
-                    if (mPopulatingTask != null) {
-                        mPopulatingTask.cancel(false);
-                    }
-                    mPopulatingTask = new AsyncTask<Void, Void, Void>() {
-                        @Override protected Void doInBackground(Void... params) {
-                            for (char c='Z'; c>='A'; c--) {
-                                if (isCancelled()) {
-                                    break;
-                                }
-                                StringBuilder builder = new StringBuilder("Data ");
-                                builder.append(c);
-                                ContentValues values = new ContentValues();
-                                values.put(MainTable.COLUMN_NAME_DATA, builder.toString());
-                                cr.insert(MainTable.CONTENT_URI, values);
-                                // Wait a bit between each insert.
-                                try {
-                                    Thread.sleep(250);
-                                } catch (InterruptedException e) {
-                                }
-                            }
-                            return null;
-                        }
-                    };
-                    mPopulatingTask.execute((Void[]) null);
-                    return true;
-
-                case CLEAR_ID:
-                    if (mPopulatingTask != null) {
-                        mPopulatingTask.cancel(false);
-                        mPopulatingTask = null;
-                    }
-                    AsyncTask<Void, Void, Void> task = new AsyncTask<Void, Void, Void>() {
-                        @Override protected Void doInBackground(Void... params) {
-                            cr.delete(MainTable.CONTENT_URI, null, null);
-                            return null;
-                        }
-                    };
-                    task.execute((Void[])null);
-                    return true;
-
-                default:
-                    return super.onOptionsItemSelected(item);
-            }
-        }
-
-        @Override public void onListItemClick(ListView l, View v, int position, long id) {
-            // Insert desired behavior here.
-            Log.i(TAG, "Item clicked: " + id);
-        }
-
-        // These are the rows that we will retrieve.
-        static final String[] PROJECTION = new String[] {
-            MainTable._ID,
-            MainTable.COLUMN_NAME_DATA,
-        };
-
-        public Loader<Cursor> onCreateLoader(int id, Bundle args) {
-            CursorLoader cl = new CursorLoader(getActivity(), MainTable.CONTENT_URI,
-                    PROJECTION, null, null, null);
-            cl.setUpdateThrottle(2000); // update at most every 2 seconds.
-            return cl;
-        }
-
-        public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
-            mAdapter.swapCursor(data);
-
-            // The list should now be shown.
-            if (isResumed()) {
-                setListShown(true);
-            } else {
-                setListShownNoAnimation(true);
-            }
-        }
-
-        public void onLoaderReset(Loader<Cursor> loader) {
-            mAdapter.swapCursor(null);
-        }
-    }
-}
-//END_INCLUDE(complete)
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/app/SendResult.java b/samples/Support4Demos/src/com/example/android/supportv4/app/SendResult.java
deleted file mode 100644
index 7179505..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/app/SendResult.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv4.app;
-
-// Need the following import to get access to the app resources, since this
-// class is in a sub-package.
-import com.example.android.supportv4.R;
-
-import android.app.Activity;
-import android.content.Intent;
-import android.os.Bundle;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.widget.Button;
-
-
-/**
- * Example of receiving a result from another activity.
- */
-public class SendResult extends Activity
-{
-    /**
-     * Initialization of the Activity after it is first created.  Must at least
-     * call {@link android.app.Activity#setContentView setContentView()} to
-     * describe what is to be displayed in the screen.
-     */
-    @Override
-	protected void onCreate(Bundle savedInstanceState)
-    {
-        // Be sure to call the super class.
-        super.onCreate(savedInstanceState);
-
-        // See assets/res/any/layout/hello_world.xml for this
-        // view layout definition, which is being set here as
-        // the content of our screen.
-        setContentView(R.layout.send_result);
-
-        // Watch for button clicks.
-        Button button = (Button)findViewById(R.id.corky);
-        button.setOnClickListener(mCorkyListener);
-        button = (Button)findViewById(R.id.violet);
-        button.setOnClickListener(mVioletListener);
-    }
-
-    private OnClickListener mCorkyListener = new OnClickListener()
-    {
-        public void onClick(View v)
-        {
-            // To send a result, simply call setResult() before your
-            // activity is finished.
-            setResult(RESULT_OK, (new Intent()).setAction("Corky!"));
-            finish();
-        }
-    };
-
-    private OnClickListener mVioletListener = new OnClickListener()
-    {
-        public void onClick(View v)
-        {
-            // To send a result, simply call setResult() before your
-            // activity is finished.
-            setResult(RESULT_OK, (new Intent()).setAction("Violet!"));
-            finish();
-        }
-    };
-}
-
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/app/SharingReceiverSupport.java b/samples/Support4Demos/src/com/example/android/supportv4/app/SharingReceiverSupport.java
deleted file mode 100644
index d1efa2d..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/app/SharingReceiverSupport.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv4.app;
-
-import com.example.android.supportv4.R;
-
-import android.app.Activity;
-import android.graphics.drawable.Drawable;
-import android.net.Uri;
-import android.os.Bundle;
-import android.support.v4.app.ShareCompat;
-import android.util.Log;
-import android.widget.TextView;
-
-import java.io.BufferedReader;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStreamReader;
-
-/**
- * This example shows a simple way to handle data shared with your app through the
- * use of the support library's ShareCompat features. It will display shared text
- * content as well as the application label and icon of the app that shared the content.
- */
-public class SharingReceiverSupport extends Activity {
-    private static final String TAG = "SharingReceiverSupport";
-    private static final int ICON_SIZE = 32; // dip
-
-    @Override
-    protected void onCreate(Bundle b) {
-        super.onCreate(b);
-        setContentView(R.layout.sharing_receiver_support);
-
-        final float density = getResources().getDisplayMetrics().density;
-        final int iconSize = (int) (ICON_SIZE * density + 0.5f);
-
-        ShareCompat.IntentReader intentReader = ShareCompat.IntentReader.from(this);
-
-        // The following provides attribution for the app that shared the data with us.
-        TextView info = (TextView) findViewById(R.id.app_info);
-        Drawable d = intentReader.getCallingActivityIcon();
-        d.setBounds(0, 0, iconSize, iconSize);
-        info.setCompoundDrawables(d, null, null, null);
-        info.setText(intentReader.getCallingApplicationLabel());
-
-        TextView tv = (TextView) findViewById(R.id.text);
-        StringBuilder txt = new StringBuilder("Received share!\nText was: ");
-
-        txt.append(intentReader.getText());
-        txt.append("\n");
-
-        txt.append("Streams included:\n");
-        final int N = intentReader.getStreamCount();
-        for (int i = 0; i < N; i++) {
-            Uri uri = intentReader.getStream(i);
-            txt.append("Share included stream " + i + ": " + uri + "\n");
-            try {
-                BufferedReader reader = new BufferedReader(new InputStreamReader(
-                        getContentResolver().openInputStream(uri)));
-                try {
-                    txt.append(reader.readLine() + "\n");
-                } catch (IOException e) {
-                    Log.e(TAG, "Reading stream threw exception", e);
-                } finally {
-                    reader.close();
-                }
-            } catch (FileNotFoundException e) {
-                Log.e(TAG, "File not found from share.", e);
-            } catch (IOException e) {
-                Log.d(TAG, "I/O Error", e);
-            }
-        }
-
-        tv.setText(txt.toString());
-    }
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/app/SharingSupport.java b/samples/Support4Demos/src/com/example/android/supportv4/app/SharingSupport.java
deleted file mode 100644
index ec099a8..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/app/SharingSupport.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv4.app;
-
-import com.example.android.supportv4.R;
-import com.example.android.supportv4.content.SharingSupportProvider;
-
-import android.app.Activity;
-import android.net.Uri;
-import android.os.Bundle;
-import android.support.v4.app.ShareCompat;
-import android.support.v4.view.MenuItemCompat;
-import android.view.Menu;
-import android.view.MenuItem;
-import android.view.View;
-
-import java.io.FileNotFoundException;
-import java.io.FileWriter;
-import java.io.IOException;
-
-/**
- * This example illustrates the use of the ShareCompat feature of the support library.
- * ShareCompat offers several pieces of functionality to assist in sharing content between
- * apps and is especially suited for sharing content to social apps that the user has installed.
- *
- * <p>Two other classes are relevant to this code sample: {@link SharingReceiverSupport} is
- * an activity that has been configured to receive ACTION_SEND and ACTION_SEND_MULTIPLE
- * sharing intents with a type of text/plain. It provides an example of writing a sharing
- * target using ShareCompat features. {@link SharingSupportProvider} is a simple
- * {@link android.content.ContentProvider} that provides access to two text files
- * created by this app to share as content streams.</p>
- */
-public class SharingSupport extends Activity {
-    @Override
-    protected void onCreate(Bundle b) {
-        super.onCreate(b);
-        setContentView(R.layout.sharing_support);
-    }
-
-    @Override
-    public boolean onCreateOptionsMenu(Menu menu) {
-        ShareCompat.IntentBuilder b = ShareCompat.IntentBuilder.from(this);
-        b.setType("text/plain").setText("Share from menu");
-        MenuItem item = menu.add("Share");
-        ShareCompat.configureMenuItem(item, b);
-        MenuItemCompat.setShowAsAction(item, MenuItemCompat.SHOW_AS_ACTION_IF_ROOM);
-        return true;
-    }
-
-    public void onShareTextClick(View v) {
-        ShareCompat.IntentBuilder.from(this)
-                .setType("text/plain")
-                .setText("I'm sharing!")
-                .startChooser();
-    }
-
-    public void onShareFileClick(View v) {
-        try {
-            // This file will be accessed by the target of the share through
-            // the ContentProvider SharingSupportProvider.
-            FileWriter fw = new FileWriter(getFilesDir() + "/foo.txt");
-            fw.write("This is a file share");
-            fw.close();
-
-            ShareCompat.IntentBuilder.from(this)
-                    .setType("text/plain")
-                    .setStream(Uri.parse(SharingSupportProvider.CONTENT_URI + "/foo.txt"))
-                    .startChooser();
-        } catch (FileNotFoundException e) {
-            e.printStackTrace();
-        } catch (IOException e) {
-            e.printStackTrace();
-        }
-    }
-
-    public void onShareMultipleFileClick(View v) {
-        try {
-            // These files will be accessed by the target of the share through
-            // the ContentProvider SharingSupportProvider.
-            FileWriter fw = new FileWriter(getFilesDir() + "/foo.txt");
-            fw.write("This is a file share");
-            fw.close();
-
-            fw = new FileWriter(getFilesDir() + "/bar.txt");
-            fw.write("This is another file share");
-            fw.close();
-
-            ShareCompat.IntentBuilder.from(this)
-                    .setType("text/plain")
-                    .addStream(Uri.parse(SharingSupportProvider.CONTENT_URI + "/foo.txt"))
-                    .addStream(Uri.parse(SharingSupportProvider.CONTENT_URI + "/bar.txt"))
-                    .startChooser();
-        } catch (FileNotFoundException e) {
-            e.printStackTrace();
-        } catch (IOException e) {
-            e.printStackTrace();
-        }
-    }
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/app/_index.html b/samples/Support4Demos/src/com/example/android/supportv4/app/_index.html
deleted file mode 100644
index d203ffb..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/app/_index.html
+++ /dev/null
@@ -1,102 +0,0 @@
-
-<p>This section includes samples showing the use of the application
-package features of the static support library, in particular fragments
-and loaders.</p>
-<ul>
-  <li><a href="#Fragment">Fragment</a></li>
-  <li><a href="#LoaderManager">LoaderManager</a></li>
-</ul>
-
-
-<h3 id="Fragment">Fragment</h3>
-<dl>
-  <dt><a href="FragmentAlertDialogSupport.html">Fragment Alert Dialog</a></dt>
-  <dd>Demonstrates how to use a DialogFragment to show and manage an
-  AlertDialog.</dd>
-  
-  <dt><a href="FragmentArgumentsSupport.html">Fragment Arguments</a></dt>
-  <dd>Demonstrates how a fragment can be initialized with arguments,
-  supplying them either as an argument Bundle at runtime or XML attributes
-  in a &lt;fragment> tag.</dd>
-  
-  <dt><a href="FragmentContextMenuSupport.html">Fragment Context Menu</a></dt>
-  <dd>Demonstrates how to display and respond to a context menu that is
-  display from a fragment's view hierarchy.</dd>
-  
-  <dt><a href="FragmentCustomAnimationSupport.html">Fragment Custom Animation</a></dt>
-  <dd>Demonstrates the use of a custom animation for pushing and popping fragments
-  on the back stack.</dd>
-
-  <dt><a href="FragmentDialogSupport.html">Fragment Dialog</a></dt>
-  <dd>Demonstrates use of DialogFragment to show various types of dialogs.</dd>
-  
-  <dt><a href="FragmentDialogOrActivitySupport.html">Fragment Dialog or Activity</a></dt>
-  <dd>Demonstrates how the same Fragment implementation can be used to provide the UI
-  for either an Activity or Dialog.</dd>
-  
-  <dt><a href="FragmentHideShowSupport.html">Fragment Hide Show</a></dt>
-  <dd>Demonstrates hiding and showing fragments.</dd>
-  
-  <dt><a href="FragmentLayoutSupport.html">Fragment Layout</a></dt>
-  <dd>Demonstrates use of the &lt;fragment&gt; tag to embed a Fragment in
-  an Activity's content view layout, and making the layout change based on
-  configuration to achieve different UI flows.</dd>
-  
-  <dt><a href="FragmentListArraySupport.html">Fragment List Array</a></dt>
-  <dd>Demonstrates use of ListFragment to show the contents of a simple ArrayAdapter.</dd>
-  
-  <dt><a href="FragmentMenuSupport.html">Fragment Menu</a></dt>
-  <dd>Demonstrates populating custom menu items from a Fragment.</dd>
-  
-  <dt><a href="FragmentPagerSupport.html">Fragment Pager Support</a></dt>
-  <dd>Demonstrates the use of the support class ViewPager with a
-  FragmentPagerAdapter to build a user interface where the user can fling
-  left or right to switch between fragments.</dd>
-
-  <dt><a href="FragmentStatePagerSupport.html">Fragment State Pager Support</a></dt>
-  <dd>Demonstrates the use of the support class ViewPager with a
-  FragmentStatePagerAdapter to build a user interface where the user can fling
-  left or right to switch between fragments.  This versions of the adapter
-  doesn't keep around the fragment instances that ViewPager has destroyed.</dd>
-
-  <dt><a href="FragmentReceiveResultSupport.html">Fragment Receive Result</a></dt>
-  <dd>Demonstrates starting a new Activity from a Fragment, and receiving
-  a result back from it.</dd>
-  
-  <dt><a href="FragmentRetainInstanceSupport.html">Fragment Retain Instance</a></dt>
-  <dd>Demonstrates a Fragment can be used to easily retain active state across
-  an Activity's configuration change.</dd>
-  
-  <dt><a href="FragmentStackSupport.html">Fragment Stack</a></dt>
-  <dd>Demonstrates creating a stack of Fragment instances similar to the
-  traditional stack of activities.</dd>
-  
-  <dt><a href="FragmentTabs.html">Fragment Tabs</a></dt>
-  <dd>Demonstrates the use of fragments to implement switching between
-  tabs in a TabHost.</dd>
-
-  <dt><a href="FragmentTabsPager.html">Fragment Tabs Pager</a></dt>
-  <dd>Demonstrates the use of fragments to implement switching between
-  tabs in a TabHost, using a ViewPager to manager the fragments so that
-  the user can also fling left and right to switch tabs.</dd>
-
-</dl>
-
-<h3 id="LoaderManager">LoaderManager</h3>
-<dl>
-  <dt><a href="LoaderCursorSupport.html">Loader Cursor</a></dt>
-  <dd>Demonstrates use of LoaderManager to perform a query for a Cursor that
-  populates a ListFragment.</dd>
-
-  <dt><a href="LoaderCustomSupport.html">Loader Custom</a></dt>
-  <dd>Demonstrates implementation and use of a custom Loader class.  The
-  custom class here "loads" the currently installed applications.</dd>
-  
-  <dt><a href="LoaderThrottleSupport.html">Loader Throttle</a></dt>
-  <dd>Complete end-to-end demonstration of a simple content provider that
-  populates data in a list through a cursor loader.  The UI allows the list
-  to be populated with a series of items, showing how AsyncTaskLoader's
-  throttling facility can be used to control how much a Loader is refreshed
-  in this case.</dd>
-</dl>
- 
\ No newline at end of file
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/content/FileProviderExample.java b/samples/Support4Demos/src/com/example/android/supportv4/content/FileProviderExample.java
deleted file mode 100644
index 926c632..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/content/FileProviderExample.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv4.content;
-import android.app.Activity;
-import android.content.Intent;
-import android.graphics.Bitmap;
-import android.graphics.Canvas;
-import android.net.Uri;
-import android.os.Bundle;
-import android.support.v4.content.FileProvider;
-import android.view.View;
-
-import com.example.android.supportv4.R;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-
-/**
- * Sample that shows how private files can be easily shared.
- */
-public class FileProviderExample extends Activity {
-    private static final String AUTHORITY = "com.example.android.supportv4.my_files";
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.file_provider_example);
-    }
-
-    public void onShareFileClick(View view) {
-        // Save a thumbnail to file
-        final File thumbsDir = new File(getFilesDir(), "thumbs");
-        thumbsDir.mkdirs();
-        final File file = new File(thumbsDir, "private.png");
-        saveThumbnail(view, file);
-
-        // Now share that private file using FileProvider
-        final Uri uri = FileProvider.getUriForFile(this, AUTHORITY, file);
-        final Intent intent = new Intent(Intent.ACTION_SEND);
-        intent.setType("image/png");
-        intent.putExtra(Intent.EXTRA_STREAM, uri);
-        startActivity(intent);
-    }
-
-    /**
-     * Save thumbnail of given {@link View} to {@link File}.
-     */
-    private void saveThumbnail(View view, File file) {
-        final Bitmap bitmap = Bitmap.createBitmap(
-                view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888);
-        final Canvas canvas = new Canvas(bitmap);
-        view.draw(canvas);
-
-        try {
-            final OutputStream os = new FileOutputStream(file);
-            try {
-                bitmap.compress(Bitmap.CompressFormat.PNG, 100, os);
-            } finally {
-                os.close();
-            }
-        } catch (IOException e) {
-            throw new RuntimeException(e);
-        }
-    }
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/content/LocalServiceBroadcaster.java b/samples/Support4Demos/src/com/example/android/supportv4/content/LocalServiceBroadcaster.java
deleted file mode 100644
index 62a320c..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/content/LocalServiceBroadcaster.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv4.content;
-
-import com.example.android.supportv4.R;
-
-import android.app.Activity;
-import android.app.Service;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.IBinder;
-import android.os.Message;
-import android.support.v4.app.ServiceCompat;
-import android.support.v4.content.LocalBroadcastManager;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.widget.Button;
-import android.widget.TextView;
-
-/**
- * Demonstrates the use of a LocalBroadcastManager to easily communicate
- * data from a service to any other interested code.
- */
-public class LocalServiceBroadcaster extends Activity {
-    static final String ACTION_STARTED = "com.example.android.supportv4.STARTED";
-    static final String ACTION_UPDATE = "com.example.android.supportv4.UPDATE";
-    static final String ACTION_STOPPED = "com.example.android.supportv4.STOPPED";
-
-    LocalBroadcastManager mLocalBroadcastManager;
-    BroadcastReceiver mReceiver;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        setContentView(R.layout.local_service_broadcaster);
-
-        // This is where we print the data we get back.
-        final TextView callbackData = (TextView)findViewById(R.id.callback);
-
-        // Put in some initial text.
-        callbackData.setText("No broadcast received yet");
-
-        // We use this to send broadcasts within our local process.
-        mLocalBroadcastManager = LocalBroadcastManager.getInstance(this);
-
-        // We are going to watch for interesting local broadcasts.
-        IntentFilter filter = new IntentFilter();
-        filter.addAction(ACTION_STARTED);
-        filter.addAction(ACTION_UPDATE);
-        filter.addAction(ACTION_STOPPED);
-        mReceiver = new BroadcastReceiver() {
-            @Override
-            public void onReceive(Context context, Intent intent) {
-                if (intent.getAction().equals(ACTION_STARTED)) {
-                    callbackData.setText("STARTED");
-                } else if (intent.getAction().equals(ACTION_UPDATE)) {
-                    callbackData.setText("Got update: " + intent.getIntExtra("value", 0));
-                } else if (intent.getAction().equals(ACTION_STOPPED)) {
-                    callbackData.setText("STOPPED");
-                }
-            }
-        };
-        mLocalBroadcastManager.registerReceiver(mReceiver, filter);
-
-        // Watch for button clicks.
-        Button button = (Button)findViewById(R.id.start);
-        button.setOnClickListener(mStartListener);
-        button = (Button)findViewById(R.id.stop);
-        button.setOnClickListener(mStopListener);
-    }
-
-    @Override
-    protected void onDestroy() {
-        super.onDestroy();
-        mLocalBroadcastManager.unregisterReceiver(mReceiver);
-    }
-
-    private OnClickListener mStartListener = new OnClickListener() {
-        public void onClick(View v) {
-            startService(new Intent(LocalServiceBroadcaster.this, LocalService.class));
-        }
-    };
-
-    private OnClickListener mStopListener = new OnClickListener() {
-        public void onClick(View v) {
-            stopService(new Intent(LocalServiceBroadcaster.this, LocalService.class));
-        }
-    };
-
-    public static class LocalService extends Service {
-        LocalBroadcastManager mLocalBroadcastManager;
-        int mCurUpdate;
-
-        static final int MSG_UPDATE = 1;
-
-        Handler mHandler = new Handler() {
-            @Override
-            public void handleMessage(Message msg) {
-                switch (msg.what) {
-                    case MSG_UPDATE: {
-                        mCurUpdate++;
-                        Intent intent = new Intent(ACTION_UPDATE);
-                        intent.putExtra("value", mCurUpdate);
-                        mLocalBroadcastManager.sendBroadcast(intent);
-                        Message nmsg = mHandler.obtainMessage(MSG_UPDATE);
-                        mHandler.sendMessageDelayed(nmsg, 1000);
-                    } break;
-                    default:
-                        super.handleMessage(msg);
-                }
-            }
-        };
-
-        @Override
-        public void onCreate() {
-            super.onCreate();
-            mLocalBroadcastManager = LocalBroadcastManager.getInstance(this);
-        }
-
-        public int onStartCommand(Intent intent, int flags, int startId) {
-            // Tell any local interested parties about the start.
-            mLocalBroadcastManager.sendBroadcast(new Intent(ACTION_STARTED));
-
-            // Prepare to do update reports.
-            mHandler.removeMessages(MSG_UPDATE);
-            Message msg = mHandler.obtainMessage(MSG_UPDATE);
-            mHandler.sendMessageDelayed(msg, 1000);
-            return ServiceCompat.START_STICKY;
-        }
-
-        @Override
-        public void onDestroy() {
-            super.onDestroy();
-
-            // Tell any local interested parties about the stop.
-            mLocalBroadcastManager.sendBroadcast(new Intent(ACTION_STOPPED));
-
-            // Stop doing updates.
-            mHandler.removeMessages(MSG_UPDATE);
-        }
-
-        @Override
-        public IBinder onBind(Intent intent) {
-            return null;
-        }
-    }
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/content/SharingSupportProvider.java b/samples/Support4Demos/src/com/example/android/supportv4/content/SharingSupportProvider.java
deleted file mode 100644
index 596fd6c..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/content/SharingSupportProvider.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv4.content;
-
-import android.content.ContentProvider;
-import android.content.ContentValues;
-import android.database.Cursor;
-import android.net.Uri;
-import android.os.ParcelFileDescriptor;
-import android.util.Log;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-
-/**
- * This simple ContentProvider provides access to the two example files shared
- * by the ShareCompat example {@link com.example.android.supportv4.app.SharingSupport}.
- */
-public class SharingSupportProvider extends ContentProvider {
-    public static final Uri CONTENT_URI =
-            Uri.parse("content://com.example.supportv4.content.sharingsupportprovider");
-
-    private static final String TAG = "SharingSupportProvider";
-
-    @Override
-    public boolean onCreate() {
-        return true;
-    }
-
-    @Override
-    public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs,
-            String sortOrder) {
-        return null;
-    }
-
-    @Override
-    public String getType(Uri uri) {
-        if (uri.equals(Uri.withAppendedPath(CONTENT_URI, "foo.txt")) ||
-                uri.equals(Uri.withAppendedPath(CONTENT_URI, "bar.txt"))) {
-            return "text/plain";
-        }
-        return null;
-    }
-
-    @Override
-    public Uri insert(Uri uri, ContentValues values) {
-        return null;
-    }
-
-    @Override
-    public int delete(Uri uri, String selection, String[] selectionArgs) {
-        return 0;
-    }
-
-    @Override
-    public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
-        return 0;
-    }
-
-    @Override
-    public ParcelFileDescriptor openFile(Uri uri, String mode) {
-        String path = uri.getPath();
-        if (mode.equals("r") &&
-                (path.equals("/foo.txt") || path.equals("/bar.txt"))) {
-            try {
-                return ParcelFileDescriptor.open(
-                        new File(getContext().getFilesDir() + path),
-                        ParcelFileDescriptor.MODE_READ_ONLY);
-            } catch (FileNotFoundException e) {
-                Log.e(TAG, "Bad file " + uri);
-            }
-        }
-        return null;
-    }
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/content/SimpleWakefulController.java b/samples/Support4Demos/src/com/example/android/supportv4/content/SimpleWakefulController.java
deleted file mode 100644
index bf3b2c0..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/content/SimpleWakefulController.java
+++ /dev/null
@@ -1,75 +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.supportv4.content;
-
-import com.example.android.supportv4.R;
-
-import android.app.Activity;
-import android.app.AlarmManager;
-import android.app.PendingIntent;
-import android.content.Intent;
-import android.os.Bundle;
-import android.view.View;
-import android.widget.Button;
-import android.widget.Toast;
-
-import java.util.Calendar;
-
-public class SimpleWakefulController extends Activity {
-    Toast mToast;
-
-    @Override
-	protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        setContentView(R.layout.wakeful_alarm_controller);
-
-        // Watch for button clicks.
-        Button button = (Button)findViewById(R.id.schedule);
-        button.setOnClickListener(mScheduleListener);
-    }
-
-    private View.OnClickListener mScheduleListener = new View.OnClickListener() {
-        public void onClick(View v) {
-            // When the alarm goes off, we want to broadcast an Intent to our
-            // BroadcastReceiver.  Here we make an Intent with an explicit class
-            // name to have our own receiver (which has been published in
-            // AndroidManifest.xml) instantiated and called, and then create an
-            // IntentSender to have the intent executed as a broadcast.
-            Intent intent = new Intent(SimpleWakefulController.this, SimpleWakefulReceiver.class);
-            PendingIntent sender = PendingIntent.getBroadcast(SimpleWakefulController.this,
-                    0, intent, 0);
-
-            // We want the alarm to go off 30 seconds from now.
-            Calendar calendar = Calendar.getInstance();
-            calendar.setTimeInMillis(System.currentTimeMillis());
-            calendar.add(Calendar.SECOND, 30);
-
-            // Schedule the alarm!
-            AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
-            am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), sender);
-
-            // Tell the user about what we did.
-            if (mToast != null) {
-                mToast.cancel();
-            }
-            mToast = Toast.makeText(SimpleWakefulController.this, R.string.simple_wakeful_scheduled,
-                    Toast.LENGTH_LONG);
-            mToast.show();
-        }
-    };
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/content/SimpleWakefulReceiver.java b/samples/Support4Demos/src/com/example/android/supportv4/content/SimpleWakefulReceiver.java
deleted file mode 100644
index d70f432..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/content/SimpleWakefulReceiver.java
+++ /dev/null
@@ -1,37 +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.supportv4.content;
-
-//BEGIN_INCLUDE(complete)
-import android.content.Context;
-import android.content.Intent;
-import android.os.SystemClock;
-import android.support.v4.content.WakefulBroadcastReceiver;
-import android.util.Log;
-
-public class SimpleWakefulReceiver extends WakefulBroadcastReceiver {
-    @Override
-    public void onReceive(Context context, Intent intent) {
-        // This is the Intent to deliver to our service.
-        Intent service = new Intent(context, SimpleWakefulService.class);
-
-        // Start the service, keeping the device awake while it is launching.
-        Log.i("SimpleWakefulReceiver", "Starting service @ " + SystemClock.elapsedRealtime());
-        startWakefulService(context, service);
-    }
-}
-//END_INCLUDE(complete)
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/content/SimpleWakefulService.java b/samples/Support4Demos/src/com/example/android/supportv4/content/SimpleWakefulService.java
deleted file mode 100644
index b05218f..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/content/SimpleWakefulService.java
+++ /dev/null
@@ -1,56 +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.supportv4.content;
-
-//BEGIN_INCLUDE(complete)
-import android.app.IntentService;
-import android.content.Intent;
-import android.os.SystemClock;
-import android.util.Log;
-
-public class SimpleWakefulService extends IntentService {
-    public SimpleWakefulService() {
-        super("SimpleWakefulService");
-    }
-
-    @Override
-    protected void onHandleIntent(Intent intent) {
-        // At this point SimpleWakefulReceiver is still holding a wake lock
-        // for us.  We can do whatever we need to here and then tell it that
-        // it can release the wakelock.  This sample just does some slow work,
-        // but more complicated implementations could take their own wake
-        // lock here before releasing the receiver's.
-        //
-        // Note that when using this approach you should be aware that if your
-        // service gets killed and restarted while in the middle of such work
-        // (so the Intent gets re-delivered to perform the work again), it will
-        // at that point no longer be holding a wake lock since we are depending
-        // on SimpleWakefulReceiver to that for us.  If this is a concern, you can
-        // acquire a separate wake lock here.
-        for (int i=0; i<5; i++) {
-            Log.i("SimpleWakefulReceiver", "Running service " + (i+1)
-                    + "/5 @ " + SystemClock.elapsedRealtime());
-            try {
-                Thread.sleep(5000);
-            } catch (InterruptedException e) {
-            }
-        }
-        Log.i("SimpleWakefulReceiver", "Completed service @ " + SystemClock.elapsedRealtime());
-        SimpleWakefulReceiver.completeWakefulIntent(intent);
-    }
-}
-//END_INCLUDE(complete)
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/graphics/DrawableCompatActivity.java b/samples/Support4Demos/src/com/example/android/supportv4/graphics/DrawableCompatActivity.java
deleted file mode 100644
index f679067..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/graphics/DrawableCompatActivity.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * 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.
- */
-
-package com.example.android.supportv4.graphics;
-
-import com.example.android.supportv4.R;
-
-import android.app.Activity;
-import android.graphics.Color;
-import android.graphics.drawable.Drawable;
-import android.os.Bundle;
-import android.support.v4.content.ContextCompat;
-import android.support.v4.graphics.drawable.DrawableCompat;
-import android.widget.ImageView;
-import android.widget.RadioGroup;
-
-/**
- * Demonstrates use of a {@link DrawableCompat}'s ability to become circular.
- */
-public class DrawableCompatActivity extends Activity {
-
-    private static final int IMAGE_RES = R.drawable.ic_favorite;
-
-    private ImageView mImageView;
-    private Drawable mDrawable;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.drawable_compat);
-
-        mImageView = (ImageView) findViewById(R.id.image);
-
-        Drawable d = ContextCompat.getDrawable(this, IMAGE_RES);
-        mDrawable = DrawableCompat.wrap(d.mutate());
-
-        mImageView.setImageDrawable(mDrawable);
-
-        RadioGroup rg = (RadioGroup) findViewById(R.id.drawable_compat_options);
-        rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
-            @Override
-            public void onCheckedChanged(RadioGroup radioGroup, int id) {
-                switch (id) {
-                    case R.id.drawable_compat_no_tint:
-                        clearTint();
-                        break;
-                    case R.id.drawable_compat_color:
-                        setColorTint();
-                        break;
-                    case R.id.drawable_compat_state_list:
-                        setColorStateListTint();
-                        break;
-                }
-            }
-        });
-    }
-
-    private void clearTint() {
-        DrawableCompat.setTintList(mDrawable, null);
-    }
-
-    private void setColorTint() {
-        DrawableCompat.setTint(mDrawable, Color.MAGENTA);
-    }
-
-    private void setColorStateListTint() {
-        DrawableCompat.setTintList(mDrawable,
-                ContextCompat.getColorStateList(this, R.color.tint_state_list));
-    }
-
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/graphics/RoundedBitmapDrawableActivity.java b/samples/Support4Demos/src/com/example/android/supportv4/graphics/RoundedBitmapDrawableActivity.java
deleted file mode 100644
index d89d462..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/graphics/RoundedBitmapDrawableActivity.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * 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.
- */
-
-package com.example.android.supportv4.graphics;
-
-import android.app.Activity;
-import android.graphics.Bitmap;
-import android.graphics.BitmapFactory;
-import android.os.Bundle;
-import android.support.v4.graphics.drawable.RoundedBitmapDrawable;
-import android.support.v4.graphics.drawable.RoundedBitmapDrawableFactory;
-import android.widget.CompoundButton;
-import android.widget.ImageView;
-import android.widget.ToggleButton;
-
-import com.example.android.supportv4.R;
-
-/**
- * Demonstrates use of a {@link RoundedBitmapDrawable}'s ability to become circular.
- */
-public class RoundedBitmapDrawableActivity extends Activity {
-
-    private static final int IMAGE_RES = R.drawable.android_robot;
-    private RoundedBitmapDrawable mRoundedBitmapDrawable;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.activity_rounded_bitmap);
-
-        // Create a bitmap and set it circular.
-        Bitmap bitmap = BitmapFactory.decodeResource(getResources(), IMAGE_RES);
-        mRoundedBitmapDrawable = RoundedBitmapDrawableFactory.create(getResources(), bitmap);
-
-        // Get references to the inflated views.
-        ToggleButton toggle = (ToggleButton) findViewById(R.id.toggle_round);
-        ImageView image = (ImageView) findViewById(R.id.image);
-
-        // Set up initial view state and on checked change listener.
-        image.setImageDrawable(mRoundedBitmapDrawable);
-        toggle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
-            @Override
-            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
-                mRoundedBitmapDrawable.setCircular(isChecked);
-            }
-        });
-    }
-
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/media/AlbumArtCache.java b/samples/Support4Demos/src/com/example/android/supportv4/media/AlbumArtCache.java
deleted file mode 100644
index 630b5d5..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/media/AlbumArtCache.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * 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.supportv4.media;
-
-import android.graphics.Bitmap;
-import android.os.AsyncTask;
-import android.util.Log;
-import android.util.LruCache;
-
-import com.example.android.supportv4.media.utils.BitmapHelper;
-
-import java.io.IOException;
-
-/**
- * Implements a basic cache of album arts, with async loading support.
- */
-public final class AlbumArtCache {
-    private static final String TAG = "AlbumArtCache";
-
-    private static final int MAX_ALBUM_ART_CACHE_SIZE = 12*1024*1024;  // 12 MB
-    private static final int MAX_ART_WIDTH = 800;  // pixels
-    private static final int MAX_ART_HEIGHT = 480;  // pixels
-
-    // Resolution reasonable for carrying around as an icon (generally in
-    // MediaDescription.getIconBitmap). This should not be bigger than necessary, because
-    // the MediaDescription object should be lightweight. If you set it too high and try to
-    // serialize the MediaDescription, you may get FAILED BINDER TRANSACTION errors.
-    private static final int MAX_ART_WIDTH_ICON = 128;  // pixels
-    private static final int MAX_ART_HEIGHT_ICON = 128;  // pixels
-
-    private static final int BIG_BITMAP_INDEX = 0;
-    private static final int ICON_BITMAP_INDEX = 1;
-
-    private final LruCache<String, Bitmap[]> mCache;
-
-    private static final AlbumArtCache sInstance = new AlbumArtCache();
-
-    public static AlbumArtCache getInstance() {
-        return sInstance;
-    }
-
-    private AlbumArtCache() {
-        // Holds no more than MAX_ALBUM_ART_CACHE_SIZE bytes, bounded by maxmemory/4 and
-        // Integer.MAX_VALUE:
-        int maxSize = Math.min(MAX_ALBUM_ART_CACHE_SIZE,
-            (int) (Math.min(Integer.MAX_VALUE, Runtime.getRuntime().maxMemory()/4)));
-        mCache = new LruCache<String, Bitmap[]>(maxSize) {
-            @Override
-            protected int sizeOf(String key, Bitmap[] value) {
-                return value[BIG_BITMAP_INDEX].getByteCount()
-                    + value[ICON_BITMAP_INDEX].getByteCount();
-            }
-        };
-    }
-
-    public Bitmap getBigImage(String artUrl) {
-        Bitmap[] result = mCache.get(artUrl);
-        return result == null ? null : result[BIG_BITMAP_INDEX];
-    }
-
-    public Bitmap getIconImage(String artUrl) {
-        Bitmap[] result = mCache.get(artUrl);
-        return result == null ? null : result[ICON_BITMAP_INDEX];
-    }
-
-    public void fetch(final String artUrl, final FetchListener listener) {
-        // WARNING: for the sake of simplicity, simultaneous multi-thread fetch requests
-        // are not handled properly: they may cause redundant costly operations, like HTTP
-        // requests and bitmap rescales. For production-level apps, we recommend you use
-        // a proper image loading library, like Glide.
-        Bitmap[] bitmap = mCache.get(artUrl);
-        if (bitmap != null) {
-            Log.d(TAG, "getOrFetch: album art is in cache, using it " + artUrl);
-            listener.onFetched(artUrl, bitmap[BIG_BITMAP_INDEX], bitmap[ICON_BITMAP_INDEX]);
-            return;
-        }
-        Log.d(TAG, "getOrFetch: starting asynctask to fetch " + artUrl);
-
-        new AsyncTask<Void, Void, Bitmap[]>() {
-            @Override
-            protected Bitmap[] doInBackground(Void[] objects) {
-                Bitmap[] bitmaps;
-                try {
-                    Bitmap bitmap = BitmapHelper.fetchAndRescaleBitmap(artUrl,
-                        MAX_ART_WIDTH, MAX_ART_HEIGHT);
-                    Bitmap icon = BitmapHelper.scaleBitmap(bitmap,
-                        MAX_ART_WIDTH_ICON, MAX_ART_HEIGHT_ICON);
-                    bitmaps = new Bitmap[] {bitmap, icon};
-                    mCache.put(artUrl, bitmaps);
-                } catch (IOException e) {
-                    return null;
-                }
-                Log.d(TAG, "doInBackground: putting bitmap in cache. cache size=" + mCache.size());
-                return bitmaps;
-            }
-
-            @Override
-            protected void onPostExecute(Bitmap[] bitmaps) {
-                if (bitmaps == null) {
-                    listener.onError(artUrl, new IllegalArgumentException("got null bitmaps"));
-                } else {
-                    listener.onFetched(artUrl,
-                        bitmaps[BIG_BITMAP_INDEX], bitmaps[ICON_BITMAP_INDEX]);
-                }
-            }
-        }.execute();
-    }
-
-    public static abstract class FetchListener {
-        public abstract void onFetched(String artUrl, Bitmap bigImage, Bitmap iconImage);
-        public void onError(String artUrl, Exception e) {
-            Log.e(TAG, "AlbumArtFetchListener: error while downloading " + artUrl, e);
-        }
-    }
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/media/BrowseFragment.java b/samples/Support4Demos/src/com/example/android/supportv4/media/BrowseFragment.java
deleted file mode 100644
index 2ee7622..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/media/BrowseFragment.java
+++ /dev/null
@@ -1,218 +0,0 @@
-/*
- * 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.supportv4.media;
-
-import android.app.Fragment;
-import android.content.ComponentName;
-import android.content.Context;
-import android.os.Bundle;
-import android.os.RemoteException;
-import android.support.v4.media.MediaBrowserCompat;
-import android.support.v4.media.session.MediaControllerCompat;
-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.ImageView;
-import android.widget.ListView;
-import android.widget.TextView;
-import android.widget.Toast;
-
-import com.example.android.supportv4.R;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * A Fragment that lists all the various browsable queues available
- * from a {@link android.service.media.MediaBrowserService}.
- * <p/>
- * It uses a {@link MediaBrowserCompat} to connect to the {@link MediaBrowserServiceSupport}.
- * Once connected, the fragment subscribes to get all the children. All
- * {@link MediaBrowserCompat.MediaItem}'s that can be browsed are shown in a ListView.
- */
-public class BrowseFragment extends Fragment {
-
-    private static final String TAG = "BrowseFragment";
-
-    public static final String ARG_MEDIA_ID = "media_id";
-
-    public static interface FragmentDataHelper {
-        void onMediaItemSelected(MediaBrowserCompat.MediaItem item);
-    }
-
-    // The mediaId to be used for subscribing for children using the MediaBrowser.
-    private String mMediaId;
-
-    private MediaBrowserCompat mMediaBrowser;
-    private BrowseAdapter mBrowserAdapter;
-
-    private MediaBrowserCompat.SubscriptionCallback mSubscriptionCallback =
-            new MediaBrowserCompat.SubscriptionCallback() {
-
-        @Override
-        public void onChildrenLoaded(String parentId, List<MediaBrowserCompat.MediaItem> children) {
-            Log.d(TAG, "onChildrenLoaded: " + parentId);
-            mBrowserAdapter.clear();
-            mBrowserAdapter.notifyDataSetInvalidated();
-            for (MediaBrowserCompat.MediaItem item : children) {
-                mBrowserAdapter.add(item);
-            }
-            mBrowserAdapter.notifyDataSetChanged();
-        }
-
-        @Override
-        public void onError(String id) {
-            Toast.makeText(getActivity(), R.string.error_loading_media,
-                    Toast.LENGTH_LONG).show();
-        }
-    };
-
-    private MediaBrowserCompat.ConnectionCallback mConnectionCallback =
-            new MediaBrowserCompat.ConnectionCallback() {
-        @Override
-        public void onConnected() {
-            Log.d(TAG, "onConnected: session token " + mMediaBrowser.getSessionToken());
-
-            if (mMediaId == null) {
-                mMediaId = mMediaBrowser.getRoot();
-            }
-            mMediaBrowser.subscribe(mMediaId, mSubscriptionCallback);
-            if (mMediaBrowser.getSessionToken() == null) {
-                throw new IllegalArgumentException("No Session token");
-            }
-            MediaControllerCompat mediaController = null;
-            try {
-                mediaController = new MediaControllerCompat(getActivity(),
-                        mMediaBrowser.getSessionToken());
-            } catch (RemoteException e) {
-                Log.e(TAG, "Failed to create MediaController.", e);
-            }
-            ((MediaBrowserSupport) getActivity()).setMediaController(mediaController);
-        }
-
-        @Override
-        public void onConnectionFailed() {
-            Log.d(TAG, "onConnectionFailed");
-        }
-
-        @Override
-        public void onConnectionSuspended() {
-            Log.d(TAG, "onConnectionSuspended");
-            getActivity().setMediaController(null);
-        }
-    };
-
-    public static BrowseFragment newInstance(String mediaId) {
-        Bundle args = new Bundle();
-        args.putString(ARG_MEDIA_ID, mediaId);
-        BrowseFragment fragment = new BrowseFragment();
-        fragment.setArguments(args);
-        return fragment;
-    }
-
-    @Override
-    public View onCreateView(LayoutInflater inflater, ViewGroup container,
-                             Bundle savedInstanceState) {
-        View rootView = inflater.inflate(R.layout.fragment_list, container, false);
-
-        mBrowserAdapter = new BrowseAdapter(getActivity());
-
-        View controls = rootView.findViewById(R.id.controls);
-        controls.setVisibility(View.GONE);
-
-        ListView listView = (ListView) rootView.findViewById(R.id.list_view);
-        listView.setAdapter(mBrowserAdapter);
-        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
-            @Override
-            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
-                MediaBrowserCompat.MediaItem item = mBrowserAdapter.getItem(position);
-                try {
-                    FragmentDataHelper listener = (FragmentDataHelper) getActivity();
-                    listener.onMediaItemSelected(item);
-                } catch (ClassCastException ex) {
-                    Log.e(TAG, "Exception trying to cast to FragmentDataHelper", ex);
-                }
-            }
-        });
-
-        Bundle args = getArguments();
-        mMediaId = args.getString(ARG_MEDIA_ID, null);
-
-        mMediaBrowser = new MediaBrowserCompat(getActivity(),
-                new ComponentName(getActivity(), MediaBrowserServiceSupport.class),
-                mConnectionCallback, null);
-
-        return rootView;
-    }
-
-    @Override
-    public void onStart() {
-        super.onStart();
-        mMediaBrowser.connect();
-    }
-
-    @Override
-    public void onStop() {
-        super.onStop();
-        mMediaBrowser.disconnect();
-    }
-
-    // An adapter for showing the list of browsed MediaItem's
-    private static class BrowseAdapter extends ArrayAdapter<MediaBrowserCompat.MediaItem> {
-
-        public BrowseAdapter(Context context) {
-            super(context, R.layout.media_list_item, new ArrayList<MediaBrowserCompat.MediaItem>());
-        }
-
-        static class ViewHolder {
-            ImageView mImageView;
-            TextView mTitleView;
-            TextView mDescriptionView;
-        }
-
-        @Override
-        public View getView(int position, View convertView, ViewGroup parent) {
-
-            ViewHolder holder;
-
-            if (convertView == null) {
-                convertView = LayoutInflater.from(getContext())
-                        .inflate(R.layout.media_list_item, parent, false);
-                holder = new ViewHolder();
-                holder.mImageView = (ImageView) convertView.findViewById(R.id.play_eq);
-                holder.mImageView.setVisibility(View.GONE);
-                holder.mTitleView = (TextView) convertView.findViewById(R.id.title);
-                holder.mDescriptionView = (TextView) convertView.findViewById(R.id.description);
-                convertView.setTag(holder);
-            } else {
-                holder = (ViewHolder) convertView.getTag();
-            }
-
-            MediaBrowserCompat.MediaItem item = getItem(position);
-            holder.mTitleView.setText(item.getDescription().getTitle());
-            holder.mDescriptionView.setText(item.getDescription().getDescription());
-            if (item.isPlayable()) {
-                holder.mImageView.setImageDrawable(getContext().getResources()
-                        .getDrawable(R.drawable.ic_play_arrow_white_24dp));
-                holder.mImageView.setVisibility(View.VISIBLE);
-            }
-            return convertView;
-        }
-    }
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/media/MediaBrowserServiceSupport.java b/samples/Support4Demos/src/com/example/android/supportv4/media/MediaBrowserServiceSupport.java
deleted file mode 100644
index 185ee2a..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/media/MediaBrowserServiceSupport.java
+++ /dev/null
@@ -1,743 +0,0 @@
-/*
-* 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.supportv4.media;
-
-import android.app.PendingIntent;
-import android.content.Context;
-import android.content.Intent;
-import android.graphics.Bitmap;
-import android.net.Uri;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
-import android.os.SystemClock;
-import android.support.v4.media.MediaDescriptionCompat;
-import android.support.v4.media.MediaMetadataCompat;
-import android.support.v4.media.MediaBrowserCompat.MediaItem;
-import android.support.v4.media.MediaBrowserServiceCompat;
-import android.support.v4.media.session.MediaSessionCompat;
-import android.support.v4.media.session.PlaybackStateCompat;
-import android.text.TextUtils;
-import android.util.Log;
-
-import com.example.android.supportv4.R;
-import com.example.android.supportv4.media.model.MusicProvider;
-import com.example.android.supportv4.media.utils.CarHelper;
-import com.example.android.supportv4.media.utils.MediaIDHelper;
-import com.example.android.supportv4.media.utils.QueueHelper;
-
-import java.lang.ref.WeakReference;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import static com.example.android.supportv4.media.utils.MediaIDHelper.MEDIA_ID_MUSICS_BY_GENRE;
-import static com.example.android.supportv4.media.utils.MediaIDHelper.MEDIA_ID_ROOT;
-import static com.example.android.supportv4.media.utils.MediaIDHelper.createBrowseCategoryMediaID;
-
-/**
- * This class provides a MediaBrowser through a service. It exposes the media library to a browsing
- * client, through the onGetRoot and onLoadChildren methods. It also creates a MediaSession and
- * exposes it through its MediaSession.Token, which allows the client to create a MediaController
- * that connects to and send control commands to the MediaSession remotely. This is useful for
- * user interfaces that need to interact with your media session, like Android Auto. You can
- * (should) also use the same service from your app's UI, which gives a seamless playback
- * experience to the user.
- * <p/>
- * To implement a MediaBrowserService, you need to:
- * <p/>
- * <ul>
- * <p/>
- * <li> Extend {@link android.service.media.MediaBrowserService}, implementing the media browsing
- * related methods {@link android.service.media.MediaBrowserService#onGetRoot} and
- * {@link android.service.media.MediaBrowserService#onLoadChildren};
- * <li> In onCreate, start a new {@link android.media.session.MediaSession} and notify its parent
- * with the session's token {@link android.service.media.MediaBrowserService#setSessionToken};
- * <p/>
- * <li> Set a callback on the
- * {@link android.media.session.MediaSession#setCallback(android.media.session.MediaSession.Callback)}.
- * The callback will receive all the user's actions, like play, pause, etc;
- * <p/>
- * <li> Handle all the actual music playing using any method your app prefers (for example,
- * {@link android.media.MediaPlayer})
- * <p/>
- * <li> Update playbackState, "now playing" metadata and queue, using MediaSession proper methods
- * {@link android.media.session.MediaSession#setPlaybackState(android.media.session.PlaybackState)}
- * {@link android.media.session.MediaSession#setMetadata(android.media.MediaMetadata)} and
- * {@link android.media.session.MediaSession#setQueue(java.util.List)})
- * <p/>
- * <li> Declare and export the service in AndroidManifest with an intent receiver for the action
- * android.media.browse.MediaBrowserService
- * <p/>
- * </ul>
- * <p/>
- * To make your app compatible with Android Auto, you also need to:
- * <p/>
- * <ul>
- * <p/>
- * <li> Declare a meta-data tag in AndroidManifest.xml linking to a xml resource
- * with a &lt;automotiveApp&gt; root element. For a media app, this must include
- * an &lt;uses name="media"/&gt; element as a child.
- * For example, in AndroidManifest.xml:
- * &lt;meta-data android:name="com.google.android.gms.car.application"
- * android:resource="@xml/automotive_app_desc"/&gt;
- * And in res/values/automotive_app_desc.xml:
- * &lt;automotiveApp&gt;
- * &lt;uses name="media"/&gt;
- * &lt;/automotiveApp&gt;
- * <p/>
- * </ul>
- *
- * @see <a href="README.md">README.md</a> for more details.
- */
-
-public class MediaBrowserServiceSupport extends MediaBrowserServiceCompat
-        implements Playback.Callback {
-
-    // The action of the incoming Intent indicating that it contains a command
-    // to be executed (see {@link #onStartCommand})
-    public static final String ACTION_CMD = "com.example.android.supportv4.media.ACTION_CMD";
-    // The key in the extras of the incoming Intent indicating the command that
-    // should be executed (see {@link #onStartCommand})
-    public static final String CMD_NAME = "CMD_NAME";
-    // A value of a CMD_NAME key in the extras of the incoming Intent that
-    // indicates that the music playback should be paused (see {@link #onStartCommand})
-    public static final String CMD_PAUSE = "CMD_PAUSE";
-
-    private static final String TAG = "SampleMediaBrowserService";
-    // Action to thumbs up a media item
-    private static final String CUSTOM_ACTION_THUMBS_UP =
-            "com.example.android.supportv4.media.THUMBS_UP";
-    // Delay stopSelf by using a handler.
-    private static final int STOP_DELAY = 30000;
-
-    // Music catalog manager
-    private MusicProvider mMusicProvider;
-    private MediaSessionCompat mSession;
-    // "Now playing" queue:
-    private List<MediaSessionCompat.QueueItem> mPlayingQueue;
-    private int mCurrentIndexOnQueue;
-    private MediaNotificationManager mMediaNotificationManager;
-    // Indicates whether the service was started.
-    private boolean mServiceStarted;
-    private DelayedStopHandler mDelayedStopHandler = new DelayedStopHandler(this);
-    private Playback mPlayback;
-    private PackageValidator mPackageValidator;
-
-    /*
-     * (non-Javadoc)
-     * @see android.app.Service#onCreate()
-     */
-    @Override
-    public void onCreate() {
-        super.onCreate();
-        Log.d(TAG, "onCreate");
-
-        mPlayingQueue = new ArrayList<>();
-        mMusicProvider = new MusicProvider();
-        mPackageValidator = new PackageValidator(this);
-
-        // Start a new MediaSession
-        mSession = new MediaSessionCompat(this, "MusicService");
-        setSessionToken(mSession.getSessionToken());
-        mSession.setCallback(new MediaSessionCallback());
-        mSession.setFlags(MediaSessionCompat.FLAG_HANDLES_MEDIA_BUTTONS |
-                MediaSessionCompat.FLAG_HANDLES_TRANSPORT_CONTROLS);
-
-        mPlayback = new Playback(this, mMusicProvider);
-        mPlayback.setState(PlaybackStateCompat.STATE_NONE);
-        mPlayback.setCallback(this);
-        mPlayback.start();
-
-        Context context = getApplicationContext();
-        Intent intent = new Intent(context, MediaBrowserSupport.class);
-        PendingIntent pi = PendingIntent.getActivity(context, 99 /*request code*/,
-                intent, PendingIntent.FLAG_UPDATE_CURRENT);
-        mSession.setSessionActivity(pi);
-
-        Bundle extras = new Bundle();
-        CarHelper.setSlotReservationFlags(extras, true, true, true);
-        mSession.setExtras(extras);
-
-        updatePlaybackState(null);
-
-        mMediaNotificationManager = new MediaNotificationManager(this);
-    }
-
-    /**
-     * (non-Javadoc)
-     *
-     * @see android.app.Service#onStartCommand(android.content.Intent, int, int)
-     */
-    @Override
-    public int onStartCommand(Intent startIntent, int flags, int startId) {
-        if (startIntent != null) {
-            String action = startIntent.getAction();
-            String command = startIntent.getStringExtra(CMD_NAME);
-            if (ACTION_CMD.equals(action)) {
-                if (CMD_PAUSE.equals(command)) {
-                    if (mPlayback != null && mPlayback.isPlaying()) {
-                        handlePauseRequest();
-                    }
-                }
-            }
-        }
-        return START_STICKY;
-    }
-
-    /**
-     * (non-Javadoc)
-     *
-     * @see android.app.Service#onDestroy()
-     */
-    @Override
-    public void onDestroy() {
-        Log.d(TAG, "onDestroy");
-        // Service is being killed, so make sure we release our resources
-        handleStopRequest(null);
-
-        mDelayedStopHandler.removeCallbacksAndMessages(null);
-        // Always release the MediaSession to clean up resources
-        // and notify associated MediaController(s).
-        mSession.release();
-    }
-
-    @Override
-    public BrowserRoot onGetRoot(String clientPackageName, int clientUid, Bundle rootHints) {
-        Log.d(TAG, "OnGetRoot: clientPackageName=" + clientPackageName + "; clientUid="
-                + clientUid + " ; rootHints=" + rootHints);
-        // To ensure you are not allowing any arbitrary app to browse your app's contents, you
-        // need to check the origin:
-        if (!mPackageValidator.isCallerAllowed(this, clientPackageName, clientUid)) {
-            // If the request comes from an untrusted package, return null. No further calls will
-            // be made to other media browsing methods.
-            Log.w(TAG, "OnGetRoot: IGNORING request from untrusted package " + clientPackageName);
-            return null;
-        }
-        //noinspection StatementWithEmptyBody
-        if (CarHelper.isValidCarPackage(clientPackageName)) {
-            // Optional: if your app needs to adapt ads, music library or anything else that
-            // needs to run differently when connected to the car, this is where you should handle
-            // it.
-        }
-        return new BrowserRoot(MEDIA_ID_ROOT, null);
-    }
-
-    @Override
-    public void onLoadChildren(final String parentMediaId, final Result<List<MediaItem>> result) {
-        if (!mMusicProvider.isInitialized()) {
-            // Use result.detach to allow calling result.sendResult from another thread:
-            result.detach();
-
-            mMusicProvider.retrieveMediaAsync(new MusicProvider.Callback() {
-                @Override
-                public void onMusicCatalogReady(boolean success) {
-                    if (success) {
-                        loadChildrenImpl(parentMediaId, result);
-                    } else {
-                        updatePlaybackState(getString(R.string.error_no_metadata));
-                        result.sendResult(Collections.<MediaItem>emptyList());
-                    }
-                }
-            });
-
-        } else {
-            // If our music catalog is already loaded/cached, load them into result immediately
-            loadChildrenImpl(parentMediaId, result);
-        }
-    }
-
-    /**
-     * Actual implementation of onLoadChildren that assumes that MusicProvider is already
-     * initialized.
-     */
-    private void loadChildrenImpl(final String parentMediaId,
-            final Result<List<MediaItem>> result) {
-        Log.d(TAG, "OnLoadChildren: parentMediaId=" + parentMediaId);
-
-        List<MediaItem> mediaItems = new ArrayList<>();
-
-        if (MEDIA_ID_ROOT.equals(parentMediaId)) {
-            Log.d(TAG, "OnLoadChildren.ROOT");
-            mediaItems.add(new MediaItem(
-                    new MediaDescriptionCompat.Builder()
-                            .setMediaId(MEDIA_ID_MUSICS_BY_GENRE)
-                            .setTitle(getString(R.string.browse_genres))
-                            .setIconUri(Uri.parse("android.resource://" +
-                                    "com.example.android.supportv4.media/drawable/ic_by_genre"))
-                            .setSubtitle(getString(R.string.browse_genre_subtitle))
-                            .build(), MediaItem.FLAG_BROWSABLE
-            ));
-
-        } else if (MEDIA_ID_MUSICS_BY_GENRE.equals(parentMediaId)) {
-            Log.d(TAG, "OnLoadChildren.GENRES");
-            for (String genre : mMusicProvider.getGenres()) {
-                MediaItem item = new MediaItem(
-                        new MediaDescriptionCompat.Builder()
-                                .setMediaId(createBrowseCategoryMediaID(MEDIA_ID_MUSICS_BY_GENRE,
-                                        genre))
-                                .setTitle(genre)
-                                .setSubtitle(
-                                        getString(R.string.browse_musics_by_genre_subtitle, genre))
-                                .build(), MediaItem.FLAG_BROWSABLE
-                );
-                mediaItems.add(item);
-            }
-
-        } else if (parentMediaId.startsWith(MEDIA_ID_MUSICS_BY_GENRE)) {
-            String genre = MediaIDHelper.getHierarchy(parentMediaId)[1];
-            Log.d(TAG, "OnLoadChildren.SONGS_BY_GENRE  genre=" + genre);
-            for (MediaMetadataCompat track : mMusicProvider.getMusicsByGenre(genre)) {
-                // Since mediaMetadata fields are immutable, we need to create a copy, so we
-                // can set a hierarchy-aware mediaID. We will need to know the media hierarchy
-                // when we get a onPlayFromMusicID call, so we can create the proper queue based
-                // on where the music was selected from (by artist, by genre, random, etc)
-                String hierarchyAwareMediaID = MediaIDHelper.createMediaID(
-                        track.getDescription().getMediaId(), MEDIA_ID_MUSICS_BY_GENRE, genre);
-                MediaMetadataCompat trackCopy = new MediaMetadataCompat.Builder(track)
-                        .putString(MediaMetadataCompat.METADATA_KEY_MEDIA_ID, hierarchyAwareMediaID)
-                        .build();
-                MediaItem bItem = new MediaItem(
-                        trackCopy.getDescription(), MediaItem.FLAG_PLAYABLE);
-                mediaItems.add(bItem);
-            }
-        } else {
-            Log.w(TAG, "Skipping unmatched parentMediaId: " + parentMediaId);
-        }
-        Log.d(TAG, "OnLoadChildren sending " + mediaItems.size() + " results for "
-                + parentMediaId);
-        result.sendResult(mediaItems);
-    }
-
-    private final class MediaSessionCallback extends MediaSessionCompat.Callback {
-        @Override
-        public void onPlay() {
-            Log.d(TAG, "play");
-
-            if (mPlayingQueue == null || mPlayingQueue.isEmpty()) {
-                mPlayingQueue = QueueHelper.getRandomQueue(mMusicProvider);
-                mSession.setQueue(mPlayingQueue);
-                mSession.setQueueTitle(getString(R.string.random_queue_title));
-                // start playing from the beginning of the queue
-                mCurrentIndexOnQueue = 0;
-            }
-
-            if (mPlayingQueue != null && !mPlayingQueue.isEmpty()) {
-                handlePlayRequest();
-            }
-        }
-
-        @Override
-        public void onSkipToQueueItem(long queueId) {
-            Log.d(TAG, "OnSkipToQueueItem:" + queueId);
-
-            if (mPlayingQueue != null && !mPlayingQueue.isEmpty()) {
-                // set the current index on queue from the music Id:
-                mCurrentIndexOnQueue = QueueHelper.getMusicIndexOnQueue(mPlayingQueue, queueId);
-                // play the music
-                handlePlayRequest();
-            }
-        }
-
-        @Override
-        public void onSeekTo(long position) {
-            Log.d(TAG, "onSeekTo:" + position);
-            mPlayback.seekTo((int) position);
-        }
-
-        @Override
-        public void onPlayFromMediaId(String mediaId, Bundle extras) {
-            Log.d(TAG, "playFromMediaId mediaId:" + mediaId + "  extras=" + extras);
-
-            // The mediaId used here is not the unique musicId. This one comes from the
-            // MediaBrowser, and is actually a "hierarchy-aware mediaID": a concatenation of
-            // the hierarchy in MediaBrowser and the actual unique musicID. This is necessary
-            // so we can build the correct playing queue, based on where the track was
-            // selected from.
-            mPlayingQueue = QueueHelper.getPlayingQueue(mediaId, mMusicProvider);
-            mSession.setQueue(mPlayingQueue);
-            String queueTitle = getString(R.string.browse_musics_by_genre_subtitle,
-                    MediaIDHelper.extractBrowseCategoryValueFromMediaID(mediaId));
-            mSession.setQueueTitle(queueTitle);
-
-            if (mPlayingQueue != null && !mPlayingQueue.isEmpty()) {
-                // set the current index on queue from the media Id:
-                mCurrentIndexOnQueue = QueueHelper.getMusicIndexOnQueue(mPlayingQueue, mediaId);
-
-                if (mCurrentIndexOnQueue < 0) {
-                    Log.e(TAG, "playFromMediaId: media ID " + mediaId
-                            + " could not be found on queue. Ignoring.");
-                } else {
-                    // play the music
-                    handlePlayRequest();
-                }
-            }
-        }
-
-        @Override
-        public void onPause() {
-            Log.d(TAG, "pause. current state=" + mPlayback.getState());
-            handlePauseRequest();
-        }
-
-        @Override
-        public void onStop() {
-            Log.d(TAG, "stop. current state=" + mPlayback.getState());
-            handleStopRequest(null);
-        }
-
-        @Override
-        public void onSkipToNext() {
-            Log.d(TAG, "skipToNext");
-            mCurrentIndexOnQueue++;
-            if (mPlayingQueue != null && mCurrentIndexOnQueue >= mPlayingQueue.size()) {
-                // This sample's behavior: skipping to next when in last song returns to the
-                // first song.
-                mCurrentIndexOnQueue = 0;
-            }
-            if (QueueHelper.isIndexPlayable(mCurrentIndexOnQueue, mPlayingQueue)) {
-                handlePlayRequest();
-            } else {
-                Log.e(TAG, "skipToNext: cannot skip to next. next Index=" +
-                        mCurrentIndexOnQueue + " queue length=" +
-                        (mPlayingQueue == null ? "null" : mPlayingQueue.size()));
-                handleStopRequest("Cannot skip");
-            }
-        }
-
-        @Override
-        public void onSkipToPrevious() {
-            Log.d(TAG, "skipToPrevious");
-            mCurrentIndexOnQueue--;
-            if (mPlayingQueue != null && mCurrentIndexOnQueue < 0) {
-                // This sample's behavior: skipping to previous when in first song restarts the
-                // first song.
-                mCurrentIndexOnQueue = 0;
-            }
-            if (QueueHelper.isIndexPlayable(mCurrentIndexOnQueue, mPlayingQueue)) {
-                handlePlayRequest();
-            } else {
-                Log.e(TAG, "skipToPrevious: cannot skip to previous. previous Index=" +
-                        mCurrentIndexOnQueue + " queue length=" +
-                        (mPlayingQueue == null ? "null" : mPlayingQueue.size()));
-                handleStopRequest("Cannot skip");
-            }
-        }
-
-        @Override
-        public void onCustomAction(String action, Bundle extras) {
-            if (CUSTOM_ACTION_THUMBS_UP.equals(action)) {
-                Log.i(TAG, "onCustomAction: favorite for current track");
-                MediaMetadataCompat track = getCurrentPlayingMusic();
-                if (track != null) {
-                    String musicId = track.getString(MediaMetadataCompat.METADATA_KEY_MEDIA_ID);
-                    mMusicProvider.setFavorite(musicId, !mMusicProvider.isFavorite(musicId));
-                }
-                // playback state needs to be updated because the "Favorite" icon on the
-                // custom action will change to reflect the new favorite state.
-                updatePlaybackState(null);
-            } else {
-                Log.e(TAG, "Unsupported action: " + action);
-            }
-        }
-
-        @Override
-        public void onPlayFromSearch(String query, Bundle extras) {
-            Log.d(TAG, "playFromSearch  query=" + query);
-
-            if (TextUtils.isEmpty(query)) {
-                // A generic search like "Play music" sends an empty query
-                // and it's expected that we start playing something. What will be played depends
-                // on the app: favorite playlist, "I'm feeling lucky", most recent, etc.
-                mPlayingQueue = QueueHelper.getRandomQueue(mMusicProvider);
-            } else {
-                mPlayingQueue = QueueHelper.getPlayingQueueFromSearch(query, mMusicProvider);
-            }
-
-            Log.d(TAG, "playFromSearch  playqueue.length=" + mPlayingQueue.size());
-            mSession.setQueue(mPlayingQueue);
-
-            if (mPlayingQueue != null && !mPlayingQueue.isEmpty()) {
-                // immediately start playing from the beginning of the search results
-                mCurrentIndexOnQueue = 0;
-
-                handlePlayRequest();
-            } else {
-                // if nothing was found, we need to warn the user and stop playing
-                handleStopRequest(getString(R.string.no_search_results));
-            }
-        }
-    }
-
-    /**
-     * Handle a request to play music
-     */
-    private void handlePlayRequest() {
-        Log.d(TAG, "handlePlayRequest: mState=" + mPlayback.getState());
-
-        mDelayedStopHandler.removeCallbacksAndMessages(null);
-        if (!mServiceStarted) {
-            Log.v(TAG, "Starting service");
-            // The MusicService needs to keep running even after the calling MediaBrowser
-            // is disconnected. Call startService(Intent) and then stopSelf(..) when we no longer
-            // need to play media.
-            startService(new Intent(getApplicationContext(), MediaBrowserServiceSupport.class));
-            mServiceStarted = true;
-        }
-
-        if (!mSession.isActive()) {
-            mSession.setActive(true);
-        }
-
-        if (QueueHelper.isIndexPlayable(mCurrentIndexOnQueue, mPlayingQueue)) {
-            updateMetadata();
-            mPlayback.play(mPlayingQueue.get(mCurrentIndexOnQueue));
-        }
-    }
-
-    /**
-     * Handle a request to pause music
-     */
-    private void handlePauseRequest() {
-        Log.d(TAG, "handlePauseRequest: mState=" + mPlayback.getState());
-        mPlayback.pause();
-        // reset the delayed stop handler.
-        mDelayedStopHandler.removeCallbacksAndMessages(null);
-        mDelayedStopHandler.sendEmptyMessageDelayed(0, STOP_DELAY);
-    }
-
-    /**
-     * Handle a request to stop music
-     */
-    private void handleStopRequest(String withError) {
-        Log.d(TAG, "handleStopRequest: mState=" + mPlayback.getState() + " error=" + withError);
-        mPlayback.stop(true);
-        // reset the delayed stop handler.
-        mDelayedStopHandler.removeCallbacksAndMessages(null);
-        mDelayedStopHandler.sendEmptyMessageDelayed(0, STOP_DELAY);
-
-        updatePlaybackState(withError);
-
-        // service is no longer necessary. Will be started again if needed.
-        stopSelf();
-        mServiceStarted = false;
-    }
-
-    private void updateMetadata() {
-        if (!QueueHelper.isIndexPlayable(mCurrentIndexOnQueue, mPlayingQueue)) {
-            Log.e(TAG, "Can't retrieve current metadata.");
-            updatePlaybackState(getResources().getString(R.string.error_no_metadata));
-            return;
-        }
-        MediaSessionCompat.QueueItem queueItem = mPlayingQueue.get(mCurrentIndexOnQueue);
-        String musicId = MediaIDHelper.extractMusicIDFromMediaID(
-                queueItem.getDescription().getMediaId());
-        MediaMetadataCompat track = mMusicProvider.getMusic(musicId);
-        final String trackId = track.getString(MediaMetadataCompat.METADATA_KEY_MEDIA_ID);
-        if (!musicId.equals(trackId)) {
-            IllegalStateException e = new IllegalStateException("track ID should match musicId.");
-            Log.e(TAG, "track ID should match musicId. musicId=" + musicId + " trackId=" + trackId
-                    + " mediaId from queueItem=" + queueItem.getDescription().getMediaId()
-                    + " title from queueItem=" + queueItem.getDescription().getTitle()
-                    + " mediaId from track=" + track.getDescription().getMediaId()
-                    + " title from track=" + track.getDescription().getTitle()
-                    + " source.hashcode from track=" + track.getString(
-                            MusicProvider.CUSTOM_METADATA_TRACK_SOURCE).hashCode(), e);
-            throw e;
-        }
-        Log.d(TAG, "Updating metadata for MusicID= " + musicId);
-        mSession.setMetadata(track);
-
-        // Set the proper album artwork on the media session, so it can be shown in the
-        // locked screen and in other places.
-        if (track.getDescription().getIconBitmap() == null &&
-                track.getDescription().getIconUri() != null) {
-            String albumUri = track.getDescription().getIconUri().toString();
-            AlbumArtCache.getInstance().fetch(albumUri, new AlbumArtCache.FetchListener() {
-                @Override
-                public void onFetched(String artUrl, Bitmap bitmap, Bitmap icon) {
-                    MediaSessionCompat.QueueItem queueItem = mPlayingQueue.get(mCurrentIndexOnQueue);
-                    MediaMetadataCompat track = mMusicProvider.getMusic(trackId);
-                    track = new MediaMetadataCompat.Builder(track)
-                            // set high resolution bitmap in METADATA_KEY_ALBUM_ART. This is used,
-                            // for example, on the lockscreen background when the media session is
-                            // active.
-                            .putBitmap(MediaMetadataCompat.METADATA_KEY_ALBUM_ART, bitmap)
-                            // set small version of the album art in the DISPLAY_ICON. This is used
-                            // on the MediaDescription and thus it should be small to be serialized
-                            // if necessary.
-                            .putBitmap(MediaMetadataCompat.METADATA_KEY_DISPLAY_ICON, icon)
-                            .build();
-
-                    mMusicProvider.updateMusic(trackId, track);
-
-                    // If we are still playing the same music
-                    String currentPlayingId = MediaIDHelper.extractMusicIDFromMediaID(
-                            queueItem.getDescription().getMediaId());
-                    if (trackId.equals(currentPlayingId)) {
-                        mSession.setMetadata(track);
-                    }
-                }
-            });
-        }
-    }
-
-    /**
-     * Update the current media player state, optionally showing an error message.
-     *
-     * @param error if not null, error message to present to the user.
-     */
-    private void updatePlaybackState(String error) {
-        Log.d(TAG, "updatePlaybackState, playback state=" + mPlayback.getState());
-        long position = PlaybackStateCompat.PLAYBACK_POSITION_UNKNOWN;
-        if (mPlayback != null && mPlayback.isConnected()) {
-            position = mPlayback.getCurrentStreamPosition();
-        }
-
-        PlaybackStateCompat.Builder stateBuilder = new PlaybackStateCompat.Builder()
-                .setActions(getAvailableActions());
-
-        setCustomAction(stateBuilder);
-        int state = mPlayback.getState();
-
-        // If there is an error message, send it to the playback state:
-        if (error != null) {
-            // Error states are really only supposed to be used for errors that cause playback to
-            // stop unexpectedly and persist until the user takes action to fix it.
-            stateBuilder.setErrorMessage(error);
-            state = PlaybackStateCompat.STATE_ERROR;
-        }
-        stateBuilder.setState(state, position, 1.0f, SystemClock.elapsedRealtime());
-
-        // Set the activeQueueItemId if the current index is valid.
-        if (QueueHelper.isIndexPlayable(mCurrentIndexOnQueue, mPlayingQueue)) {
-            MediaSessionCompat.QueueItem item = mPlayingQueue.get(mCurrentIndexOnQueue);
-            stateBuilder.setActiveQueueItemId(item.getQueueId());
-        }
-
-        mSession.setPlaybackState(stateBuilder.build());
-
-        if (state == PlaybackStateCompat.STATE_PLAYING
-                || state == PlaybackStateCompat.STATE_PAUSED) {
-            mMediaNotificationManager.startNotification();
-        }
-    }
-
-    private void setCustomAction(PlaybackStateCompat.Builder stateBuilder) {
-        MediaMetadataCompat currentMusic = getCurrentPlayingMusic();
-        if (currentMusic != null) {
-            // Set appropriate "Favorite" icon on Custom action:
-            String musicId = currentMusic.getString(MediaMetadataCompat.METADATA_KEY_MEDIA_ID);
-            int favoriteIcon = R.drawable.ic_star_off;
-            if (mMusicProvider.isFavorite(musicId)) {
-                favoriteIcon = R.drawable.ic_star_on;
-            }
-            Log.d(TAG, "updatePlaybackState, setting Favorite custom action of music "
-                    + musicId + " current favorite=" + mMusicProvider.isFavorite(musicId));
-            stateBuilder.addCustomAction(CUSTOM_ACTION_THUMBS_UP, getString(R.string.favorite),
-                    favoriteIcon);
-        }
-    }
-
-    private long getAvailableActions() {
-        long actions = PlaybackStateCompat.ACTION_PLAY
-                | PlaybackStateCompat.ACTION_PLAY_FROM_MEDIA_ID
-                | PlaybackStateCompat.ACTION_PLAY_FROM_SEARCH;
-        if (mPlayingQueue == null || mPlayingQueue.isEmpty()) {
-            return actions;
-        }
-        if (mPlayback.isPlaying()) {
-            actions |= PlaybackStateCompat.ACTION_PAUSE;
-        }
-        if (mCurrentIndexOnQueue > 0) {
-            actions |= PlaybackStateCompat.ACTION_SKIP_TO_PREVIOUS;
-        }
-        if (mCurrentIndexOnQueue < mPlayingQueue.size() - 1) {
-            actions |= PlaybackStateCompat.ACTION_SKIP_TO_NEXT;
-        }
-        return actions;
-    }
-
-    private MediaMetadataCompat getCurrentPlayingMusic() {
-        if (QueueHelper.isIndexPlayable(mCurrentIndexOnQueue, mPlayingQueue)) {
-            MediaSessionCompat.QueueItem item = mPlayingQueue.get(mCurrentIndexOnQueue);
-            if (item != null) {
-                Log.d(TAG, "getCurrentPlayingMusic for musicId="
-                        + item.getDescription().getMediaId());
-                return mMusicProvider.getMusic(
-                        MediaIDHelper
-                                .extractMusicIDFromMediaID(item.getDescription().getMediaId()));
-            }
-        }
-        return null;
-    }
-
-    /**
-     * Implementation of the Playback.Callback interface
-     */
-    @Override
-    public void onCompletion() {
-        // The media player finished playing the current song, so we go ahead
-        // and start the next.
-        if (mPlayingQueue != null && !mPlayingQueue.isEmpty()) {
-            // In this sample, we restart the playing queue when it gets to the end:
-            mCurrentIndexOnQueue++;
-            if (mCurrentIndexOnQueue >= mPlayingQueue.size()) {
-                mCurrentIndexOnQueue = 0;
-            }
-            handlePlayRequest();
-        } else {
-            // If there is nothing to play, we stop and release the resources:
-            handleStopRequest(null);
-        }
-    }
-
-    @Override
-    public void onPlaybackStatusChanged(int state) {
-        updatePlaybackState(null);
-    }
-
-    @Override
-    public void onError(String error) {
-        updatePlaybackState(error);
-    }
-
-    /**
-     * A simple handler that stops the service if playback is not active (playing)
-     */
-    private static class DelayedStopHandler extends Handler {
-        private final WeakReference<MediaBrowserServiceSupport> mWeakReference;
-
-        private DelayedStopHandler(MediaBrowserServiceSupport service) {
-            mWeakReference = new WeakReference<>(service);
-        }
-
-        @Override
-        public void handleMessage(Message msg) {
-            MediaBrowserServiceSupport service = mWeakReference.get();
-            if (service != null && service.mPlayback != null) {
-                if (service.mPlayback.isPlaying()) {
-                    Log.d(TAG, "Ignoring delayed stop since the media player is in use.");
-                    return;
-                }
-                Log.d(TAG, "Stopping service with delay handler.");
-                service.stopSelf();
-                service.mServiceStarted = false;
-            }
-        }
-    }
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/media/MediaBrowserSupport.java b/samples/Support4Demos/src/com/example/android/supportv4/media/MediaBrowserSupport.java
deleted file mode 100644
index 6460318..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/media/MediaBrowserSupport.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * 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.supportv4.media;
-
-import com.example.android.supportv4.R;
-import android.app.Activity;
-import android.os.Bundle;
-import android.support.v4.media.MediaBrowserCompat;
-import android.support.v4.media.session.MediaControllerCompat;
-
-/**
- * Main activity for the music player.
- */
-public class MediaBrowserSupport extends Activity implements BrowseFragment.FragmentDataHelper {
-    private MediaControllerCompat mMediaController;
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.activity_player);
-        if (savedInstanceState == null) {
-            getFragmentManager().beginTransaction()
-                    .add(R.id.container, BrowseFragment.newInstance(null))
-                    .commit();
-        }
-    }
-
-    @Override
-    public void onMediaItemSelected(MediaBrowserCompat.MediaItem item) {
-        if (item.isPlayable()) {
-            mMediaController.getTransportControls().playFromMediaId(item.getMediaId(), null);
-            QueueFragment queueFragment = QueueFragment.newInstance();
-            getFragmentManager().beginTransaction()
-                    .replace(R.id.container, queueFragment)
-                    .addToBackStack(null)
-                    .commit();
-        } else if (item.isBrowsable()) {
-            getFragmentManager().beginTransaction()
-                    .replace(R.id.container, BrowseFragment.newInstance(item.getMediaId()))
-                    .addToBackStack(null)
-                    .commit();
-        }
-    }
-
-    public void setMediaController(MediaControllerCompat mediaController) {
-        mMediaController = mediaController;
-    }
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/media/MediaController.java b/samples/Support4Demos/src/com/example/android/supportv4/media/MediaController.java
deleted file mode 100644
index b8d99d4..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/media/MediaController.java
+++ /dev/null
@@ -1,370 +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.supportv4.media;
-
-import android.support.v4.media.TransportController;
-import android.support.v4.media.TransportMediator;
-import android.support.v4.media.TransportStateListener;
-import com.example.android.supportv4.R;
-
-import android.content.Context;
-import android.util.AttributeSet;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.accessibility.AccessibilityEvent;
-import android.view.accessibility.AccessibilityNodeInfo;
-import android.widget.FrameLayout;
-import android.widget.ImageButton;
-import android.widget.ProgressBar;
-import android.widget.SeekBar;
-import android.widget.TextView;
-
-import java.util.Formatter;
-import java.util.Locale;
-
-/**
- * Helper for implementing media controls in an application.
- * Use instead of the very useful android.widget.MediaController.
- * This version is embedded inside of an application's layout.
- */
-public class MediaController extends FrameLayout {
-
-    private TransportController mController;
-    private Context mContext;
-    private ProgressBar mProgress;
-    private TextView mEndTime, mCurrentTime;
-    private boolean mDragging;
-    private boolean mUseFastForward;
-    private boolean mListenersSet;
-    private boolean mShowNext, mShowPrev;
-    private View.OnClickListener mNextListener, mPrevListener;
-    StringBuilder mFormatBuilder;
-    Formatter mFormatter;
-    private ImageButton mPauseButton;
-    private ImageButton mFfwdButton;
-    private ImageButton mRewButton;
-    private ImageButton mNextButton;
-    private ImageButton mPrevButton;
-
-    private TransportStateListener mStateListener = new TransportStateListener() {
-        @Override
-        public void onPlayingChanged(TransportController controller) {
-            updatePausePlay();
-        }
-        @Override
-        public void onTransportControlsChanged(TransportController controller) {
-            updateButtons();
-        }
-    };
-
-    public MediaController(Context context, AttributeSet attrs) {
-        super(context, attrs);
-        mContext = context;
-        mUseFastForward = true;
-        LayoutInflater inflate = (LayoutInflater)
-                mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
-        inflate.inflate(R.layout.media_controller, this, true);
-        initControllerView();
-    }
-
-    public MediaController(Context context, boolean useFastForward) {
-        super(context);
-        mContext = context;
-        mUseFastForward = useFastForward;
-    }
-
-    public MediaController(Context context) {
-        this(context, true);
-    }
-
-    public void setMediaPlayer(TransportController controller) {
-        if (getWindowToken() != null) {
-            if (mController != null) {
-                mController.unregisterStateListener(mStateListener);
-            }
-            if (controller != null) {
-                controller.registerStateListener(mStateListener);
-            }
-        }
-        mController = controller;
-        updatePausePlay();
-    }
-
-    @Override
-    protected void onAttachedToWindow() {
-        super.onAttachedToWindow();
-        if (mController != null) {
-            mController.registerStateListener(mStateListener);
-        }
-    }
-
-    @Override
-    protected void onDetachedFromWindow() {
-        super.onDetachedFromWindow();
-        if (mController != null) {
-            mController.unregisterStateListener(mStateListener);
-        }
-    }
-
-    private void initControllerView() {
-        mPauseButton = (ImageButton) findViewById(R.id.pause);
-        if (mPauseButton != null) {
-            mPauseButton.requestFocus();
-            mPauseButton.setOnClickListener(mPauseListener);
-        }
-
-        mFfwdButton = (ImageButton) findViewById(R.id.ffwd);
-        if (mFfwdButton != null) {
-            mFfwdButton.setOnClickListener(mFfwdListener);
-            mFfwdButton.setVisibility(mUseFastForward ? View.VISIBLE : View.GONE);
-        }
-
-        mRewButton = (ImageButton) findViewById(R.id.rew);
-        if (mRewButton != null) {
-            mRewButton.setOnClickListener(mRewListener);
-            mRewButton.setVisibility(mUseFastForward ? View.VISIBLE : View.GONE);
-        }
-
-        // By default these are hidden. They will be enabled when setPrevNextListeners() is called
-        mNextButton = (ImageButton) findViewById(R.id.next);
-        if (mNextButton != null && !mListenersSet) {
-            mNextButton.setVisibility(View.GONE);
-        }
-        mPrevButton = (ImageButton) findViewById(R.id.prev);
-        if (mPrevButton != null && !mListenersSet) {
-            mPrevButton.setVisibility(View.GONE);
-        }
-
-        mProgress = (ProgressBar) findViewById(R.id.mediacontroller_progress);
-        if (mProgress != null) {
-            if (mProgress instanceof SeekBar) {
-                SeekBar seeker = (SeekBar) mProgress;
-                seeker.setOnSeekBarChangeListener(mSeekListener);
-            }
-            mProgress.setMax(1000);
-        }
-
-        mEndTime = (TextView) findViewById(R.id.time);
-        mCurrentTime = (TextView) findViewById(R.id.time_current);
-        mFormatBuilder = new StringBuilder();
-        mFormatter = new Formatter(mFormatBuilder, Locale.getDefault());
-
-        installPrevNextListeners();
-    }
-
-    /**
-     * Disable pause or seek buttons if the stream cannot be paused or seeked.
-     * This requires the control interface to be a MediaPlayerControlExt
-     */
-    void updateButtons() {
-        int flags = mController.getTransportControlFlags();
-        boolean enabled = isEnabled();
-        if (mPauseButton != null) {
-            mPauseButton.setEnabled(enabled && (flags&TransportMediator.FLAG_KEY_MEDIA_PAUSE) != 0);
-        }
-        if (mRewButton != null) {
-            mRewButton.setEnabled(enabled && (flags&TransportMediator.FLAG_KEY_MEDIA_REWIND) != 0);
-        }
-        if (mFfwdButton != null) {
-            mFfwdButton.setEnabled(enabled &&
-                    (flags&TransportMediator.FLAG_KEY_MEDIA_FAST_FORWARD) != 0);
-        }
-        if (mPrevButton != null) {
-            mShowPrev = (flags&TransportMediator.FLAG_KEY_MEDIA_PREVIOUS) != 0
-                    || mPrevListener != null;
-            mPrevButton.setEnabled(enabled && mShowPrev);
-        }
-        if (mNextButton != null) {
-            mShowNext = (flags&TransportMediator.FLAG_KEY_MEDIA_NEXT) != 0
-                    || mNextListener != null;
-            mNextButton.setEnabled(enabled && mShowNext);
-        }
-    }
-
-    public void refresh() {
-        updateProgress();
-        updateButtons();
-        updatePausePlay();
-    }
-
-    private String stringForTime(int timeMs) {
-        int totalSeconds = timeMs / 1000;
-
-        int seconds = totalSeconds % 60;
-        int minutes = (totalSeconds / 60) % 60;
-        int hours   = totalSeconds / 3600;
-
-        mFormatBuilder.setLength(0);
-        if (hours > 0) {
-            return mFormatter.format("%d:%02d:%02d", hours, minutes, seconds).toString();
-        } else {
-            return mFormatter.format("%02d:%02d", minutes, seconds).toString();
-        }
-    }
-
-    public long updateProgress() {
-        if (mController == null || mDragging) {
-            return 0;
-        }
-        long position = mController.getCurrentPosition();
-        long duration = mController.getDuration();
-        if (mProgress != null) {
-            if (duration > 0) {
-                // use long to avoid overflow
-                long pos = 1000L * position / duration;
-                mProgress.setProgress( (int) pos);
-            }
-            int percent = mController.getBufferPercentage();
-            mProgress.setSecondaryProgress(percent * 10);
-        }
-
-        if (mEndTime != null)
-            mEndTime.setText(stringForTime((int)duration));
-        if (mCurrentTime != null)
-            mCurrentTime.setText(stringForTime((int)position));
-
-        return position;
-    }
-
-    private View.OnClickListener mPauseListener = new View.OnClickListener() {
-        public void onClick(View v) {
-            doPauseResume();
-        }
-    };
-
-    private void updatePausePlay() {
-        if (mPauseButton == null)
-            return;
-
-        if (mController.isPlaying()) {
-            mPauseButton.setImageResource(android.R.drawable.ic_media_pause);
-        } else {
-            mPauseButton.setImageResource(android.R.drawable.ic_media_play);
-        }
-    }
-
-    private void doPauseResume() {
-        if (mController.isPlaying()) {
-            mController.pausePlaying();
-        } else {
-            mController.startPlaying();
-        }
-        updatePausePlay();
-    }
-
-    // There are two scenarios that can trigger the seekbar listener to trigger:
-    //
-    // The first is the user using the touchpad to adjust the posititon of the
-    // seekbar's thumb. In this case onStartTrackingTouch is called followed by
-    // a number of onProgressChanged notifications, concluded by onStopTrackingTouch.
-    // We're setting the field "mDragging" to true for the duration of the dragging
-    // session to avoid jumps in the position in case of ongoing playback.
-    //
-    // The second scenario involves the user operating the scroll ball, in this
-    // case there WON'T BE onStartTrackingTouch/onStopTrackingTouch notifications,
-    // we will simply apply the updated position without suspending regular updates.
-    private SeekBar.OnSeekBarChangeListener mSeekListener = new SeekBar.OnSeekBarChangeListener() {
-        public void onStartTrackingTouch(SeekBar bar) {
-            mDragging = true;
-        }
-
-        public void onProgressChanged(SeekBar bar, int progress, boolean fromuser) {
-            if (!fromuser) {
-                // We're not interested in programmatically generated changes to
-                // the progress bar's position.
-                return;
-            }
-
-            long duration = mController.getDuration();
-            long newposition = (duration * progress) / 1000L;
-            mController.seekTo((int) newposition);
-            if (mCurrentTime != null)
-                mCurrentTime.setText(stringForTime( (int) newposition));
-        }
-
-        public void onStopTrackingTouch(SeekBar bar) {
-            mDragging = false;
-            updateProgress();
-            updatePausePlay();
-        }
-    };
-
-    @Override
-    public void setEnabled(boolean enabled) {
-        super.setEnabled(enabled);
-        updateButtons();
-    }
-
-    @Override
-    public void onInitializeAccessibilityEvent(AccessibilityEvent event) {
-        super.onInitializeAccessibilityEvent(event);
-        event.setClassName(MediaController.class.getName());
-    }
-
-    @Override
-    public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) {
-        super.onInitializeAccessibilityNodeInfo(info);
-        info.setClassName(MediaController.class.getName());
-    }
-
-    private View.OnClickListener mRewListener = new View.OnClickListener() {
-        public void onClick(View v) {
-            long pos = mController.getCurrentPosition();
-            pos -= 5000; // milliseconds
-            mController.seekTo(pos);
-            updateProgress();
-        }
-    };
-
-    private View.OnClickListener mFfwdListener = new View.OnClickListener() {
-        public void onClick(View v) {
-            long pos = mController.getCurrentPosition();
-            pos += 15000; // milliseconds
-            mController.seekTo(pos);
-            updateProgress();
-        }
-    };
-
-    private void installPrevNextListeners() {
-        if (mNextButton != null) {
-            mNextButton.setOnClickListener(mNextListener);
-            mNextButton.setEnabled(mShowNext);
-        }
-
-        if (mPrevButton != null) {
-            mPrevButton.setOnClickListener(mPrevListener);
-            mPrevButton.setEnabled(mShowPrev);
-        }
-    }
-
-    public void setPrevNextListeners(View.OnClickListener next, View.OnClickListener prev) {
-        mNextListener = next;
-        mPrevListener = prev;
-        mListenersSet = true;
-
-        installPrevNextListeners();
-
-        if (mNextButton != null) {
-            mNextButton.setVisibility(View.VISIBLE);
-            mShowNext = true;
-        }
-        if (mPrevButton != null) {
-            mPrevButton.setVisibility(View.VISIBLE);
-            mShowPrev = true;
-        }
-    }
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/media/MediaNotificationManager.java b/samples/Support4Demos/src/com/example/android/supportv4/media/MediaNotificationManager.java
deleted file mode 100644
index 6226382..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/media/MediaNotificationManager.java
+++ /dev/null
@@ -1,350 +0,0 @@
-/*
- * 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.supportv4.media;
-
-import android.app.Notification;
-import android.app.PendingIntent;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.graphics.Bitmap;
-import android.graphics.BitmapFactory;
-import android.graphics.Color;
-import android.os.RemoteException;
-import android.support.v4.app.NotificationCompat;
-import android.support.v4.app.NotificationManagerCompat;
-import android.support.v4.media.MediaDescriptionCompat;
-import android.support.v4.media.MediaMetadataCompat;
-import android.support.v4.media.session.MediaControllerCompat;
-import android.support.v4.media.session.MediaSessionCompat;
-import android.support.v4.media.session.PlaybackStateCompat;
-import android.util.Log;
-
-import com.example.android.supportv4.R;
-import com.example.android.supportv4.media.utils.ResourceHelper;
-
-/**
- * Keeps track of a notification and updates it automatically for a given
- * MediaSession. Maintaining a visible notification (usually) guarantees that the music service
- * won't be killed during playback.
- */
-public class MediaNotificationManager extends BroadcastReceiver {
-    private static final String TAG = "MediaNotiManager";
-
-    private static final int NOTIFICATION_ID = 412;
-    private static final int REQUEST_CODE = 100;
-
-    public static final String ACTION_PAUSE = "com.example.android.supportv4.media.pause";
-    public static final String ACTION_PLAY = "com.example.android.supportv4.media.play";
-    public static final String ACTION_PREV = "com.example.android.supportv4.media.prev";
-    public static final String ACTION_NEXT = "com.example.android.supportv4.media.next";
-
-    private final MediaBrowserServiceSupport mService;
-    private MediaSessionCompat.Token mSessionToken;
-    private MediaControllerCompat mController;
-    private MediaControllerCompat.TransportControls mTransportControls;
-
-    private PlaybackStateCompat mPlaybackState;
-    private MediaMetadataCompat mMetadata;
-
-    private NotificationManagerCompat mNotificationManager;
-
-    private PendingIntent mPauseIntent;
-    private PendingIntent mPlayIntent;
-    private PendingIntent mPreviousIntent;
-    private PendingIntent mNextIntent;
-
-    private int mNotificationColor;
-
-    private boolean mStarted = false;
-
-    public MediaNotificationManager(MediaBrowserServiceSupport service) {
-        mService = service;
-        updateSessionToken();
-
-        mNotificationColor = ResourceHelper.getThemeColor(mService,
-            android.R.attr.colorPrimary, Color.DKGRAY);
-
-        mNotificationManager = NotificationManagerCompat.from(mService);
-
-        String pkg = mService.getPackageName();
-        mPauseIntent = PendingIntent.getBroadcast(mService, REQUEST_CODE,
-                new Intent(ACTION_PAUSE).setPackage(pkg), PendingIntent.FLAG_CANCEL_CURRENT);
-        mPlayIntent = PendingIntent.getBroadcast(mService, REQUEST_CODE,
-                new Intent(ACTION_PLAY).setPackage(pkg), PendingIntent.FLAG_CANCEL_CURRENT);
-        mPreviousIntent = PendingIntent.getBroadcast(mService, REQUEST_CODE,
-                new Intent(ACTION_PREV).setPackage(pkg), PendingIntent.FLAG_CANCEL_CURRENT);
-        mNextIntent = PendingIntent.getBroadcast(mService, REQUEST_CODE,
-                new Intent(ACTION_NEXT).setPackage(pkg), PendingIntent.FLAG_CANCEL_CURRENT);
-
-        // Cancel all notifications to handle the case where the Service was killed and
-        // restarted by the system.
-        mNotificationManager.cancelAll();
-    }
-
-    /**
-     * Posts the notification and starts tracking the session to keep it
-     * updated. The notification will automatically be removed if the session is
-     * destroyed before {@link #stopNotification} is called.
-     */
-    public void startNotification() {
-        if (!mStarted) {
-            mMetadata = mController.getMetadata();
-            mPlaybackState = mController.getPlaybackState();
-
-            // The notification must be updated after setting started to true
-            Notification notification = createNotification();
-            if (notification != null) {
-                mController.registerCallback(mCb);
-                IntentFilter filter = new IntentFilter();
-                filter.addAction(ACTION_NEXT);
-                filter.addAction(ACTION_PAUSE);
-                filter.addAction(ACTION_PLAY);
-                filter.addAction(ACTION_PREV);
-                mService.registerReceiver(this, filter);
-
-                mService.startForeground(NOTIFICATION_ID, notification);
-                mStarted = true;
-            }
-        }
-    }
-
-    /**
-     * Removes the notification and stops tracking the session. If the session
-     * was destroyed this has no effect.
-     */
-    public void stopNotification() {
-        if (mStarted) {
-            mStarted = false;
-            mController.unregisterCallback(mCb);
-            try {
-                mNotificationManager.cancel(NOTIFICATION_ID);
-                mService.unregisterReceiver(this);
-            } catch (IllegalArgumentException ex) {
-                // ignore if the receiver is not registered.
-            }
-            mService.stopForeground(true);
-        }
-    }
-
-    @Override
-    public void onReceive(Context context, Intent intent) {
-        final String action = intent.getAction();
-        Log.d(TAG, "Received intent with action " + action);
-        switch (action) {
-            case ACTION_PAUSE:
-                mTransportControls.pause();
-                break;
-            case ACTION_PLAY:
-                mTransportControls.play();
-                break;
-            case ACTION_NEXT:
-                mTransportControls.skipToNext();
-                break;
-            case ACTION_PREV:
-                mTransportControls.skipToPrevious();
-                break;
-            default:
-                Log.w(TAG, "Unknown intent ignored. Action=" + action);
-        }
-    }
-
-    /**
-     * Update the state based on a change on the session token. Called either when
-     * we are running for the first time or when the media session owner has destroyed the session
-     * (see {@link android.media.session.MediaController.Callback#onSessionDestroyed()})
-     */
-    private void updateSessionToken() {
-        MediaSessionCompat.Token freshToken = mService.getSessionToken();
-        if (mSessionToken == null || !mSessionToken.equals(freshToken)) {
-            if (mController != null) {
-                mController.unregisterCallback(mCb);
-            }
-            mSessionToken = freshToken;
-            try {
-                mController = new MediaControllerCompat(mService, mSessionToken);
-            } catch (RemoteException e) {
-                Log.e(TAG, "Failed to create MediaControllerCompat.", e);
-            }
-            mTransportControls = mController.getTransportControls();
-            if (mStarted) {
-                mController.registerCallback(mCb);
-            }
-        }
-    }
-
-    private PendingIntent createContentIntent() {
-        Intent openUI = new Intent(mService, MediaBrowserSupport.class);
-        openUI.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
-        return PendingIntent.getActivity(mService, REQUEST_CODE, openUI,
-                PendingIntent.FLAG_CANCEL_CURRENT);
-    }
-
-    private final MediaControllerCompat.Callback mCb = new MediaControllerCompat.Callback() {
-        @Override
-        public void onPlaybackStateChanged(PlaybackStateCompat state) {
-            mPlaybackState = state;
-            Log.d(TAG, "Received new playback state " + state);
-            if (state != null && (state.getState() == PlaybackStateCompat.STATE_STOPPED ||
-                    state.getState() == PlaybackStateCompat.STATE_NONE)) {
-                stopNotification();
-            } else {
-                Notification notification = createNotification();
-                if (notification != null) {
-                    mNotificationManager.notify(NOTIFICATION_ID, notification);
-                }
-            }
-        }
-
-        @Override
-        public void onMetadataChanged(MediaMetadataCompat metadata) {
-            mMetadata = metadata;
-            Log.d(TAG, "Received new metadata " + metadata);
-            Notification notification = createNotification();
-            if (notification != null) {
-                mNotificationManager.notify(NOTIFICATION_ID, notification);
-            }
-        }
-
-        @Override
-        public void onSessionDestroyed() {
-            super.onSessionDestroyed();
-            Log.d(TAG, "Session was destroyed, resetting to the new session token");
-            updateSessionToken();
-        }
-    };
-
-    private Notification createNotification() {
-        Log.d(TAG, "updateNotificationMetadata. mMetadata=" + mMetadata);
-        if (mMetadata == null || mPlaybackState == null) {
-            return null;
-        }
-
-        NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(mService);
-
-        // If skip to previous action is enabled
-        if ((mPlaybackState.getActions() & PlaybackStateCompat.ACTION_SKIP_TO_PREVIOUS) != 0) {
-            notificationBuilder.addAction(R.drawable.ic_skip_previous_white_24dp,
-                        mService.getString(R.string.label_previous), mPreviousIntent);
-        }
-
-        addPlayPauseAction(notificationBuilder);
-
-        // If skip to next action is enabled
-        if ((mPlaybackState.getActions() & PlaybackStateCompat.ACTION_SKIP_TO_NEXT) != 0) {
-            notificationBuilder.addAction(R.drawable.ic_skip_next_white_24dp,
-                mService.getString(R.string.label_next), mNextIntent);
-        }
-
-        MediaDescriptionCompat description = mMetadata.getDescription();
-
-        String fetchArtUrl = null;
-        Bitmap art = null;
-        if (description.getIconUri() != null) {
-            // This sample assumes the iconUri will be a valid URL formatted String, but
-            // it can actually be any valid Android Uri formatted String.
-            // async fetch the album art icon
-            String artUrl = description.getIconUri().toString();
-            art = AlbumArtCache.getInstance().getBigImage(artUrl);
-            if (art == null) {
-                fetchArtUrl = artUrl;
-                // use a placeholder art while the remote art is being downloaded
-                art = BitmapFactory.decodeResource(mService.getResources(),
-                    R.drawable.ic_default_art);
-            }
-        }
-
-        notificationBuilder
-                .setColor(mNotificationColor)
-                .setSmallIcon(R.drawable.ic_notification)
-                .setVisibility(NotificationCompat.VISIBILITY_PUBLIC)
-                .setUsesChronometer(true)
-                .setContentIntent(createContentIntent())
-                .setContentTitle(description.getTitle())
-                .setContentText(description.getSubtitle())
-                .setLargeIcon(art);
-
-        setNotificationPlaybackState(notificationBuilder);
-        if (fetchArtUrl != null) {
-            fetchBitmapFromURLAsync(fetchArtUrl, notificationBuilder);
-        }
-
-        return notificationBuilder.build();
-    }
-
-    private void addPlayPauseAction(NotificationCompat.Builder builder) {
-        Log.d(TAG, "updatePlayPauseAction");
-        String label;
-        int icon;
-        PendingIntent intent;
-        if (mPlaybackState.getState() == PlaybackStateCompat.STATE_PLAYING) {
-            label = mService.getString(R.string.label_pause);
-            icon = R.drawable.ic_pause_white_24dp;
-            intent = mPauseIntent;
-        } else {
-            label = mService.getString(R.string.label_play);
-            icon = R.drawable.ic_play_arrow_white_24dp;
-            intent = mPlayIntent;
-        }
-        builder.addAction(new NotificationCompat.Action(icon, label, intent));
-    }
-
-    private void setNotificationPlaybackState(NotificationCompat.Builder builder) {
-        Log.d(TAG, "updateNotificationPlaybackState. mPlaybackState=" + mPlaybackState);
-        if (mPlaybackState == null || !mStarted) {
-            Log.d(TAG, "updateNotificationPlaybackState. cancelling notification!");
-            mService.stopForeground(true);
-            return;
-        }
-        if (mPlaybackState.getState() == PlaybackStateCompat.STATE_PLAYING
-                && mPlaybackState.getPosition() >= 0) {
-            Log.d(TAG, "updateNotificationPlaybackState. updating playback position to "
-                    + (System.currentTimeMillis() - mPlaybackState.getPosition()) / 1000
-                    + " seconds");
-            builder
-                .setWhen(System.currentTimeMillis() - mPlaybackState.getPosition())
-                .setShowWhen(true)
-                .setUsesChronometer(true);
-        } else {
-            Log.d(TAG, "updateNotificationPlaybackState. hiding playback position");
-            builder
-                .setWhen(0)
-                .setShowWhen(false)
-                .setUsesChronometer(false);
-        }
-
-        // Make sure that the notification can be dismissed by the user when we are not playing:
-        builder.setOngoing(mPlaybackState.getState() == PlaybackStateCompat.STATE_PLAYING);
-    }
-
-    private void fetchBitmapFromURLAsync(final String bitmapUrl,
-                                         final NotificationCompat.Builder builder) {
-        AlbumArtCache.getInstance().fetch(bitmapUrl, new AlbumArtCache.FetchListener() {
-            @Override
-            public void onFetched(String artUrl, Bitmap bitmap, Bitmap icon) {
-                if (mMetadata != null && mMetadata.getDescription() != null &&
-                    artUrl.equals(mMetadata.getDescription().getIconUri().toString())) {
-                    // If the media is still the same, update the notification:
-                    Log.d(TAG, "fetchBitmapFromURLAsync: set bitmap to " + artUrl);
-                    builder.setLargeIcon(bitmap);
-                    mNotificationManager.notify(NOTIFICATION_ID, builder.build());
-                }
-            }
-        });
-    }
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/media/PackageValidator.java b/samples/Support4Demos/src/com/example/android/supportv4/media/PackageValidator.java
deleted file mode 100644
index bcb7c32..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/media/PackageValidator.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
- * 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.supportv4.media;
-
-import android.content.Context;
-import android.content.pm.PackageInfo;
-import android.content.pm.PackageManager;
-import android.content.res.XmlResourceParser;
-import android.os.Process;
-import android.util.Base64;
-import android.util.Log;
-
-import com.example.android.supportv4.R;
-
-import org.xmlpull.v1.XmlPullParserException;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * Validates that the calling package is authorized to browse a
- * {@link android.service.media.MediaBrowserService}.
- *
- * The list of allowed signing certificates and their corresponding package names is defined in
- * res/xml/allowed_media_browser_callers.xml.
- */
-public class PackageValidator {
-    private static final String TAG = "PackageValidator";
-
-    /**
-     * Map allowed callers' certificate keys to the expected caller information.
-     *
-     */
-    private final Map<String, ArrayList<CallerInfo>> mValidCertificates;
-
-    public PackageValidator(Context ctx) {
-        mValidCertificates = readValidCertificates(ctx.getResources().getXml(
-            R.xml.allowed_media_browser_callers));
-    }
-
-    private Map<String, ArrayList<CallerInfo>> readValidCertificates(XmlResourceParser parser) {
-        HashMap<String, ArrayList<CallerInfo>> validCertificates = new HashMap<>();
-        try {
-            int eventType = parser.next();
-            while (eventType != XmlResourceParser.END_DOCUMENT) {
-                if (eventType == XmlResourceParser.START_TAG
-                        && parser.getName().equals("signing_certificate")) {
-
-                    String name = parser.getAttributeValue(null, "name");
-                    String packageName = parser.getAttributeValue(null, "package");
-                    boolean isRelease = parser.getAttributeBooleanValue(null, "release", false);
-                    String certificate = parser.nextText().replaceAll("\\s|\\n", "");
-
-                    CallerInfo info = new CallerInfo(name, packageName, isRelease, certificate);
-
-                    ArrayList<CallerInfo> infos = validCertificates.get(certificate);
-                    if (infos == null) {
-                        infos = new ArrayList<>();
-                        validCertificates.put(certificate, infos);
-                    }
-                    Log.v(TAG, "Adding allowed caller: " + info.name + " package="
-                            + info.packageName + " release=" + info.release + " certificate="
-                            + certificate);
-                    infos.add(info);
-                }
-                eventType = parser.next();
-            }
-        } catch (XmlPullParserException | IOException e) {
-            Log.e(TAG, "Could not read allowed callers from XML.", e);
-        }
-        return validCertificates;
-    }
-
-    /**
-     * @return false if the caller is not authorized to get data from this MediaBrowserService
-     */
-    @SuppressWarnings("BooleanMethodIsAlwaysInverted")
-    public boolean isCallerAllowed(Context context, String callingPackage, int callingUid) {
-        // Always allow calls from the framework, self app or development environment.
-        if (Process.SYSTEM_UID == callingUid || Process.myUid() == callingUid) {
-            return true;
-        }
-        PackageManager packageManager = context.getPackageManager();
-        PackageInfo packageInfo;
-        try {
-            packageInfo = packageManager.getPackageInfo(
-                    callingPackage, PackageManager.GET_SIGNATURES);
-        } catch (PackageManager.NameNotFoundException e) {
-            Log.w(TAG, "Package manager can't find package: " + callingPackage, e);
-            return false;
-        }
-        if (packageInfo.signatures.length != 1) {
-            Log.w(TAG, "Caller has more than one signature certificate!");
-            return false;
-        }
-        String signature = Base64.encodeToString(
-            packageInfo.signatures[0].toByteArray(), Base64.NO_WRAP);
-
-        // Test for known signatures:
-        ArrayList<CallerInfo> validCallers = mValidCertificates.get(signature);
-        if (validCallers == null) {
-            Log.v(TAG, "Signature for caller " + callingPackage + " is not valid: \n" + signature);
-            if (mValidCertificates.isEmpty()) {
-                Log.w(TAG, "The list of valid certificates is empty. Either your file"
-                        + " res/xml/allowed_media_browser_callers.xml is empty or there was an"
-                        + " error while reading it. Check previous log messages.");
-            }
-            return false;
-        }
-
-        // Check if the package name is valid for the certificate:
-        StringBuffer expectedPackages = new StringBuffer();
-        for (CallerInfo info: validCallers) {
-            if (callingPackage.equals(info.packageName)) {
-                Log.v(TAG, "Valid caller: " + info.name + "  package=" + info.packageName
-                    + " release=" + info.release);
-                return true;
-            }
-            expectedPackages.append(info.packageName).append(' ');
-        }
-
-        Log.i(TAG, "Caller has a valid certificate, but its package doesn't match any expected"
-                + "package for the given certificate. Caller's package is " + callingPackage
-                + ". Expected packages as defined in res/xml/allowed_media_browser_callers.xml are"
-                +" (" + expectedPackages + "). This caller's certificate is: \n" + signature);
-
-        return false;
-    }
-
-    private final static class CallerInfo {
-        final String name;
-        final String packageName;
-        final boolean release;
-        final String signingCertificate;
-
-        public CallerInfo(String name, String packageName, boolean release,
-                          String signingCertificate) {
-            this.name = name;
-            this.packageName = packageName;
-            this.release = release;
-            this.signingCertificate = signingCertificate;
-        }
-    }
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/media/Playback.java b/samples/Support4Demos/src/com/example/android/supportv4/media/Playback.java
deleted file mode 100644
index 62c236f..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/media/Playback.java
+++ /dev/null
@@ -1,490 +0,0 @@
-/*
- * 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.supportv4.media;
-
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.media.AudioManager;
-import android.media.MediaPlayer;
-import android.media.session.PlaybackState;
-import android.net.wifi.WifiManager;
-import android.os.PowerManager;
-import android.support.v4.media.MediaMetadataCompat;
-import android.text.TextUtils;
-import android.util.Log;
-
-import com.example.android.supportv4.media.model.MusicProvider;
-import com.example.android.supportv4.media.utils.MediaIDHelper;
-
-import java.io.IOException;
-
-import static android.media.MediaPlayer.OnCompletionListener;
-import static android.media.MediaPlayer.OnErrorListener;
-import static android.media.MediaPlayer.OnPreparedListener;
-import static android.media.MediaPlayer.OnSeekCompleteListener;
-import static android.support.v4.media.session.MediaSessionCompat.QueueItem;
-
-/**
- * A class that implements local media playback using {@link android.media.MediaPlayer}
- */
-public class Playback implements AudioManager.OnAudioFocusChangeListener,
-        OnCompletionListener, OnErrorListener, OnPreparedListener, OnSeekCompleteListener {
-
-    private static final String TAG = "Playback";
-
-    // The volume we set the media player to when we lose audio focus, but are
-    // allowed to reduce the volume instead of stopping playback.
-    public static final float VOLUME_DUCK = 0.2f;
-    // The volume we set the media player when we have audio focus.
-    public static final float VOLUME_NORMAL = 1.0f;
-
-    // we don't have audio focus, and can't duck (play at a low volume)
-    private static final int AUDIO_NO_FOCUS_NO_DUCK = 0;
-    // we don't have focus, but can duck (play at a low volume)
-    private static final int AUDIO_NO_FOCUS_CAN_DUCK = 1;
-    // we have full audio focus
-    private static final int AUDIO_FOCUSED  = 2;
-
-    private final MediaBrowserServiceSupport mService;
-    private final WifiManager.WifiLock mWifiLock;
-    private int mState;
-    private boolean mPlayOnFocusGain;
-    private Callback mCallback;
-    private MusicProvider mMusicProvider;
-    private volatile boolean mAudioNoisyReceiverRegistered;
-    private volatile int mCurrentPosition;
-    private volatile String mCurrentMediaId;
-
-    // Type of audio focus we have:
-    private int mAudioFocus = AUDIO_NO_FOCUS_NO_DUCK;
-    private AudioManager mAudioManager;
-    private MediaPlayer mMediaPlayer;
-
-    private IntentFilter mAudioNoisyIntentFilter =
-            new IntentFilter(AudioManager.ACTION_AUDIO_BECOMING_NOISY);
-
-    private BroadcastReceiver mAudioNoisyReceiver = new BroadcastReceiver() {
-        @Override
-        public void onReceive(Context context, Intent intent) {
-            if (AudioManager.ACTION_AUDIO_BECOMING_NOISY.equals(intent.getAction())) {
-                Log.d(TAG, "Headphones disconnected.");
-                if (isPlaying()) {
-                    Intent i = new Intent(context, MediaBrowserServiceSupport.class);
-                    i.setAction(MediaBrowserServiceSupport.ACTION_CMD);
-                    i.putExtra(MediaBrowserServiceSupport.CMD_NAME, MediaBrowserServiceSupport.CMD_PAUSE);
-                    mService.startService(i);
-                }
-            }
-        }
-    };
-
-    public Playback(MediaBrowserServiceSupport service, MusicProvider musicProvider) {
-        this.mService = service;
-        this.mMusicProvider = musicProvider;
-        this.mAudioManager = (AudioManager) service.getSystemService(Context.AUDIO_SERVICE);
-        // Create the Wifi lock (this does not acquire the lock, this just creates it)
-        this.mWifiLock = ((WifiManager) service.getSystemService(Context.WIFI_SERVICE))
-                .createWifiLock(WifiManager.WIFI_MODE_FULL, "sample_lock");
-    }
-
-    public void start() {
-    }
-
-    public void stop(boolean notifyListeners) {
-        mState = PlaybackState.STATE_STOPPED;
-        if (notifyListeners && mCallback != null) {
-            mCallback.onPlaybackStatusChanged(mState);
-        }
-        mCurrentPosition = getCurrentStreamPosition();
-        // Give up Audio focus
-        giveUpAudioFocus();
-        unregisterAudioNoisyReceiver();
-        // Relax all resources
-        relaxResources(true);
-        if (mWifiLock.isHeld()) {
-            mWifiLock.release();
-        }
-    }
-
-    public void setState(int state) {
-        this.mState = state;
-    }
-
-    public int getState() {
-        return mState;
-    }
-
-    public boolean isConnected() {
-        return true;
-    }
-
-    public boolean isPlaying() {
-        return mPlayOnFocusGain || (mMediaPlayer != null && mMediaPlayer.isPlaying());
-    }
-
-    public int getCurrentStreamPosition() {
-        return mMediaPlayer != null ?
-                mMediaPlayer.getCurrentPosition() : mCurrentPosition;
-    }
-
-    public void play(QueueItem item) {
-        mPlayOnFocusGain = true;
-        tryToGetAudioFocus();
-        registerAudioNoisyReceiver();
-        String mediaId = item.getDescription().getMediaId();
-        boolean mediaHasChanged = !TextUtils.equals(mediaId, mCurrentMediaId);
-        if (mediaHasChanged) {
-            mCurrentPosition = 0;
-            mCurrentMediaId = mediaId;
-        }
-
-        if (mState == PlaybackState.STATE_PAUSED && !mediaHasChanged && mMediaPlayer != null) {
-            configMediaPlayerState();
-        } else {
-            mState = PlaybackState.STATE_STOPPED;
-            relaxResources(false); // release everything except MediaPlayer
-            MediaMetadataCompat track = mMusicProvider.getMusic(
-                    MediaIDHelper.extractMusicIDFromMediaID(item.getDescription().getMediaId()));
-
-            String source = track.getString(MusicProvider.CUSTOM_METADATA_TRACK_SOURCE);
-
-            try {
-                createMediaPlayerIfNeeded();
-
-                mState = PlaybackState.STATE_BUFFERING;
-
-                mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
-                mMediaPlayer.setDataSource(source);
-
-                // Starts preparing the media player in the background. When
-                // it's done, it will call our OnPreparedListener (that is,
-                // the onPrepared() method on this class, since we set the
-                // listener to 'this'). Until the media player is prepared,
-                // we *cannot* call start() on it!
-                mMediaPlayer.prepareAsync();
-
-                // If we are streaming from the internet, we want to hold a
-                // Wifi lock, which prevents the Wifi radio from going to
-                // sleep while the song is playing.
-                mWifiLock.acquire();
-
-                if (mCallback != null) {
-                    mCallback.onPlaybackStatusChanged(mState);
-                }
-
-            } catch (IOException ex) {
-                Log.e(TAG, "Exception playing song", ex);
-                if (mCallback != null) {
-                    mCallback.onError(ex.getMessage());
-                }
-            }
-        }
-    }
-
-    public void pause() {
-        if (mState == PlaybackState.STATE_PLAYING) {
-            // Pause media player and cancel the 'foreground service' state.
-            if (mMediaPlayer != null && mMediaPlayer.isPlaying()) {
-                mMediaPlayer.pause();
-                mCurrentPosition = mMediaPlayer.getCurrentPosition();
-            }
-            // while paused, retain the MediaPlayer but give up audio focus
-            relaxResources(false);
-            giveUpAudioFocus();
-        }
-        mState = PlaybackState.STATE_PAUSED;
-        if (mCallback != null) {
-            mCallback.onPlaybackStatusChanged(mState);
-        }
-        unregisterAudioNoisyReceiver();
-    }
-
-    public void seekTo(int position) {
-        Log.d(TAG, "seekTo called with " + position);
-
-        if (mMediaPlayer == null) {
-            // If we do not have a current media player, simply update the current position
-            mCurrentPosition = position;
-        } else {
-            if (mMediaPlayer.isPlaying()) {
-                mState = PlaybackState.STATE_BUFFERING;
-            }
-            mMediaPlayer.seekTo(position);
-            if (mCallback != null) {
-                mCallback.onPlaybackStatusChanged(mState);
-            }
-        }
-    }
-
-    public void setCallback(Callback callback) {
-        this.mCallback = callback;
-    }
-
-    /**
-     * Try to get the system audio focus.
-     */
-    private void tryToGetAudioFocus() {
-        Log.d(TAG, "tryToGetAudioFocus");
-        if (mAudioFocus != AUDIO_FOCUSED) {
-            int result = mAudioManager.requestAudioFocus(this, AudioManager.STREAM_MUSIC,
-                    AudioManager.AUDIOFOCUS_GAIN);
-            if (result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
-                mAudioFocus = AUDIO_FOCUSED;
-            }
-        }
-    }
-
-    /**
-     * Give up the audio focus.
-     */
-    private void giveUpAudioFocus() {
-        Log.d(TAG, "giveUpAudioFocus");
-        if (mAudioFocus == AUDIO_FOCUSED) {
-            if (mAudioManager.abandonAudioFocus(this) == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
-                mAudioFocus = AUDIO_NO_FOCUS_NO_DUCK;
-            }
-        }
-    }
-
-    /**
-     * Reconfigures MediaPlayer according to audio focus settings and
-     * starts/restarts it. This method starts/restarts the MediaPlayer
-     * respecting the current audio focus state. So if we have focus, it will
-     * play normally; if we don't have focus, it will either leave the
-     * MediaPlayer paused or set it to a low volume, depending on what is
-     * allowed by the current focus settings. This method assumes mPlayer !=
-     * null, so if you are calling it, you have to do so from a context where
-     * you are sure this is the case.
-     */
-    private void configMediaPlayerState() {
-        Log.d(TAG, "configMediaPlayerState. mAudioFocus=" + mAudioFocus);
-        if (mAudioFocus == AUDIO_NO_FOCUS_NO_DUCK) {
-            // If we don't have audio focus and can't duck, we have to pause,
-            if (mState == PlaybackState.STATE_PLAYING) {
-                pause();
-            }
-        } else {  // we have audio focus:
-            if (mAudioFocus == AUDIO_NO_FOCUS_CAN_DUCK) {
-                mMediaPlayer.setVolume(VOLUME_DUCK, VOLUME_DUCK); // we'll be relatively quiet
-            } else {
-                if (mMediaPlayer != null) {
-                    mMediaPlayer.setVolume(VOLUME_NORMAL, VOLUME_NORMAL); // we can be loud again
-                } // else do something for remote client.
-            }
-            // If we were playing when we lost focus, we need to resume playing.
-            if (mPlayOnFocusGain) {
-                if (mMediaPlayer != null && !mMediaPlayer.isPlaying()) {
-                    Log.d(TAG,"configMediaPlayerState startMediaPlayer. seeking to "
-                            + mCurrentPosition);
-                    if (mCurrentPosition == mMediaPlayer.getCurrentPosition()) {
-                        mMediaPlayer.start();
-                        mState = PlaybackState.STATE_PLAYING;
-                    } else {
-                        mMediaPlayer.seekTo(mCurrentPosition);
-                        mState = PlaybackState.STATE_BUFFERING;
-                    }
-                }
-                mPlayOnFocusGain = false;
-            }
-        }
-        if (mCallback != null) {
-            mCallback.onPlaybackStatusChanged(mState);
-        }
-    }
-
-    /**
-     * Called by AudioManager on audio focus changes.
-     * Implementation of {@link android.media.AudioManager.OnAudioFocusChangeListener}
-     */
-    @Override
-    public void onAudioFocusChange(int focusChange) {
-        Log.d(TAG, "onAudioFocusChange. focusChange=" + focusChange);
-        if (focusChange == AudioManager.AUDIOFOCUS_GAIN) {
-            // We have gained focus:
-            mAudioFocus = AUDIO_FOCUSED;
-
-        } else if (focusChange == AudioManager.AUDIOFOCUS_LOSS ||
-                focusChange == AudioManager.AUDIOFOCUS_LOSS_TRANSIENT ||
-                focusChange == AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK) {
-            // We have lost focus. If we can duck (low playback volume), we can keep playing.
-            // Otherwise, we need to pause the playback.
-            boolean canDuck = focusChange == AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK;
-            mAudioFocus = canDuck ? AUDIO_NO_FOCUS_CAN_DUCK : AUDIO_NO_FOCUS_NO_DUCK;
-
-            // If we are playing, we need to reset media player by calling configMediaPlayerState
-            // with mAudioFocus properly set.
-            if (mState == PlaybackState.STATE_PLAYING && !canDuck) {
-                // If we don't have audio focus and can't duck, we save the information that
-                // we were playing, so that we can resume playback once we get the focus back.
-                mPlayOnFocusGain = true;
-            }
-        } else {
-            Log.e(TAG, "onAudioFocusChange: Ignoring unsupported focusChange: " + focusChange);
-        }
-        configMediaPlayerState();
-    }
-
-    /**
-     * Called when MediaPlayer has completed a seek
-     *
-     * @see android.media.MediaPlayer.OnSeekCompleteListener
-     */
-    @Override
-    public void onSeekComplete(MediaPlayer mp) {
-        Log.d(TAG, "onSeekComplete from MediaPlayer:" + mp.getCurrentPosition());
-        mCurrentPosition = mp.getCurrentPosition();
-        if (mState == PlaybackState.STATE_BUFFERING) {
-            mMediaPlayer.start();
-            mState = PlaybackState.STATE_PLAYING;
-        }
-        if (mCallback != null) {
-            mCallback.onPlaybackStatusChanged(mState);
-        }
-    }
-
-    /**
-     * Called when media player is done playing current song.
-     *
-     * @see android.media.MediaPlayer.OnCompletionListener
-     */
-    @Override
-    public void onCompletion(MediaPlayer player) {
-        Log.d(TAG, "onCompletion from MediaPlayer");
-        // The media player finished playing the current song, so we go ahead
-        // and start the next.
-        if (mCallback != null) {
-            mCallback.onCompletion();
-        }
-    }
-
-    /**
-     * Called when media player is done preparing.
-     *
-     * @see android.media.MediaPlayer.OnPreparedListener
-     */
-    @Override
-    public void onPrepared(MediaPlayer player) {
-        Log.d(TAG, "onPrepared from MediaPlayer");
-        // The media player is done preparing. That means we can start playing if we
-        // have audio focus.
-        configMediaPlayerState();
-    }
-
-    /**
-     * Called when there's an error playing media. When this happens, the media
-     * player goes to the Error state. We warn the user about the error and
-     * reset the media player.
-     *
-     * @see android.media.MediaPlayer.OnErrorListener
-     */
-    @Override
-    public boolean onError(MediaPlayer mp, int what, int extra) {
-        Log.e(TAG, "Media player error: what=" + what + ", extra=" + extra);
-        if (mCallback != null) {
-            mCallback.onError("MediaPlayer error " + what + " (" + extra + ")");
-        }
-        return true; // true indicates we handled the error
-    }
-
-    /**
-     * Makes sure the media player exists and has been reset. This will create
-     * the media player if needed, or reset the existing media player if one
-     * already exists.
-     */
-    private void createMediaPlayerIfNeeded() {
-        Log.d(TAG, "createMediaPlayerIfNeeded. needed? " + (mMediaPlayer==null));
-        if (mMediaPlayer == null) {
-            mMediaPlayer = new MediaPlayer();
-
-            // Make sure the media player will acquire a wake-lock while
-            // playing. If we don't do that, the CPU might go to sleep while the
-            // song is playing, causing playback to stop.
-            mMediaPlayer.setWakeMode(mService.getApplicationContext(),
-                    PowerManager.PARTIAL_WAKE_LOCK);
-
-            // we want the media player to notify us when it's ready preparing,
-            // and when it's done playing:
-            mMediaPlayer.setOnPreparedListener(this);
-            mMediaPlayer.setOnCompletionListener(this);
-            mMediaPlayer.setOnErrorListener(this);
-            mMediaPlayer.setOnSeekCompleteListener(this);
-        } else {
-            mMediaPlayer.reset();
-        }
-    }
-
-    /**
-     * Releases resources used by the service for playback. This includes the
-     * "foreground service" status, the wake locks and possibly the MediaPlayer.
-     *
-     * @param releaseMediaPlayer Indicates whether the Media Player should also
-     *            be released or not
-     */
-    private void relaxResources(boolean releaseMediaPlayer) {
-        Log.d(TAG, "relaxResources. releaseMediaPlayer=" + releaseMediaPlayer);
-
-        mService.stopForeground(true);
-
-        // stop and release the Media Player, if it's available
-        if (releaseMediaPlayer && mMediaPlayer != null) {
-            mMediaPlayer.reset();
-            mMediaPlayer.release();
-            mMediaPlayer = null;
-        }
-
-        // we can also release the Wifi lock, if we're holding it
-        if (mWifiLock.isHeld()) {
-            mWifiLock.release();
-        }
-    }
-
-    private void registerAudioNoisyReceiver() {
-        if (!mAudioNoisyReceiverRegistered) {
-            mService.registerReceiver(mAudioNoisyReceiver, mAudioNoisyIntentFilter);
-            mAudioNoisyReceiverRegistered = true;
-        }
-    }
-
-    private void unregisterAudioNoisyReceiver() {
-        if (mAudioNoisyReceiverRegistered) {
-            mService.unregisterReceiver(mAudioNoisyReceiver);
-            mAudioNoisyReceiverRegistered = false;
-        }
-    }
-
-    interface Callback {
-        /**
-         * On current music completed.
-         */
-        void onCompletion();
-        /**
-         * on Playback status changed
-         * Implementations can use this callback to update
-         * playback state on the media sessions.
-         */
-        void onPlaybackStatusChanged(int state);
-
-        /**
-         * @param error to be added to the PlaybackState
-         */
-        void onError(String error);
-
-    }
-
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/media/QueueAdapter.java b/samples/Support4Demos/src/com/example/android/supportv4/media/QueueAdapter.java
deleted file mode 100644
index 0702e2b..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/media/QueueAdapter.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * 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.supportv4.media;
-
-import com.example.android.supportv4.R;
-import android.app.Activity;
-import android.support.v4.media.session.MediaSessionCompat;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.ArrayAdapter;
-import android.widget.ImageView;
-import android.widget.TextView;
-
-import java.util.ArrayList;
-
-/**
- * A list adapter for items in a queue
- */
-public class QueueAdapter extends ArrayAdapter<MediaSessionCompat.QueueItem> {
-
-    // The currently selected/active queue item Id.
-    private long mActiveQueueItemId = MediaSessionCompat.QueueItem.UNKNOWN_ID;
-
-    public QueueAdapter(Activity context) {
-        super(context, R.layout.media_list_item, new ArrayList<MediaSessionCompat.QueueItem>());
-    }
-
-    public void setActiveQueueItemId(long id) {
-        this.mActiveQueueItemId = id;
-    }
-
-    private static class ViewHolder {
-        ImageView mImageView;
-        TextView mTitleView;
-        TextView mDescriptionView;
-    }
-
-    public View getView(int position, View convertView, ViewGroup parent) {
-        ViewHolder holder;
-
-        if (convertView == null) {
-            convertView = LayoutInflater.from(getContext())
-                    .inflate(R.layout.media_list_item, parent, false);
-            holder = new ViewHolder();
-            holder.mImageView = (ImageView) convertView.findViewById(R.id.play_eq);
-            holder.mTitleView = (TextView) convertView.findViewById(R.id.title);
-            holder.mDescriptionView = (TextView) convertView.findViewById(R.id.description);
-            convertView.setTag(holder);
-        } else {
-            holder = (ViewHolder) convertView.getTag();
-        }
-
-        MediaSessionCompat.QueueItem item = getItem(position);
-        holder.mTitleView.setText(item.getDescription().getTitle());
-        if (item.getDescription().getDescription() != null) {
-            holder.mDescriptionView.setText(item.getDescription().getDescription());
-        }
-
-        // If the itemId matches the active Id then use a different icon
-        if (mActiveQueueItemId == item.getQueueId()) {
-            holder.mImageView.setImageDrawable(
-                    getContext().getResources().getDrawable(R.drawable.ic_equalizer_white_24dp));
-        } else {
-            holder.mImageView.setImageDrawable(
-                    getContext().getResources().getDrawable(R.drawable.ic_play_arrow_white_24dp));
-        }
-        return convertView;
-    }
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/media/QueueFragment.java b/samples/Support4Demos/src/com/example/android/supportv4/media/QueueFragment.java
deleted file mode 100644
index f66447d..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/media/QueueFragment.java
+++ /dev/null
@@ -1,304 +0,0 @@
-/*
- * 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.supportv4.media;
-
-import android.app.Fragment;
-import android.content.ComponentName;
-import android.os.Bundle;
-import android.os.RemoteException;
-import android.support.v4.media.MediaBrowserCompat;
-import android.support.v4.media.session.MediaControllerCompat;
-import android.support.v4.media.session.MediaSessionCompat;
-import android.support.v4.media.session.PlaybackStateCompat;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.AdapterView;
-import android.widget.ImageButton;
-import android.widget.ListView;
-
-import com.example.android.supportv4.R;
-
-import java.util.List;
-
-/**
- * A class that shows the Media Queue to the user.
- */
-public class QueueFragment extends Fragment {
-
-    private static final String TAG = "QueueFragment";
-
-    private ImageButton mSkipNext;
-    private ImageButton mSkipPrevious;
-    private ImageButton mPlayPause;
-
-    private MediaBrowserCompat mMediaBrowser;
-    private MediaControllerCompat.TransportControls mTransportControls;
-    private MediaControllerCompat mMediaController;
-    private PlaybackStateCompat mPlaybackState;
-
-    private QueueAdapter mQueueAdapter;
-
-    private MediaBrowserCompat.ConnectionCallback mConnectionCallback =
-            new MediaBrowserCompat.ConnectionCallback() {
-        @Override
-        public void onConnected() {
-            Log.d(TAG, "onConnected: session token " + mMediaBrowser.getSessionToken());
-
-            if (mMediaBrowser.getSessionToken() == null) {
-                throw new IllegalArgumentException("No Session token");
-            }
-
-            try {
-                mMediaController = new MediaControllerCompat(getActivity(),
-                        mMediaBrowser.getSessionToken());
-            } catch (RemoteException e) {
-                Log.e(TAG, "Failed to create MediaControllerCompat.", e);
-            }
-            mTransportControls = mMediaController.getTransportControls();
-            mMediaController.registerCallback(mSessionCallback);
-
-            ((MediaBrowserSupport) getActivity()).setMediaController(mMediaController);
-            mPlaybackState = mMediaController.getPlaybackState();
-
-            List<MediaSessionCompat.QueueItem> queue = mMediaController.getQueue();
-            if (queue != null) {
-                mQueueAdapter.clear();
-                mQueueAdapter.notifyDataSetInvalidated();
-                mQueueAdapter.addAll(queue);
-                mQueueAdapter.notifyDataSetChanged();
-            }
-            onPlaybackStateChanged(mPlaybackState);
-        }
-
-        @Override
-        public void onConnectionFailed() {
-            Log.d(TAG, "onConnectionFailed");
-        }
-
-        @Override
-        public void onConnectionSuspended() {
-            Log.d(TAG, "onConnectionSuspended");
-            mMediaController.unregisterCallback(mSessionCallback);
-            mTransportControls = null;
-            mMediaController = null;
-            getActivity().setMediaController(null);
-        }
-    };
-
-    // Receive callbacks from the MediaController. Here we update our state such as which queue
-    // is being shown, the current title and description and the PlaybackState.
-    private MediaControllerCompat.Callback mSessionCallback = new MediaControllerCompat.Callback() {
-
-        @Override
-        public void onSessionDestroyed() {
-            Log.d(TAG, "Session destroyed. Need to fetch a new Media Session");
-        }
-
-        @Override
-        public void onPlaybackStateChanged(PlaybackStateCompat state) {
-            if (state == null) {
-                return;
-            }
-            Log.d(TAG, "Received playback state change to state " + state.getState());
-            mPlaybackState = state;
-            QueueFragment.this.onPlaybackStateChanged(state);
-        }
-
-        @Override
-        public void onQueueChanged(List<MediaSessionCompat.QueueItem> queue) {
-            Log.d(TAG, "onQueueChanged " + queue);
-            if (queue != null) {
-                mQueueAdapter.clear();
-                mQueueAdapter.notifyDataSetInvalidated();
-                mQueueAdapter.addAll(queue);
-                mQueueAdapter.notifyDataSetChanged();
-            }
-        }
-    };
-
-    public static QueueFragment newInstance() {
-        return new QueueFragment();
-    }
-
-    @Override
-    public View onCreateView(LayoutInflater inflater, ViewGroup container,
-                             Bundle savedInstanceState) {
-        View rootView = inflater.inflate(R.layout.fragment_list, container, false);
-
-        mSkipPrevious = (ImageButton) rootView.findViewById(R.id.skip_previous);
-        mSkipPrevious.setEnabled(false);
-        mSkipPrevious.setOnClickListener(mButtonListener);
-
-        mSkipNext = (ImageButton) rootView.findViewById(R.id.skip_next);
-        mSkipNext.setEnabled(false);
-        mSkipNext.setOnClickListener(mButtonListener);
-
-        mPlayPause = (ImageButton) rootView.findViewById(R.id.play_pause);
-        mPlayPause.setEnabled(true);
-        mPlayPause.setOnClickListener(mButtonListener);
-
-        mQueueAdapter = new QueueAdapter(getActivity());
-
-        ListView mListView = (ListView) rootView.findViewById(R.id.list_view);
-        mListView.setAdapter(mQueueAdapter);
-        mListView.setFocusable(true);
-        mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
-            @Override
-            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
-                MediaSessionCompat.QueueItem item = mQueueAdapter.getItem(position);
-                mTransportControls.skipToQueueItem(item.getQueueId());
-            }
-        });
-
-        mMediaBrowser = new MediaBrowserCompat(getActivity(),
-                new ComponentName(getActivity(), MediaBrowserServiceSupport.class),
-                mConnectionCallback, null);
-
-        return rootView;
-    }
-
-    @Override
-    public void onResume() {
-        super.onResume();
-        if (mMediaBrowser != null) {
-            mMediaBrowser.connect();
-        }
-    }
-
-    @Override
-    public void onPause() {
-        super.onPause();
-        if (mMediaController != null) {
-            mMediaController.unregisterCallback(mSessionCallback);
-        }
-        if (mMediaBrowser != null) {
-            mMediaBrowser.disconnect();
-        }
-    }
-
-
-    private void onPlaybackStateChanged(PlaybackStateCompat state) {
-        Log.d(TAG, "onPlaybackStateChanged " + state);
-        if (state == null) {
-            return;
-        }
-        mQueueAdapter.setActiveQueueItemId(state.getActiveQueueItemId());
-        mQueueAdapter.notifyDataSetChanged();
-        boolean enablePlay = false;
-        StringBuilder statusBuilder = new StringBuilder();
-        switch (state.getState()) {
-            case PlaybackStateCompat.STATE_PLAYING:
-                statusBuilder.append("playing");
-                enablePlay = false;
-                break;
-            case PlaybackStateCompat.STATE_PAUSED:
-                statusBuilder.append("paused");
-                enablePlay = true;
-                break;
-            case PlaybackStateCompat.STATE_STOPPED:
-                statusBuilder.append("ended");
-                enablePlay = true;
-                break;
-            case PlaybackStateCompat.STATE_ERROR:
-                statusBuilder.append("error: ").append(state.getErrorMessage());
-                break;
-            case PlaybackStateCompat.STATE_BUFFERING:
-                statusBuilder.append("buffering");
-                break;
-            case PlaybackStateCompat.STATE_NONE:
-                statusBuilder.append("none");
-                enablePlay = false;
-                break;
-            case PlaybackStateCompat.STATE_CONNECTING:
-                statusBuilder.append("connecting");
-                break;
-            default:
-                statusBuilder.append(mPlaybackState);
-        }
-        statusBuilder.append(" -- At position: ").append(state.getPosition());
-        Log.d(TAG, statusBuilder.toString());
-
-        if (enablePlay) {
-            mPlayPause.setImageDrawable(
-                    getActivity().getResources().getDrawable(R.drawable.ic_play_arrow_white_24dp));
-        } else {
-            mPlayPause.setImageDrawable(
-                    getActivity().getResources().getDrawable(R.drawable.ic_pause_white_24dp));
-        }
-
-        mSkipPrevious.setEnabled((state.getActions() & PlaybackStateCompat.ACTION_SKIP_TO_PREVIOUS)
-                != 0);
-        mSkipNext.setEnabled((state.getActions() & PlaybackStateCompat.ACTION_SKIP_TO_NEXT) != 0);
-
-        Log.d(TAG, "Queue From MediaController *** Title "
-                + mMediaController.getQueueTitle() + "\n: Queue: " + mMediaController.getQueue()
-                + "\n Metadata " + mMediaController.getMetadata());
-    }
-
-    private View.OnClickListener mButtonListener = new View.OnClickListener() {
-        @Override
-        public void onClick(View v) {
-            final int state = mPlaybackState == null ?
-                    PlaybackStateCompat.STATE_NONE : mPlaybackState.getState();
-            switch (v.getId()) {
-                case R.id.play_pause:
-                    Log.d(TAG, "Play button pressed, in state " + state);
-                    if (state == PlaybackStateCompat.STATE_PAUSED ||
-                            state == PlaybackStateCompat.STATE_STOPPED ||
-                            state == PlaybackStateCompat.STATE_NONE) {
-                        playMedia();
-                    } else if (state == PlaybackStateCompat.STATE_PLAYING) {
-                        pauseMedia();
-                    }
-                    break;
-                case R.id.skip_previous:
-                    Log.d(TAG, "Start button pressed, in state " + state);
-                    skipToPrevious();
-                    break;
-                case R.id.skip_next:
-                    skipToNext();
-                    break;
-            }
-        }
-    };
-
-    private void playMedia() {
-        if (mTransportControls != null) {
-            mTransportControls.play();
-        }
-    }
-
-    private void pauseMedia() {
-        if (mTransportControls != null) {
-            mTransportControls.pause();
-        }
-    }
-
-    private void skipToPrevious() {
-        if (mTransportControls != null) {
-            mTransportControls.skipToPrevious();
-        }
-    }
-
-    private void skipToNext() {
-        if (mTransportControls != null) {
-            mTransportControls.skipToNext();
-        }
-    }
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/media/TransportControllerActivity.java b/samples/Support4Demos/src/com/example/android/supportv4/media/TransportControllerActivity.java
deleted file mode 100644
index abb3c97..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/media/TransportControllerActivity.java
+++ /dev/null
@@ -1,307 +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.supportv4.media;
-
-//BEGIN_INCLUDE(complete)
-import android.support.v4.media.TransportMediator;
-import android.support.v4.media.TransportPerformer;
-import com.example.android.supportv4.R;
-
-import android.app.ActionBar;
-import android.content.Context;
-import android.media.MediaPlayer;
-import android.os.Handler;
-import android.util.AttributeSet;
-import android.view.KeyEvent;
-import android.view.View;
-
-import android.app.Activity;
-import android.net.Uri;
-import android.os.Bundle;
-import android.widget.VideoView;
-
-public class TransportControllerActivity extends Activity {
-
-    /**
-     * TODO: Set the path variable to a streaming video URL or a local media
-     * file path.
-     */
-    private Content mContent;
-    private TransportMediator mTransportMediator;
-    private MediaController mMediaController;
-
-    /**
-     * Handle actions from on-screen media controls.  Most of these are simple re-directs
-     * to the VideoView; some we need to capture to update our state.
-     */
-    TransportPerformer mTransportPerformer = new TransportPerformer() {
-        @Override public void onStart() {
-            mContent.start();
-        }
-
-        @Override public void onStop() {
-            mContent.pause();
-        }
-
-        @Override public void onPause() {
-            mContent.pause();
-        }
-
-        @Override public long onGetDuration() {
-            return mContent.getDuration();
-        }
-
-        @Override public long onGetCurrentPosition() {
-            return mContent.getCurrentPosition();
-        }
-
-        @Override public void onSeekTo(long pos) {
-            mContent.seekTo((int)pos);
-        }
-
-        @Override public boolean onIsPlaying() {
-            return mContent.isPlaying();
-        }
-
-        @Override public int onGetBufferPercentage() {
-            return mContent.getBufferPercentage();
-        }
-
-        @Override public int onGetTransportControlFlags() {
-            int flags = TransportMediator.FLAG_KEY_MEDIA_PLAY
-                    | TransportMediator.FLAG_KEY_MEDIA_PLAY_PAUSE
-                    | TransportMediator.FLAG_KEY_MEDIA_STOP;
-            if (mContent.canPause()) {
-                flags |= TransportMediator.FLAG_KEY_MEDIA_PAUSE;
-            }
-            if (mContent.canSeekBackward()) {
-                flags |= TransportMediator.FLAG_KEY_MEDIA_REWIND;
-            }
-            if (mContent.canSeekForward()) {
-                flags |= TransportMediator.FLAG_KEY_MEDIA_FAST_FORWARD;
-            }
-            return flags;
-        }
-    };
-
-    /**
-     * This is the actual video player.  It is the top-level content of
-     * the activity's view hierarchy, going under the status bar and nav
-     * bar areas.
-     */
-    public static class Content extends VideoView implements
-            View.OnSystemUiVisibilityChangeListener, View.OnClickListener,
-            ActionBar.OnMenuVisibilityListener, MediaPlayer.OnPreparedListener,
-            MediaPlayer.OnCompletionListener, MediaPlayer.OnErrorListener {
-        Activity mActivity;
-        TransportMediator mTransportMediator;
-        MediaController mMediaController;
-        boolean mAddedMenuListener;
-        boolean mMenusOpen;
-        boolean mPaused;
-        boolean mNavVisible;
-        int mLastSystemUiVis;
-
-        Runnable mNavHider = new Runnable() {
-            @Override public void run() {
-                setNavVisibility(false);
-            }
-        };
-
-        Runnable mProgressUpdater = new Runnable() {
-            @Override public void run() {
-                mMediaController.updateProgress();
-                getHandler().postDelayed(this, 1000);
-            }
-        };
-
-        public Content(Context context, AttributeSet attrs) {
-            super(context, attrs);
-            setOnSystemUiVisibilityChangeListener(this);
-            setOnClickListener(this);
-            setOnPreparedListener(this);
-            setOnCompletionListener(this);
-            setOnErrorListener(this);
-        }
-
-        public void init(Activity activity, TransportMediator transportMediator,
-                MediaController mediaController) {
-            // This called by the containing activity to supply the surrounding
-            // state of the video player that it will interact with.
-            mActivity = activity;
-            mTransportMediator = transportMediator;
-            mMediaController = mediaController;
-            pause();
-        }
-
-        @Override protected void onAttachedToWindow() {
-            super.onAttachedToWindow();
-            if (mActivity != null) {
-                mAddedMenuListener = true;
-                mActivity.getActionBar().addOnMenuVisibilityListener(this);
-            }
-        }
-
-        @Override protected void onDetachedFromWindow() {
-            super.onDetachedFromWindow();
-            if (mAddedMenuListener) {
-                mActivity.getActionBar().removeOnMenuVisibilityListener(this);
-            }
-            mNavVisible = false;
-        }
-
-        @Override public void onSystemUiVisibilityChange(int visibility) {
-            // Detect when we go out of nav-hidden mode, to clear our state
-            // back to having the full UI chrome up.  Only do this when
-            // the state is changing and nav is no longer hidden.
-            int diff = mLastSystemUiVis ^ visibility;
-            mLastSystemUiVis = visibility;
-            if ((diff&SYSTEM_UI_FLAG_HIDE_NAVIGATION) != 0
-                    && (visibility&SYSTEM_UI_FLAG_HIDE_NAVIGATION) == 0) {
-                setNavVisibility(true);
-            }
-        }
-
-        @Override protected void onWindowVisibilityChanged(int visibility) {
-            super.onWindowVisibilityChanged(visibility);
-
-            // When we become visible or invisible, play is paused.
-            pause();
-        }
-
-        @Override public void onClick(View v) {
-            // Clicking anywhere makes the navigation visible.
-            setNavVisibility(true);
-        }
-
-        @Override public void onMenuVisibilityChanged(boolean isVisible) {
-            mMenusOpen = isVisible;
-            setNavVisibility(true);
-        }
-
-        @Override
-        public void onPrepared(MediaPlayer mp) {
-            mMediaController.setEnabled(true);
-        }
-
-        @Override
-        public void onCompletion(MediaPlayer mp) {
-            mTransportMediator.pausePlaying();
-            pause();
-        }
-
-        @Override
-        public boolean onError(MediaPlayer mp, int what, int extra) {
-            mTransportMediator.pausePlaying();
-            pause();
-            return false;
-        }
-
-        @Override public void start() {
-            super.start();
-            mPaused = false;
-            setKeepScreenOn(true);
-            setNavVisibility(true);
-            mMediaController.refresh();
-            scheduleProgressUpdater();
-        }
-
-        @Override public void pause() {
-            super.pause();
-            mPaused = true;
-            setKeepScreenOn(false);
-            setNavVisibility(true);
-            mMediaController.refresh();
-            scheduleProgressUpdater();
-        }
-
-        void scheduleProgressUpdater() {
-            Handler h = getHandler();
-            if (h != null) {
-                if (mNavVisible && !mPaused) {
-                    h.removeCallbacks(mProgressUpdater);
-                    h.post(mProgressUpdater);
-                } else {
-                    h.removeCallbacks(mProgressUpdater);
-                }
-            }
-        }
-
-        void setNavVisibility(boolean visible) {
-            int newVis = SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
-                    | SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
-                    | SYSTEM_UI_FLAG_LAYOUT_STABLE;
-            if (!visible) {
-                newVis |= SYSTEM_UI_FLAG_LOW_PROFILE | SYSTEM_UI_FLAG_FULLSCREEN
-                        | SYSTEM_UI_FLAG_HIDE_NAVIGATION;
-            }
-
-            // If we are now visible, schedule a timer for us to go invisible.
-            if (visible) {
-                Handler h = getHandler();
-                if (h != null) {
-                    h.removeCallbacks(mNavHider);
-                    if (!mMenusOpen && !mPaused) {
-                        // If the menus are open or play is paused, we will not auto-hide.
-                        h.postDelayed(mNavHider, 3000);
-                    }
-                }
-            }
-
-            // Set the new desired visibility.
-            setSystemUiVisibility(newVis);
-            mNavVisible = visible;
-            mMediaController.setVisibility(visible ? VISIBLE : INVISIBLE);
-            scheduleProgressUpdater();
-        }
-    }
-
-    @Override
-    public void onCreate(Bundle icicle) {
-        super.onCreate(icicle);
-        setContentView(R.layout.videoview);
-
-        // Find the video player in our UI.
-        mContent = (Content) findViewById(R.id.content);
-
-        // Create transport controller to control video, giving the callback
-        // interface to receive actions from.
-        mTransportMediator = new TransportMediator(this, mTransportPerformer);
-
-        // Create and initialize the media control UI.
-        mMediaController = (MediaController) findViewById(R.id.media_controller);
-        mMediaController.setMediaPlayer(mTransportMediator);
-
-        // We're just playing a built-in demo video.
-        mContent.init(this, mTransportMediator, mMediaController);
-        mContent.setVideoURI(Uri.parse("android.resource://" + getPackageName() +
-                "/" + R.raw.videoviewdemo));
-    }
-
-    @Override
-    public boolean dispatchKeyEvent(KeyEvent event) {
-        // We first dispatch keys to the transport controller -- we want it
-        // to get to consume any media keys rather than letting whoever has focus
-        // in the view hierarchy to potentially eat it.
-        if (mTransportMediator.dispatchKeyEvent(event)) {
-            return true;
-        }
-
-        return super.dispatchKeyEvent(event);
-    }
-}
-//END_INCLUDE(complete)
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/media/model/MusicProvider.java b/samples/Support4Demos/src/com/example/android/supportv4/media/model/MusicProvider.java
deleted file mode 100644
index 777ca8d..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/media/model/MusicProvider.java
+++ /dev/null
@@ -1,324 +0,0 @@
-/*
- * 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.supportv4.media.model;
-
-import android.os.AsyncTask;
-import android.support.v4.media.MediaMetadataCompat;
-import android.util.Log;
-
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.json.JSONObject;
-
-import java.io.BufferedInputStream;
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.net.URL;
-import java.net.URLConnection;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Set;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
-
-/**
- * Utility class to get a list of MusicTrack's based on a server-side JSON
- * configuration.
- */
-public class MusicProvider {
-
-    private static final String TAG = "MusicProvider";
-
-    private static final String CATALOG_URL =
-        "http://storage.googleapis.com/automotive-media/music.json";
-
-    public static final String CUSTOM_METADATA_TRACK_SOURCE = "__SOURCE__";
-
-    private static final String JSON_MUSIC = "music";
-    private static final String JSON_TITLE = "title";
-    private static final String JSON_ALBUM = "album";
-    private static final String JSON_ARTIST = "artist";
-    private static final String JSON_GENRE = "genre";
-    private static final String JSON_SOURCE = "source";
-    private static final String JSON_IMAGE = "image";
-    private static final String JSON_TRACK_NUMBER = "trackNumber";
-    private static final String JSON_TOTAL_TRACK_COUNT = "totalTrackCount";
-    private static final String JSON_DURATION = "duration";
-
-    // Categorized caches for music track data:
-    private ConcurrentMap<String, List<MediaMetadataCompat>> mMusicListByGenre;
-    private final ConcurrentMap<String, MutableMediaMetadata> mMusicListById;
-
-    private final Set<String> mFavoriteTracks;
-
-    enum State {
-        NON_INITIALIZED, INITIALIZING, INITIALIZED
-    }
-
-    private volatile State mCurrentState = State.NON_INITIALIZED;
-
-    public interface Callback {
-        void onMusicCatalogReady(boolean success);
-    }
-
-    public MusicProvider() {
-        mMusicListByGenre = new ConcurrentHashMap<>();
-        mMusicListById = new ConcurrentHashMap<>();
-        mFavoriteTracks = Collections.newSetFromMap(new ConcurrentHashMap<String, Boolean>());
-    }
-
-    /**
-     * Get an iterator over the list of genres
-     *
-     * @return genres
-     */
-    public Iterable<String> getGenres() {
-        if (mCurrentState != State.INITIALIZED) {
-            return Collections.emptyList();
-        }
-        return mMusicListByGenre.keySet();
-    }
-
-    /**
-     * Get music tracks of the given genre
-     *
-     */
-    public Iterable<MediaMetadataCompat> getMusicsByGenre(String genre) {
-        if (mCurrentState != State.INITIALIZED || !mMusicListByGenre.containsKey(genre)) {
-            return Collections.emptyList();
-        }
-        return mMusicListByGenre.get(genre);
-    }
-
-    /**
-     * Very basic implementation of a search that filter music tracks which title containing
-     * the given query.
-     *
-     */
-    public Iterable<MediaMetadataCompat> searchMusic(String titleQuery) {
-        if (mCurrentState != State.INITIALIZED) {
-            return Collections.emptyList();
-        }
-        ArrayList<MediaMetadataCompat> result = new ArrayList<>();
-        titleQuery = titleQuery.toLowerCase();
-        for (MutableMediaMetadata track : mMusicListById.values()) {
-            if (track.metadata.getString(MediaMetadataCompat.METADATA_KEY_TITLE).toLowerCase()
-                    .contains(titleQuery)) {
-                result.add(track.metadata);
-            }
-        }
-        return result;
-    }
-
-    /**
-     * Return the MediaMetadata for the given musicID.
-     *
-     * @param musicId The unique, non-hierarchical music ID.
-     */
-    public MediaMetadataCompat getMusic(String musicId) {
-        return mMusicListById.containsKey(musicId) ? mMusicListById.get(musicId).metadata : null;
-    }
-
-    public synchronized void updateMusic(String musicId, MediaMetadataCompat metadata) {
-        MutableMediaMetadata track = mMusicListById.get(musicId);
-        if (track == null) {
-            return;
-        }
-
-        String oldGenre = track.metadata.getString(MediaMetadataCompat.METADATA_KEY_GENRE);
-        String newGenre = metadata.getString(MediaMetadataCompat.METADATA_KEY_GENRE);
-
-        track.metadata = metadata;
-
-        // if genre has changed, we need to rebuild the list by genre
-        if (!oldGenre.equals(newGenre)) {
-            buildListsByGenre();
-        }
-    }
-
-    public void setFavorite(String musicId, boolean favorite) {
-        if (favorite) {
-            mFavoriteTracks.add(musicId);
-        } else {
-            mFavoriteTracks.remove(musicId);
-        }
-    }
-
-    public boolean isFavorite(String musicId) {
-        return mFavoriteTracks.contains(musicId);
-    }
-
-    public boolean isInitialized() {
-        return mCurrentState == State.INITIALIZED;
-    }
-
-    /**
-     * Get the list of music tracks from a server and caches the track information
-     * for future reference, keying tracks by musicId and grouping by genre.
-     */
-    public void retrieveMediaAsync(final Callback callback) {
-        Log.d(TAG, "retrieveMediaAsync called");
-        if (mCurrentState == State.INITIALIZED) {
-            // Nothing to do, execute callback immediately
-            callback.onMusicCatalogReady(true);
-            return;
-        }
-
-        // Asynchronously load the music catalog in a separate thread
-        new AsyncTask<Void, Void, State>() {
-            @Override
-            protected State doInBackground(Void... params) {
-                retrieveMedia();
-                return mCurrentState;
-            }
-
-            @Override
-            protected void onPostExecute(State current) {
-                if (callback != null) {
-                    callback.onMusicCatalogReady(current == State.INITIALIZED);
-                }
-            }
-        }.execute();
-    }
-
-    private synchronized void buildListsByGenre() {
-        ConcurrentMap<String, List<MediaMetadataCompat>> newMusicListByGenre = new ConcurrentHashMap<>();
-
-        for (MutableMediaMetadata m : mMusicListById.values()) {
-            String genre = m.metadata.getString(MediaMetadataCompat.METADATA_KEY_GENRE);
-            List<MediaMetadataCompat> list = newMusicListByGenre.get(genre);
-            if (list == null) {
-                list = new ArrayList<>();
-                newMusicListByGenre.put(genre, list);
-            }
-            list.add(m.metadata);
-        }
-        mMusicListByGenre = newMusicListByGenre;
-    }
-
-    private synchronized void retrieveMedia() {
-        try {
-            if (mCurrentState == State.NON_INITIALIZED) {
-                mCurrentState = State.INITIALIZING;
-
-                int slashPos = CATALOG_URL.lastIndexOf('/');
-                String path = CATALOG_URL.substring(0, slashPos + 1);
-                JSONObject jsonObj = fetchJSONFromUrl(CATALOG_URL);
-                if (jsonObj == null) {
-                    return;
-                }
-                JSONArray tracks = jsonObj.getJSONArray(JSON_MUSIC);
-                if (tracks != null) {
-                    for (int j = 0; j < tracks.length(); j++) {
-                        MediaMetadataCompat item = buildFromJSON(tracks.getJSONObject(j), path);
-                        String musicId = item.getString(MediaMetadataCompat.METADATA_KEY_MEDIA_ID);
-                        mMusicListById.put(musicId, new MutableMediaMetadata(musicId, item));
-                    }
-                    buildListsByGenre();
-                }
-                mCurrentState = State.INITIALIZED;
-            }
-        } catch (JSONException e) {
-            Log.e(TAG, "Could not retrieve music list", e);
-        } finally {
-            if (mCurrentState != State.INITIALIZED) {
-                // Something bad happened, so we reset state to NON_INITIALIZED to allow
-                // retries (eg if the network connection is temporary unavailable)
-                mCurrentState = State.NON_INITIALIZED;
-            }
-        }
-    }
-
-    private MediaMetadataCompat buildFromJSON(JSONObject json, String basePath) throws JSONException {
-        String title = json.getString(JSON_TITLE);
-        String album = json.getString(JSON_ALBUM);
-        String artist = json.getString(JSON_ARTIST);
-        String genre = json.getString(JSON_GENRE);
-        String source = json.getString(JSON_SOURCE);
-        String iconUrl = json.getString(JSON_IMAGE);
-        int trackNumber = json.getInt(JSON_TRACK_NUMBER);
-        int totalTrackCount = json.getInt(JSON_TOTAL_TRACK_COUNT);
-        int duration = json.getInt(JSON_DURATION) * 1000; // ms
-
-        Log.d(TAG, "Found music track: " + json);
-
-        // Media is stored relative to JSON file
-        if (!source.startsWith("http")) {
-            source = basePath + source;
-        }
-        if (!iconUrl.startsWith("http")) {
-            iconUrl = basePath + iconUrl;
-        }
-        // Since we don't have a unique ID in the server, we fake one using the hashcode of
-        // the music source. In a real world app, this could come from the server.
-        String id = String.valueOf(source.hashCode());
-
-        // Adding the music source to the MediaMetadata (and consequently using it in the
-        // mediaSession.setMetadata) is not a good idea for a real world music app, because
-        // the session metadata can be accessed by notification listeners. This is done in this
-        // sample for convenience only.
-        return new MediaMetadataCompat.Builder()
-                .putString(MediaMetadataCompat.METADATA_KEY_MEDIA_ID, id)
-                .putString(CUSTOM_METADATA_TRACK_SOURCE, source)
-                .putString(MediaMetadataCompat.METADATA_KEY_ALBUM, album)
-                .putString(MediaMetadataCompat.METADATA_KEY_ARTIST, artist)
-                .putLong(MediaMetadataCompat.METADATA_KEY_DURATION, duration)
-                .putString(MediaMetadataCompat.METADATA_KEY_GENRE, genre)
-                .putString(MediaMetadataCompat.METADATA_KEY_ALBUM_ART_URI, iconUrl)
-                .putString(MediaMetadataCompat.METADATA_KEY_TITLE, title)
-                .putLong(MediaMetadataCompat.METADATA_KEY_TRACK_NUMBER, trackNumber)
-                .putLong(MediaMetadataCompat.METADATA_KEY_NUM_TRACKS, totalTrackCount)
-                .build();
-    }
-
-    /**
-     * Download a JSON file from a server, parse the content and return the JSON
-     * object.
-     *
-     * @return result JSONObject containing the parsed representation.
-     */
-    private JSONObject fetchJSONFromUrl(String urlString) {
-        InputStream is = null;
-        try {
-            URL url = new URL(urlString);
-            URLConnection urlConnection = url.openConnection();
-            is = new BufferedInputStream(urlConnection.getInputStream());
-            BufferedReader reader = new BufferedReader(new InputStreamReader(
-                    urlConnection.getInputStream(), "iso-8859-1"));
-            StringBuilder sb = new StringBuilder();
-            String line;
-            while ((line = reader.readLine()) != null) {
-                sb.append(line);
-            }
-            return new JSONObject(sb.toString());
-        } catch (Exception e) {
-            Log.e(TAG, "Failed to parse the json for media list", e);
-            return null;
-        } finally {
-            if (is != null) {
-                try {
-                    is.close();
-                } catch (IOException e) {
-                    // ignore
-                }
-            }
-        }
-    }
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/media/model/MutableMediaMetadata.java b/samples/Support4Demos/src/com/example/android/supportv4/media/model/MutableMediaMetadata.java
deleted file mode 100644
index 50ce107..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/media/model/MutableMediaMetadata.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * 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.supportv4.media.model;
-
-import android.support.v4.media.MediaMetadataCompat;
-import android.text.TextUtils;
-
-/**
- * Holder class that encapsulates a MediaMetadata and allows the actual metadata to be modified
- * without requiring to rebuild the collections the metadata is in.
- */
-public class MutableMediaMetadata {
-
-    public MediaMetadataCompat metadata;
-    public final String trackId;
-
-    public MutableMediaMetadata(String trackId, MediaMetadataCompat metadata) {
-        this.metadata = metadata;
-        this.trackId = trackId;
-    }
-
-    @Override
-    public boolean equals(Object o) {
-        if (this == o) {
-            return true;
-        }
-        if (o == null || o.getClass() != MutableMediaMetadata.class) {
-            return false;
-        }
-
-        MutableMediaMetadata that = (MutableMediaMetadata) o;
-
-        return TextUtils.equals(trackId, that.trackId);
-    }
-
-    @Override
-    public int hashCode() {
-        return trackId.hashCode();
-    }
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/media/utils/BitmapHelper.java b/samples/Support4Demos/src/com/example/android/supportv4/media/utils/BitmapHelper.java
deleted file mode 100644
index ededa11..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/media/utils/BitmapHelper.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * 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.supportv4.media.utils;
-
-import android.graphics.Bitmap;
-import android.graphics.BitmapFactory;
-import android.util.Log;
-
-import java.io.BufferedInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.HttpURLConnection;
-import java.net.URL;
-
-public class BitmapHelper {
-    private static final String TAG = "BitmapHelper";
-
-    // Max read limit that we allow our input stream to mark/reset.
-    private static final int MAX_READ_LIMIT_PER_IMG = 1024 * 1024;
-
-    public static Bitmap scaleBitmap(Bitmap src, int maxWidth, int maxHeight) {
-       double scaleFactor = Math.min(
-           ((double) maxWidth)/src.getWidth(), ((double) maxHeight)/src.getHeight());
-        return Bitmap.createScaledBitmap(src,
-            (int) (src.getWidth() * scaleFactor), (int) (src.getHeight() * scaleFactor), false);
-    }
-
-    public static Bitmap scaleBitmap(int scaleFactor, InputStream is) {
-        // Get the dimensions of the bitmap
-        BitmapFactory.Options bmOptions = new BitmapFactory.Options();
-
-        // Decode the image file into a Bitmap sized to fill the View
-        bmOptions.inJustDecodeBounds = false;
-        bmOptions.inSampleSize = scaleFactor;
-
-        return BitmapFactory.decodeStream(is, null, bmOptions);
-    }
-
-    public static int findScaleFactor(int targetW, int targetH, InputStream is) {
-        // Get the dimensions of the bitmap
-        BitmapFactory.Options bmOptions = new BitmapFactory.Options();
-        bmOptions.inJustDecodeBounds = true;
-        BitmapFactory.decodeStream(is, null, bmOptions);
-        int actualW = bmOptions.outWidth;
-        int actualH = bmOptions.outHeight;
-
-        // Determine how much to scale down the image
-        return Math.min(actualW/targetW, actualH/targetH);
-    }
-
-    @SuppressWarnings("SameParameterValue")
-    public static Bitmap fetchAndRescaleBitmap(String uri, int width, int height)
-            throws IOException {
-        URL url = new URL(uri);
-        BufferedInputStream is = null;
-        try {
-            HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
-            is = new BufferedInputStream(urlConnection.getInputStream());
-            is.mark(MAX_READ_LIMIT_PER_IMG);
-            int scaleFactor = findScaleFactor(width, height, is);
-            Log.d(TAG, "Scaling bitmap " + uri + " by factor " + scaleFactor + " to support "
-                    + width + "x" + height + "requested dimension");
-            is.reset();
-            return scaleBitmap(scaleFactor, is);
-        } finally {
-            if (is != null) {
-                is.close();
-            }
-        }
-    }
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/media/utils/CarHelper.java b/samples/Support4Demos/src/com/example/android/supportv4/media/utils/CarHelper.java
deleted file mode 100644
index d2b94cd..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/media/utils/CarHelper.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * 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.supportv4.media.utils;
-
-import android.os.Bundle;
-
-public class CarHelper {
-    private static final String AUTO_APP_PACKAGE_NAME = "com.google.android.projection.gearhead";
-
-    // Use these extras to reserve space for the corresponding actions, even when they are disabled
-    // in the playbackstate, so the custom actions don't reflow.
-    private static final String SLOT_RESERVATION_SKIP_TO_NEXT =
-            "com.google.android.gms.car.media.ALWAYS_RESERVE_SPACE_FOR.ACTION_SKIP_TO_NEXT";
-    private static final String SLOT_RESERVATION_SKIP_TO_PREV =
-            "com.google.android.gms.car.media.ALWAYS_RESERVE_SPACE_FOR.ACTION_SKIP_TO_PREVIOUS";
-    private static final String SLOT_RESERVATION_QUEUE =
-            "com.google.android.gms.car.media.ALWAYS_RESERVE_SPACE_FOR.ACTION_QUEUE";
-
-
-    public static boolean isValidCarPackage(String packageName) {
-        return AUTO_APP_PACKAGE_NAME.equals(packageName);
-    }
-
-    public static void setSlotReservationFlags(Bundle extras, boolean reservePlayingQueueSlot,
-          boolean reserveSkipToNextSlot, boolean reserveSkipToPrevSlot) {
-        if (reservePlayingQueueSlot) {
-            extras.putBoolean(SLOT_RESERVATION_QUEUE, true);
-        } else {
-            extras.remove(SLOT_RESERVATION_QUEUE);
-        }
-        if (reserveSkipToPrevSlot) {
-            extras.putBoolean(SLOT_RESERVATION_SKIP_TO_PREV, true);
-        } else {
-            extras.remove(SLOT_RESERVATION_SKIP_TO_PREV);
-        }
-        if (reserveSkipToNextSlot) {
-            extras.putBoolean(SLOT_RESERVATION_SKIP_TO_NEXT, true);
-        } else {
-            extras.remove(SLOT_RESERVATION_SKIP_TO_NEXT);
-        }
-    }
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/media/utils/MediaIDHelper.java b/samples/Support4Demos/src/com/example/android/supportv4/media/utils/MediaIDHelper.java
deleted file mode 100644
index 8baaaf2..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/media/utils/MediaIDHelper.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * 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.supportv4.media.utils;
-
-import java.util.Arrays;
-
-/**
- * Utility class to help on queue related tasks.
- */
-public class MediaIDHelper {
-
-    private static final String TAG = "MediaIDHelper";
-
-    // Media IDs used on browseable items of MediaBrowser
-    public static final String MEDIA_ID_ROOT = "__ROOT__";
-    public static final String MEDIA_ID_MUSICS_BY_GENRE = "__BY_GENRE__";
-    public static final String MEDIA_ID_MUSICS_BY_SEARCH = "__BY_SEARCH__";
-
-    private static final char CATEGORY_SEPARATOR = '/';
-    private static final char LEAF_SEPARATOR = '|';
-
-    public static String createMediaID(String musicID, String... categories) {
-        // MediaIDs are of the form <categoryType>/<categoryValue>|<musicUniqueId>, to make it easy
-        // to find the category (like genre) that a music was selected from, so we
-        // can correctly build the playing queue. This is specially useful when
-        // one music can appear in more than one list, like "by genre -> genre_1"
-        // and "by artist -> artist_1".
-        StringBuilder sb = new StringBuilder();
-        if (categories != null && categories.length > 0) {
-            sb.append(categories[0]);
-            for (int i=1; i < categories.length; i++) {
-                sb.append(CATEGORY_SEPARATOR).append(categories[i]);
-            }
-        }
-        if (musicID != null) {
-            sb.append(LEAF_SEPARATOR).append(musicID);
-        }
-        return sb.toString();
-    }
-
-    public static String createBrowseCategoryMediaID(String categoryType, String categoryValue) {
-        return categoryType + CATEGORY_SEPARATOR + categoryValue;
-    }
-
-    /**
-     * Extracts unique musicID from the mediaID. mediaID is, by this sample's convention, a
-     * concatenation of category (eg "by_genre"), categoryValue (eg "Classical") and unique
-     * musicID. This is necessary so we know where the user selected the music from, when the music
-     * exists in more than one music list, and thus we are able to correctly build the playing queue.
-     *
-     * @param mediaID that contains the musicID
-     * @return musicID
-     */
-    public static String extractMusicIDFromMediaID(String mediaID) {
-        int pos = mediaID.indexOf(LEAF_SEPARATOR);
-        if (pos >= 0) {
-            return mediaID.substring(pos+1);
-        }
-        return null;
-    }
-
-    /**
-     * Extracts category and categoryValue from the mediaID. mediaID is, by this sample's
-     * convention, a concatenation of category (eg "by_genre"), categoryValue (eg "Classical") and
-     * mediaID. This is necessary so we know where the user selected the music from, when the music
-     * exists in more than one music list, and thus we are able to correctly build the playing queue.
-     *
-     * @param mediaID that contains a category and categoryValue.
-     */
-    public static String[] getHierarchy(String mediaID) {
-        int pos = mediaID.indexOf(LEAF_SEPARATOR);
-        if (pos >= 0) {
-            mediaID = mediaID.substring(0, pos);
-        }
-        return mediaID.split(String.valueOf(CATEGORY_SEPARATOR));
-    }
-
-    public static String extractBrowseCategoryValueFromMediaID(String mediaID) {
-        String[] hierarchy = getHierarchy(mediaID);
-        if (hierarchy != null && hierarchy.length == 2) {
-            return hierarchy[1];
-        }
-        return null;
-    }
-
-    private static boolean isBrowseable(String mediaID) {
-        return mediaID.indexOf(LEAF_SEPARATOR) < 0;
-    }
-
-    public static String getParentMediaID(String mediaID) {
-        String[] hierarchy = getHierarchy(mediaID);
-        if (!isBrowseable(mediaID)) {
-            return createMediaID(null, hierarchy);
-        }
-        if (hierarchy == null || hierarchy.length <= 1) {
-            return MEDIA_ID_ROOT;
-        }
-        String[] parentHierarchy = Arrays.copyOf(hierarchy, hierarchy.length-1);
-        return createMediaID(null, parentHierarchy);
-    }
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/media/utils/QueueHelper.java b/samples/Support4Demos/src/com/example/android/supportv4/media/utils/QueueHelper.java
deleted file mode 100644
index b78a195..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/media/utils/QueueHelper.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * 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.supportv4.media.utils;
-
-import android.support.v4.media.MediaMetadataCompat;
-import android.support.v4.media.session.MediaSessionCompat;
-import android.util.Log;
-
-import com.example.android.supportv4.media.model.MusicProvider;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-
-import static com.example.android.supportv4.media.utils.MediaIDHelper.MEDIA_ID_MUSICS_BY_GENRE;
-import static com.example.android.supportv4.media.utils.MediaIDHelper.MEDIA_ID_MUSICS_BY_SEARCH;
-
-/**
- * Utility class to help on queue related tasks.
- */
-public class QueueHelper {
-
-    private static final String TAG = "QueueHelper";
-
-    public static List<MediaSessionCompat.QueueItem> getPlayingQueue(String mediaId,
-            MusicProvider musicProvider) {
-
-        // extract the browsing hierarchy from the media ID:
-        String[] hierarchy = MediaIDHelper.getHierarchy(mediaId);
-
-        if (hierarchy.length != 2) {
-            Log.e(TAG, "Could not build a playing queue for this mediaId: " + mediaId);
-            return null;
-        }
-
-        String categoryType = hierarchy[0];
-        String categoryValue = hierarchy[1];
-        Log.d(TAG, "Creating playing queue for " + categoryType + ",  " + categoryValue);
-
-        Iterable<MediaMetadataCompat> tracks = null;
-        // This sample only supports genre and by_search category types.
-        if (categoryType.equals(MEDIA_ID_MUSICS_BY_GENRE)) {
-            tracks = musicProvider.getMusicsByGenre(categoryValue);
-        } else if (categoryType.equals(MEDIA_ID_MUSICS_BY_SEARCH)) {
-            tracks = musicProvider.searchMusic(categoryValue);
-        }
-
-        if (tracks == null) {
-            Log.e(TAG, "Unrecognized category type: " + categoryType + " for mediaId " + mediaId);
-            return null;
-        }
-
-        return convertToQueue(tracks, hierarchy[0], hierarchy[1]);
-    }
-
-    public static List<MediaSessionCompat.QueueItem> getPlayingQueueFromSearch(String query,
-            MusicProvider musicProvider) {
-
-        Log.d(TAG, "Creating playing queue for musics from search " + query);
-
-        return convertToQueue(musicProvider.searchMusic(query), MEDIA_ID_MUSICS_BY_SEARCH, query);
-    }
-
-
-    public static int getMusicIndexOnQueue(Iterable<MediaSessionCompat.QueueItem> queue,
-             String mediaId) {
-        int index = 0;
-        for (MediaSessionCompat.QueueItem item : queue) {
-            if (mediaId.equals(item.getDescription().getMediaId())) {
-                return index;
-            }
-            index++;
-        }
-        return -1;
-    }
-
-    public static int getMusicIndexOnQueue(Iterable<MediaSessionCompat.QueueItem> queue,
-             long queueId) {
-        int index = 0;
-        for (MediaSessionCompat.QueueItem item : queue) {
-            if (queueId == item.getQueueId()) {
-                return index;
-            }
-            index++;
-        }
-        return -1;
-    }
-
-    private static List<MediaSessionCompat.QueueItem> convertToQueue(
-            Iterable<MediaMetadataCompat> tracks, String... categories) {
-        List<MediaSessionCompat.QueueItem> queue = new ArrayList<>();
-        int count = 0;
-        for (MediaMetadataCompat track : tracks) {
-
-            // We create a hierarchy-aware mediaID, so we know what the queue is about by looking
-            // at the QueueItem media IDs.
-            String hierarchyAwareMediaID = MediaIDHelper.createMediaID(
-                    track.getDescription().getMediaId(), categories);
-
-            MediaMetadataCompat trackCopy = new MediaMetadataCompat.Builder(track)
-                    .putString(MediaMetadataCompat.METADATA_KEY_MEDIA_ID, hierarchyAwareMediaID)
-                    .build();
-
-            // We don't expect queues to change after created, so we use the item index as the
-            // queueId. Any other number unique in the queue would work.
-            MediaSessionCompat.QueueItem item = new MediaSessionCompat.QueueItem(
-                    trackCopy.getDescription(), count++);
-            queue.add(item);
-        }
-        return queue;
-
-    }
-
-    /**
-     * Create a random queue. For simplicity sake, instead of a random queue, we create a
-     * queue using the first genre.
-     *
-     * @param musicProvider the provider used for fetching music.
-     * @return list containing {@link android.media.session.MediaSession.QueueItem}'s
-     */
-    public static List<MediaSessionCompat.QueueItem> getRandomQueue(MusicProvider musicProvider) {
-        Iterator<String> genres = musicProvider.getGenres().iterator();
-        if (!genres.hasNext()) {
-            return Collections.emptyList();
-        }
-        String genre = genres.next();
-        Iterable<MediaMetadataCompat> tracks = musicProvider.getMusicsByGenre(genre);
-
-        return convertToQueue(tracks, MEDIA_ID_MUSICS_BY_GENRE, genre);
-    }
-
-    public static boolean isIndexPlayable(int index, List<MediaSessionCompat.QueueItem> queue) {
-        return (queue != null && index >= 0 && index < queue.size());
-    }
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/media/utils/ResourceHelper.java b/samples/Support4Demos/src/com/example/android/supportv4/media/utils/ResourceHelper.java
deleted file mode 100644
index 3546a11..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/media/utils/ResourceHelper.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
-* 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.supportv4.media.utils;
-
-import android.content.Context;
-import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageManager;
-import android.content.res.Resources;
-import android.content.res.TypedArray;
-
-/**
- * Generic reusable methods to handle resources.
- */
-public class ResourceHelper {
-    /**
-     * Get a color value from a theme attribute.
-     * @param context used for getting the color.
-     * @param attribute theme attribute.
-     * @param defaultColor default to use.
-     * @return color value
-     */
-    public static int getThemeColor(Context context, int attribute, int defaultColor) {
-        int themeColor = 0;
-        String packageName = context.getPackageName();
-        try {
-            Context packageContext = context.createPackageContext(packageName, 0);
-            ApplicationInfo applicationInfo =
-                context.getPackageManager().getApplicationInfo(packageName, 0);
-            packageContext.setTheme(applicationInfo.theme);
-            Resources.Theme theme = packageContext.getTheme();
-            TypedArray ta = theme.obtainStyledAttributes(new int[] {attribute});
-            themeColor = ta.getColor(0, defaultColor);
-            ta.recycle();
-        } catch (PackageManager.NameNotFoundException e) {
-            e.printStackTrace();
-        }
-        return themeColor;
-    }
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/text/BidiFormatterSupport.java b/samples/Support4Demos/src/com/example/android/supportv4/text/BidiFormatterSupport.java
deleted file mode 100644
index 168a8b6..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/text/BidiFormatterSupport.java
+++ /dev/null
@@ -1,50 +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.supportv4.text;
-
-import android.app.Activity;
-import android.os.Bundle;
-
-import android.support.v4.text.BidiFormatter;
-import android.widget.TextView;
-import com.example.android.supportv4.R;
-
-/**
- * This example illustrates a common usage of the BidiFormatter in the Android support library.
- */
-public class BidiFormatterSupport extends Activity {
-
-    private static String text = "%s הוא עסוק";
-    private static String phone = "+1 650 253 0000";
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        setContentView(R.layout.bidiformater_support);
-
-        String formattedText = String.format(text, phone);
-
-        TextView tv_sample = (TextView) findViewById(R.id.textview_without_bidiformatter);
-        tv_sample.setText(formattedText);
-
-        TextView tv_bidiformatter = (TextView) findViewById(R.id.textview_with_bidiformatter);
-        String wrappedPhone = BidiFormatter.getInstance(true /* rtlContext */).unicodeWrap(phone);
-        formattedText = String.format(text, wrappedPhone);
-        tv_bidiformatter.setText(formattedText);
-    }
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/view/CheckableFrameLayout.java b/samples/Support4Demos/src/com/example/android/supportv4/view/CheckableFrameLayout.java
deleted file mode 100644
index c559cf6..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/view/CheckableFrameLayout.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv4.view;
-
-import android.content.Context;
-import android.graphics.drawable.ColorDrawable;
-import android.util.AttributeSet;
-import android.widget.Checkable;
-import android.widget.FrameLayout;
-
-public class CheckableFrameLayout extends FrameLayout implements Checkable {
-    private boolean mChecked;
-
-    public CheckableFrameLayout(Context context) {
-        super(context);
-    }
-
-    public CheckableFrameLayout(Context context, AttributeSet attrs) {
-        super(context, attrs);
-    }
-
-    public void setChecked(boolean checked) {
-        mChecked = checked;
-        setBackgroundDrawable(checked ? new ColorDrawable(0xff0000a0) : null);
-    }
-
-    public boolean isChecked() {
-        return mChecked;
-    }
-
-    public void toggle() {
-        setChecked(!mChecked);
-    }
-
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/view/ViewPagerActivity.java b/samples/Support4Demos/src/com/example/android/supportv4/view/ViewPagerActivity.java
deleted file mode 100644
index 5150363..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/view/ViewPagerActivity.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * 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.supportv4.view;
-
-import com.example.android.supportv4.R;
-
-import android.app.Activity;
-import android.graphics.Color;
-import android.os.Bundle;
-import android.support.v4.view.PagerAdapter;
-import android.support.v4.view.PagerTitleStrip;
-import android.support.v4.view.ViewPager;
-import android.util.Pair;
-import android.view.View;
-import android.view.ViewGroup;
-
-import java.util.ArrayList;
-
-public class ViewPagerActivity extends Activity {
-    private ViewPager mPager;
-    private PagerTitleStrip mTitles;
-    private ColorPagerAdapter mAdapter;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        setContentView(R.layout.view_pager_layout);
-
-        mAdapter = new ColorPagerAdapter();
-        mAdapter.add("Red", Color.RED);
-        mAdapter.add("Green", Color.GREEN);
-        mAdapter.add("Blue", Color.BLUE);
-
-        mPager = (ViewPager) findViewById(R.id.pager);
-        mPager.setAdapter(mAdapter);
-
-        mTitles = (PagerTitleStrip) findViewById(R.id.titles);
-    }
-
-    private static class ColorPagerAdapter extends PagerAdapter {
-        private ArrayList<Pair<String, Integer>> mEntries = new ArrayList<>();
-
-        public void add(String title, int color) {
-            mEntries.add(new Pair(title, color));
-        }
-
-        @Override
-        public int getCount() {
-            return mEntries.size();
-        }
-
-        @Override
-        public Object instantiateItem(ViewGroup container, int position) {
-            final View view = new View(container.getContext());
-            view.setBackgroundColor(mEntries.get(position).second);
-
-            // Unlike ListView adapters, the ViewPager adapter is responsible
-            // for adding the view to the container.
-            container.addView(view);
-
-            return new ViewHolder(view, position);
-        }
-
-        @Override
-        public void destroyItem(ViewGroup container, int position, Object object) {
-            // The adapter is also responsible for removing the view.
-            container.removeView(((ViewHolder) object).view);
-        }
-
-        @Override
-        public int getItemPosition(Object object) {
-            return ((ViewHolder) object).position;
-        }
-
-        @Override
-        public boolean isViewFromObject(View view, Object object) {
-            return ((ViewHolder) object).view == view;
-        }
-
-        @Override
-        public CharSequence getPageTitle(int position) {
-            return mEntries.get(position).first;
-        }
-
-        private static class ViewHolder {
-            final View view;
-            final int position;
-
-            public ViewHolder(View view, int position) {
-                this.view = view;
-                this.position = position;
-            }
-        }
-    }
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/widget/BaseSwipeRefreshLayoutActivity.java b/samples/Support4Demos/src/com/example/android/supportv4/widget/BaseSwipeRefreshLayoutActivity.java
deleted file mode 100644
index 1403a94..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/widget/BaseSwipeRefreshLayoutActivity.java
+++ /dev/null
@@ -1,135 +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.supportv4.widget;
-
-import com.example.android.supportv4.R;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.os.Handler;
-import android.support.annotation.LayoutRes;
-import android.support.v4.widget.SwipeRefreshLayout;
-import android.support.v4.widget.SwipeRefreshLayout.OnRefreshListener;
-import android.view.Menu;
-import android.view.MenuInflater;
-import android.view.MenuItem;
-import android.view.View;
-import android.widget.ArrayAdapter;
-import android.widget.ListView;
-
-/**
- * Example of using the SwipeRefreshLayout.
- */
-abstract class BaseSwipeRefreshLayoutActivity extends Activity implements OnRefreshListener {
-
-    public static final String[] TITLES = {
-            "Henry IV (1)",
-            "Henry V",
-            "Henry VIII",
-            "Richard II",
-            "Richard III",
-            "Merchant of Venice",
-            "Othello",
-            "King Lear",
-            "Henry IV (1)",
-            "Henry V",
-            "Henry VIII",
-            "Richard II",
-            "Richard III",
-            "Merchant of Venice",
-            "Othello",
-            "King Lear",
-            "Henry IV (1)",
-            "Henry V",
-            "Henry VIII",
-            "Richard II",
-            "Richard III",
-            "Merchant of Venice",
-            "Othello",
-            "King Lear",
-            "Henry IV (1)",
-            "Henry V",
-            "Henry VIII",
-            "Richard II",
-            "Richard III",
-            "Merchant of Venice",
-            "Othello",
-            "King Lear"
-    };
-
-    // Try a SUPER quick refresh to make sure we don't get extra refreshes
-    // while the user's finger is still down.
-    private static final boolean SUPER_QUICK_REFRESH = false;
-
-    private SwipeRefreshLayout mSwipeRefreshWidget;
-
-    private final Handler mHandler = new Handler();
-
-    private final Runnable mRefreshDone = new Runnable() {
-        @Override
-        public void run() {
-            mSwipeRefreshWidget.setRefreshing(false);
-        }
-
-    };
-
-    @Override
-    public void onCreate(Bundle bundle) {
-        super.onCreate(bundle);
-        setContentView(getLayoutId());
-
-        mSwipeRefreshWidget = (SwipeRefreshLayout) findViewById(R.id.swipe_refresh_widget);
-        mSwipeRefreshWidget.setColorSchemeResources(R.color.color1, R.color.color2, R.color.color3,
-                R.color.color4);
-        mSwipeRefreshWidget.setOnRefreshListener(this);
-    }
-
-    @LayoutRes
-    protected abstract int getLayoutId();
-
-    @Override
-    public void onRefresh() {
-        refresh();
-    }
-
-    @Override
-    public boolean onCreateOptionsMenu(Menu menu) {
-        MenuInflater inflater = getMenuInflater();
-        inflater.inflate(R.menu.swipe_refresh_menu, menu);
-        return true;
-    }
-
-    /**
-     * Click handler for the menu item to force a refresh.
-     */
-    @Override
-    public boolean onOptionsItemSelected(MenuItem item) {
-        final int id = item.getItemId();
-        switch(id) {
-            case R.id.force_refresh:
-                mSwipeRefreshWidget.setRefreshing(true);
-                refresh();
-                return true;
-        }
-        return false;
-    }
-
-    private void refresh() {
-        mHandler.removeCallbacks(mRefreshDone);
-        mHandler.postDelayed(mRefreshDone, 1000);
-    }
-}
\ No newline at end of file
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/widget/ContentLoadingProgressBarActivity.java b/samples/Support4Demos/src/com/example/android/supportv4/widget/ContentLoadingProgressBarActivity.java
deleted file mode 100644
index 08c14dc..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/widget/ContentLoadingProgressBarActivity.java
+++ /dev/null
@@ -1,109 +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.supportv4.widget;
-
-import android.app.Activity;
-import android.widget.Button;
-import android.widget.LinearLayout;
-import android.widget.ProgressBar;
-import android.widget.TextView;
-import android.os.Bundle;
-import android.os.Handler;
-import android.support.v4.widget.ContentLoadingProgressBar;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.view.ViewTreeObserver;
-import android.view.Window;
-
-import com.example.android.supportv4.R;
-
-/**
- * Demonstrates how to use the ContentLoadingProgressBar. By default, the
- * developer should start the ContentLoadingProgressBar with visibility of
- * "gone" or "invisible". The ContentLoadingProgressBar will be shown after the
- * default delay for at least a minimum time regardless of when the "hide"
- * button is pressed.
- */
-public class ContentLoadingProgressBarActivity extends Activity implements
-        OnClickListener, ViewTreeObserver.OnGlobalLayoutListener {
-
-    private Button mShowButton;
-    private Button mHideButton;
-    private ContentLoadingProgressBar mBar;
-    private long mShowTime;
-    private long mHideTime;
-    private TextView mShowText;
-    private TextView mShowTextDone;
-    private TextView mHideText;
-    private TextView mHideTextDone;
-    private int mLastVisibility;
-    private long mVisibilityChangedTime;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.content_loading_progressbar);
-
-        mBar = (ContentLoadingProgressBar)findViewById(R.id.progressbar);
-        mShowButton = (Button)findViewById(R.id.show);
-        mShowButton.setOnClickListener(this);
-        mHideButton = (Button)findViewById(R.id.hide);
-        mHideButton.setOnClickListener(this);
-
-        mShowText = (TextView)findViewById(R.id.show_text);
-        mShowTextDone = (TextView)findViewById(R.id.show_text_done);
-        mHideText = (TextView)findViewById(R.id.hide_text);
-        mHideTextDone = (TextView)findViewById(R.id.hide_text_done);
-
-        mLastVisibility = mBar.getVisibility();
-
-        mBar.getViewTreeObserver().addOnGlobalLayoutListener(this);
-    }
-
-    @Override
-    public void onClick(View v) {
-        switch (v.getId()) {
-            case R.id.show:
-                mBar.show();
-                mShowTime = System.currentTimeMillis();
-                mShowText.setText("Show clicked at " + mShowTime);
-                break;
-            case R.id.hide:
-                mBar.hide();
-                mHideTime = System.currentTimeMillis();
-                mHideText.setText("Hide clicked at " + mHideTime);
-                break;
-        }
-    }
-
-    @Override
-    public void onGlobalLayout() {
-        final int visibility = mBar.getVisibility();
-
-        if (mLastVisibility != visibility) {
-            if (visibility == View.VISIBLE) {
-                mVisibilityChangedTime = System.currentTimeMillis();
-                mShowTextDone.setText("Shown at "
-                    + (mVisibilityChangedTime - mShowTime));
-            } else {
-                mHideTextDone.setText("Hidden after "
-                    + (System.currentTimeMillis() - mVisibilityChangedTime));
-            }
-            mLastVisibility = mBar.getVisibility();
-        }
-    }
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/widget/ExploreByTouchHelperActivity.java b/samples/Support4Demos/src/com/example/android/supportv4/widget/ExploreByTouchHelperActivity.java
deleted file mode 100644
index 946de01..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/widget/ExploreByTouchHelperActivity.java
+++ /dev/null
@@ -1,326 +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.supportv4.widget;
-
-import android.annotation.TargetApi;
-import android.app.Activity;
-import android.content.Context;
-import android.graphics.Canvas;
-import android.graphics.Color;
-import android.graphics.Paint;
-import android.graphics.Paint.Align;
-import android.graphics.Paint.Style;
-import android.graphics.Rect;
-import android.graphics.RectF;
-import android.os.Build;
-import android.os.Bundle;
-import android.support.v4.view.ViewCompat;
-import android.support.v4.view.accessibility.AccessibilityNodeInfoCompat;
-import android.support.v4.view.accessibility.AccessibilityNodeProviderCompat;
-import android.support.v4.widget.ExploreByTouchHelper;
-import android.util.AttributeSet;
-import android.view.MotionEvent;
-import android.view.View;
-import android.view.accessibility.AccessibilityEvent;
-import com.example.android.supportv4.R;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * This example shows how to use the {@link ExploreByTouchHelper} class in the
- * Android support library to add accessibility support to a custom view that
- * represents multiple logical items.
- * <p>
- * The {@link ExploreByTouchHelper} class wraps
- * {@link AccessibilityNodeProviderCompat} and simplifies exposing information
- * about a custom view's logical structure to accessibility services.
- * <p>
- * The custom view in this example is responsible for:
- * <ul>
- * <li>Creating a helper class that extends {@link ExploreByTouchHelper}
- * <li>Setting the helper as the accessibility delegate using
- * {@link ViewCompat#setAccessibilityDelegate}
- * <li>Dispatching hover events to the helper in {@link View#dispatchHoverEvent}
- * </ul>
- * <p>
- * The helper class implementation in this example is responsible for:
- * <ul>
- * <li>Mapping hover event coordinates to logical items
- * <li>Exposing information about logical items to accessibility services
- * <li>Handling accessibility actions
- * <ul>
- */
-public class ExploreByTouchHelperActivity extends Activity {
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        setContentView(R.layout.explore_by_touch_helper);
-
-        final CustomView customView = (CustomView) findViewById(R.id.custom_view);
-
-        // Adds an item at the top-left quarter of the custom view.
-        customView.addItem(getString(R.string.sample_item_a), 0, 0, 0.5f, 0.5f);
-
-        // Adds an item at the bottom-right quarter of the custom view.
-        customView.addItem(getString(R.string.sample_item_b), 0.5f, 0.5f, 1, 1);
-    }
-
-    /**
-     * Simple custom view that draws rectangular items to the screen. Each item
-     * has a checked state that may be toggled by tapping on the item.
-     */
-    public static class CustomView extends View {
-        private static final int NO_ITEM = -1;
-
-        private final Paint mPaint = new Paint();
-        private final Rect mTempBounds = new Rect();
-        private final List<CustomItem> mItems = new ArrayList<CustomItem>();
-        private CustomViewTouchHelper mTouchHelper;
-
-        public CustomView(Context context, AttributeSet attrs) {
-            super(context, attrs);
-
-            // Set up accessibility helper class.
-            mTouchHelper = new CustomViewTouchHelper(this);
-            ViewCompat.setAccessibilityDelegate(this, mTouchHelper);
-        }
-
-        @TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
-        @Override
-        public boolean dispatchHoverEvent(MotionEvent event) {
-            // Always attempt to dispatch hover events to accessibility first.
-            if (mTouchHelper.dispatchHoverEvent(event)) {
-                return true;
-            }
-
-            return super.dispatchHoverEvent(event);
-        }
-
-        @Override
-        public boolean onTouchEvent(MotionEvent event) {
-            switch (event.getAction()) {
-                case MotionEvent.ACTION_DOWN:
-                    return true;
-                case MotionEvent.ACTION_UP:
-                    final int itemIndex = getItemIndexUnder(event.getX(), event.getY());
-                    if (itemIndex >= 0) {
-                        onItemClicked(itemIndex);
-                    }
-                    return true;
-            }
-
-            return super.onTouchEvent(event);
-        }
-
-        /**
-         * Adds an item to the custom view. The item is positioned relative to
-         * the custom view bounds and its descriptions is drawn at its center.
-         *
-         * @param description The item's description.
-         * @param top Top coordinate as a fraction of the parent height, range
-         *            is [0,1].
-         * @param left Left coordinate as a fraction of the parent width, range
-         *            is [0,1].
-         * @param bottom Bottom coordinate as a fraction of the parent height,
-         *            range is [0,1].
-         * @param right Right coordinate as a fraction of the parent width,
-         *            range is [0,1].
-         */
-        public void addItem(String description, float top, float left, float bottom, float right) {
-            final CustomItem item = new CustomItem();
-            item.bounds = new RectF(top, left, bottom, right);
-            item.description = description;
-            item.checked = false;
-            mItems.add(item);
-        }
-
-        @Override
-        protected void onDraw(Canvas canvas) {
-            super.onDraw(canvas);
-
-            final Paint paint = mPaint;
-            final Rect bounds = mTempBounds;
-            final int height = getHeight();
-            final int width = getWidth();
-
-            for (CustomItem item : mItems) {
-                paint.setColor(item.checked ? Color.RED : Color.BLUE);
-                paint.setStyle(Style.FILL);
-                scaleRectF(item.bounds, bounds, width, height);
-                canvas.drawRect(bounds, paint);
-                paint.setColor(Color.WHITE);
-                paint.setTextAlign(Align.CENTER);
-                canvas.drawText(item.description, bounds.centerX(), bounds.centerY(), paint);
-            }
-        }
-
-        protected boolean onItemClicked(int index) {
-            final CustomItem item = getItem(index);
-            if (item == null) {
-                return false;
-            }
-
-            item.checked = !item.checked;
-            invalidate();
-
-            // Since the item's checked state is exposed to accessibility
-            // services through its AccessibilityNodeInfo, we need to invalidate
-            // the item's virtual view. At some point in the future, the
-            // framework will obtain an updated version of the virtual view.
-            mTouchHelper.invalidateVirtualView(index);
-
-            // We also need to let the framework know what type of event
-            // happened. Accessibility services may use this event to provide
-            // appropriate feedback to the user.
-            mTouchHelper.sendEventForVirtualView(index, AccessibilityEvent.TYPE_VIEW_CLICKED);
-
-            return true;
-        }
-
-        protected int getItemIndexUnder(float x, float y) {
-            final float scaledX = (x / getWidth());
-            final float scaledY = (y / getHeight());
-            final int n = mItems.size();
-
-            for (int i = 0; i < n; i++) {
-                final CustomItem item = mItems.get(i);
-                if (item.bounds.contains(scaledX, scaledY)) {
-                    return i;
-                }
-            }
-
-            return NO_ITEM;
-        }
-
-        protected CustomItem getItem(int index) {
-            if ((index < 0) || (index >= mItems.size())) {
-                return null;
-            }
-
-            return mItems.get(index);
-        }
-
-        protected static void scaleRectF(RectF in, Rect out, int width, int height) {
-            out.top = (int) (in.top * height);
-            out.bottom = (int) (in.bottom * height);
-            out.left = (int) (in.left * width);
-            out.right = (int) (in.right * width);
-        }
-
-        private class CustomViewTouchHelper extends ExploreByTouchHelper {
-            private final Rect mTempRect = new Rect();
-
-            public CustomViewTouchHelper(View forView) {
-                super(forView);
-            }
-
-            @Override
-            protected int getVirtualViewAt(float x, float y) {
-                // We also perform hit detection in onTouchEvent(), and we can
-                // reuse that logic here. This will ensure consistency whether
-                // accessibility is on or off.
-                final int index = getItemIndexUnder(x, y);
-                if (index == NO_ITEM) {
-                    return ExploreByTouchHelper.INVALID_ID;
-                }
-
-                return index;
-            }
-
-            @Override
-            protected void getVisibleVirtualViews(List<Integer> virtualViewIds) {
-                // Since every item should be visible, and since we're mapping
-                // directly from item index to virtual view id, we can just add
-                // every available index in the item list.
-                final int n = mItems.size();
-                for (int i = 0; i < n; i++) {
-                    virtualViewIds.add(i);
-                }
-            }
-
-            @Override
-            protected void onPopulateEventForVirtualView(
-                    int virtualViewId, AccessibilityEvent event) {
-                final CustomItem item = getItem(virtualViewId);
-                if (item == null) {
-                    throw new IllegalArgumentException("Invalid virtual view id");
-                }
-
-                // The event must be populated with text, either using
-                // getText().add() or setContentDescription(). Since the item's
-                // description is displayed visually, we'll add it to the event
-                // text. If it was only used for accessibility, we would use
-                // setContentDescription().
-                event.getText().add(item.description);
-            }
-
-            @Override
-            protected void onPopulateNodeForVirtualView(
-                    int virtualViewId, AccessibilityNodeInfoCompat node) {
-                final CustomItem item = getItem(virtualViewId);
-                if (item == null) {
-                    throw new IllegalArgumentException("Invalid virtual view id");
-                }
-
-                // Node and event text and content descriptions are usually
-                // identical, so we'll use the exact same string as before.
-                node.setText(item.description);
-
-                // Reported bounds should be consistent with those used to draw
-                // the item in onDraw(). They should also be consistent with the
-                // hit detection performed in getVirtualViewAt() and
-                // onTouchEvent().
-                final Rect bounds = mTempRect;
-                final int height = getHeight();
-                final int width = getWidth();
-                scaleRectF(item.bounds, bounds, width, height);
-                node.setBoundsInParent(bounds);
-
-                // Since the user can tap an item, add the CLICK action. We'll
-                // need to handle this later in onPerformActionForVirtualView.
-                node.addAction(AccessibilityNodeInfoCompat.ACTION_CLICK);
-
-                // This item has a checked state.
-                node.setCheckable(true);
-                node.setChecked(item.checked);
-            }
-
-            @Override
-            protected boolean onPerformActionForVirtualView(
-                    int virtualViewId, int action, Bundle arguments) {
-                switch (action) {
-                    case AccessibilityNodeInfoCompat.ACTION_CLICK:
-                        // Click handling should be consistent with
-                        // onTouchEvent(). This ensures that the view works the
-                        // same whether accessibility is turned on or off.
-                        return onItemClicked(virtualViewId);
-                }
-
-                return false;
-            }
-
-        }
-
-        public static class CustomItem {
-            private String description;
-            private RectF bounds;
-            private boolean checked;
-        }
-    }
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/widget/NestedScrollActivity.java b/samples/Support4Demos/src/com/example/android/supportv4/widget/NestedScrollActivity.java
deleted file mode 100644
index 87a31fc..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/widget/NestedScrollActivity.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * 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.supportv4.widget;
-
-import android.app.Activity;
-import android.os.Bundle;
-
-import com.example.android.supportv4.R;
-
-/**
- * This activity demonstrates the use of nested scrolling in the v4 support library.
- * See the associated layout file for details.
- */
-public class NestedScrollActivity extends Activity {
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.nested_scroll);
-    }
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/widget/SlidingPaneLayoutActivity.java b/samples/Support4Demos/src/com/example/android/supportv4/widget/SlidingPaneLayoutActivity.java
deleted file mode 100644
index f26e038..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/widget/SlidingPaneLayoutActivity.java
+++ /dev/null
@@ -1,222 +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.supportv4.widget;
-
-import android.app.ActionBar;
-import android.app.Activity;
-import android.os.Build;
-import android.os.Bundle;
-import android.support.v4.widget.SlidingPaneLayout;
-import android.view.MenuItem;
-import android.view.View;
-import android.view.ViewTreeObserver;
-import android.widget.AdapterView;
-import android.widget.ArrayAdapter;
-import android.widget.ListView;
-import android.widget.TextView;
-import com.example.android.supportv4.Shakespeare;
-import com.example.android.supportv4.R;
-
-/**
- * This example illustrates a common usage of SlidingPaneLayout in the Android support library.
- *
- * <p>A SlidingPaneLayout should be positioned at the top of your view hierarchy, placing it
- * below the action bar but above your content views. It is ideal as a two-pane layout
- * for larger screens, used in place of a horizontal LinearLayout.</p>
- *
- * <p>What separates SlidingPaneLayout from LinearLayout in this usage is that SlidingPaneLayout
- * allows these wide, two-pane layouts to overlap when horizontal space is at a premium. The user
- * can then access both panes by physically sliding the content pane into view or out of the way
- * or implicitly by moving focus between the two panes. This can greatly simplify development
- * of Android apps that support multiple form factors and screen sizes.</p>
- *
- * <p>When it comes to your navigation hierarchy, the left pane of a SlidingPaneLayout is always
- * considered to be one level up from the right content pane. As such, your Action Bar's
- * Up navigation should be enabled if the right pane is obscuring the left pane, and invoking it
- * should open the panes, revealing the left pane for normal interaction. From this open state
- * where the left pane is in primary focus, the Action Bar's Up affordance should act as if
- * both panes were fully visible in the activity window and navigate to the activity one level up
- * in the app's logical hierarchy. If the activity is the root of the application's task, the up
- * affordance should be disabled when the sliding pane is open and showing the left pane.
- * This code example illustrates this root activity case.</p>
- *
- * <p>Note that SlidingPaneLayout differs in usage from DrawerLayout. While DrawerLayout offers
- * sliding utility drawers for extended navigation options and actions, the panes of a
- * SlidingPaneLayout are firmly part of the content itself. If it would not make sense for
- * both panes to be visible all the time on a sufficiently wide screen, DrawerLayout and its
- * associated patterns are likely to be a better choice for your usage.</p>
- */
-public class SlidingPaneLayoutActivity extends Activity {
-    private SlidingPaneLayout mSlidingLayout;
-    private ListView mList;
-    private TextView mContent;
-
-    private ActionBarHelper mActionBar;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        setContentView(R.layout.sliding_pane_layout);
-
-        mSlidingLayout = (SlidingPaneLayout) findViewById(R.id.sliding_pane_layout);
-        mList = (ListView) findViewById(R.id.left_pane);
-        mContent = (TextView) findViewById(R.id.content_text);
-
-        mSlidingLayout.setPanelSlideListener(new SliderListener());
-        mSlidingLayout.openPane();
-
-        mList.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,
-                Shakespeare.TITLES));
-        mList.setOnItemClickListener(new ListItemClickListener());
-
-        mActionBar = createActionBarHelper();
-        mActionBar.init();
-
-        mSlidingLayout.getViewTreeObserver().addOnGlobalLayoutListener(new FirstLayoutListener());
-    }
-
-    @Override
-    public boolean onOptionsItemSelected(MenuItem item) {
-        /*
-         * The action bar up action should open the slider if it is currently closed,
-         * as the left pane contains content one level up in the navigation hierarchy.
-         */
-        if (item.getItemId() == android.R.id.home && !mSlidingLayout.isOpen()) {
-            mSlidingLayout.smoothSlideOpen();
-            return true;
-        }
-        return super.onOptionsItemSelected(item);
-    }
-
-    /**
-     * This list item click listener implements very simple view switching by changing
-     * the primary content text. The slider is closed when a selection is made to fully
-     * reveal the content.
-     */
-    private class ListItemClickListener implements ListView.OnItemClickListener {
-        @Override
-        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
-            mContent.setText(Shakespeare.DIALOGUE[position]);
-            mActionBar.setTitle(Shakespeare.TITLES[position]);
-            mSlidingLayout.smoothSlideClosed();
-        }
-    }
-
-    /**
-     * This panel slide listener updates the action bar accordingly for each panel state.
-     */
-    private class SliderListener extends SlidingPaneLayout.SimplePanelSlideListener {
-        @Override
-        public void onPanelOpened(View panel) {
-            mActionBar.onPanelOpened();
-        }
-
-        @Override
-        public void onPanelClosed(View panel) {
-            mActionBar.onPanelClosed();
-        }
-    }
-
-    /**
-     * This global layout listener is used to fire an event after first layout occurs
-     * and then it is removed. This gives us a chance to configure parts of the UI
-     * that adapt based on available space after they have had the opportunity to measure
-     * and layout.
-     */
-    private class FirstLayoutListener implements ViewTreeObserver.OnGlobalLayoutListener {
-        @Override
-        public void onGlobalLayout() {
-            mActionBar.onFirstLayout();
-            mSlidingLayout.getViewTreeObserver().removeOnGlobalLayoutListener(this);
-        }
-    }
-
-    /**
-     * Create a compatible helper that will manipulate the action bar if available.
-     */
-    private ActionBarHelper createActionBarHelper() {
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
-            return new ActionBarHelperICS();
-        } else {
-            return new ActionBarHelper();
-        }
-    }
-
-    /**
-     * Stub action bar helper; this does nothing.
-     */
-    private class ActionBarHelper {
-        public void init() {}
-        public void onPanelClosed() {}
-        public void onPanelOpened() {}
-        public void onFirstLayout() {}
-        public void setTitle(CharSequence title) {}
-    }
-
-    /**
-     * Action bar helper for use on ICS and newer devices.
-     */
-    private class ActionBarHelperICS extends ActionBarHelper {
-        private final ActionBar mActionBar;
-        private CharSequence mDrawerTitle;
-        private CharSequence mTitle;
-
-        ActionBarHelperICS() {
-            mActionBar = getActionBar();
-        }
-
-        @Override
-        public void init() {
-            mActionBar.setDisplayHomeAsUpEnabled(true);
-            mActionBar.setHomeButtonEnabled(true);
-            mTitle = mDrawerTitle = getTitle();
-        }
-
-        @Override
-        public void onPanelClosed() {
-            super.onPanelClosed();
-            mActionBar.setDisplayHomeAsUpEnabled(true);
-            mActionBar.setHomeButtonEnabled(true);
-            mActionBar.setTitle(mTitle);
-        }
-
-        @Override
-        public void onPanelOpened() {
-            super.onPanelOpened();
-            mActionBar.setHomeButtonEnabled(false);
-            mActionBar.setDisplayHomeAsUpEnabled(false);
-            mActionBar.setTitle(mDrawerTitle);
-        }
-
-        @Override
-        public void onFirstLayout() {
-            if (mSlidingLayout.canSlide() && !mSlidingLayout.isOpen()) {
-                onPanelClosed();
-            } else {
-                onPanelOpened();
-            }
-        }
-
-        @Override
-        public void setTitle(CharSequence title) {
-            mTitle = title;
-        }
-    }
-
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/widget/SwipeRefreshLayoutActivityList.java b/samples/Support4Demos/src/com/example/android/supportv4/widget/SwipeRefreshLayoutActivityList.java
deleted file mode 100644
index 8d6bef3..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/widget/SwipeRefreshLayoutActivityList.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv4.widget;
-
-import com.example.android.supportv4.R;
-
-import android.os.Bundle;
-import android.widget.ArrayAdapter;
-import android.widget.ListView;
-
-
-public class SwipeRefreshLayoutActivityList extends BaseSwipeRefreshLayoutActivity {
-
-    private ListView mList;
-
-    @Override
-    public void onCreate(Bundle bundle) {
-        super.onCreate(bundle);
-
-        mList = (ListView) findViewById(R.id.content);
-        ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(this,
-                android.R.layout.simple_list_item_1, android.R.id.text1, TITLES);
-        mList.setAdapter(arrayAdapter);
-    }
-
-    @Override
-    protected int getLayoutId() {
-        return R.layout.swipe_refresh_widget_listview;
-    }
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/widget/SwipeRefreshLayoutActivityNestedScrollView.java b/samples/Support4Demos/src/com/example/android/supportv4/widget/SwipeRefreshLayoutActivityNestedScrollView.java
deleted file mode 100644
index bf5ee6f..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/widget/SwipeRefreshLayoutActivityNestedScrollView.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv4.widget;
-
-import com.example.android.supportv4.R;
-
-public class SwipeRefreshLayoutActivityNestedScrollView extends BaseSwipeRefreshLayoutActivity {
-
-    @Override
-    protected int getLayoutId() {
-        return R.layout.swipe_refresh_widget_nestedscrolling;
-    }
-
-}
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/widget/SwipeRefreshLayoutActivityTextView.java b/samples/Support4Demos/src/com/example/android/supportv4/widget/SwipeRefreshLayoutActivityTextView.java
deleted file mode 100644
index 83a93d2..0000000
--- a/samples/Support4Demos/src/com/example/android/supportv4/widget/SwipeRefreshLayoutActivityTextView.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv4.widget;
-
-import com.example.android.supportv4.R;
-
-public class SwipeRefreshLayoutActivityTextView extends BaseSwipeRefreshLayoutActivity {
-
-    @Override
-    protected int getLayoutId() {
-        return R.layout.swipe_refresh_widget_textview;
-    }
-
-}
diff --git a/samples/Support7Demos/Android.mk b/samples/Support7Demos/Android.mk
deleted file mode 100644
index 9a3368d..0000000
--- a/samples/Support7Demos/Android.mk
+++ /dev/null
@@ -1,35 +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.
-
-LOCAL_PATH:= $(call my-dir)
-
-# Build the samples.
-include $(CLEAR_VARS)
-LOCAL_USE_AAPT2 := true
-LOCAL_PACKAGE_NAME := Support7Demos
-LOCAL_MODULE_TAGS := samples tests
-LOCAL_SDK_VERSION := current
-LOCAL_MIN_SDK_VERSION := 7
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-LOCAL_STATIC_ANDROID_LIBRARIES := \
-    android-support-v7-appcompat \
-    android-support-v7-gridlayout \
-    android-support-v7-mediarouter \
-    android-support-v7-cardview \
-    android-support-design \
-    android-support-v7-recyclerview \
-    android-support-v7-palette \
-    android-support-v4
-LOCAL_AAPT_FLAGS := --no-version-vectors
-include $(BUILD_PACKAGE)
diff --git a/samples/Support7Demos/AndroidManifest.xml b/samples/Support7Demos/AndroidManifest.xml
deleted file mode 100644
index a75879e..0000000
--- a/samples/Support7Demos/AndroidManifest.xml
+++ /dev/null
@@ -1,507 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<!-- Declare the contents of this Android application.  The namespace
-     attribute brings in the Android platform namespace, and the package
-     supplies a unique name for the application.  When writing your
-     own application, the package name must be changed from "com.example.*"
-     to come from a domain that you own or have control over. -->
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.example.android.supportv7">
-    <!-- Permission for INTERNET is required for streaming video content
-         from the web, it's not required otherwise. -->
-    <uses-permission android:name="android.permission.INTERNET" />
-    <!-- Permission for SYSTEM_ALERT_WINDOW is only required for emulating
-         remote display using system alert window. -->
-    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
-    <!-- Permission for READ_EXTERNAL_STORAGE is explicitly required for
-         reading images from the media store from API v19+. -->
-    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
-
-    <!-- Permission for ACCESS_COARSE_LOCATION is required for DayNight themes. -->
-    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
-
-    <uses-sdk android:minSdkVersion="7" android:targetSdkVersion="21" />
-
-    <!-- The smallest screen this app works on is a phone.  The app will
-         scale its UI to larger screens but doesn't make good use of them
-         so allow the compatibility mode button to be shown (mostly because
-         this is just convenient for testing). -->
-    <supports-screens android:requiresSmallestWidthDp="320"
-            android:compatibleWidthLimitDp="480" />
-
-    <application android:label="@string/activity_sample_code"
-            android:supportsRtl="true"
-            android:icon="@drawable/app_sample_code"
-            android:hardwareAccelerated="true">
-
-        <activity android:name="Support7Demos">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.DEFAULT" />
-                <category android:name="android.intent.category.LAUNCHER" />
-            </intent-filter>
-        </activity>
-        <receiver android:name="com.example.android.supportv7.media.SampleMediaButtonReceiver">
-            <intent-filter>
-                <action android:name="android.intent.action.MEDIA_BUTTON" />
-            </intent-filter>
-        </receiver>
-        <!-- MediaRouter Support Samples -->
-
-        <activity android:name=".media.SampleMediaRouterActivity"
-                android:configChanges="orientation|screenSize"
-                android:label="@string/sample_media_router_activity_dark"
-                android:theme="@style/Theme.SampleMediaRouter">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv7.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".media.SampleMediaRouterActivity$Light"
-                android:configChanges="orientation|screenSize"
-                android:label="@string/sample_media_router_activity_light"
-                android:theme="@style/Theme.SampleMediaRouter.Light">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv7.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".media.SampleMediaRouterActivity$LightWithDarkActionBar"
-                android:configChanges="orientation|screenSize"
-                android:label="@string/sample_media_router_activity_light_with_dark_action_bar"
-                android:theme="@style/Theme.SampleMediaRouter.Light.DarkActionBar">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv7.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".media.SampleMediaRouteSettingsActivity"
-                android:label="@string/sample_media_route_settings_activity"
-                android:theme="@style/Theme.AppCompat.Light">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-            </intent-filter>
-        </activity>
-
-        <service android:name=".media.SampleMediaRouteProviderService"
-                android:label="@string/sample_media_route_provider_service"
-                android:process=":mrp">
-            <intent-filter>
-                <action android:name="android.media.MediaRouteProviderService" />
-            </intent-filter>
-        </service>
-
-        <!-- GridLayout Support Samples -->
-
-        <activity android:name=".view.GridLayout1"
-                android:label="@string/grid_layout_1">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv7.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".view.GridLayout2"
-                android:label="@string/grid_layout_2">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv7.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".view.GridLayout3"
-                android:label="@string/grid_layout_3">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv7.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <!-- Action Bar Samples -->
-        <activity android:name=".app.ActionBarMechanics"
-                android:label="@string/action_bar_mechanics"
-                android:theme="@style/Theme.AppCompat">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv7.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".app.SearchActivity">
-            <intent-filter>
-                <action android:name="android.intent.action.SEARCH" />
-            </intent-filter>
-
-            <meta-data android:name="android.app.searchable"
-                       android:resource="@xml/searchable" />
-
-        </activity>
-
-        <activity android:name=".app.ActionBarUsage"
-                android:label="@string/action_bar_usage"
-                android:theme="@style/Theme.AppCompat">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv7.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".app.ActionBarDisplayOptions"
-                android:label="@string/action_bar_display_options"
-                android:logo="@drawable/apidemo_androidlogo"
-                android:theme="@style/Theme.AppCompat">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv7.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".app.ActionBarTabs"
-                android:label="@string/action_bar_tabs"
-                android:theme="@style/Theme.Custom">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv7.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".app.ActionBarSettingsActionProviderActivity"
-                android:label="@string/action_bar_settings_action_provider"
-                android:theme="@style/Theme.AppCompat.Light.DarkActionBar">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv7.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".app.ActionBarShareActionProvider"
-                  android:label="@string/action_bar_share_action_provider"
-                  android:theme="@style/Theme.AppCompat.Light.DarkActionBar">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv7.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".app.ActionBarFragmentMenu"
-                android:label="@string/action_bar_fragment_menu"
-                android:theme="@style/Theme.AppCompat">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv7.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".app.ActionBarPreferences"
-                  android:label="@string/action_bar_preferences"
-                  android:theme="@style/Theme.AppCompat">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv7.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".app.ActionBarActionMode"
-                  android:label="@string/action_bar_action_mode"
-                  android:theme="@style/Theme.Custom">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv7.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".app.ActionBarHideOnScroll"
-                  android:label="@string/action_bar_hide_scroll"
-                  android:theme="@style/Theme.AppCompat.Light.DarkActionBar">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv7.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".app.AppCompatWidgetsButtons"
-                  android:label="@string/appcompat_widgets_buttons"
-                  android:theme="@style/Theme.AppCompat.Light.DarkActionBar">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv7.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".app.AppCompatWidgetsSpinners"
-                  android:label="@string/appcompat_widgets_spinners"
-                  android:theme="@style/Theme.AppCompat.Light.DarkActionBar">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv7.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".app.AppCompatWidgetsTextInput"
-                  android:label="@string/appcompat_widgets_text_input"
-                  android:theme="@style/Theme.AppCompat.Light.DarkActionBar">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv7.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".app.ToolbarUsage"
-                  android:label="@string/toolbar_usage"
-                  android:theme="@style/Theme.Custom.NoActionBar">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv7.SAMPLE_CODE" />
-            </intent-filter>
-
-            <meta-data
-                    android:name="android.app.default_searchable"
-                    android:value=".app.SearchActivity" />
-        </activity>
-
-        <activity android:name=".app.ToolbarDisplayOptions"
-                  android:label="@string/toolbar_display_options"
-                  android:theme="@style/Theme.AppCompat.Light.NoActionBar">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv7.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".app.ToolbarFragmentPagerMenu"
-                  android:label="@string/toolbar_fragment_pager"
-                  android:theme="@style/Theme.AppCompat.Light.NoActionBar">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv7.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".app.ToolbarActionMode"
-                  android:label="@string/toolbar_action_mode"
-                  android:theme="@style/Theme.AppCompat.Light.NoActionBar">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv7.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".app.DialogUsage"
-                  android:label="@string/dialog_usage"
-                  android:theme="@style/Theme.AppCompat.Light">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv7.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".app.AlertDialogUsage"
-                  android:label="@string/alert_dialog_usage"
-                  android:theme="@style/Theme.AppCompat.Light">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv7.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".app.DialogFragmentUsage"
-                  android:label="@string/dialogfragment_usage"
-                  android:theme="@style/Theme.AppCompat.Light">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv7.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".app.AppCompatNightModeActivity"
-                  android:label="@string/mode_night_activity_title"
-                  android:theme="@style/Theme.AppCompat.DayNight">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv7.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".app.AppCompatNightModeDialog"
-                  android:label="@string/mode_night_dialog_title"
-                  android:theme="@style/Theme.AppCompat">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv7.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".app.AppCompatNightModeAlertDialog"
-                  android:label="@string/mode_night_alertdialog_title"
-                  android:theme="@style/Theme.AppCompat">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv7.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".app.AppCompatAnimatedVector"
-                  android:label="@string/appcompat_vector_title"
-                  android:theme="@style/Theme.AppCompat.Light">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv7.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <provider android:name=".app.RecentSuggestionsProvider"
-                  android:authorities="com.example.android.supportv7.RecentSuggestionsProvider" />
-
-        <!-- RecyclerView samples -->
-        <activity android:name=".widget.RecyclerViewActivity"
-                  android:label="@string/recycler_view"
-                  android:theme="@style/Theme.AppCompat">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv7.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".widget.AnimatedRecyclerView"
-                  android:label="@string/animated_recycler_view"
-                  android:theme="@style/Theme.AppCompat">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv7.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".widget.LinearLayoutManagerActivity"
-                  android:label="@string/linear_layout_manager"
-                  android:theme="@style/Theme.AppCompat">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv7.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".util.SortedListActivity"
-                  android:label="@string/sorted_list_activity"
-                  android:windowSoftInputMode="adjustResize"
-                  android:theme="@style/Theme.AppCompat">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv7.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".widget.GridLayoutManagerActivity"
-                  android:label="@string/grid_layout_manager"
-                  android:theme="@style/Theme.AppCompat">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv7.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".widget.StaggeredGridLayoutManagerActivity"
-                  android:label="@string/staggered_grid_layout_manager"
-                  android:theme="@style/Theme.AppCompat">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv7.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".widget.AsyncListUtilActivity"
-                  android:label="@string/async_list_util"
-                  android:theme="@style/Theme.AppCompat">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv7.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".view.CardViewActivity"
-                  android:label="@string/card_view"
-                  android:theme="@style/Theme.AppCompat.Light.NoActionBar">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv7.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".graphics.PaletteActivity"
-                  android:label="@string/palette"
-                  android:theme="@style/Theme.AppCompat">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.supportv7.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".graphics.PaletteDetailActivity"
-                  android:label="@string/palette"
-                  android:theme="@style/Theme.AppCompat" />
-
-        <!-- item touch helper demo activities-->
-        <activity android:name=".widget.touch.SwipeToDismissActivity"
-                  android:label="@string/swipe_to_dismiss_activity">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN"/>
-                <category android:name="com.example.android.supportv7.SAMPLE_CODE"/>
-            </intent-filter>
-        </activity>
-        <activity android:name=".widget.touch.DragAndDropActivity"
-                  android:label="@string/drag_and_drop_activity">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN"/>
-                <category android:name="com.example.android.supportv7.SAMPLE_CODE"/>
-            </intent-filter>
-        </activity>
-
-        <!-- DrawerLayout demo activity -->
-        <activity android:name=".widget.DrawerLayoutActivity"
-                  android:label="@string/drawer_layout_activity"
-                  android:theme="@style/Theme.SampleDrawerLayout">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN"/>
-                <category android:name="com.example.android.supportv7.SAMPLE_CODE"/>
-            </intent-filter>
-        </activity>
-
-        <!-- ListPopupWindow demo activity -->
-        <activity android:name=".widget.ListPopupWindowActivity"
-                  android:label="@string/list_popup_window_activity"
-                  android:theme="@style/Theme.AppCompat.Light">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN"/>
-                <category android:name="com.example.android.supportv7.SAMPLE_CODE"/>
-            </intent-filter>
-        </activity>
-
-        <!-- PopupMenu demo activity -->
-        <activity android:name=".widget.PopupMenuActivity"
-                  android:label="@string/popup_menu_activity"
-                  android:theme="@style/Theme.AppCompat.Light">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN"/>
-                <category android:name="com.example.android.supportv7.SAMPLE_CODE"/>
-            </intent-filter>
-        </activity>
-    </application>
-
-
-</manifest>
diff --git a/samples/Support7Demos/_index.html b/samples/Support7Demos/_index.html
deleted file mode 100644
index 0c017ab..0000000
--- a/samples/Support7Demos/_index.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<p>The Support v7 Demos application contains a variety of small sample
-code showing how to use key features of the Android API 7+ Support Library.
-This library contains code that you can
-build in to your application to access new features and common
-utilities while being able to run down to version 2.1 (API 7)
-of the platform.
-</p>
-
-<script type="text/javascript">
-
-// This is a totally temporary hack to display the following content only
-// when the docs are online. This will be changed once the samples get moved.
-
-if (toRoot == "/") {
-
-document.write(""+
-"<p>You'll notice that all the samples are included in a single Android "+
-"project, so the application code and other resource files for all samples are batched "+
-"together.  To help you find the code that's relevant to you, here's a directory that "+
-"points to the program code for the different topics included in the project:</p>"+
-
-"<ul>"+
-"<li><a href='src/com/example/android/supportv7/app/index.html'>App</a></li>"+
-"<li><a href='src/com/example/android/supportv7/media/index.html'>Media</a></li>"+
-"<li><a href='src/com/example/android/supportv7/view/index.html'>Views</a></li>"+
-"</ul>");
-
-}
-
-</script>
diff --git a/samples/Support7Demos/res/anim/animation_grouping_1_01.xml b/samples/Support7Demos/res/anim/animation_grouping_1_01.xml
deleted file mode 100644
index 86f966a..0000000
--- a/samples/Support7Demos/res/anim/animation_grouping_1_01.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (C) 2016 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<set xmlns:android="http://schemas.android.com/apk/res/android">
-
-    <objectAnimator
-            android:duration="2000"
-            android:propertyName="rotation"
-            android:valueFrom="0"
-            android:valueTo="360"
-            android:repeatCount="infinite"
-            android:interpolator="@android:anim/linear_interpolator"/>
-</set>
\ No newline at end of file
diff --git a/samples/Support7Demos/res/color/card_selector.xml b/samples/Support7Demos/res/color/card_selector.xml
deleted file mode 100644
index 48b35ee..0000000
--- a/samples/Support7Demos/res/color/card_selector.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:state_focused="true" android:color="@color/card_tropical"/>
-    <item android:state_pressed="true" android:color="@color/card_tropical"/>
-    <item android:color="@color/card_yellow"/>
-</selector>
\ No newline at end of file
diff --git a/samples/Support7Demos/res/drawable-hdpi/apidemo_androidlogo.png b/samples/Support7Demos/res/drawable-hdpi/apidemo_androidlogo.png
deleted file mode 100644
index 088181b..0000000
--- a/samples/Support7Demos/res/drawable-hdpi/apidemo_androidlogo.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support7Demos/res/drawable-hdpi/app_sample_code.png b/samples/Support7Demos/res/drawable-hdpi/app_sample_code.png
deleted file mode 100755
index 66a1984..0000000
--- a/samples/Support7Demos/res/drawable-hdpi/app_sample_code.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support7Demos/res/drawable-hdpi/drawer_shadow.9.png b/samples/Support7Demos/res/drawable-hdpi/drawer_shadow.9.png
deleted file mode 100644
index 224cc4f..0000000
--- a/samples/Support7Demos/res/drawable-hdpi/drawer_shadow.9.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support7Demos/res/drawable-hdpi/drawer_shadow_end.9.png b/samples/Support7Demos/res/drawable-hdpi/drawer_shadow_end.9.png
deleted file mode 100644
index 2b79b04..0000000
--- a/samples/Support7Demos/res/drawable-hdpi/drawer_shadow_end.9.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support7Demos/res/drawable-hdpi/ic_android.png b/samples/Support7Demos/res/drawable-hdpi/ic_android.png
deleted file mode 100755
index 94b8fb1..0000000
--- a/samples/Support7Demos/res/drawable-hdpi/ic_android.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support7Demos/res/drawable-hdpi/ic_launcher_settings.png b/samples/Support7Demos/res/drawable-hdpi/ic_launcher_settings.png
deleted file mode 100644
index c02bd42..0000000
--- a/samples/Support7Demos/res/drawable-hdpi/ic_launcher_settings.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support7Demos/res/drawable-hdpi/ic_media_pause.png b/samples/Support7Demos/res/drawable-hdpi/ic_media_pause.png
deleted file mode 100644
index 1d465a4..0000000
--- a/samples/Support7Demos/res/drawable-hdpi/ic_media_pause.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support7Demos/res/drawable-hdpi/ic_media_play.png b/samples/Support7Demos/res/drawable-hdpi/ic_media_play.png
deleted file mode 100644
index 2746d17..0000000
--- a/samples/Support7Demos/res/drawable-hdpi/ic_media_play.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support7Demos/res/drawable-hdpi/ic_media_stop.png b/samples/Support7Demos/res/drawable-hdpi/ic_media_stop.png
deleted file mode 100644
index a0ff136..0000000
--- a/samples/Support7Demos/res/drawable-hdpi/ic_media_stop.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support7Demos/res/drawable-hdpi/ic_menu_add.png b/samples/Support7Demos/res/drawable-hdpi/ic_menu_add.png
deleted file mode 100644
index 444e8a5..0000000
--- a/samples/Support7Demos/res/drawable-hdpi/ic_menu_add.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support7Demos/res/drawable-hdpi/ic_menu_delete.png b/samples/Support7Demos/res/drawable-hdpi/ic_menu_delete.png
deleted file mode 100644
index 24d8f6a..0000000
--- a/samples/Support7Demos/res/drawable-hdpi/ic_menu_delete.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support7Demos/res/drawable-ldrtl-hdpi/drawer_shadow.9.png b/samples/Support7Demos/res/drawable-ldrtl-hdpi/drawer_shadow.9.png
deleted file mode 100644
index 2b79b04..0000000
--- a/samples/Support7Demos/res/drawable-ldrtl-hdpi/drawer_shadow.9.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support7Demos/res/drawable-ldrtl-hdpi/drawer_shadow_end.9.png b/samples/Support7Demos/res/drawable-ldrtl-hdpi/drawer_shadow_end.9.png
deleted file mode 100644
index 224cc4f..0000000
--- a/samples/Support7Demos/res/drawable-ldrtl-hdpi/drawer_shadow_end.9.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support7Demos/res/drawable-ldrtl-mdpi/drawer_shadow.9.png b/samples/Support7Demos/res/drawable-ldrtl-mdpi/drawer_shadow.9.png
deleted file mode 100644
index b96daae..0000000
--- a/samples/Support7Demos/res/drawable-ldrtl-mdpi/drawer_shadow.9.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support7Demos/res/drawable-ldrtl-mdpi/drawer_shadow_end.9.png b/samples/Support7Demos/res/drawable-ldrtl-mdpi/drawer_shadow_end.9.png
deleted file mode 100644
index 3797f99..0000000
--- a/samples/Support7Demos/res/drawable-ldrtl-mdpi/drawer_shadow_end.9.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support7Demos/res/drawable-ldrtl-xhdpi/drawer_shadow.9.png b/samples/Support7Demos/res/drawable-ldrtl-xhdpi/drawer_shadow.9.png
deleted file mode 100644
index 77de73c..0000000
--- a/samples/Support7Demos/res/drawable-ldrtl-xhdpi/drawer_shadow.9.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support7Demos/res/drawable-ldrtl-xhdpi/drawer_shadow_end.9.png b/samples/Support7Demos/res/drawable-ldrtl-xhdpi/drawer_shadow_end.9.png
deleted file mode 100644
index fa3d853..0000000
--- a/samples/Support7Demos/res/drawable-ldrtl-xhdpi/drawer_shadow_end.9.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support7Demos/res/drawable-mdpi/apidemo_androidlogo.png b/samples/Support7Demos/res/drawable-mdpi/apidemo_androidlogo.png
deleted file mode 100644
index 11cb47b..0000000
--- a/samples/Support7Demos/res/drawable-mdpi/apidemo_androidlogo.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support7Demos/res/drawable-mdpi/app_sample_code.png b/samples/Support7Demos/res/drawable-mdpi/app_sample_code.png
deleted file mode 100644
index 5ae7701..0000000
--- a/samples/Support7Demos/res/drawable-mdpi/app_sample_code.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support7Demos/res/drawable-mdpi/drawer_shadow.9.png b/samples/Support7Demos/res/drawable-mdpi/drawer_shadow.9.png
deleted file mode 100644
index 3797f99..0000000
--- a/samples/Support7Demos/res/drawable-mdpi/drawer_shadow.9.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support7Demos/res/drawable-mdpi/drawer_shadow_end.9.png b/samples/Support7Demos/res/drawable-mdpi/drawer_shadow_end.9.png
deleted file mode 100644
index b96daae..0000000
--- a/samples/Support7Demos/res/drawable-mdpi/drawer_shadow_end.9.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support7Demos/res/drawable-mdpi/ic_android.png b/samples/Support7Demos/res/drawable-mdpi/ic_android.png
deleted file mode 100755
index afc43db..0000000
--- a/samples/Support7Demos/res/drawable-mdpi/ic_android.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support7Demos/res/drawable-mdpi/ic_launcher_settings.png b/samples/Support7Demos/res/drawable-mdpi/ic_launcher_settings.png
deleted file mode 100644
index 05cdd9a..0000000
--- a/samples/Support7Demos/res/drawable-mdpi/ic_launcher_settings.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support7Demos/res/drawable-mdpi/ic_media_pause.png b/samples/Support7Demos/res/drawable-mdpi/ic_media_pause.png
deleted file mode 100644
index 3e6b2a1..0000000
--- a/samples/Support7Demos/res/drawable-mdpi/ic_media_pause.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support7Demos/res/drawable-mdpi/ic_media_play.png b/samples/Support7Demos/res/drawable-mdpi/ic_media_play.png
deleted file mode 100644
index 7966bbc..0000000
--- a/samples/Support7Demos/res/drawable-mdpi/ic_media_play.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support7Demos/res/drawable-mdpi/ic_media_stop.png b/samples/Support7Demos/res/drawable-mdpi/ic_media_stop.png
deleted file mode 100644
index 8ea7efe..0000000
--- a/samples/Support7Demos/res/drawable-mdpi/ic_media_stop.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support7Demos/res/drawable-mdpi/ic_menu_add.png b/samples/Support7Demos/res/drawable-mdpi/ic_menu_add.png
deleted file mode 100644
index 361c7c4..0000000
--- a/samples/Support7Demos/res/drawable-mdpi/ic_menu_add.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support7Demos/res/drawable-mdpi/ic_menu_delete.png b/samples/Support7Demos/res/drawable-mdpi/ic_menu_delete.png
deleted file mode 100644
index e2c8700..0000000
--- a/samples/Support7Demos/res/drawable-mdpi/ic_menu_delete.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support7Demos/res/drawable-xhdpi/drawer_shadow.9.png b/samples/Support7Demos/res/drawable-xhdpi/drawer_shadow.9.png
deleted file mode 100644
index fa3d853..0000000
--- a/samples/Support7Demos/res/drawable-xhdpi/drawer_shadow.9.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support7Demos/res/drawable-xhdpi/drawer_shadow_end.9.png b/samples/Support7Demos/res/drawable-xhdpi/drawer_shadow_end.9.png
deleted file mode 100644
index 77de73c..0000000
--- a/samples/Support7Demos/res/drawable-xhdpi/drawer_shadow_end.9.png
+++ /dev/null
Binary files differ
diff --git a/samples/Support7Demos/res/drawable/animation_vector_drawable_grouping_1.xml b/samples/Support7Demos/res/drawable/animation_vector_drawable_grouping_1.xml
deleted file mode 100644
index dbdf453..0000000
--- a/samples/Support7Demos/res/drawable/animation_vector_drawable_grouping_1.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<!--
- Copyright (C) 2016 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<animated-vector xmlns:android="http://schemas.android.com/apk/res/android"
-                 android:drawable="@drawable/vector_drawable_grouping_1">
-
-    <target
-            android:name="sun"
-            android:animation="@anim/animation_grouping_1_01"/>
-    <target
-            android:name="earth"
-            android:animation="@anim/animation_grouping_1_01"/>
-
-</animated-vector>
\ No newline at end of file
diff --git a/samples/Support7Demos/res/drawable/gradient.xml b/samples/Support7Demos/res/drawable/gradient.xml
deleted file mode 100644
index 1b654a0..0000000
--- a/samples/Support7Demos/res/drawable/gradient.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-<shape xmlns:android="http://schemas.android.com/apk/res/android">
-    <gradient android:startColor="#FF0000"
-              android:endColor="#0000FF"
-              android:angle="270" />
-</shape>
\ No newline at end of file
diff --git a/samples/Support7Demos/res/drawable/ic_search.xml b/samples/Support7Demos/res/drawable/ic_search.xml
deleted file mode 100644
index b4cba34..0000000
--- a/samples/Support7Demos/res/drawable/ic_search.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-    Copyright (C) 2016 The Android Open Source Project
-
-    Licensed under the Apache License, Version 2.0 (the "License");
-    you may not use this file except in compliance with the License.
-    You may obtain a copy of the License at
-
-         http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-        android:width="24dp"
-        android:height="24dp"
-        android:viewportWidth="24.0"
-        android:viewportHeight="24.0"
-        android:tint="?attr/colorControlNormal">
-    <path
-        android:pathData="M15.5,14l-0.8,0l-0.3,-0.3c1,-1.1 1.6,-2.6 1.6,-4.2C16,5.9 13.1,3 9.5,3C5.9,3 3,5.9 3,9.5S5.9,16 9.5,16c1.6,0 3.1,-0.6 4.2,-1.6l0.3,0.3l0,0.8l5,5l1.5,-1.5L15.5,14zM9.5,14C7,14 5,12 5,9.5S7,5 9.5,5C12,5 14,7 14,9.5S12,14 9.5,14z"
-        android:fillColor="@android:color/white"/>
-</vector>
diff --git a/samples/Support7Demos/res/drawable/vector_drawable_grouping_1.xml b/samples/Support7Demos/res/drawable/vector_drawable_grouping_1.xml
deleted file mode 100644
index 543d934..0000000
--- a/samples/Support7Demos/res/drawable/vector_drawable_grouping_1.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-<!--
- Copyright (C) 2016 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-        android:height="256dp"
-        android:width="256dp"
-        android:viewportHeight="256"
-        android:viewportWidth="256">
-
-    <group
-            android:name="shape_layer_1"
-            android:translateX="128"
-            android:translateY="128">
-        <group android:name="sun">
-            <path
-                    android:name="ellipse_path_1"
-                    android:fillColor="#ffff8000"
-                    android:pathData="m -25 0 a 25,25 0 1,0 50,0 a 25,25 0 1,0 -50,0"/>
-
-            <group
-                    android:name="earth"
-                    android:translateX="75">
-                <path
-                        android:name="ellipse_path_1_1"
-                        android:fillColor="#ff5656ea"
-                        android:pathData="m -10 0 a 10,10 0 1,0 20,0 a 10,10 0 1,0 -20,0"/>
-
-                <group
-                        android:name="moon"
-                        android:translateX="25">
-                    <path
-                            android:name="ellipse_path_1_2"
-                            android:fillColor="#ffadadad"
-                            android:pathData="m -5 0 a 5,5 0 1,0 10,0 a 5,5 0 1,0 -10,0"/>
-                </group>
-            </group>
-        </group>
-    </group>
-
-</vector>
\ No newline at end of file
diff --git a/samples/Support7Demos/res/layout-land/grid_layout_2.xml b/samples/Support7Demos/res/layout-land/grid_layout_2.xml
deleted file mode 100644
index 49fceaa..0000000
--- a/samples/Support7Demos/res/layout-land/grid_layout_2.xml
+++ /dev/null
@@ -1,64 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<android.support.v7.widget.GridLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    app:useDefaultMargins="true"
-    app:alignmentMode="alignBounds"
-    app:rowOrderPreserved="false"
-    app:columnCount="4"
-    >
-    <TextView
-        android:text="Email setup"
-        android:textSize="32dip"
-        app:layout_columnSpan="4"
-        app:layout_gravity="center_horizontal"
-    />
-    <TextView
-        android:text="You can configure email in a few simple steps:"
-        android:textSize="16dip"
-        app:layout_columnSpan="4"
-        app:layout_gravity="left"
-    />
-    <TextView
-        android:text="Email address:"
-        app:layout_gravity="right"
-    />
-    <EditText
-        android:ems="10"
-    />
-    <TextView
-        android:text="Password:"
-        app:layout_column="0"
-        app:layout_gravity="right"
-    />
-    <EditText
-        android:ems="8"
-    />
-    <Button
-        android:text="Manual setup"
-        app:layout_row="5"
-        app:layout_column="3"
-    />
-    <Button
-        android:text="Next"
-        app:layout_column="3"
-        app:layout_gravity="fill_horizontal"
-    />
-</android.support.v7.widget.GridLayout>
diff --git a/samples/Support7Demos/res/layout-v11/appcompat_animated_vector.xml b/samples/Support7Demos/res/layout-v11/appcompat_animated_vector.xml
deleted file mode 100644
index d4de491..0000000
--- a/samples/Support7Demos/res/layout-v11/appcompat_animated_vector.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2016 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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"
-             android:layout_width="match_parent"
-             android:layout_height="match_parent"
-             xmlns:app="http://schemas.android.com/apk/res-auto">
-
-    <ImageView android:id="@+id/vector_image"
-               android:layout_width="wrap_content"
-               android:layout_height="wrap_content"
-               android:layout_gravity="center"
-               app:srcCompat="@drawable/animation_vector_drawable_grouping_1"/>
-
-</FrameLayout>
\ No newline at end of file
diff --git a/samples/Support7Demos/res/layout/action_bar_action_mode.xml b/samples/Support7Demos/res/layout/action_bar_action_mode.xml
deleted file mode 100644
index d498fda..0000000
--- a/samples/Support7Demos/res/layout/action_bar_action_mode.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
-             android:layout_width="match_parent"
-             android:layout_height="match_parent">
-
-    <Button
-            android:id="@+id/btn_start_action_mode"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_gravity="center"
-            android:text="@string/start_action_mode"/>
-
-</FrameLayout>
\ No newline at end of file
diff --git a/samples/Support7Demos/res/layout/action_bar_display_options.xml b/samples/Support7Demos/res/layout/action_bar_display_options.xml
deleted file mode 100644
index 2efb7c2..0000000
--- a/samples/Support7Demos/res/layout/action_bar_display_options.xml
+++ /dev/null
@@ -1,55 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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">
-    <LinearLayout android:layout_width="match_parent"
-                  android:layout_height="match_parent"
-                  android:orientation="vertical">
-        <Button android:id="@+id/toggle_home_as_up"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:text="@string/toggle_home_as_up" />
-        <Button android:id="@+id/toggle_show_home"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:text="@string/toggle_show_home" />
-        <Button android:id="@+id/toggle_use_logo"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:text="@string/toggle_use_logo" />
-        <Button android:id="@+id/toggle_show_title"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:text="@string/toggle_show_title" />
-        <Button android:id="@+id/toggle_show_custom"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:text="@string/toggle_show_custom" />
-        <Button android:id="@+id/toggle_navigation"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:text="@string/toggle_navigation" />
-        <Button android:id="@+id/cycle_custom_gravity"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:text="@string/cycle_custom_gravity" />
-        <Button android:id="@+id/toggle_visibility"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:text="@string/toggle_visibility" />
-    </LinearLayout>
-</ScrollView>
\ No newline at end of file
diff --git a/samples/Support7Demos/res/layout/action_bar_display_options_custom.xml b/samples/Support7Demos/res/layout/action_bar_display_options_custom.xml
deleted file mode 100644
index b7f5bd9..0000000
--- a/samples/Support7Demos/res/layout/action_bar_display_options_custom.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<Button xmlns:android="http://schemas.android.com/apk/res/android"
-        android:text="@string/display_options_custom_button" />
diff --git a/samples/Support7Demos/res/layout/action_bar_fragment_menu.xml b/samples/Support7Demos/res/layout/action_bar_fragment_menu.xml
deleted file mode 100644
index d18684d..0000000
--- a/samples/Support7Demos/res/layout/action_bar_fragment_menu.xml
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:orientation="vertical"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:padding="8dp">
-
-    <TextView
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:textAppearance="?android:attr/textAppearanceMedium"
-        android:text="@string/action_bar_fragment_menu_msg" />
-
-    <CheckBox android:id="@+id/menu1"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:checked="true"
-        android:text="@string/action_bar_fragment_menu1">
-    </CheckBox>
-
-    <CheckBox android:id="@+id/menu2"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:checked="true"
-        android:text="@string/action_bar_fragment_menu2">
-    </CheckBox>
-
-    <CheckBox android:id="@+id/menu3"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:checked="true"
-        android:text="@string/action_bar_fragment_menu3">
-    </CheckBox>
-
-    <CheckBox android:id="@+id/has_options_menu"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:checked="true"
-        android:text="@string/action_bar_fragment_has_options_menu">
-    </CheckBox>
-
-    <CheckBox android:id="@+id/menu_visibility"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:checked="true"
-        android:text="@string/action_bar_fragment_menu_visibility">
-    </CheckBox>
-</LinearLayout>
diff --git a/samples/Support7Demos/res/layout/action_bar_hide_scroll.xml b/samples/Support7Demos/res/layout/action_bar_hide_scroll.xml
deleted file mode 100644
index a80140f..0000000
--- a/samples/Support7Demos/res/layout/action_bar_hide_scroll.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<android.support.v4.widget.NestedScrollView
-        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:orientation="vertical">
-
-        <TextView
-                android:layout_width="match_parent"
-                android:layout_height="2000dp"
-                android:background="@drawable/gradient" />
-
-    </LinearLayout>
-
-</android.support.v4.widget.NestedScrollView>
\ No newline at end of file
diff --git a/samples/Support7Demos/res/layout/action_bar_settings_action_provider.xml b/samples/Support7Demos/res/layout/action_bar_settings_action_provider.xml
deleted file mode 100644
index 969332a..0000000
--- a/samples/Support7Demos/res/layout/action_bar_settings_action_provider.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="wrap_content"
-    android:layout_height="match_parent"
-    android:layout_gravity="center"
-    android:focusable="true"
-    android:addStatesFromChildren="true"
-    android:background="?attr/actionBarItemBackground"
-    style="?attr/actionButtonStyle">
-
-    <ImageButton android:id="@+id/button"
-        android:background="@drawable/ic_launcher_settings"
-        android:layout_width="32dip"
-        android:layout_height="32dip"
-        android:layout_gravity="center"
-        android:scaleType="fitCenter"
-        android:adjustViewBounds="true" />
-
-</LinearLayout>
diff --git a/samples/Support7Demos/res/layout/action_bar_tab_content.xml b/samples/Support7Demos/res/layout/action_bar_tab_content.xml
deleted file mode 100644
index c0aa7fa..0000000
--- a/samples/Support7Demos/res/layout/action_bar_tab_content.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<TextView xmlns:android="http://schemas.android.com/apk/res/android"
-          android:id="@+id/text"
-          android:layout_width="wrap_content"
-          android:layout_height="wrap_content" />
diff --git a/samples/Support7Demos/res/layout/action_bar_tabs.xml b/samples/Support7Demos/res/layout/action_bar_tabs.xml
deleted file mode 100644
index a51f46e..0000000
--- a/samples/Support7Demos/res/layout/action_bar_tabs.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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">
-    <FrameLayout android:id="@+id/fragment_content"
-                 android:layout_width="match_parent"
-                 android:layout_height="0dip"
-                 android:layout_weight="1" />
-    <LinearLayout android:layout_width="match_parent"
-                  android:layout_height="0dip"
-                  android:layout_weight="1"
-                  android:orientation="vertical">
-        <Button android:id="@+id/btn_add_tab"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:text="@string/btn_add_tab"
-                android:onClick="onAddTab" />
-        <Button android:id="@+id/btn_remove_tab"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:text="@string/btn_remove_tab"
-                android:onClick="onRemoveTab" />
-        <Button android:id="@+id/btn_toggle_tabs"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:text="@string/btn_toggle_tabs"
-                android:onClick="onToggleTabs" />
-        <Button android:id="@+id/btn_remove_all_tabs"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:text="@string/btn_remove_all_tabs"
-                android:onClick="onRemoveAllTabs" />
-    </LinearLayout>
-</LinearLayout>
diff --git a/samples/Support7Demos/res/layout/activity_base_layout_manager.xml b/samples/Support7Demos/res/layout/activity_base_layout_manager.xml
deleted file mode 100644
index e56329e..0000000
--- a/samples/Support7Demos/res/layout/activity_base_layout_manager.xml
+++ /dev/null
@@ -1,60 +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.
--->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-              android:orientation="vertical"
-              android:layout_width="match_parent"
-              android:layout_height="match_parent">
-    <LinearLayout
-            android:orientation="horizontal"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content">
-        <CheckBox
-                android:focusable="true"
-                android:focusableInTouchMode="true"
-                android:id="@+id/enable_smooth_scroll"
-                android:text="smooth scroll"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"/>
-        <EditText
-                android:id="@+id/scroll_offset"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:inputType="numberSigned"
-                android:hint="offset"/>
-        <Spinner
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:id="@+id/spinner"/>
-        <Button android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:text="scroll"
-                android:onClick="onScrollClicked"/>
-    </LinearLayout>
-
-    <android.support.v7.widget.RecyclerView
-            android:layout_width="fill_parent"
-            android:layout_height="60dp"
-            android:scrollbars="horizontal"
-            android:id="@+id/config_recycler_view"/>
-    <android.support.v7.widget.RecyclerView
-            android:background="#ff0099cc"
-            android:scrollbarStyle="insideOverlay"
-            android:scrollbars="horizontal|vertical"
-            android:layout_width="fill_parent"
-            android:layout_height="fill_parent"
-            android:id="@+id/recycler_view"/>
-
-</LinearLayout>
\ No newline at end of file
diff --git a/samples/Support7Demos/res/layout/activity_card_view.xml b/samples/Support7Demos/res/layout/activity_card_view.xml
deleted file mode 100644
index 3e1b928..0000000
--- a/samples/Support7Demos/res/layout/activity_card_view.xml
+++ /dev/null
@@ -1,231 +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.
--->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-              xmlns:card_view="http://schemas.android.com/apk/res-auto"
-              android:layout_width="match_parent"
-              android:layout_height="match_parent"
-              android:background="#ffffffff"
-              android:orientation="vertical">
-    <RelativeLayout
-            android:layout_marginLeft="10dp"
-            android:layout_marginRight="10dp"
-            android:orientation="vertical"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content">
-        <TextView
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:textColor="@android:color/black"
-                android:id="@+id/radius_label"
-                android:layout_marginBottom="5dp"
-                android:text="@string/card_view_radius"/>
-        <SeekBar
-                android:id="@+id/corner_radius_seek_bar"
-                android:max="100"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_toRightOf="@id/radius_label"
-                android:layout_alignTop="@id/radius_label"/>
-        <TextView
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_marginBottom="5dp"
-                android:textColor="@android:color/black"
-                android:id="@+id/width_label"
-                android:text="@string/card_view_width"
-                android:layout_below="@id/radius_label"
-                android:layout_alignRight="@id/radius_label"/>
-        <SeekBar
-                android:id="@+id/width_seek_bar"
-                android:max="600"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_toRightOf="@id/width_label"
-                android:layout_alignTop="@id/width_label"/>
-        <TextView
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_marginBottom="5dp"
-                android:textColor="@android:color/black"
-                android:id="@+id/height_label"
-                android:text="@string/card_view_height"
-                android:layout_below="@id/width_label"
-                android:layout_alignRight="@id/width_label"/>
-        <SeekBar
-                android:id="@+id/height_seek_bar"
-                android:max="600"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_toRightOf="@id/height_label"
-                android:layout_alignTop="@id/height_label"/>
-
-        <TextView
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_marginBottom="5dp"
-                android:id="@+id/elevation_label"
-                android:textColor="@android:color/black"
-                android:text="@string/card_view_elevation"
-                android:layout_below="@id/height_label"
-                android:layout_alignRight="@id/height_label"/>
-        <SeekBar
-                android:id="@+id/elevation_seek_bar"
-                android:max="50"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_toRightOf="@id/elevation_label"
-                android:layout_alignTop="@id/elevation_label"/>
-
-        <TextView
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_marginBottom="5dp"
-                android:id="@+id/max_elevation_label"
-                android:textColor="@android:color/black"
-                android:text="@string/card_view_max_elevation"
-                android:layout_below="@id/elevation_label"
-                android:layout_alignRight="@id/elevation_label"/>
-        <SeekBar
-                android:id="@+id/max_elevation_seek_bar"
-                android:max="60"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_toRightOf="@id/max_elevation_label"
-                android:layout_alignTop="@id/max_elevation_label"/>
-
-        <TextView
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_marginBottom="5dp"
-                android:id="@+id/alpha_label"
-                android:textColor="@android:color/black"
-                android:text="@string/card_view_alpha"
-                android:layout_below="@id/max_elevation_label"
-                android:layout_alignRight="@id/max_elevation_label"/>
-        <SeekBar
-                android:id="@+id/alpha_seek_bar"
-                android:max="255"
-                android:progress="255"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_toRightOf="@id/alpha_label"
-                android:layout_alignTop="@id/alpha_label"/>
-        <TextView
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_marginBottom="5dp"
-                android:id="@+id/color_label"
-                android:textColor="@android:color/black"
-                android:text="@string/card_view_bg_color"
-                android:layout_below="@id/alpha_label"
-                android:layout_alignRight="@id/alpha_label"/>
-
-        <ScrollView
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_below="@id/alpha_seek_bar"
-                android:layout_toRightOf="@id/color_label"
-                android:layout_alignParentRight="true"
-                android:layout_alignTop="@id/color_label">
-
-            <RadioGroup
-                    android:id="@+id/select_bg_color_radio"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:orientation="horizontal">
-                <RadioButton
-                        android:id="@+id/def"
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:background="@color/cardview_light_background"
-                        android:checked="true"/>
-                <RadioButton
-                        android:id="@+id/yellow"
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:background="@color/card_yellow"/>
-                <RadioButton
-                        android:id="@+id/aquatic"
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:background="@color/card_aquatic"/>
-                <RadioButton
-                        android:id="@+id/classic"
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:background="@color/card_classic"/>
-                <RadioButton
-                        android:id="@+id/sunbrite"
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:background="@color/card_sunbrite"/>
-                <RadioButton
-                        android:id="@+id/tropical"
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:background="@color/card_tropical"/>
-                <RadioButton
-                        android:id="@+id/selector"
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:text="@string/cardview_background_selector_label"/>
-            </RadioGroup>
-        </ScrollView>
-        <RadioGroup
-                android:id="@+id/select_target_radio"
-                android:layout_width="fill_parent"
-                android:layout_height="wrap_content"
-                android:orientation="horizontal"
-                android:layout_below="@id/color_label">
-            <RadioButton
-                    android:id="@+id/resize_card_view"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:textColor="@android:color/black"
-                    android:text="@string/card_view_resize_card_view"
-                    android:checked="true"/>
-            <RadioButton
-                    android:id="@+id/resize_content"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:textColor="@android:color/black"
-                    android:text="@string/card_view_resize_content"/>
-        </RadioGroup>
-    </RelativeLayout>
-    <RelativeLayout android:layout_width="fill_parent"
-                    android:layout_height="match_parent">
-        <android.support.v7.widget.CardView
-                android:id="@+id/card_view"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                card_view:cardElevation="10dp"
-                android:clickable="true"
-                android:layout_margin="8dp">
-            <TextView
-                    android:id="@+id/info_text"
-                    android:text="@string/card_view"
-                    android:textColor="@android:color/black"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content" />
-        </android.support.v7.widget.CardView>
-        <TextView android:layout_width="wrap_content" android:layout_height="wrap_content"
-                  android:text="@string/card_view_sample_text"
-                  android:textColor="@android:color/black"
-                android:layout_toRightOf="@id/card_view"
-                android:layout_alignTop="@id/card_view"/>
-    </RelativeLayout>
-
-</LinearLayout>
diff --git a/samples/Support7Demos/res/layout/activity_item_touch.xml b/samples/Support7Demos/res/layout/activity_item_touch.xml
deleted file mode 100644
index d809b0e..0000000
--- a/samples/Support7Demos/res/layout/activity_item_touch.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-              android:orientation="vertical"
-              android:layout_width="match_parent"
-              android:layout_height="match_parent">
-    <android.support.v7.widget.RecyclerView
-            android:layout_width="fill_parent"
-            android:layout_height="60dp"
-            android:scrollbars="horizontal"
-            android:id="@+id/config_recycler_view"/>
-    <android.support.v7.widget.RecyclerView
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:id="@+id/recycler_view"/>
-</LinearLayout>
\ No newline at end of file
diff --git a/samples/Support7Demos/res/layout/alert_dialog_usage.xml b/samples/Support7Demos/res/layout/alert_dialog_usage.xml
deleted file mode 100644
index 9c6dee6..0000000
--- a/samples/Support7Demos/res/layout/alert_dialog_usage.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-              android:orientation="vertical"
-              android:layout_width="match_parent"
-              android:layout_height="match_parent"
-              android:padding="16dp">
-
-    <Spinner
-            android:id="@+id/spinner_dialogs"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:entries="@array/alert_dialog_types"
-            android:layout_marginBottom="16dp"/>
-
-    <Button
-            android:id="@+id/btn_show_dialog"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:text="Show selected dialog"
-            android:gravity="center"/>
-
-</LinearLayout>
\ No newline at end of file
diff --git a/samples/Support7Demos/res/layout/animated_recycler_view.xml b/samples/Support7Demos/res/layout/animated_recycler_view.xml
deleted file mode 100644
index e5ff037..0000000
--- a/samples/Support7Demos/res/layout/animated_recycler_view.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-              android:orientation="vertical"
-              android:id="@+id/container"
-              android:layout_width="match_parent"
-              android:layout_height="match_parent">
-
-    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-                  android:orientation="horizontal"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content">
-
-        <CheckBox
-                android:id="@+id/enableAnimations"
-                android:checked="true"
-                android:text="@string/enableAnimations"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"/>
-
-        <CheckBox
-                android:id="@+id/enablePredictiveAnimations"
-                android:checked="true"
-                android:text="@string/enablePredictiveAnimations"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"/>
-
-        <CheckBox
-                android:id="@+id/enableInPlaceChange"
-                android:checked="false"
-                android:text="@string/enableInPlaceChange"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"/>
-
-    </LinearLayout>
-
-    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-                  android:orientation="horizontal"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content">
-
-        <Button
-                android:id="@+id/deleteButton"
-                android:layout_weight=".5"
-                android:layout_width="0dip"
-                android:layout_height="wrap_content"
-                android:onClick="deleteSelectedItems"
-                android:text="@string/delete_item"/>
-
-        <Button
-                android:layout_weight=".5"
-                android:layout_width="0dip"
-                android:layout_height="wrap_content"
-                android:onClick="addItem"
-                android:text="@string/add_item"/>
-
-        <Button
-                android:layout_weight=".5"
-                android:layout_width="0dip"
-                android:layout_height="wrap_content"
-                android:onClick="addDeleteItem"
-                android:text="@string/add_delete_item"/>
-
-        <Button
-                android:layout_weight=".5"
-                android:layout_width="0dip"
-                android:layout_height="wrap_content"
-                android:onClick="deleteAddItem"
-                android:text="@string/delete_add_item"/>
-
-        <Button
-                android:layout_weight=".5"
-                android:layout_width="0dip"
-                android:layout_height="wrap_content"
-                android:onClick="d1a2d3"
-                android:text="@string/d1a2d3"/>
-
-    </LinearLayout>
-
-</LinearLayout>
\ No newline at end of file
diff --git a/samples/Support7Demos/res/layout/appcompat_animated_vector.xml b/samples/Support7Demos/res/layout/appcompat_animated_vector.xml
deleted file mode 100644
index 4881022..0000000
--- a/samples/Support7Demos/res/layout/appcompat_animated_vector.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2016 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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"
-             android:layout_width="match_parent"
-             android:layout_height="match_parent">
-
-    <TextView android:layout_width="wrap_content"
-              android:layout_height="wrap_content"
-              android:layout_gravity="center"
-              android:text="@string/appcompat_vector_disabled"
-              android:layout_margin="16dp"/>
-
-</FrameLayout>
\ No newline at end of file
diff --git a/samples/Support7Demos/res/layout/appcompat_night_mode.xml b/samples/Support7Demos/res/layout/appcompat_night_mode.xml
deleted file mode 100644
index 07a742d..0000000
--- a/samples/Support7Demos/res/layout/appcompat_night_mode.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-
-<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent">
-
-    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  android:orientation="vertical"
-                  android:padding="16dp">
-
-        <Button android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:text="@string/mode_night_no"
-                android:onClick="setModeNightNo"/>
-
-        <Button android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:text="@string/mode_night_yes"
-                android:onClick="setModeNightYes"/>
-
-        <Button android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:text="@string/mode_night_auto"
-                android:onClick="setModeNightAuto"/>
-
-    </LinearLayout>
-
-</ScrollView>
\ No newline at end of file
diff --git a/samples/Support7Demos/res/layout/appcompat_widgets_buttons.xml b/samples/Support7Demos/res/layout/appcompat_widgets_buttons.xml
deleted file mode 100644
index aa07328..0000000
--- a/samples/Support7Demos/res/layout/appcompat_widgets_buttons.xml
+++ /dev/null
@@ -1,86 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-
-<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent">
-
-    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  android:orientation="vertical"
-                  android:padding="16dp">
-
-        <android.support.v7.widget.SwitchCompat
-                android:layout_height="wrap_content"
-                android:layout_width="wrap_content"
-                android:text="Switch"/>
-
-        <CheckBox
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:text="CheckBox"/>
-
-        <RadioGroup
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:orientation="horizontal">
-
-            <RadioButton
-                    android:id="@+id/radiobutton_1"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:text="RadioButton"/>
-
-            <RadioButton
-                    android:id="@+id/radiobutton_2"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:text="RadioButton"/>
-
-        </RadioGroup>
-
-        <Button
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:text="Button"/>
-
-        <Button
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:text="Button (small)"
-                style="@style/Widget.AppCompat.Button.Small"/>
-
-        <Button
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:text="Button (borderless)"
-                style="@style/Widget.AppCompat.Button.Borderless"/>
-
-        <Button
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:text="Button (borderless + colored)"
-                style="@style/Widget.AppCompat.Button.Borderless.Colored"/>
-
-        <RatingBar
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"/>
-
-    </LinearLayout>
-
-</ScrollView>
\ No newline at end of file
diff --git a/samples/Support7Demos/res/layout/appcompat_widgets_text_input.xml b/samples/Support7Demos/res/layout/appcompat_widgets_text_input.xml
deleted file mode 100644
index d242735..0000000
--- a/samples/Support7Demos/res/layout/appcompat_widgets_text_input.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-
-
-<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="16dp">
-
-    <EditText
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:hint="EditText"/>
-
-    <AutoCompleteTextView
-            android:id="@+id/widgets_autocompletetextview"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:hint="AutoCompleteTextView"/>
-
-    <MultiAutoCompleteTextView
-            android:id="@+id/widgets_multiautocompletetextview"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:hint="MultiAutoCompleteTextView"/>
-
-    <CheckedTextView
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:text="CheckedTextView"
-            android:checked="true"
-            android:checkMark="?android:listChoiceIndicatorMultiple"/>
-
-</LinearLayout>
-
-
diff --git a/samples/Support7Demos/res/layout/appcompat_widgets_text_spinners.xml b/samples/Support7Demos/res/layout/appcompat_widgets_text_spinners.xml
deleted file mode 100644
index 0a60632..0000000
--- a/samples/Support7Demos/res/layout/appcompat_widgets_text_spinners.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-
-
-<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="16dp">
-
-    <Spinner
-            android:id="@+id/widgets_spinner"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"/>
-
-    <Spinner
-            android:id="@+id/widgets_spinner_underlined"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            style="@style/Widget.AppCompat.Spinner.Underlined"/>
-
-</LinearLayout>
-
-
diff --git a/samples/Support7Demos/res/layout/config_view_toggle.xml b/samples/Support7Demos/res/layout/config_view_toggle.xml
deleted file mode 100644
index ac187ff..0000000
--- a/samples/Support7Demos/res/layout/config_view_toggle.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<CheckBox xmlns:android="http://schemas.android.com/apk/res/android"
-              android:layout_width="wrap_content"
-              android:layout_height="match_parent">
-
-</CheckBox>
\ No newline at end of file
diff --git a/samples/Support7Demos/res/layout/dialog_content.xml b/samples/Support7Demos/res/layout/dialog_content.xml
deleted file mode 100644
index 7734960..0000000
--- a/samples/Support7Demos/res/layout/dialog_content.xml
+++ /dev/null
@@ -1,33 +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.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-              android:orientation="vertical"
-              android:layout_width="match_parent"
-              android:layout_height="match_parent">
-
-    <TextView
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:text="@string/dialog_content"/>
-
-    <ImageView
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:src="@drawable/app_sample_code" />
-
-</LinearLayout>
\ No newline at end of file
diff --git a/samples/Support7Demos/res/layout/dialog_content_buttons.xml b/samples/Support7Demos/res/layout/dialog_content_buttons.xml
deleted file mode 100644
index ab69748..0000000
--- a/samples/Support7Demos/res/layout/dialog_content_buttons.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-              android:orientation="vertical"
-              android:layout_width="match_parent"
-              android:layout_height="match_parent">
-
-    <TextView
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:text="@string/dialog_content"/>
-
-    <ImageView
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:src="@drawable/app_sample_code" />
-
-    <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:gravity="right"
-            style="?attr/buttonBarStyle">
-
-        <Button
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:text="@android:string/no"
-                style="?attr/buttonBarButtonStyle"/>
-
-        <Button
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:text="@android:string/ok"
-                style="?attr/buttonBarButtonStyle"/>
-
-    </LinearLayout>
-
-</LinearLayout>
\ No newline at end of file
diff --git a/samples/Support7Demos/res/layout/dialog_usage.xml b/samples/Support7Demos/res/layout/dialog_usage.xml
deleted file mode 100644
index 4ef0626..0000000
--- a/samples/Support7Demos/res/layout/dialog_usage.xml
+++ /dev/null
@@ -1,38 +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.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-              android:orientation="vertical"
-              android:layout_width="match_parent"
-              android:layout_height="match_parent"
-              android:padding="16dp">
-
-    <Spinner
-            android:id="@+id/spinner_dialogs"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:entries="@array/dialog_types"
-            android:layout_marginBottom="16dp"/>
-
-    <Button
-            android:id="@+id/btn_show_dialog"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:text="Show selected dialog"
-            android:gravity="center"/>
-
-</LinearLayout>
\ No newline at end of file
diff --git a/samples/Support7Demos/res/layout/drawer_layout.xml b/samples/Support7Demos/res/layout/drawer_layout.xml
deleted file mode 100644
index e2d0387..0000000
--- a/samples/Support7Demos/res/layout/drawer_layout.xml
+++ /dev/null
@@ -1,91 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-
-<!--
-    A DrawerLayout is indended to be used as the top-level content view
-    using match_parent for both width and height to consume the full space available.
-    See https://www.google.com/design/spec/patterns/navigation-drawer.html#navigation-drawer-specs
-    for the full spec of a drawer in Material design.
--->
-<android.support.v4.widget.DrawerLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/drawer_layout"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:fitsSystemWindows="true">
-    <!-- As the main content view, the view below consumes the entire
-         space available using match_parent in both dimensions. Note that
-         this child does not specify android:layout_gravity attribute. -->
-    <LinearLayout
-        android:id="@+id/content"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:orientation="vertical">
-        <!-- This will be set as the support action bar of the activity at runtime.
-             It needs to be a dynamic runtime call for correct vertical layering of
-             the drawer and the toolbar. -->
-        <android.support.v7.widget.Toolbar
-            android:id="@+id/toolbar"
-            android:layout_width="match_parent"
-            android:layout_height="?attr/actionBarSize" />
-
-        <ScrollView
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:scrollbarStyle="outsideOverlay">
-            <TextView
-                android:id="@+id/content_text"
-                android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                android:text="@string/drawer_layout_summary"
-                android:textAppearance="?android:attr/textAppearanceMedium"
-                android:padding="16dp"/>
-        </ScrollView>
-    </LinearLayout>
-
-    <!-- android:layout_gravity="start" tells DrawerLayout to treat
-         this as a sliding drawer on the starting side, which is
-         left for left-to-right locales. The drawer is given arbitrary
-         initial width and extends the full height of the container. A
-         solid background is used for contrast with the content view.
-         android:fitsSystemWindows="true" tells the system to have
-         DrawerLayout span the full height of the screen, including the
-         system status bar on Lollipop+ versions of the plaform. The actual
-         width of drawer will be determined at runtime based on the screen
-         size according to the Material spec. -->
-    <ListView
-            android:id="@+id/start_drawer"
-            android:layout_width="wrap_content"
-            android:layout_height="match_parent"
-            android:layout_gravity="start"
-            android:background="#333333"
-            android:fitsSystemWindows="true"/>
-
-    <!-- android:layout_gravity="end" tells DrawerLayout to treat
-         this as a sliding drawer on the ending side, which is
-         right for left-to-right locales. The drawer is given arbitrary
-         initial width and extends the full height of the container. A
-         solid background is used for contrast with the content view.
-         The actual width of drawer will be determined at runtime based on
-         the screen size according to the Material spec. -->
-    <FrameLayout
-            android:id="@+id/end_drawer"
-            android:layout_width="wrap_content"
-            android:layout_height="match_parent"
-            android:layout_gravity="end"
-            android:background="#808080"/>
-</android.support.v4.widget.DrawerLayout>
-
diff --git a/samples/Support7Demos/res/layout/grid_layout_1.xml b/samples/Support7Demos/res/layout/grid_layout_1.xml
deleted file mode 100644
index c3b1537..0000000
--- a/samples/Support7Demos/res/layout/grid_layout_1.xml
+++ /dev/null
@@ -1,47 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<!--
-    Demonstrates using GridLayout to build the "Simple Form" from the
-    LinearLayout and RelativeLayout demos.
--->
-
-<android.support.v7.widget.GridLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:background="@drawable/blue"
-    android:padding="10dip"
-    app:columnCount="4"
-    >
-    <TextView
-        android:text="@string/grid_layout_1_instructions"
-    />
-    <EditText
-        app:layout_gravity="fill_horizontal"
-        app:layout_column="0"
-        app:layout_columnSpan="4"
-    />
-    <Button
-        android:text="@string/grid_layout_1_cancel"
-        app:layout_column="2"
-    />
-    <Button
-        android:text="@string/grid_layout_1_ok"
-        android:layout_marginLeft="10dip"
-    />
-</android.support.v7.widget.GridLayout>
diff --git a/samples/Support7Demos/res/layout/grid_layout_2.xml b/samples/Support7Demos/res/layout/grid_layout_2.xml
deleted file mode 100644
index b7ee40c..0000000
--- a/samples/Support7Demos/res/layout/grid_layout_2.xml
+++ /dev/null
@@ -1,64 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<android.support.v7.widget.GridLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    app:useDefaultMargins="true"
-    app:alignmentMode="alignBounds"
-    app:columnOrderPreserved="false"
-    app:columnCount="4"
-    >
-    <TextView
-        android:text="Email setup"
-        android:textSize="32dip"
-        app:layout_columnSpan="4"
-        app:layout_gravity="center_horizontal"
-    />
-    <TextView
-        android:text="You can configure email in a few simple steps:"
-        android:textSize="16dip"
-        app:layout_columnSpan="4"
-        app:layout_gravity="left"
-    />
-    <TextView
-        android:text="Email address:"
-        app:layout_gravity="right"
-    />
-    <EditText
-        android:ems="10"
-    />
-    <TextView
-        android:text="Password:"
-        app:layout_column="0"
-        app:layout_gravity="right"
-    />
-    <EditText
-        android:ems="8"
-    />
-    <Button
-        android:text="Manual setup"
-        app:layout_row="5"
-        app:layout_column="3"
-    />
-    <Button
-        android:text="Next"
-        app:layout_column="3"
-        app:layout_gravity="fill_horizontal"
-    />
-</android.support.v7.widget.GridLayout>
diff --git a/samples/Support7Demos/res/layout/list_popup_window_activity.xml b/samples/Support7Demos/res/layout/list_popup_window_activity.xml
deleted file mode 100644
index 34da5bb..0000000
--- a/samples/Support7Demos/res/layout/list_popup_window_activity.xml
+++ /dev/null
@@ -1,55 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-
-<RelativeLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/container"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent">
-    <Button
-        android:id="@+id/test_button"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_alignParentTop="true"
-        android:layout_centerHorizontal="true"
-        android:text="@string/list_popup_window_button" />
-
-    <CheckBox
-        android:id="@+id/is_modal"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_alignParentBottom="true"
-        android:layout_centerHorizontal="true"
-        android:text="@string/list_popup_window_is_modal"
-        android:checked="true" />
-
-    <TextView
-        android:id="@+id/log"
-        android:layout_width="match_parent"
-        android:layout_height="150dip"
-        android:layout_above="@id/is_modal"
-        android:padding="8dip"
-        android:background="#E5E5E5" />
-
-    <TextView
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_above="@id/log"
-        android:padding="8dip"
-        android:textStyle="bold"
-        android:text="@string/list_popup_window_summary" />
-</RelativeLayout>
-
diff --git a/samples/Support7Demos/res/layout/media_item.xml b/samples/Support7Demos/res/layout/media_item.xml
deleted file mode 100644
index e5d6d02..0000000
--- a/samples/Support7Demos/res/layout/media_item.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-
-<!-- Layout for list item in Library or Playlist view. Displays ImageButton
-     instead of radio button to the right of the item. -->
-
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:orientation="horizontal"
-        android:gravity="center_vertical">
-
-    <ImageButton android:id="@+id/item_action"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:minWidth="48dp"
-        android:minHeight="48dp"
-        android:layout_alignParentRight="true"
-        android:layout_centerVertical="true"
-        android:background="@null"/>
-
-    <TextView android:id="@+id/item_text"
-        android:layout_width="fill_parent"
-        android:layout_height="wrap_content"
-        android:textAppearance="?android:attr/textAppearanceSmall"
-        android:layout_centerVertical="true"
-        android:layout_toLeftOf="@id/item_action"
-        android:layout_gravity="left"
-        android:gravity="left"/>
-</RelativeLayout>
diff --git a/samples/Support7Demos/res/layout/overlay_display_window.xml b/samples/Support7Demos/res/layout/overlay_display_window.xml
deleted file mode 100644
index 36b4a0d..0000000
--- a/samples/Support7Demos/res/layout/overlay_display_window.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
-      android:layout_width="match_parent"
-      android:layout_height="match_parent"
-      android:background="#000000">
-    <TextureView android:id="@+id/overlay_display_window_texture"
-               android:layout_width="0px"
-               android:layout_height="0px" />
-    <TextView android:id="@+id/overlay_display_window_title"
-               android:layout_width="wrap_content"
-               android:layout_height="wrap_content"
-               android:layout_gravity="top|center_horizontal" />
-</FrameLayout>
diff --git a/samples/Support7Demos/res/layout/palette_activity_detail.xml b/samples/Support7Demos/res/layout/palette_activity_detail.xml
deleted file mode 100644
index e59abce..0000000
--- a/samples/Support7Demos/res/layout/palette_activity_detail.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.
--->
-
-<LinearLayout
-      xmlns:android="http://schemas.android.com/apk/res/android"
-      android:layout_width="match_parent"
-      android:layout_height="match_parent"
-      android:orientation="vertical">
-
-    <include layout="@layout/palette_list_item" />
-
-    <TextView
-          android:layout_width="match_parent"
-          android:layout_height="wrap_content"
-          android:text="@string/palette_all_colors"
-          style="?android:attr/listSeparatorTextViewStyle"/>
-
-    <GridView
-          android:id="@+id/palette"
-          android:layout_width="match_parent"
-          android:layout_height="wrap_content"
-          android:layout_weight="1"
-          android:columnWidth="@dimen/color_palette_size"
-          android:numColumns="auto_fit"/>
-
-</LinearLayout>
diff --git a/samples/Support7Demos/res/layout/palette_grid_item.xml b/samples/Support7Demos/res/layout/palette_grid_item.xml
deleted file mode 100644
index 29e11eb..0000000
--- a/samples/Support7Demos/res/layout/palette_grid_item.xml
+++ /dev/null
@@ -1,20 +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.
--->
-
-<View xmlns:android="http://schemas.android.com/apk/res/android"
-          android:layout_width="match_parent"
-          android:layout_height="@dimen/color_palette_size" />
\ No newline at end of file
diff --git a/samples/Support7Demos/res/layout/palette_list_item.xml b/samples/Support7Demos/res/layout/palette_list_item.xml
deleted file mode 100644
index ea9fa7d..0000000
--- a/samples/Support7Demos/res/layout/palette_list_item.xml
+++ /dev/null
@@ -1,81 +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.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="110dp"
-    android:divider="?android:attr/dividerHorizontal"
-    android:orientation="horizontal"
-    android:showDividers="middle">
-
-    <ImageView
-        android:id="@+id/image"
-        android:layout_width="130dp"
-        android:layout_height="match_parent"
-        android:layout_weight="1"
-        android:scaleType="fitCenter" />
-
-    <TextView
-        android:id="@+id/text_light_vibrant"
-        android:layout_width="wrap_content"
-        android:layout_height="match_parent"
-        android:layout_weight="1"
-        android:gravity="center"
-        android:textAppearance="?android:attr/textAppearanceInverse"
-        android:text="LV" />
-
-    <TextView
-        android:id="@+id/text_vibrant"
-        android:layout_width="wrap_content"
-        android:layout_height="match_parent"
-        android:layout_weight="1"
-        android:gravity="center"
-        android:text="V" />
-
-    <TextView
-        android:id="@+id/text_dark_vibrant"
-        android:layout_width="wrap_content"
-        android:layout_height="match_parent"
-        android:layout_weight="1"
-        android:gravity="center"
-        android:text="DV" />
-
-    <TextView
-        android:id="@+id/text_light_muted"
-        android:layout_width="wrap_content"
-        android:layout_height="match_parent"
-        android:layout_weight="1"
-        android:gravity="center"
-        android:textAppearance="?android:attr/textAppearanceInverse"
-        android:text="LM" />
-
-    <TextView
-        android:id="@+id/text_muted"
-        android:layout_width="wrap_content"
-        android:layout_height="match_parent"
-        android:layout_weight="1"
-        android:gravity="center"
-        android:text="M" />
-
-    <TextView
-        android:id="@+id/text_dark_muted"
-        android:layout_width="wrap_content"
-        android:layout_height="match_parent"
-        android:layout_weight="1"
-        android:gravity="center"
-        android:text="DM" />
-
-</LinearLayout>
diff --git a/samples/Support7Demos/res/layout/popup_menu_activity.xml b/samples/Support7Demos/res/layout/popup_menu_activity.xml
deleted file mode 100644
index c3ed4f5..0000000
--- a/samples/Support7Demos/res/layout/popup_menu_activity.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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:id="@+id/container"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent">
-    <Button
-        android:id="@+id/test_button"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_alignParentTop="true"
-        android:layout_centerHorizontal="true"
-        android:text="@string/popup_menu_button" />
-
-    <TextView
-        android:id="@+id/log"
-        android:layout_width="match_parent"
-        android:layout_height="150dip"
-        android:layout_alignParentBottom="true"
-        android:padding="8dip"
-        android:background="#E5E5E5" />
-
-    <TextView
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_above="@id/log"
-        android:padding="8dip"
-        android:textStyle="bold"
-        android:text="@string/popup_menu_summary" />
-</RelativeLayout>
-
diff --git a/samples/Support7Demos/res/layout/sample_media_controller.xml b/samples/Support7Demos/res/layout/sample_media_controller.xml
deleted file mode 100644
index 4335b04..0000000
--- a/samples/Support7Demos/res/layout/sample_media_controller.xml
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-
-<!-- Layout for the customized MediaRouteControllerDialog -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
-    <LinearLayout android:id="@+id/media_route_info"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_weight="1">
-        <ImageView
-            android:id="@+id/snapshot"
-            android:layout_width="100dp"
-            android:layout_height="100dp"
-            android:scaleType="centerCrop"/>
-        <TextView android:id="@+id/track_info"
-            android:layout_width="fill_parent"
-            android:layout_height="wrap_content"
-            android:padding="4dp"/>
-    </LinearLayout>
-    <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_weight="0"
-        android:gravity="center">
-        <ImageButton android:id="@+id/pause_resume_button"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:minWidth="48dp"
-            android:minHeight="48dp"
-            android:background="@null"
-            android:src="@drawable/ic_media_pause" />
-        <ImageButton android:id="@+id/stop_button"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:minWidth="48dp"
-            android:minHeight="48dp"
-            android:background="@null"
-            android:src="@drawable/ic_media_stop" />
-    </LinearLayout>
-
-</LinearLayout>
diff --git a/samples/Support7Demos/res/layout/sample_media_router.xml b/samples/Support7Demos/res/layout/sample_media_router.xml
deleted file mode 100644
index 618a8e4..0000000
--- a/samples/Support7Demos/res/layout/sample_media_router.xml
+++ /dev/null
@@ -1,143 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<!-- See corresponding Java code SampleMediaRouterActivity.java. -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:orientation="vertical">
-    <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="0dp"
-        android:layout_weight="1"
-        android:orientation="vertical">
-        <!-- Tabs for media library, playlist and statistics -->
-        <TabHost android:id="@+id/tabHost"
-            android:layout_width="fill_parent"
-            android:layout_height="fill_parent"
-            android:layout_weight="1">
-            <LinearLayout
-                android:orientation="vertical"
-                android:layout_width="fill_parent"
-                android:layout_height="fill_parent">
-                <TabWidget android:id="@android:id/tabs"
-                    android:layout_width="fill_parent"
-                    android:layout_height="wrap_content" />
-
-                <FrameLayout android:id="@android:id/tabcontent"
-                    android:layout_width="fill_parent"
-                    android:layout_height="wrap_content">
-                    <LinearLayout android:id="@+id/tab1"
-                        android:layout_width="fill_parent"
-                        android:layout_height="wrap_content"
-                        android:orientation="vertical">
-                        <ListView android:id="@+id/media"
-                            android:layout_width="match_parent"
-                            android:layout_height="wrap_content"
-                            android:layout_weight="1" />
-                    </LinearLayout>
-
-                    <LinearLayout android:id="@+id/tab2"
-                        android:layout_width="fill_parent"
-                        android:layout_height="fill_parent"
-                        android:orientation="vertical">
-                        <ListView android:id="@+id/playlist"
-                            android:layout_width="match_parent"
-                            android:layout_height="wrap_content"
-                            android:layout_weight="1"/>
-                    </LinearLayout>
-
-                    <LinearLayout android:id="@+id/tab3"
-                        android:layout_width="fill_parent"
-                        android:layout_height="fill_parent"
-                        android:orientation="vertical">
-                        <TextView android:id="@+id/info"
-                            android:layout_width="match_parent"
-                            android:layout_height="wrap_content"
-                            android:layout_weight="1"
-                            android:textAppearance="?android:attr/textAppearanceMedium"/>
-                    </LinearLayout>
-                </FrameLayout>
-            </LinearLayout>
-        </TabHost>
-
-        <!-- Control buttons for the currently selected route. -->
-        <CheckBox android:id="@+id/custom_control_view_checkbox"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:text="@string/use_default_media_control"
-                android:checked="true"
-                android:visibility="gone"/>
-        <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_weight="0">
-
-            <SeekBar android:id="@+id/seekbar"
-                 android:layout_width="fill_parent"
-                 android:layout_height="wrap_content"
-                 style="?android:attr/progressBarStyleHorizontal"
-                 android:max="100"
-                 android:progress="0"
-                 android:layout_gravity="center"
-                 android:layout_weight="1"/>
-
-            <ImageButton android:id="@+id/pause_resume_button"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_weight="0"
-                android:layout_gravity="right"
-                android:minWidth="48dp"
-                android:minHeight="48dp"
-                android:background="@null"
-                android:src="@drawable/ic_media_pause" />
-
-            <ImageButton android:id="@+id/stop_button"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_weight="0"
-                android:layout_gravity="right"
-                android:minWidth="48dp"
-                android:minHeight="48dp"
-                android:background="@null"
-                android:src="@drawable/ic_media_stop" />
-        </LinearLayout>
-
-    </LinearLayout>
-
-    <!-- Some content for visual interest in the case where no presentation is showing. -->
-    <FrameLayout android:id="@+id/player"
-        android:background="#ff000000"
-        android:layout_width="match_parent"
-        android:layout_height="0dp"
-        android:layout_weight="1">
-        <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:gravity="center">
-            <SurfaceView android:id="@+id/surface_view"
-                android:layout_width="match_parent"
-                android:layout_height="match_parent"/>
-        </LinearLayout>
-        <TextView
-            android:textColor="#ffaaaaaa"
-            android:text="@string/sample_media_route_activity_local"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_gravity="top|center_horizontal" />
-    </FrameLayout>
-</LinearLayout>
diff --git a/samples/Support7Demos/res/layout/sample_media_router_presentation.xml b/samples/Support7Demos/res/layout/sample_media_router_presentation.xml
deleted file mode 100644
index f029627..0000000
--- a/samples/Support7Demos/res/layout/sample_media_router_presentation.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<!-- The content that we show on secondary displays.
-     See corresponding Java code PresentationWithMediaRouterActivity.java. -->
-
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:background="#ff000000">
-    <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:gravity="center">
-        <SurfaceView android:id="@+id/surface_view"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"/>
-    </LinearLayout>
-    <TextView
-        android:textColor="#ffaaaaaa"
-        android:text="@string/sample_media_route_activity_presentation"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_gravity="top|center_horizontal" />
-</FrameLayout>
diff --git a/samples/Support7Demos/res/layout/selectable_item.xml b/samples/Support7Demos/res/layout/selectable_item.xml
deleted file mode 100644
index 90aa080e..0000000
--- a/samples/Support7Demos/res/layout/selectable_item.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-              android:orientation="horizontal"
-              android:onClick="itemClicked"
-              android:layout_width="match_parent"
-              android:layout_height="match_parent">
-    <CheckBox
-            android:id="@+id/selected"
-            android:onClick="checkboxClicked"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"/>
-    <TextView
-            android:id="@+id/text"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"/>
-</LinearLayout>
\ No newline at end of file
diff --git a/samples/Support7Demos/res/layout/sorted_list_activity.xml b/samples/Support7Demos/res/layout/sorted_list_activity.xml
deleted file mode 100644
index e20db0f..0000000
--- a/samples/Support7Demos/res/layout/sorted_list_activity.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-              android:orientation="vertical"
-              android:layout_width="match_parent"
-              android:layout_height="match_parent">
-    <EditText
-            android:id="@+id/new_item_text_view"
-            style="@style/SortedListItem"
-            android:imeOptions="actionDone"
-            android:singleLine="true"
-            android:hint="@string/add_new_item"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"/>
-
-    <android.support.v7.widget.RecyclerView android:layout_width="match_parent"
-                                            android:layout_height="match_parent"
-                                            android:id="@+id/recycler_view"/>
-</LinearLayout>
\ No newline at end of file
diff --git a/samples/Support7Demos/res/layout/sorted_list_item_view.xml b/samples/Support7Demos/res/layout/sorted_list_item_view.xml
deleted file mode 100644
index cd476ab..0000000
--- a/samples/Support7Demos/res/layout/sorted_list_item_view.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-
-<CheckBox xmlns:android="http://schemas.android.com/apk/res/android"
-          style="@style/SortedListItem"
-          android:layout_width="match_parent"
-          android:layout_height="wrap_content">
-</CheckBox>
\ No newline at end of file
diff --git a/samples/Support7Demos/res/layout/toolbar_action_mode.xml b/samples/Support7Demos/res/layout/toolbar_action_mode.xml
deleted file mode 100644
index e2a1dd8..0000000
--- a/samples/Support7Demos/res/layout/toolbar_action_mode.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-              android:layout_width="match_parent"
-              android:layout_height="match_parent"
-              android:orientation="vertical">
-
-    <android.support.v7.widget.Toolbar
-            android:id="@+id/toolbar"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:minHeight="?actionBarSize"
-            android:background="?attr/colorPrimaryDark"/>
-
-    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
-                 android:layout_width="match_parent"
-                 android:layout_height="0px"
-                 android:layout_weight="1">
-
-        <Button
-                android:id="@+id/btn_start_action_mode"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_gravity="center"
-                android:text="@string/start_action_mode"/>
-
-    </FrameLayout>
-
-</LinearLayout>
\ No newline at end of file
diff --git a/samples/Support7Demos/res/layout/toolbar_display_options.xml b/samples/Support7Demos/res/layout/toolbar_display_options.xml
deleted file mode 100644
index cc3e66c..0000000
--- a/samples/Support7Demos/res/layout/toolbar_display_options.xml
+++ /dev/null
@@ -1,85 +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.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-              xmlns:app="http://schemas.android.com/apk/res-auto"
-              android:layout_width="match_parent"
-              android:layout_height="match_parent"
-              android:orientation="vertical">
-
-    <android.support.v7.widget.Toolbar
-            android:id="@+id/toolbar"
-            android:layout_height="wrap_content"
-            android:layout_width="match_parent"
-            android:minHeight="?attr/actionBarSize"
-            android:background="?attr/colorPrimary" />
-
-    <ScrollView
-            android:layout_width="match_parent"
-            android:layout_height="match_parent">
-
-        <LinearLayout
-                android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                android:orientation="vertical">
-
-            <Button
-                    android:id="@+id/toggle_home_as_up"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:text="@string/toggle_home_as_up"/>
-
-            <Button
-                    android:id="@+id/toggle_show_home"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:text="@string/toggle_show_home"/>
-
-            <Button
-                    android:id="@+id/toggle_use_logo"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:text="@string/toggle_use_logo"/>
-
-            <Button
-                    android:id="@+id/toggle_show_title"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:text="@string/toggle_show_title"/>
-
-            <Button
-                    android:id="@+id/toggle_show_custom"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:text="@string/toggle_show_custom"/>
-
-            <Button
-                    android:id="@+id/cycle_custom_gravity"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:text="@string/cycle_custom_gravity"/>
-
-            <Button
-                    android:id="@+id/toggle_visibility"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:text="@string/toggle_visibility"/>
-
-        </LinearLayout>
-
-    </ScrollView>
-
-</LinearLayout>
\ No newline at end of file
diff --git a/samples/Support7Demos/res/layout/toolbar_fragment_pager.xml b/samples/Support7Demos/res/layout/toolbar_fragment_pager.xml
deleted file mode 100644
index 9f56f19..0000000
--- a/samples/Support7Demos/res/layout/toolbar_fragment_pager.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.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-              android:layout_width="match_parent"
-              android:layout_height="match_parent"
-              android:orientation="vertical">
-
-    <android.support.v7.widget.Toolbar
-            android:id="@+id/toolbar"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:minHeight="?actionBarSize"
-            android:background="?attr/colorPrimaryDark" />
-
-    <android.support.v4.view.ViewPager
-            android:id="@+id/viewpager"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"/>
-
-</LinearLayout>
\ No newline at end of file
diff --git a/samples/Support7Demos/res/layout/toolbar_usage.xml b/samples/Support7Demos/res/layout/toolbar_usage.xml
deleted file mode 100644
index 76944be..0000000
--- a/samples/Support7Demos/res/layout/toolbar_usage.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.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-              xmlns:app="http://schemas.android.com/apk/res-auto"
-              android:orientation="vertical"
-              android:layout_width="match_parent"
-              android:layout_height="match_parent">
-
-    <android.support.v7.widget.Toolbar
-            android:id="@+id/toolbar"
-            android:layout_height="wrap_content"
-            android:layout_width="match_parent"
-            android:minHeight="?attr/actionBarSize"
-            android:background="?attr/colorPrimaryDark"
-            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
-            app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
-
-    <TextView
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:text="Your content"
-            android:gravity="center"
-            android:textAppearance="?android:attr/textAppearanceLarge"/>
-
-</LinearLayout>
\ No newline at end of file
diff --git a/samples/Support7Demos/res/layout/touch_item.xml b/samples/Support7Demos/res/layout/touch_item.xml
deleted file mode 100644
index 7ff9547..0000000
--- a/samples/Support7Demos/res/layout/touch_item.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
-                                    xmlns:card="http://schemas.android.com/apk/res-auto"
-                                    android:layout_width="match_parent"
-                                    card:cardUseCompatPadding="true"
-                                    android:background="@color/card_classic"
-                                    android:layout_height="wrap_content">
-    <TextView android:layout_width="wrap_content"
-              android:textColor="@android:color/black"
-              android:layout_height="@dimen/touch_item_min_height"
-              android:id="@+id/text_view"/>
-    <Button android:layout_width="wrap_content" android:layout_height="wrap_content"
-            android:layout_gravity="end|center_vertical"
-            android:id="@+id/action_button" android:visibility="gone"/>
-    <FrameLayout
-            android:id="@+id/overlay"
-            android:visibility="gone"
-            android:background="@color/card_tropical"
-            android:layout_width="match_parent"
-            android:layout_height="@dimen/touch_item_min_height">
-        <TextView android:layout_width="wrap_content"
-                  android:layout_height="wrap_content"
-                  android:layout_gravity="center"
-                  android:text="@string/swiping"/>
-    </FrameLayout>
-</android.support.v7.widget.CardView>
\ No newline at end of file
diff --git a/samples/Support7Demos/res/menu/action_bar_settings_action_provider.xml b/samples/Support7Demos/res/menu/action_bar_settings_action_provider.xml
deleted file mode 100644
index e9bb931..0000000
--- a/samples/Support7Demos/res/menu/action_bar_settings_action_provider.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 Google Inc.
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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"
-        xmlns:app="http://schemas.android.com/apk/res-auto">
-    <item android:id="@+id/menu_item_action_provider_action_bar"
-        android:title="@string/action_bar_settings"
-        app:showAsAction="ifRoom"
-        app:actionProviderClass="com.example.android.supportv7.app.ActionBarSettingsActionProviderActivity$SettingsActionProvider"/>
-
-    <item android:id="@+id/menu_item_action_provider_overflow"
-        android:title="@string/action_bar_settings"
-        app:showAsAction="never"
-        app:actionProviderClass="com.example.android.supportv7.app.ActionBarSettingsActionProviderActivity$SettingsActionProvider"/>
-</menu>
diff --git a/samples/Support7Demos/res/menu/action_bar_share_action_provider.xml b/samples/Support7Demos/res/menu/action_bar_share_action_provider.xml
deleted file mode 100644
index 6d73f34..0000000
--- a/samples/Support7Demos/res/menu/action_bar_share_action_provider.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2015 Google Inc.
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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"
-        xmlns:app="http://schemas.android.com/apk/res-auto">
-
-    <item android:id="@+id/menu_item_share_provider_action_bar"
-        android:title="@string/action_bar_share"
-        app:showAsAction="ifRoom"
-        app:actionProviderClass="android.support.v7.widget.ShareActionProvider"/>
-
-</menu>
diff --git a/samples/Support7Demos/res/menu/actions.xml b/samples/Support7Demos/res/menu/actions.xml
deleted file mode 100644
index e3b576e..0000000
--- a/samples/Support7Demos/res/menu/actions.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 Google Inc.
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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"
-        xmlns:app="http://schemas.android.com/apk/res-auto">
-    <item android:id="@+id/action_search"
-          android:title="@string/action_bar_search"
-          android:icon="@drawable/ic_search"
-          app:showAsAction="ifRoom|collapseActionView"
-          app:actionViewClass="android.support.v7.widget.SearchView" />
-    <item android:id="@+id/action_add"
-          android:icon="@android:drawable/ic_menu_add"
-          android:title="@string/action_bar_add" />
-    <item android:id="@+id/action_edit"
-          android:icon="@android:drawable/ic_menu_edit"
-          android:title="@string/action_bar_edit"
-          app:showAsAction="always" />
-    <item android:id="@+id/action_share"
-          android:icon="@android:drawable/ic_menu_share"
-          android:title="@string/action_bar_share"
-          android:enabled="false"
-          app:showAsAction="ifRoom" />
-    <item android:id="@+id/action_sort"
-          android:icon="@android:drawable/ic_menu_sort_by_size"
-          android:title="@string/action_bar_sort"
-          app:showAsAction="ifRoom">
-        <menu>
-            <item android:id="@+id/action_sort_size"
-                  android:icon="@android:drawable/ic_menu_sort_by_size"
-                  android:title="@string/action_bar_sort_size" />
-            <item android:id="@+id/action_sort_alpha"
-                  android:icon="@android:drawable/ic_menu_sort_alphabetically"
-                  android:title="@string/action_bar_sort_alpha" />
-        </menu>
-    </item>
-</menu>
diff --git a/samples/Support7Demos/res/menu/display_options_actions.xml b/samples/Support7Demos/res/menu/display_options_actions.xml
deleted file mode 100644
index 344e40d..0000000
--- a/samples/Support7Demos/res/menu/display_options_actions.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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"
-        xmlns:app="http://schemas.android.com/apk/res-auto">
-    <item android:id="@+id/simple_item"
-          android:title="@string/display_options_menu_item"
-          app:showAsAction="ifRoom" />
-</menu>
diff --git a/samples/Support7Demos/res/menu/popup_menu.xml b/samples/Support7Demos/res/menu/popup_menu.xml
deleted file mode 100644
index f50efc5..0000000
--- a/samples/Support7Demos/res/menu/popup_menu.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 Google Inc.
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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_highlight"
-          android:title="@string/popup_menu_highlight" />
-    <item android:id="@+id/action_edit"
-          android:title="@string/popup_menu_edit" />
-    <item android:id="@+id/action_delete"
-          android:title="@string/popup_menu_delete" />
-    <item android:id="@+id/action_ignore"
-          android:title="@string/popup_menu_ignore" />
-    <item android:id="@+id/action_share"
-          android:title="@string/popup_menu_share">
-        <menu>
-            <item android:id="@+id/action_share_email"
-                  android:title="@string/popup_menu_share_email" />
-            <item android:id="@+id/action_share_circles"
-                  android:title="@string/popup_menu_share_circles" />
-        </menu>
-    </item>
-    <item android:id="@+id/action_print"
-          android:title="@string/popup_menu_print" />
-</menu>
diff --git a/samples/Support7Demos/res/menu/sample_media_router_menu.xml b/samples/Support7Demos/res/menu/sample_media_router_menu.xml
deleted file mode 100644
index c93111f..0000000
--- a/samples/Support7Demos/res/menu/sample_media_router_menu.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 Google Inc.
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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"
-        xmlns:app="http://schemas.android.com/apk/res-auto">
-    <item android:id="@+id/media_route_menu_item"
-        android:title="@string/media_route_menu_title"
-        app:showAsAction="always"
-        app:actionProviderClass=
-        "com.example.android.supportv7.media.SampleMediaRouterActivity$MyMediaRouteActionProvider"/>
-</menu>
diff --git a/samples/Support7Demos/res/menu/sample_palette_actions.xml b/samples/Support7Demos/res/menu/sample_palette_actions.xml
deleted file mode 100644
index 5f98efd..0000000
--- a/samples/Support7Demos/res/menu/sample_palette_actions.xml
+++ /dev/null
@@ -1,56 +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.
--->
-
-<menu xmlns:android="http://schemas.android.com/apk/res/android"
-      xmlns:app="http://schemas.android.com/apk/res-auto">
-
-    <item
-        android:id="@+id/menu_num_colors"
-        android:title="Num Colors"
-        app:showAsAction="always">
-
-        <menu>
-
-            <group android:checkableBehavior="single">
-
-                <item
-                    android:id="@+id/menu_num_colors_8"
-                    android:title="8" />
-
-                <item
-                      android:id="@+id/menu_num_colors_12"
-                      android:title="12" />
-
-                <item
-                    android:id="@+id/menu_num_colors_16"
-                    android:title="16"
-                    android:checked="true" />
-
-                <item
-                    android:id="@+id/menu_num_colors_24"
-                    android:title="24" />
-
-                <item
-                    android:id="@+id/menu_num_colors_32"
-                    android:title="32" />
-
-            </group>
-
-        </menu>
-
-    </item>
-
-</menu>
\ No newline at end of file
diff --git a/samples/Support7Demos/res/values/arrays.xml b/samples/Support7Demos/res/values/arrays.xml
deleted file mode 100644
index a32c09e..0000000
--- a/samples/Support7Demos/res/values/arrays.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<resources>
-    <string-array name="media_names">
-        <item>Big Buck Bunny</item>
-        <item>Elephants Dream</item>
-        <item>Sintel</item>
-        <item>Tears of Steel</item>
-    </string-array>
-
-    <string-array name="media_uris">
-        <item>http://archive.org/download/BigBuckBunny_328/BigBuckBunny_512kb.mp4</item>
-        <item>http://archive.org/download/ElephantsDream_277/elephant_dreams_640_512kb.mp4</item>
-        <item>http://archive.org/download/Sintel/sintel-2048-stereo_512kb.mp4</item>
-        <item>http://archive.org/download/Tears-of-Steel/tears_of_steel_720p.mp4</item>
-    </string-array>
-
-    <string-array name="dialog_types">
-        <item>Simple</item>
-        <item>Button bar</item>
-    </string-array>
-
-    <string-array name="alert_dialog_types">
-        <item>Simple</item>
-        <item>Simple with buttons</item>
-        <item>List (single choice)</item>
-        <item>List (multi choice)</item>
-    </string-array>
-
-</resources>
diff --git a/samples/Support7Demos/res/values/colors.xml b/samples/Support7Demos/res/values/colors.xml
deleted file mode 100644
index 8667546..0000000
--- a/samples/Support7Demos/res/values/colors.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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>
-    <drawable name="blue">#770000ff</drawable>
-    <color name="card_yellow">#FCF0AD</color>
-    <color name="card_aquatic">#FCF0AD</color>
-    <color name="card_classic">#BAB7A9</color>
-    <color name="card_sunbrite">#F9D6AC</color>
-    <color name="card_tropical">#56C4E8</color>
-
-    <color name="drawer_sample_metal_blue">#FF505080</color>
-</resources>
diff --git a/samples/Support7Demos/res/values/dimens.xml b/samples/Support7Demos/res/values/dimens.xml
deleted file mode 100644
index f2520b9..0000000
--- a/samples/Support7Demos/res/values/dimens.xml
+++ /dev/null
@@ -1,22 +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>
-
-    <dimen name="color_palette_size">60dp</dimen>
-    <dimen name="touch_item_min_height">60dp</dimen>
-
-</resources>
diff --git a/samples/Support7Demos/res/values/strings.xml b/samples/Support7Demos/res/values/strings.xml
deleted file mode 100644
index edafbd1..0000000
--- a/samples/Support7Demos/res/values/strings.xml
+++ /dev/null
@@ -1,220 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="activity_sample_code">Support v7 Demos</string>
-
-    <!-- MediaRouter -->
-
-    <string name="sample_media_router_activity_dark">MediaRouter/Dark Theme</string>
-    <string name="sample_media_router_activity_light">MediaRouter/Light Theme</string>
-    <string name="sample_media_router_activity_light_with_dark_action_bar">MediaRouter/Light Theme, Dark Action Bar</string>
-    <string name="sample_media_router_text">This activity demonstrates how to
-            use MediaRouter from the support library.  Select a route from the action bar.</string>
-    <string name="media_route_menu_title">Play on...</string>
-    <string name="sample_media_route_settings_activity">Sample route settings</string>
-
-    <string name="use_default_media_control">Use default media control</string>
-    <string name="my_media_control_text">My Media Control</string>
-
-    <string name="library_tab_text">Library</string>
-    <string name="playlist_tab_text">Playlist</string>
-    <string name="info_tab_text">Route Info</string>
-
-    <string name="sample_media_route_provider_service">Media Route Provider Service Support Library Sample</string>
-    <string name="fixed_volume_route_name">Fixed Volume Remote Playback Route</string>
-    <string name="variable_volume_basic_route_name">Variable Volume (Basic) Remote Playback Route</string>
-    <string name="variable_volume_queuing_route_name">Variable Volume (Queuing) Remote Playback Route</string>
-    <string name="variable_volume_session_route_name">Variable Volume (Session) Remote Playback Route</string>
-    <string name="variable_volume_route_group_name">Variable Volume Route Group</string>
-    <string name="mixed_volume_route_group_name">Mixed Volume Route Group</string>
-    <string name="sample_route_description">Sample route from Support7Demos</string>
-
-    <!-- GridLayout -->
-
-    <string name="grid_layout_1">GridLayout/1. Simple Form</string>
-    <string name="grid_layout_2">GridLayout/2. Form (XML)</string>
-    <string name="grid_layout_3">GridLayout/3. Form (Java)</string>
-
-    <string name="grid_layout_1_instructions">Type here:</string>
-    <string name="grid_layout_1_ok">Ok</string>
-    <string name="grid_layout_1_cancel">Cancel</string>
-
-    <!-- ActionBar -->
-
-    <string name="action_bar_mechanics">AppCompat/Action Bar/Action Bar Mechanics</string>
-    <string name="action_bar_usage">AppCompat/Action Bar/Action Bar Usage</string>
-    <string name="action_bar_tabs">AppCompat/Action Bar/Action Bar Tabs</string>
-    <string name="action_bar_settings_action_provider">AppCompat/Action Bar/Settings Action Provider</string>
-    <string name="action_bar_share_action_provider">AppCompat/Action Bar/ShareActionProvider</string>
-    <string name="action_bar_settings_action_provider_no_handling">Handling in onOptionsItemSelected avoided</string>
-    <string name="action_bar_with_navigation_drawer">AppCompat/Action Bar/Navigation Drawer Toggle</string>
-    <string name="action_bar_preferences">AppCompat/Action Bar/Preferences</string>
-    <string name="action_bar_action_mode">AppCompat/Action Bar/Action Mode</string>
-    <string name="action_bar_hide_scroll">AppCompat/Action Bar/Hide on Scroll</string>
-    <string name="appcompat_widgets_buttons">AppCompat/Widgets/Buttons</string>
-    <string name="appcompat_widgets_spinners">AppCompat/Widgets/Spinners</string>
-    <string name="appcompat_widgets_text_input">AppCompat/Widgets/Text Input</string>
-
-    <string name="action_bar_search">Search</string>
-    <string name="action_bar_add">Add</string>
-    <string name="action_bar_edit">Edit</string>
-    <string name="action_bar_share">Share</string>
-    <string name="action_bar_sort">Sort</string>
-    <string name="action_bar_sort_alpha">Alphabetically</string>
-    <string name="action_bar_sort_size">By size</string>
-    <string name="action_bar_settings">Settings</string>
-
-    <string name="action_bar_display_options">AppCompat/Action Bar/Display Options</string>
-    <string name="toggle_home_as_up">DISPLAY_HOME_AS_UP</string>
-    <string name="toggle_show_home">DISPLAY_SHOW_HOME</string>
-    <string name="toggle_use_logo">DISPLAY_USE_LOGO</string>
-    <string name="toggle_show_title">DISPLAY_SHOW_TITLE</string>
-    <string name="toggle_show_custom">DISPLAY_SHOW_CUSTOM</string>
-    <string name="toggle_navigation">Navigation</string>
-    <string name="cycle_custom_gravity">Cycle Custom View Gravity</string>
-    <string name="toggle_visibility">Toggle Visibility</string>
-
-    <string name="display_options_custom_button">Custom View!</string>
-    <string name="display_options_menu_item">Menu Item</string>
-
-    <string name="btn_add_tab">Add new tab</string>
-    <string name="btn_remove_tab">Remove last tab</string>
-    <string name="btn_toggle_tabs">Toggle tab mode</string>
-    <string name="btn_remove_all_tabs">Remove all tabs</string>
-
-    <string name="action_bar_fragment_menu">AppCompat/Action Bar/Fragment Menu</string>
-    <string name="action_bar_fragment_menu_msg">Build menus from three fragments, the last one
-        nested, allowing you to hide them to remove them...</string>
-    <string name="action_bar_fragment_menu1">Show fragment 1</string>
-    <string name="action_bar_fragment_menu2">Show fragment 2</string>
-    <string name="action_bar_fragment_menu3">Show nested fragment (within fragment 2)</string>
-    <string name="action_bar_fragment_has_options_menu">Set has options menu to true</string>
-    <string name="action_bar_fragment_menu_visibility">Set menu visibility to true</string>
-
-    <string name="sliding_pane_layout_support">Widget/Sliding pane layout</string>
-
-    <string name="sliding_pane_layout_summary">This activity illustrates the use of sliding panes.
-        The content pane may be slid to one side on narrow devices to reveal the left pane used to
-        select content. Sliding panes can be used to fit a UI intended for wider screens in a
-        smaller space. Tapping the Action Bar\'s Up button at the left side of the bar will navigate
-        up in the hierarchy, represented by the left pane. If you rotate the device to landscape
-        mode, on most devices you will see that both panes fit together side by side with no sliding
-        necessary.
-    </string>
-
-    <string name="toolbar_usage">AppCompat/Toolbar/Toolbar as Action Bar</string>
-    <string name="toolbar_display_options">AppCompat/Toolbar/Toolbar Display Options</string>
-    <string name="toolbar_fragment_pager">AppCompat/Toolbar/Toolbar Fragment ViewPager</string>
-    <string name="toolbar_action_mode">AppCompat/Toolbar/Action Mode</string>
-
-    <string name="dialog_usage">AppCompat/Dialog/Dialog Usage</string>
-    <string name="dialog_title">My great dialog</string>
-    <string name="dialog_content">My great dialog is great</string>
-    <string name="alert_dialog_usage">AppCompat/Dialog/AlertDialog Usage</string>
-    <string name="dialogfragment_usage">AppCompat/Dialog/DialogFragment Usage</string>
-
-    <string name="sample_media_route_provider_remote">Remote Playback (Simulated)</string>
-    <string name="sample_media_route_activity_local">Local Playback</string>
-    <string name="sample_media_route_activity_presentation">Local Playback on Presentation Display</string>
-
-    <string name="recycler_view">RecyclerView/RecyclerViewActivity</string>
-    <string name="animated_recycler_view">RecyclerView/AnimatedRecyclerView</string>
-    <string name="linear_layout_manager">RecyclerView/Linear Layout Manager</string>
-    <string name="grid_layout_manager">RecyclerView/Grid Layout Manager</string>
-    <string name="staggered_grid_layout_manager">RecyclerView/Staggered Grid Layout Manager</string>
-    <string name="async_list_util">RecyclerView/AsyncListUtil</string>
-    <string name="checkbox_orientation">Horz.</string>
-    <string name="checkbox_reverse">Rev.</string>
-    <string name="checkbox_layout_dir">Layout Dir</string>
-    <string name="checkbox_stack_from_end">Stack From End</string>
-    <string name="enableAnimations">Animate</string>
-    <string name="enablePredictiveAnimations">Predictive</string>
-    <string name="enableInPlaceChange">In Place Change</string>
-    <string name="add_item">Add</string>
-    <string name="delete_item">Del</string>
-    <string name="add_delete_item">A+D</string>
-    <string name="delete_add_item">D+A</string>
-    <string name="d1a2d3">d1a2d3</string>
-
-    <string name="card_view">Card View</string>
-    <string name="card_view_radius">Radius</string>
-    <string name="card_view_width">Width</string>
-    <string name="card_view_height">Height</string>
-    <string name="card_view_bg_color">Background</string>
-    <string name="card_view_elevation">Elevation</string>
-    <string name="card_view_max_elevation">Max Elevation</string>
-    <string name="card_view_alpha">Alpha</string>
-    <string name="card_view_sample_text">Sample text on right</string>
-    <string name="card_view_resize_card_view">Resize CardView</string>
-    <string name="card_view_resize_content">Resize Content</string>
-    <string name="cardview_background_selector_label">Selector</string>
-
-    <string name="palette">Palette</string>
-    <string name="palette_all_colors">Full color palette</string>
-    <string name="search_hint">Search...</string>
-    <string name="sorted_list_activity">RecyclerView/Sorted List</string>
-    <string name="add_new_item">Add New Item</string>
-    <string name="start_action_mode">Start Action Mode</string>
-
-    <string name="swipe_to_dismiss_activity">RecyclerView/ItemTouchHelper/Swipe To Dismiss</string>
-    <string name="drag_and_drop_activity">RecyclerView/ItemTouchHelper/Drag and Drop Activity</string>
-    <string name="swipe_start">start</string>
-    <string name="swipe_end">end</string>
-    <string name="pointer_swipe_enabled">pointer swipe</string>
-    <string name="custom_swipe_enabled">custom swipe</string>
-    <string name="drag_up">up</string>
-    <string name="drag_down">down</string>
-    <string name="long_press_drag">long press drag</string>
-    <string name="drag">drag me</string>
-    <string name="swipe">swipe me</string>
-    <string name="swiping">swiping</string>
-    <string name="vertical">vertical</string>
-
-    <string name="drawer_layout_activity">Drawer layout</string>
-    <string name="drawer_layout_summary">This activity illustrates the use of sliding drawers. The drawer may be pulled out from the starting edge, which is left on left-to-right locales, with an edge swipe. You can tap the hamburger (three horizontal lines) icon at the starting side of the action bar to open the drawer as well.</string>
-    <string name="drawer_title">Navigation</string>
-    <string name="drawer_open">Open navigation drawer</string>
-    <string name="drawer_close">Close navigation drawer</string>
-
-    <string name="mode_night_yes">MODE_NIGHT_YES</string>
-    <string name="mode_night_no">MODE_NIGHT_NO</string>
-    <string name="mode_night_auto">MODE_NIGHT_AUTO</string>
-    <string name="mode_night_activity_title">AppCompat/DayNight/Activity Usage</string>
-    <string name="mode_night_dialog_title">AppCompat/DayNight/Dialog Usage</string>
-    <string name="mode_night_alertdialog_title">AppCompat/DayNight/AlertDialog Usage</string>
-
-    <string name="list_popup_window_activity">AppCompat/List popup window</string>
-    <string name="list_popup_window_summary">This activity illustrates the use of list popup windows. The popup window is shown by clicking the button above. The checkbox controls the modality. The text area below logs various events - it should log a tap on itself when a non-modal popup window is dismissed by tapping on the log area.</string>
-    <string name="list_popup_window_button">Show popup!</string>
-    <string name="list_popup_window_is_modal">is modal</string>
-
-    <string name="popup_menu_activity">AppCompat/Popup menu</string>
-    <string name="popup_menu_summary">This activity illustrates the use of popup menus. The popup menu is shown by clicking the button above. The text area below logs various events.</string>
-    <string name="popup_menu_button">Show popup!</string>
-    <string name="popup_menu_highlight">Highlight</string>
-    <string name="popup_menu_edit">Edit</string>
-    <string name="popup_menu_delete">Delete</string>
-    <string name="popup_menu_ignore">Ignore</string>
-    <string name="popup_menu_share">Share</string>
-    <string name="popup_menu_share_email">Via email</string>
-    <string name="popup_menu_share_circles">To my circles</string>
-    <string name="popup_menu_print">Print</string>
-
-    <string name="appcompat_vector_disabled">AnimatedVectorDrawableCompat does not work on devices running API v10 or below</string>
-    <string name="appcompat_vector_title">AppCompat/Integrations/AnimatedVectorDrawable</string>
-</resources>
-
diff --git a/samples/Support7Demos/res/values/styles.xml b/samples/Support7Demos/res/values/styles.xml
deleted file mode 100644
index 250b4bf..0000000
--- a/samples/Support7Demos/res/values/styles.xml
+++ /dev/null
@@ -1,77 +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>
-
-    <style name="Theme.Custom" parent="Theme.AppCompat.Light.DarkActionBar">
-        <item name="colorPrimary">#ff00bcd4</item>
-        <item name="colorPrimaryDark">#00838f</item>
-        <item name="colorAccent">#ffff00</item>
-    </style>
-
-    <style name="Theme.Custom.NoActionBar" parent="Theme.AppCompat.Light.NoActionBar">
-        <item name="colorPrimary">#ff00bcd4</item>
-        <item name="colorPrimaryDark">#00838f</item>
-        <item name="colorAccent">#ffff00</item>
-    </style>
-
-    <style name="Theme.SampleMediaRouter" parent="Theme.AppCompat">
-        <item name="colorPrimary">#fff44336</item>
-        <item name="colorPrimaryDark">#d32f2f</item>
-        <item name="alertDialogTheme">@style/Theme.SampleMediaRouter.Dialog.Alert</item>
-    </style>
-
-    <style name="Theme.SampleMediaRouter.Light" parent="Theme.AppCompat.Light">
-        <item name="colorPrimary">#ffff9800</item>
-        <item name="colorPrimaryDark">#f57c00</item>
-        <item name="alertDialogTheme">@style/Theme.SampleMediaRouter.Light.Dialog.Alert</item>
-    </style>
-
-    <style name="Theme.SampleMediaRouter.Light.DarkActionBar" parent="Theme.AppCompat.Light.DarkActionBar">
-        <item name="colorPrimary">#ff2196f3</item>
-        <item name="colorPrimaryDark">#1976d2</item>
-        <item name="alertDialogTheme">@style/Theme.SampleMediaRouter.Light.DarkActionBar.Dialog.Alert</item>
-    </style>
-
-    <style name="Theme.SampleMediaRouter.Dialog.Alert" parent="Theme.AppCompat.Dialog.Alert">
-        <item name="colorPrimary">#fff44336</item>
-        <item name="colorPrimaryDark">#d32f2f</item>
-    </style>
-
-    <style name="Theme.SampleMediaRouter.Light.Dialog.Alert" parent="Theme.AppCompat.Light.Dialog.Alert">
-        <item name="colorPrimary">#ffff9800</item>
-        <item name="colorPrimaryDark">#f57c00</item>
-    </style>
-
-    <style name="Theme.SampleMediaRouter.Light.DarkActionBar.Dialog.Alert" parent="Theme.AppCompat.Light.Dialog.Alert">
-        <item name="colorPrimary">#ff2196f3</item>
-        <item name="colorPrimaryDark">#1976d2</item>
-    </style>
-
-    <style name="SortedListItem" parent="@android:style/TextAppearance.Medium">
-        <item name="android:minHeight">35dp</item>
-    </style>
-
-    <style name="Theme.SampleDrawerLayout" parent="Theme.AppCompat.NoActionBar">
-        <!-- Tell SystemUI that our activity window will draw the background for the status bar. -->
-        <item name="android:windowDrawsSystemBarBackgrounds">true</item>
-        <!-- Set the status bar to be translucent black. -->
-        <item name="android:statusBarColor">#30000000</item>
-        <item name="windowActionModeOverlay">true</item>
-        <item name="android:windowContentOverlay">@null</item>
-    </style>
-</resources>
diff --git a/samples/Support7Demos/res/xml/preferences.xml b/samples/Support7Demos/res/xml/preferences.xml
deleted file mode 100644
index 3ec0f25..0000000
--- a/samples/Support7Demos/res/xml/preferences.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.
--->
-
-<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
-
-    <PreferenceCategory
-            android:title="My category">
-
-        <CheckBoxPreference
-                android:key="check_1"
-                android:summary="Check or not, that is the question"
-                android:title="Checkbox Preference 1"/>
-
-        <EditTextPreference
-                android:key="edit_1"
-                android:summary="Input some text here"
-                android:title="EditText Preference 1"/>
-
-    </PreferenceCategory>
-
-</PreferenceScreen>
\ No newline at end of file
diff --git a/samples/Support7Demos/res/xml/searchable.xml b/samples/Support7Demos/res/xml/searchable.xml
deleted file mode 100644
index 7f0fa74..0000000
--- a/samples/Support7Demos/res/xml/searchable.xml
+++ /dev/null
@@ -1,22 +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.
--->
-
-<searchable xmlns:android="http://schemas.android.com/apk/res/android"
-            android:label="@string/activity_sample_code"
-            android:hint="@string/search_hint"
-            android:searchSuggestAuthority="com.example.android.supportv7.RecentSuggestionsProvider"
-            android:searchSuggestSelection=" ?" />
\ No newline at end of file
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/Cheeses.java b/samples/Support7Demos/src/com/example/android/supportv7/Cheeses.java
deleted file mode 100644
index a66b1d6..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/Cheeses.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv7;
-
-public class Cheeses {
-
-    public static final String[] sCheeseStrings = {
-            "Abbaye de Belloc", "Abbaye du Mont des Cats", "Abertam", "Abondance", "Ackawi",
-            "Acorn", "Adelost", "Affidelice au Chablis", "Afuega'l Pitu", "Airag", "Airedale",
-            "Aisy Cendre", "Allgauer Emmentaler", "Alverca", "Ambert", "American Cheese",
-            "Ami du Chambertin", "Anejo Enchilado", "Anneau du Vic-Bilh", "Anthoriro", "Appenzell",
-            "Aragon", "Ardi Gasna", "Ardrahan", "Armenian String", "Aromes au Gene de Marc",
-            "Asadero", "Asiago", "Aubisque Pyrenees", "Autun", "Avaxtskyr", "Baby Swiss",
-            "Babybel", "Baguette Laonnaise", "Bakers", "Baladi", "Balaton", "Bandal", "Banon",
-            "Barry's Bay Cheddar", "Basing", "Basket Cheese", "Bath Cheese", "Bavarian Bergkase",
-            "Baylough", "Beaufort", "Beauvoorde", "Beenleigh Blue", "Beer Cheese", "Bel Paese",
-            "Bergader", "Bergere Bleue", "Berkswell", "Beyaz Peynir", "Bierkase", "Bishop Kennedy",
-            "Blarney", "Bleu d'Auvergne", "Bleu de Gex", "Bleu de Laqueuille",
-            "Bleu de Septmoncel", "Bleu Des Causses", "Blue", "Blue Castello", "Blue Rathgore",
-            "Blue Vein (Australian)", "Blue Vein Cheeses", "Bocconcini", "Bocconcini (Australian)",
-            "Boeren Leidenkaas", "Bonchester", "Bosworth", "Bougon", "Boule Du Roves",
-            "Boulette d'Avesnes", "Boursault", "Boursin", "Bouyssou", "Bra", "Braudostur",
-            "Breakfast Cheese", "Brebis du Lavort", "Brebis du Lochois", "Brebis du Puyfaucon",
-            "Bresse Bleu", "Brick", "Brie", "Brie de Meaux", "Brie de Melun", "Brillat-Savarin",
-            "Brin", "Brin d' Amour", "Brin d'Amour", "Brinza (Burduf Brinza)",
-            "Briquette de Brebis", "Briquette du Forez", "Broccio", "Broccio Demi-Affine",
-            "Brousse du Rove", "Bruder Basil", "Brusselae Kaas (Fromage de Bruxelles)", "Bryndza",
-            "Buchette d'Anjou", "Buffalo", "Burgos", "Butte", "Butterkase", "Button (Innes)",
-            "Buxton Blue", "Cabecou", "Caboc", "Cabrales", "Cachaille", "Caciocavallo", "Caciotta",
-            "Caerphilly", "Cairnsmore", "Calenzana", "Cambazola", "Camembert de Normandie",
-            "Canadian Cheddar", "Canestrato", "Cantal", "Caprice des Dieux", "Capricorn Goat",
-            "Capriole Banon", "Carre de l'Est", "Casciotta di Urbino", "Cashel Blue", "Castellano",
-            "Castelleno", "Castelmagno", "Castelo Branco", "Castigliano", "Cathelain",
-            "Celtic Promise", "Cendre d'Olivet", "Cerney", "Chabichou", "Chabichou du Poitou",
-            "Chabis de Gatine", "Chaource", "Charolais", "Chaumes", "Cheddar",
-            "Cheddar Clothbound", "Cheshire", "Chevres", "Chevrotin des Aravis", "Chontaleno",
-            "Civray", "Coeur de Camembert au Calvados", "Coeur de Chevre", "Colby", "Cold Pack",
-            "Comte", "Coolea", "Cooleney", "Coquetdale", "Corleggy", "Cornish Pepper",
-            "Cotherstone", "Cotija", "Cottage Cheese", "Cottage Cheese (Australian)",
-            "Cougar Gold", "Coulommiers", "Coverdale", "Crayeux de Roncq", "Cream Cheese",
-            "Cream Havarti", "Crema Agria", "Crema Mexicana", "Creme Fraiche", "Crescenza",
-            "Croghan", "Crottin de Chavignol", "Crottin du Chavignol", "Crowdie", "Crowley",
-            "Cuajada", "Curd", "Cure Nantais", "Curworthy", "Cwmtawe Pecorino",
-            "Cypress Grove Chevre", "Danablu (Danish Blue)", "Danbo", "Danish Fontina",
-            "Daralagjazsky", "Dauphin", "Delice des Fiouves", "Denhany Dorset Drum", "Derby",
-            "Dessertnyj Belyj", "Devon Blue", "Devon Garland", "Dolcelatte", "Doolin",
-            "Doppelrhamstufel", "Dorset Blue Vinney", "Double Gloucester", "Double Worcester",
-            "Dreux a la Feuille", "Dry Jack", "Duddleswell", "Dunbarra", "Dunlop", "Dunsyre Blue",
-            "Duroblando", "Durrus", "Dutch Mimolette (Commissiekaas)", "Edam", "Edelpilz",
-            "Emental Grand Cru", "Emlett", "Emmental", "Epoisses de Bourgogne", "Esbareich",
-            "Esrom", "Etorki", "Evansdale Farmhouse Brie", "Evora De L'Alentejo", "Exmoor Blue",
-            "Explorateur", "Feta", "Feta (Australian)", "Figue", "Filetta", "Fin-de-Siecle",
-            "Finlandia Swiss", "Finn", "Fiore Sardo", "Fleur du Maquis", "Flor de Guia",
-            "Flower Marie", "Folded", "Folded cheese with mint", "Fondant de Brebis",
-            "Fontainebleau", "Fontal", "Fontina Val d'Aosta", "Formaggio di capra", "Fougerus",
-            "Four Herb Gouda", "Fourme d' Ambert", "Fourme de Haute Loire", "Fourme de Montbrison",
-            "Fresh Jack", "Fresh Mozzarella", "Fresh Ricotta", "Fresh Truffles", "Fribourgeois",
-            "Friesekaas", "Friesian", "Friesla", "Frinault", "Fromage a Raclette", "Fromage Corse",
-            "Fromage de Montagne de Savoie", "Fromage Frais", "Fruit Cream Cheese",
-            "Frying Cheese", "Fynbo", "Gabriel", "Galette du Paludier", "Galette Lyonnaise",
-            "Galloway Goat's Milk Gems", "Gammelost", "Gaperon a l'Ail", "Garrotxa", "Gastanberra",
-            "Geitost", "Gippsland Blue", "Gjetost", "Gloucester", "Golden Cross", "Gorgonzola",
-            "Gornyaltajski", "Gospel Green", "Gouda", "Goutu", "Gowrie", "Grabetto", "Graddost",
-            "Grafton Village Cheddar", "Grana", "Grana Padano", "Grand Vatel",
-            "Grataron d' Areches", "Gratte-Paille", "Graviera", "Greuilh", "Greve",
-            "Gris de Lille", "Gruyere", "Gubbeen", "Guerbigny", "Halloumi",
-            "Halloumy (Australian)", "Haloumi-Style Cheese", "Harbourne Blue", "Havarti",
-            "Heidi Gruyere", "Hereford Hop", "Herrgardsost", "Herriot Farmhouse", "Herve",
-            "Hipi Iti", "Hubbardston Blue Cow", "Hushallsost", "Iberico", "Idaho Goatster",
-            "Idiazabal", "Il Boschetto al Tartufo", "Ile d'Yeu", "Isle of Mull", "Jarlsberg",
-            "Jermi Tortes", "Jibneh Arabieh", "Jindi Brie", "Jubilee Blue", "Juustoleipa",
-            "Kadchgall", "Kaseri", "Kashta", "Kefalotyri", "Kenafa", "Kernhem", "Kervella Affine",
-            "Kikorangi", "King Island Cape Wickham Brie", "King River Gold", "Klosterkaese",
-            "Knockalara", "Kugelkase", "L'Aveyronnais", "L'Ecir de l'Aubrac", "La Taupiniere",
-            "La Vache Qui Rit", "Laguiole", "Lairobell", "Lajta", "Lanark Blue", "Lancashire",
-            "Langres", "Lappi", "Laruns", "Lavistown", "Le Brin", "Le Fium Orbo", "Le Lacandou",
-            "Le Roule", "Leafield", "Lebbene", "Leerdammer", "Leicester", "Leyden", "Limburger",
-            "Lincolnshire Poacher", "Lingot Saint Bousquet d'Orb", "Liptauer", "Little Rydings",
-            "Livarot", "Llanboidy", "Llanglofan Farmhouse", "Loch Arthur Farmhouse",
-            "Loddiswell Avondale", "Longhorn", "Lou Palou", "Lou Pevre", "Lyonnais", "Maasdam",
-            "Macconais", "Mahoe Aged Gouda", "Mahon", "Malvern", "Mamirolle", "Manchego",
-            "Manouri", "Manur", "Marble Cheddar", "Marbled Cheeses", "Maredsous", "Margotin",
-            "Maribo", "Maroilles", "Mascares", "Mascarpone", "Mascarpone (Australian)",
-            "Mascarpone Torta", "Matocq", "Maytag Blue", "Meira", "Menallack Farmhouse",
-            "Menonita", "Meredith Blue", "Mesost", "Metton (Cancoillotte)", "Meyer Vintage Gouda",
-            "Mihalic Peynir", "Milleens", "Mimolette", "Mine-Gabhar", "Mini Baby Bells", "Mixte",
-            "Molbo", "Monastery Cheeses", "Mondseer", "Mont D'or Lyonnais", "Montasio",
-            "Monterey Jack", "Monterey Jack Dry", "Morbier", "Morbier Cru de Montagne",
-            "Mothais a la Feuille", "Mozzarella", "Mozzarella (Australian)",
-            "Mozzarella di Bufala", "Mozzarella Fresh, in water", "Mozzarella Rolls", "Munster",
-            "Murol", "Mycella", "Myzithra", "Naboulsi", "Nantais", "Neufchatel",
-            "Neufchatel (Australian)", "Niolo", "Nokkelost", "Northumberland", "Oaxaca",
-            "Olde York", "Olivet au Foin", "Olivet Bleu", "Olivet Cendre",
-            "Orkney Extra Mature Cheddar", "Orla", "Oschtjepka", "Ossau Fermier", "Ossau-Iraty",
-            "Oszczypek", "Oxford Blue", "P'tit Berrichon", "Palet de Babligny", "Paneer", "Panela",
-            "Pannerone", "Pant ys Gawn", "Parmesan (Parmigiano)", "Parmigiano Reggiano",
-            "Pas de l'Escalette", "Passendale", "Pasteurized Processed", "Pate de Fromage",
-            "Patefine Fort", "Pave d'Affinois", "Pave d'Auge", "Pave de Chirac", "Pave du Berry",
-            "Pecorino", "Pecorino in Walnut Leaves", "Pecorino Romano", "Peekskill Pyramid",
-            "Pelardon des Cevennes", "Pelardon des Corbieres", "Penamellera", "Penbryn",
-            "Pencarreg", "Perail de Brebis", "Petit Morin", "Petit Pardou", "Petit-Suisse",
-            "Picodon de Chevre", "Picos de Europa", "Piora", "Pithtviers au Foin",
-            "Plateau de Herve", "Plymouth Cheese", "Podhalanski", "Poivre d'Ane", "Polkolbin",
-            "Pont l'Eveque", "Port Nicholson", "Port-Salut", "Postel", "Pouligny-Saint-Pierre",
-            "Pourly", "Prastost", "Pressato", "Prince-Jean", "Processed Cheddar", "Provolone",
-            "Provolone (Australian)", "Pyengana Cheddar", "Pyramide", "Quark",
-            "Quark (Australian)", "Quartirolo Lombardo", "Quatre-Vents", "Quercy Petit",
-            "Queso Blanco", "Queso Blanco con Frutas --Pina y Mango", "Queso de Murcia",
-            "Queso del Montsec", "Queso del Tietar", "Queso Fresco", "Queso Fresco (Adobera)",
-            "Queso Iberico", "Queso Jalapeno", "Queso Majorero", "Queso Media Luna",
-            "Queso Para Frier", "Queso Quesadilla", "Rabacal", "Raclette", "Ragusano", "Raschera",
-            "Reblochon", "Red Leicester", "Regal de la Dombes", "Reggianito", "Remedou",
-            "Requeson", "Richelieu", "Ricotta", "Ricotta (Australian)", "Ricotta Salata", "Ridder",
-            "Rigotte", "Rocamadour", "Rollot", "Romano", "Romans Part Dieu", "Roncal", "Roquefort",
-            "Roule", "Rouleau De Beaulieu", "Royalp Tilsit", "Rubens", "Rustinu", "Saaland Pfarr",
-            "Saanenkaese", "Saga", "Sage Derby", "Sainte Maure", "Saint-Marcellin",
-            "Saint-Nectaire", "Saint-Paulin", "Salers", "Samso", "San Simon", "Sancerre",
-            "Sap Sago", "Sardo", "Sardo Egyptian", "Sbrinz", "Scamorza", "Schabzieger", "Schloss",
-            "Selles sur Cher", "Selva", "Serat", "Seriously Strong Cheddar", "Serra da Estrela",
-            "Sharpam", "Shelburne Cheddar", "Shropshire Blue", "Siraz", "Sirene", "Smoked Gouda",
-            "Somerset Brie", "Sonoma Jack", "Sottocenare al Tartufo", "Soumaintrain",
-            "Sourire Lozerien", "Spenwood", "Sraffordshire Organic", "St. Agur Blue Cheese",
-            "Stilton", "Stinking Bishop", "String", "Sussex Slipcote", "Sveciaost", "Swaledale",
-            "Sweet Style Swiss", "Swiss", "Syrian (Armenian String)", "Tala", "Taleggio", "Tamie",
-            "Tasmania Highland Chevre Log", "Taupiniere", "Teifi", "Telemea", "Testouri",
-            "Tete de Moine", "Tetilla", "Texas Goat Cheese", "Tibet", "Tillamook Cheddar",
-            "Tilsit", "Timboon Brie", "Toma", "Tomme Brulee", "Tomme d'Abondance",
-            "Tomme de Chevre", "Tomme de Romans", "Tomme de Savoie", "Tomme des Chouans", "Tommes",
-            "Torta del Casar", "Toscanello", "Touree de L'Aubier", "Tourmalet",
-            "Trappe (Veritable)", "Trois Cornes De Vendee", "Tronchon", "Trou du Cru", "Truffe",
-            "Tupi", "Turunmaa", "Tymsboro", "Tyn Grug", "Tyning", "Ubriaco", "Ulloa",
-            "Vacherin-Fribourgeois", "Valencay", "Vasterbottenost", "Venaco", "Vendomois",
-            "Vieux Corse", "Vignotte", "Vulscombe", "Waimata Farmhouse Blue",
-            "Washed Rind Cheese (Australian)", "Waterloo", "Weichkaese", "Wellington",
-            "Wensleydale", "White Stilton", "Whitestone Farmhouse", "Wigmore", "Woodside Cabecou",
-            "Xanadu", "Xynotyro", "Yarg Cornish", "Yarra Valley Pyramid", "Yorkshire Blue",
-            "Zamorano", "Zanetti Grana Padano", "Zanetti Parmigiano Reggiano"
-    };
-
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/Shakespeare.java b/samples/Support7Demos/src/com/example/android/supportv7/Shakespeare.java
deleted file mode 100644
index 3b67bec..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/Shakespeare.java
+++ /dev/null
@@ -1,239 +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.supportv7;
-
-public final class Shakespeare {
-    /**
-     * Our data, part 1.
-     */
-    public static final String[] TITLES =
-    {
-            "Henry IV (1)",
-            "Henry V",
-            "Henry VIII",
-            "Richard II",
-            "Richard III",
-            "Merchant of Venice",
-            "Othello",
-            "King Lear"
-    };
-
-    /**
-     * Our data, part 2.
-     */
-    public static final String[] DIALOGUE =
-    {
-            "So shaken as we are, so wan with care," +
-            "Find we a time for frighted peace to pant," +
-            "And breathe short-winded accents of new broils" +
-            "To be commenced in strands afar remote." +
-            "No more the thirsty entrance of this soil" +
-            "Shall daub her lips with her own children's blood;" +
-            "Nor more shall trenching war channel her fields," +
-            "Nor bruise her flowerets with the armed hoofs" +
-            "Of hostile paces: those opposed eyes," +
-            "Which, like the meteors of a troubled heaven," +
-            "All of one nature, of one substance bred," +
-            "Did lately meet in the intestine shock" +
-            "And furious close of civil butchery" +
-            "Shall now, in mutual well-beseeming ranks," +
-            "March all one way and be no more opposed" +
-            "Against acquaintance, kindred and allies:" +
-            "The edge of war, like an ill-sheathed knife," +
-            "No more shall cut his master. Therefore, friends," +
-            "As far as to the sepulchre of Christ," +
-            "Whose soldier now, under whose blessed cross" +
-            "We are impressed and engaged to fight," +
-            "Forthwith a power of English shall we levy;" +
-            "Whose arms were moulded in their mothers' womb" +
-            "To chase these pagans in those holy fields" +
-            "Over whose acres walk'd those blessed feet" +
-            "Which fourteen hundred years ago were nail'd" +
-            "For our advantage on the bitter cross." +
-            "But this our purpose now is twelve month old," +
-            "And bootless 'tis to tell you we will go:" +
-            "Therefore we meet not now. Then let me hear" +
-            "Of you, my gentle cousin Westmoreland," +
-            "What yesternight our council did decree" +
-            "In forwarding this dear expedience.",
-
-            "Hear him but reason in divinity," +
-            "And all-admiring with an inward wish" +
-            "You would desire the king were made a prelate:" +
-            "Hear him debate of commonwealth affairs," +
-            "You would say it hath been all in all his study:" +
-            "List his discourse of war, and you shall hear" +
-            "A fearful battle render'd you in music:" +
-            "Turn him to any cause of policy," +
-            "The Gordian knot of it he will unloose," +
-            "Familiar as his garter: that, when he speaks," +
-            "The air, a charter'd libertine, is still," +
-            "And the mute wonder lurketh in men's ears," +
-            "To steal his sweet and honey'd sentences;" +
-            "So that the art and practic part of life" +
-            "Must be the mistress to this theoric:" +
-            "Which is a wonder how his grace should glean it," +
-            "Since his addiction was to courses vain," +
-            "His companies unletter'd, rude and shallow," +
-            "His hours fill'd up with riots, banquets, sports," +
-            "And never noted in him any study," +
-            "Any retirement, any sequestration" +
-            "From open haunts and popularity.",
-
-            "I come no more to make you laugh: things now," +
-            "That bear a weighty and a serious brow," +
-            "Sad, high, and working, full of state and woe," +
-            "Such noble scenes as draw the eye to flow," +
-            "We now present. Those that can pity, here" +
-            "May, if they think it well, let fall a tear;" +
-            "The subject will deserve it. Such as give" +
-            "Their money out of hope they may believe," +
-            "May here find truth too. Those that come to see" +
-            "Only a show or two, and so agree" +
-            "The play may pass, if they be still and willing," +
-            "I'll undertake may see away their shilling" +
-            "Richly in two short hours. Only they" +
-            "That come to hear a merry bawdy play," +
-            "A noise of targets, or to see a fellow" +
-            "In a long motley coat guarded with yellow," +
-            "Will be deceived; for, gentle hearers, know," +
-            "To rank our chosen truth with such a show" +
-            "As fool and fight is, beside forfeiting" +
-            "Our own brains, and the opinion that we bring," +
-            "To make that only true we now intend," +
-            "Will leave us never an understanding friend." +
-            "Therefore, for goodness' sake, and as you are known" +
-            "The first and happiest hearers of the town," +
-            "Be sad, as we would make ye: think ye see" +
-            "The very persons of our noble story" +
-            "As they were living; think you see them great," +
-            "And follow'd with the general throng and sweat" +
-            "Of thousand friends; then in a moment, see" +
-            "How soon this mightiness meets misery:" +
-            "And, if you can be merry then, I'll say" +
-            "A man may weep upon his wedding-day.",
-
-            "First, heaven be the record to my speech!" +
-            "In the devotion of a subject's love," +
-            "Tendering the precious safety of my prince," +
-            "And free from other misbegotten hate," +
-            "Come I appellant to this princely presence." +
-            "Now, Thomas Mowbray, do I turn to thee," +
-            "And mark my greeting well; for what I speak" +
-            "My body shall make good upon this earth," +
-            "Or my divine soul answer it in heaven." +
-            "Thou art a traitor and a miscreant," +
-            "Too good to be so and too bad to live," +
-            "Since the more fair and crystal is the sky," +
-            "The uglier seem the clouds that in it fly." +
-            "Once more, the more to aggravate the note," +
-            "With a foul traitor's name stuff I thy throat;" +
-            "And wish, so please my sovereign, ere I move," +
-            "What my tongue speaks my right drawn sword may prove.",
-
-            "Now is the winter of our discontent" +
-            "Made glorious summer by this sun of York;" +
-            "And all the clouds that lour'd upon our house" +
-            "In the deep bosom of the ocean buried." +
-            "Now are our brows bound with victorious wreaths;" +
-            "Our bruised arms hung up for monuments;" +
-            "Our stern alarums changed to merry meetings," +
-            "Our dreadful marches to delightful measures." +
-            "Grim-visaged war hath smooth'd his wrinkled front;" +
-            "And now, instead of mounting barded steeds" +
-            "To fright the souls of fearful adversaries," +
-            "He capers nimbly in a lady's chamber" +
-            "To the lascivious pleasing of a lute." +
-            "But I, that am not shaped for sportive tricks," +
-            "Nor made to court an amorous looking-glass;" +
-            "I, that am rudely stamp'd, and want love's majesty" +
-            "To strut before a wanton ambling nymph;" +
-            "I, that am curtail'd of this fair proportion," +
-            "Cheated of feature by dissembling nature," +
-            "Deformed, unfinish'd, sent before my time" +
-            "Into this breathing world, scarce half made up," +
-            "And that so lamely and unfashionable" +
-            "That dogs bark at me as I halt by them;" +
-            "Why, I, in this weak piping time of peace," +
-            "Have no delight to pass away the time," +
-            "Unless to spy my shadow in the sun" +
-            "And descant on mine own deformity:" +
-            "And therefore, since I cannot prove a lover," +
-            "To entertain these fair well-spoken days," +
-            "I am determined to prove a villain" +
-            "And hate the idle pleasures of these days." +
-            "Plots have I laid, inductions dangerous," +
-            "By drunken prophecies, libels and dreams," +
-            "To set my brother Clarence and the king" +
-            "In deadly hate the one against the other:" +
-            "And if King Edward be as true and just" +
-            "As I am subtle, false and treacherous," +
-            "This day should Clarence closely be mew'd up," +
-            "About a prophecy, which says that 'G'" +
-            "Of Edward's heirs the murderer shall be." +
-            "Dive, thoughts, down to my soul: here" +
-            "Clarence comes.",
-
-            "To bait fish withal: if it will feed nothing else," +
-            "it will feed my revenge. He hath disgraced me, and" +
-            "hindered me half a million; laughed at my losses," +
-            "mocked at my gains, scorned my nation, thwarted my" +
-            "bargains, cooled my friends, heated mine" +
-            "enemies; and what's his reason? I am a Jew. Hath" +
-            "not a Jew eyes? hath not a Jew hands, organs," +
-            "dimensions, senses, affections, passions? fed with" +
-            "the same food, hurt with the same weapons, subject" +
-            "to the same diseases, healed by the same means," +
-            "warmed and cooled by the same winter and summer, as" +
-            "a Christian is? If you prick us, do we not bleed?" +
-            "if you tickle us, do we not laugh? if you poison" +
-            "us, do we not die? and if you wrong us, shall we not" +
-            "revenge? If we are like you in the rest, we will" +
-            "resemble you in that. If a Jew wrong a Christian," +
-            "what is his humility? Revenge. If a Christian" +
-            "wrong a Jew, what should his sufferance be by" +
-            "Christian example? Why, revenge. The villany you" +
-            "teach me, I will execute, and it shall go hard but I" +
-            "will better the instruction.",
-
-            "Virtue! a fig! 'tis in ourselves that we are thus" +
-            "or thus. Our bodies are our gardens, to the which" +
-            "our wills are gardeners: so that if we will plant" +
-            "nettles, or sow lettuce, set hyssop and weed up" +
-            "thyme, supply it with one gender of herbs, or" +
-            "distract it with many, either to have it sterile" +
-            "with idleness, or manured with industry, why, the" +
-            "power and corrigible authority of this lies in our" +
-            "wills. If the balance of our lives had not one" +
-            "scale of reason to poise another of sensuality, the" +
-            "blood and baseness of our natures would conduct us" +
-            "to most preposterous conclusions: but we have" +
-            "reason to cool our raging motions, our carnal" +
-            "stings, our unbitted lusts, whereof I take this that" +
-            "you call love to be a sect or scion.",
-
-            "Blow, winds, and crack your cheeks! rage! blow!" +
-            "You cataracts and hurricanoes, spout" +
-            "Till you have drench'd our steeples, drown'd the cocks!" +
-            "You sulphurous and thought-executing fires," +
-            "Vaunt-couriers to oak-cleaving thunderbolts," +
-            "Singe my white head! And thou, all-shaking thunder," +
-            "Smite flat the thick rotundity o' the world!" +
-            "Crack nature's moulds, an germens spill at once," +
-            "That make ingrateful man!"
-    };
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/Support7Demos.java b/samples/Support7Demos/src/com/example/android/supportv7/Support7Demos.java
deleted file mode 100644
index a135649..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/Support7Demos.java
+++ /dev/null
@@ -1,151 +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.supportv7;
-
-import android.app.ListActivity;
-import android.content.Intent;
-import android.content.pm.PackageManager;
-import android.content.pm.ResolveInfo;
-import android.os.Bundle;
-import android.view.View;
-import android.widget.ListView;
-import android.widget.SimpleAdapter;
-
-import java.text.Collator;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-public class Support7Demos extends ListActivity {
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        Intent intent = getIntent();
-        String path = intent.getStringExtra("com.example.android.apis.Path");
-
-        if (path == null) {
-            path = "";
-        }
-
-        setListAdapter(new SimpleAdapter(this, getData(path),
-                android.R.layout.simple_list_item_1, new String[] { "title" },
-                new int[] { android.R.id.text1 }));
-        getListView().setTextFilterEnabled(true);
-    }
-
-    protected List<Map<String, Object>> getData(String prefix) {
-        List<Map<String, Object>> myData = new ArrayList<Map<String, Object>>();
-
-        Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
-        mainIntent.addCategory("com.example.android.supportv7.SAMPLE_CODE");
-
-        PackageManager pm = getPackageManager();
-        List<ResolveInfo> list = pm.queryIntentActivities(mainIntent, 0);
-
-        if (null == list)
-            return myData;
-
-        String[] prefixPath;
-        String prefixWithSlash = prefix;
-
-        if (prefix.equals("")) {
-            prefixPath = null;
-        } else {
-            prefixPath = prefix.split("/");
-            prefixWithSlash = prefix + "/";
-        }
-
-        int len = list.size();
-
-        Map<String, Boolean> entries = new HashMap<String, Boolean>();
-
-        for (int i = 0; i < len; i++) {
-            ResolveInfo info = list.get(i);
-            CharSequence labelSeq = info.loadLabel(pm);
-            String label = labelSeq != null
-                    ? labelSeq.toString()
-                    : info.activityInfo.name;
-
-            if (prefixWithSlash.length() == 0 || label.startsWith(prefixWithSlash)) {
-
-                String[] labelPath = label.split("/");
-
-                String nextLabel = prefixPath == null ? labelPath[0] : labelPath[prefixPath.length];
-
-                if ((prefixPath != null ? prefixPath.length : 0) == labelPath.length - 1) {
-                    addItem(myData, nextLabel, activityIntent(
-                            info.activityInfo.applicationInfo.packageName,
-                            info.activityInfo.name));
-                } else {
-                    if (entries.get(nextLabel) == null) {
-                        addItem(myData, nextLabel, browseIntent(
-                                prefix.equals("") ? nextLabel : prefix + "/" + nextLabel));
-                        entries.put(nextLabel, true);
-                    }
-                }
-            }
-        }
-
-        Collections.sort(myData, sDisplayNameComparator);
-
-        return myData;
-    }
-
-    private final static Comparator<Map<String, Object>> sDisplayNameComparator =
-        new Comparator<Map<String, Object>>() {
-        private final Collator   collator = Collator.getInstance();
-
-        @Override
-        public int compare(Map<String, Object> map1, Map<String, Object> map2) {
-            return collator.compare(map1.get("title"), map2.get("title"));
-        }
-    };
-
-    protected Intent activityIntent(String pkg, String componentName) {
-        Intent result = new Intent();
-        result.setClassName(pkg, componentName);
-        return result;
-    }
-
-    protected Intent browseIntent(String path) {
-        Intent result = new Intent();
-        result.setClass(this, Support7Demos.class);
-        result.putExtra("com.example.android.apis.Path", path);
-        return result;
-    }
-
-    protected void addItem(List<Map<String, Object>> data, String name, Intent intent) {
-        Map<String, Object> temp = new HashMap<String, Object>();
-        temp.put("title", name);
-        temp.put("intent", intent);
-        data.add(temp);
-    }
-
-    @Override
-    @SuppressWarnings("unchecked")
-    protected void onListItemClick(ListView l, View v, int position, long id) {
-        Map<String, Object> map = (Map<String, Object>)l.getItemAtPosition(position);
-
-        Intent intent = (Intent) map.get("intent");
-        startActivity(intent);
-    }
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/_package.html b/samples/Support7Demos/src/com/example/android/supportv7/_package.html
deleted file mode 100644
index be85e78..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/_package.html
+++ /dev/null
@@ -1,24 +0,0 @@
-<html>
-<head>
-<link rel="stylesheet" type="text/css" href="assets/style.css" />
-<script type="text/javascript" src="http://www.corp.google.com/style/prettify.js"></script>
-<script src="http://www.corp.google.com/eng/techpubs/include/navbar.js" type="text/javascript"></script>
-
-
-
-</head>
-
-<body>
-
-<p>
-Examples of how to use support library APIs.  See:
-
-<ol>
-    <li> <a href="com.example.android.supportv7.app">sdk.app</a> for examples
-        of using the application package support APIs.
-</ol>
-</p>
-
-
-</body>
-</html>
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/app/ActionBarActionMode.java b/samples/Support7Demos/src/com/example/android/supportv7/app/ActionBarActionMode.java
deleted file mode 100644
index 6edf593..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/app/ActionBarActionMode.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * 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.supportv7.app;
-
-import com.example.android.supportv7.R;
-
-import android.graphics.drawable.Drawable;
-import android.os.Bundle;
-import android.support.v4.view.MenuItemCompat;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.view.ActionMode;
-import android.support.v7.widget.SearchView;
-import android.text.TextUtils;
-import android.view.Menu;
-import android.view.MenuInflater;
-import android.view.MenuItem;
-import android.view.View;
-import android.widget.TextView;
-import android.widget.Toast;
-
-/**
- * This demonstrates idiomatic usage of an action mode.
- */
-public class ActionBarActionMode extends AppCompatActivity {
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.action_bar_action_mode);
-
-        findViewById(R.id.btn_start_action_mode).setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View view) {
-                startActionMode();
-            }
-        });
-    }
-
-    private void startActionMode() {
-        startSupportActionMode(new ActionMode.Callback() {
-            @Override
-            public boolean onCreateActionMode(ActionMode mode, Menu menu) {
-                mode.getMenuInflater().inflate(R.menu.actions, menu);
-                return true;
-            }
-
-            @Override
-            public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
-                return false;
-            }
-
-            @Override
-            public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
-                Toast.makeText(ActionBarActionMode.this,
-                        "Action Mode item clicked:" + item.getTitle(), Toast.LENGTH_SHORT).show();
-                return true;
-            }
-
-            @Override
-            public void onDestroyActionMode(ActionMode mode) {
-            }
-        });
-    }
-
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/app/ActionBarDisplayOptions.java b/samples/Support7Demos/src/com/example/android/supportv7/app/ActionBarDisplayOptions.java
deleted file mode 100644
index d4eef84..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/app/ActionBarDisplayOptions.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv7.app;
-
-import com.example.android.supportv7.R;
-
-import android.os.Bundle;
-import android.support.v4.app.FragmentTransaction;
-import android.support.v7.app.ActionBar;
-import android.support.v7.app.ActionBar.Tab;
-import android.support.v7.app.AppCompatActivity;
-import android.view.Gravity;
-import android.view.Menu;
-import android.view.View;
-import android.view.ViewGroup.LayoutParams;
-import android.widget.ArrayAdapter;
-import android.widget.Toast;
-
-;
-
-/**
- * This demo shows how various action bar display option flags can be combined and their effects.
- */
-public class ActionBarDisplayOptions extends AppCompatActivity
-        implements View.OnClickListener, ActionBar.TabListener {
-    private View mCustomView;
-    private ActionBar.LayoutParams mCustomViewLayoutParams;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.action_bar_display_options);
-
-        findViewById(R.id.toggle_home_as_up).setOnClickListener(this);
-        findViewById(R.id.toggle_show_home).setOnClickListener(this);
-        findViewById(R.id.toggle_use_logo).setOnClickListener(this);
-        findViewById(R.id.toggle_show_title).setOnClickListener(this);
-        findViewById(R.id.toggle_show_custom).setOnClickListener(this);
-        findViewById(R.id.toggle_navigation).setOnClickListener(this);
-        findViewById(R.id.cycle_custom_gravity).setOnClickListener(this);
-        findViewById(R.id.toggle_visibility).setOnClickListener(this);
-
-        // Configure several action bar elements that will be toggled by display options.
-        mCustomView = getLayoutInflater().inflate(R.layout.action_bar_display_options_custom, null);
-        mCustomViewLayoutParams = new ActionBar.LayoutParams(
-                LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
-
-        final ActionBar bar = getSupportActionBar();
-        bar.setCustomView(mCustomView, mCustomViewLayoutParams);
-        bar.addTab(bar.newTab().setText("Tab 1").setTabListener(this));
-        bar.addTab(bar.newTab().setText("Tab 2").setTabListener(this));
-        bar.addTab(bar.newTab().setText("Tab 3").setTabListener(this));
-
-        final ArrayAdapter<String> listAdapter = new ArrayAdapter<String>(bar.getThemedContext(),
-                R.layout.support_simple_spinner_dropdown_item,
-                new String[] { "Item 1", "Item 2", "Item 3" });
-        bar.setListNavigationCallbacks(listAdapter, new ActionBar.OnNavigationListener() {
-            @Override
-            public boolean onNavigationItemSelected(int itemPosition, long itemId) {
-                Toast.makeText(ActionBarDisplayOptions.this,
-                        listAdapter.getItem(itemPosition),
-                        Toast.LENGTH_SHORT).show();
-                return true;
-            }
-        });
-
-        bar.setLogo(R.drawable.ic_media_play);
-    }
-
-    @Override
-    public boolean onCreateOptionsMenu(Menu menu) {
-        getMenuInflater().inflate(R.menu.display_options_actions, menu);
-        return true;
-    }
-
-    @Override
-    public boolean onSupportNavigateUp() {
-        finish();
-        return true;
-    }
-
-    @Override
-    public void onClick(View v) {
-        final ActionBar bar = getSupportActionBar();
-        int flags = 0;
-        switch (v.getId()) {
-            case R.id.toggle_home_as_up:
-                flags = ActionBar.DISPLAY_HOME_AS_UP;
-                break;
-            case R.id.toggle_show_home:
-                flags = ActionBar.DISPLAY_SHOW_HOME;
-                break;
-            case R.id.toggle_use_logo:
-                flags = ActionBar.DISPLAY_USE_LOGO;
-                break;
-            case R.id.toggle_show_title:
-                flags = ActionBar.DISPLAY_SHOW_TITLE;
-                break;
-            case R.id.toggle_show_custom:
-                flags = ActionBar.DISPLAY_SHOW_CUSTOM;
-                break;
-            case R.id.toggle_navigation:
-                switch (bar.getNavigationMode()) {
-                    case ActionBar.NAVIGATION_MODE_STANDARD:
-                        bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
-                        break;
-                    case ActionBar.NAVIGATION_MODE_TABS:
-                        bar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
-                        break;
-                    case ActionBar.NAVIGATION_MODE_LIST:
-                        bar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
-                        break;
-                }
-                return;
-            case R.id.cycle_custom_gravity: {
-                ActionBar.LayoutParams lp = mCustomViewLayoutParams;
-                int newGravity = 0;
-                switch (lp.gravity & Gravity.HORIZONTAL_GRAVITY_MASK) {
-                    case Gravity.LEFT:
-                        newGravity = Gravity.CENTER_HORIZONTAL;
-                        break;
-                    case Gravity.CENTER_HORIZONTAL:
-                        newGravity = Gravity.RIGHT;
-                        break;
-                    case Gravity.RIGHT:
-                        newGravity = Gravity.LEFT;
-                        break;
-                }
-                lp.gravity = lp.gravity & ~Gravity.HORIZONTAL_GRAVITY_MASK | newGravity;
-                bar.setCustomView(mCustomView, lp);
-                return;
-            }
-            case R.id.toggle_visibility:
-                if (bar.isShowing()) {
-                    bar.hide();
-                } else {
-                    bar.show();
-                }
-                return;
-        }
-
-        int change = bar.getDisplayOptions() ^ flags;
-        bar.setDisplayOptions(change, flags);
-    }
-
-    @Override
-    public void onTabSelected(Tab tab, FragmentTransaction ft) {
-    }
-
-    @Override
-    public void onTabUnselected(Tab tab, FragmentTransaction ft) {
-    }
-
-    @Override
-    public void onTabReselected(Tab tab, FragmentTransaction ft) {
-    }
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/app/ActionBarFragmentMenu.java b/samples/Support7Demos/src/com/example/android/supportv7/app/ActionBarFragmentMenu.java
deleted file mode 100644
index e2779d0..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/app/ActionBarFragmentMenu.java
+++ /dev/null
@@ -1,237 +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.supportv7.app;
-
-import com.example.android.supportv7.R;
-
-import android.os.Bundle;
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentManager;
-import android.support.v4.app.FragmentTransaction;
-import android.support.v4.view.MenuItemCompat;
-import android.support.v7.app.AppCompatActivity;
-import android.view.Menu;
-import android.view.MenuInflater;
-import android.view.MenuItem;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.widget.CheckBox;
-import android.widget.Toast;
-
-/**
- * Demonstrates how fragments can participate in the options menu.
- */
-public class ActionBarFragmentMenu extends AppCompatActivity {
-    MenuFragment mFragment1;
-    Menu2Fragment mFragment2;
-    CheckBox mCheckBox1;
-    CheckBox mCheckBox2;
-    CheckBox mCheckBox3;
-    CheckBox mHasOptionsMenu;
-    CheckBox mMenuVisibility;
-
-    // Update fragment visibility when check boxes are changed.
-    final OnClickListener mClickListener = new OnClickListener() {
-        @Override
-        public void onClick(View v) {
-            updateFragmentVisibility();
-        }
-    };
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.action_bar_fragment_menu);
-
-        // Make sure the two menu fragments are created.
-        FragmentManager fm = getSupportFragmentManager();
-        FragmentTransaction ft = fm.beginTransaction();
-        mFragment1 = (MenuFragment)fm.findFragmentByTag("f1");
-        if (mFragment1 == null) {
-            mFragment1 = new MenuFragment();
-            ft.add(mFragment1, "f1");
-        }
-        mFragment2 = (Menu2Fragment)fm.findFragmentByTag("f2");
-        if (mFragment2 == null) {
-            mFragment2 = new Menu2Fragment();
-            ft.add(mFragment2, "f2");
-        }
-        ft.commit();
-
-        // Watch check box clicks.
-        mCheckBox1 = (CheckBox)findViewById(R.id.menu1);
-        mCheckBox1.setOnClickListener(mClickListener);
-        mCheckBox2 = (CheckBox)findViewById(R.id.menu2);
-        mCheckBox2.setOnClickListener(mClickListener);
-        mCheckBox3 = (CheckBox)findViewById(R.id.menu3);
-        mCheckBox3.setOnClickListener(mClickListener);
-        mHasOptionsMenu = (CheckBox)findViewById(R.id.has_options_menu);
-        mHasOptionsMenu.setOnClickListener(mClickListener);
-        mMenuVisibility = (CheckBox)findViewById(R.id.menu_visibility);
-        mMenuVisibility.setOnClickListener(mClickListener);
-
-        // Make sure fragments start out with correct visibility.
-        updateFragmentVisibility();
-    }
-
-    @Override
-    protected void onRestoreInstanceState(Bundle savedInstanceState) {
-        super.onRestoreInstanceState(savedInstanceState);
-        // Make sure fragments are updated after check box view state is restored.
-        updateFragmentVisibility();
-    }
-
-    // Update fragment visibility based on current check box state.
-    void updateFragmentVisibility() {
-        // Update top level fragments.
-        FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
-        if (mCheckBox1.isChecked()) ft.show(mFragment1);
-        else ft.hide(mFragment1);
-        if (mCheckBox2.isChecked()) ft.show(mFragment2);
-        else ft.hide(mFragment2);
-        ft.commit();
-
-        mFragment1.setHasOptionsMenu(mHasOptionsMenu.isChecked());
-        mFragment1.setMenuVisibility(mMenuVisibility.isChecked());
-        mFragment2.setHasOptionsMenu(mHasOptionsMenu.isChecked());
-        mFragment2.setMenuVisibility(mMenuVisibility.isChecked());
-
-        // Update the nested fragment.
-        if (mFragment2.mFragment3 != null) {
-            ft = mFragment2.getFragmentManager().beginTransaction();
-            if (mCheckBox3.isChecked()) ft.show(mFragment2.mFragment3);
-            else ft.hide(mFragment2.mFragment3);
-            ft.commit();
-
-            mFragment2.mFragment3.setHasOptionsMenu(mHasOptionsMenu.isChecked());
-            mFragment2.mFragment3.setMenuVisibility(mMenuVisibility.isChecked());
-        }
-    }
-
-    /**
-     * A fragment that displays a menu.  This fragment happens to not
-     * have a UI (it does not implement onCreateView), but it could also
-     * have one if it wanted.
-     */
-    public static class MenuFragment extends Fragment {
-        @Override
-        public void onCreate(Bundle savedInstanceState) {
-            super.onCreate(savedInstanceState);
-            setHasOptionsMenu(true);
-        }
-
-        @Override
-        public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
-            MenuItemCompat.setShowAsAction(menu.add("Menu 1a"), MenuItem.SHOW_AS_ACTION_IF_ROOM);
-            MenuItemCompat.setShowAsAction(menu.add("Menu 1b"), MenuItem.SHOW_AS_ACTION_IF_ROOM);
-            super.onCreateOptionsMenu(menu, inflater);
-        }
-
-        @Override
-        public boolean onOptionsItemSelected(MenuItem item) {
-            if (item.getTitle().equals("Menu 1a")) {
-                Toast.makeText(getActivity(), "Selected Menu 1a.", Toast.LENGTH_SHORT).show();
-                return true;
-            }
-            if (item.getTitle().equals("Menu 1b")) {
-                Toast.makeText(getActivity(), "Selected Menu 1b.", Toast.LENGTH_SHORT).show();
-                return true;
-            }
-            return super.onOptionsItemSelected(item);
-        }
-    }
-
-    /**
-     * Second fragment with a menu.
-     */
-    public static class Menu2Fragment extends Fragment {
-        Menu3Fragment mFragment3;
-
-        @Override
-        public void onCreate(Bundle savedInstanceState) {
-            super.onCreate(savedInstanceState);
-            setHasOptionsMenu(true);
-
-            FragmentManager fm = getChildFragmentManager();
-            FragmentTransaction ft = fm.beginTransaction();
-            mFragment3 = (Menu3Fragment)fm.findFragmentByTag("f3");
-            if (mFragment3 == null) {
-                mFragment3 = new Menu3Fragment();
-                ft.add(mFragment3, "f3");
-            }
-            ft.commit();
-        }
-
-        @Override
-        public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
-            MenuItemCompat.setShowAsAction(menu.add("Menu 2"), MenuItem.SHOW_AS_ACTION_IF_ROOM);
-        }
-
-        @Override
-        public boolean onOptionsItemSelected(MenuItem item) {
-            if (item.getTitle().equals("Menu 2")) {
-                Toast.makeText(getActivity(), "Selected Menu 2.", Toast.LENGTH_SHORT).show();
-                return true;
-            }
-            return false;
-        }
-    }
-
-    /**
-     * Third fragment with a menu.
-     * This one is nested within the second.
-     */
-    public static class Menu3Fragment extends Fragment {
-        @Override
-        public void onCreate(Bundle savedInstanceState) {
-            super.onCreate(savedInstanceState);
-            setHasOptionsMenu(true);
-        }
-
-        @Override
-        public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
-            Toast.makeText(getActivity(), "Created nested fragment's menu.",
-                    Toast.LENGTH_SHORT).show();
-            inflater.inflate(R.menu.display_options_actions, menu);
-            super.onCreateOptionsMenu(menu, inflater);
-        }
-
-        @Override
-        public void onDestroyOptionsMenu() {
-            Toast.makeText(getActivity(), "Destroyed nested fragment's menu.",
-                    Toast.LENGTH_SHORT).show();
-            super.onDestroyOptionsMenu();
-        }
-
-        @Override
-        public void onPrepareOptionsMenu(Menu menu) {
-            Toast.makeText(getActivity(), "Prepared nested fragment's menu.",
-                    Toast.LENGTH_SHORT).show();
-            super.onPrepareOptionsMenu(menu);
-        }
-
-        @Override
-        public boolean onOptionsItemSelected(MenuItem item) {
-            if (item.getItemId() == R.id.simple_item) {
-                Toast.makeText(getActivity(), "Selected nested fragment's menu item.",
-                        Toast.LENGTH_SHORT).show();
-                return true;
-            }
-            return super.onOptionsItemSelected(item);
-        }
-    }
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/app/ActionBarHideOnScroll.java b/samples/Support7Demos/src/com/example/android/supportv7/app/ActionBarHideOnScroll.java
deleted file mode 100644
index 61bd90b..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/app/ActionBarHideOnScroll.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * 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.supportv7.app;
-
-import com.example.android.supportv7.R;
-
-import android.os.Bundle;
-import android.support.v4.view.WindowCompat;
-import android.support.v7.app.AppCompatActivity;
-
-/**
- * This demonstrates usage of the Action Bar's hide on content scroll
- */
-public class ActionBarHideOnScroll extends AppCompatActivity {
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        // Hide on content scroll requires an overlay action bar, so request one
-        supportRequestWindowFeature(WindowCompat.FEATURE_ACTION_BAR_OVERLAY);
-
-        setContentView(R.layout.action_bar_hide_scroll);
-
-        // Enable hide on scroll
-        getSupportActionBar().setHideOnContentScrollEnabled(true);
-    }
-
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/app/ActionBarMechanics.java b/samples/Support7Demos/src/com/example/android/supportv7/app/ActionBarMechanics.java
deleted file mode 100644
index 568c287..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/app/ActionBarMechanics.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv7.app;
-
-import android.os.Bundle;
-import android.support.v4.view.MenuItemCompat;
-import android.support.v4.view.WindowCompat;
-import android.support.v7.app.AppCompatActivity;
-import android.view.Menu;
-import android.view.MenuItem;
-import android.widget.Toast;
-
-/**
- * This demonstrates the basics of the Action Bar and how it interoperates with the
- * standard options menu. This demo is for informative purposes only; see ActionBarUsage for
- * an example of using the Action Bar in a more idiomatic manner.
- */
-public class ActionBarMechanics extends AppCompatActivity {
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        // The Action Bar is a window feature. The feature must be requested
-        // before setting a content view. Normally this is set automatically
-        // by your Activity's theme in your manifest. The provided system
-        // theme Theme.WithActionBar enables this for you. Use it as you would
-        // use Theme.NoTitleBar. You can add an Action Bar to your own themes
-        // by adding the element <item name="android:windowActionBar">true</item>
-        // to your style definition.
-        supportRequestWindowFeature(WindowCompat.FEATURE_ACTION_BAR);
-    }
-
-    @Override
-    public boolean onCreateOptionsMenu(Menu menu) {
-        // Menu items default to never show in the action bar. On most devices this means
-        // they will show in the standard options menu panel when the menu button is pressed.
-        // On xlarge-screen devices a "More" button will appear in the far right of the
-        // Action Bar that will display remaining items in a cascading menu.
-        menu.add("Normal item");
-
-        MenuItem actionItem = menu.add("Action Button");
-
-        // Items that show as actions should favor the "if room" setting, which will
-        // prevent too many buttons from crowding the bar. Extra items will show in the
-        // overflow area.
-        MenuItemCompat.setShowAsAction(actionItem, MenuItemCompat.SHOW_AS_ACTION_IF_ROOM);
-
-        // Items that show as actions are strongly encouraged to use an icon.
-        // These icons are shown without a text description, and therefore should
-        // be sufficiently descriptive on their own.
-        actionItem.setIcon(android.R.drawable.ic_menu_share);
-        return true;
-    }
-
-    @Override
-    public boolean onOptionsItemSelected(MenuItem item) {
-        Toast.makeText(this, "Selected Item: " + item.getTitle(), Toast.LENGTH_SHORT).show();
-        return true;
-    }
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/app/ActionBarPreferences.java b/samples/Support7Demos/src/com/example/android/supportv7/app/ActionBarPreferences.java
deleted file mode 100644
index 810e615..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/app/ActionBarPreferences.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv7.app;
-
-import com.example.android.supportv7.R;
-
-import android.os.Bundle;
-import android.view.Menu;
-import android.view.MenuItem;
-import android.widget.Toast;
-
-/**
- * This demonstrates how to use our custom AppCompat {@link android.preference.PreferenceActivity}.
- */
-public class ActionBarPreferences extends AppCompatPreferenceActivity {
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        // Load some preferences from resources
-        addPreferencesFromResource(R.xml.preferences);
-    }
-
-    @Override
-    public boolean onCreateOptionsMenu(Menu menu) {
-        getMenuInflater().inflate(R.menu.actions, menu);
-        return true;
-    }
-
-    @Override
-    public boolean onOptionsItemSelected(MenuItem item) {
-        Toast.makeText(this, "Selected Item: " + item.getTitle(), Toast.LENGTH_SHORT).show();
-        return true;
-    }
-
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/app/ActionBarSettingsActionProviderActivity.java b/samples/Support7Demos/src/com/example/android/supportv7/app/ActionBarSettingsActionProviderActivity.java
deleted file mode 100644
index 5fb667a..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/app/ActionBarSettingsActionProviderActivity.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv7.app;
-
-import com.example.android.supportv7.R;
-
-import android.content.Context;
-import android.content.Intent;
-import android.provider.Settings;
-import android.support.v4.view.ActionProvider;
-import android.support.v7.app.AppCompatActivity;
-import android.view.LayoutInflater;
-import android.view.Menu;
-import android.view.MenuItem;
-import android.view.View;
-import android.widget.ImageButton;
-import android.widget.Toast;
-
-/**
- * This activity demonstrates how to implement an {@link android.view.ActionProvider}
- * for adding functionality to the Action Bar. In particular this demo creates an
- * ActionProvider for launching the system settings and adds a menu item with that
- * provider.
- */
-public class ActionBarSettingsActionProviderActivity extends AppCompatActivity {
-    @Override
-    public boolean onCreateOptionsMenu(Menu menu) {
-        super.onCreateOptionsMenu(menu);
-        getMenuInflater().inflate(R.menu.action_bar_settings_action_provider, menu);
-        return true;
-    }
-
-    @Override
-    public boolean onOptionsItemSelected(MenuItem item) {
-        // If this callback does not handle the item click, onPerformDefaultAction
-        // of the ActionProvider is invoked. Hence, the provider encapsulates the
-        // complete functionality of the menu item.
-        Toast.makeText(this, R.string.action_bar_settings_action_provider_no_handling,
-                Toast.LENGTH_SHORT).show();
-        return false;
-    }
-
-    public static class SettingsActionProvider extends ActionProvider {
-        /** An intent for launching the system settings. */
-        private static final Intent sSettingsIntent = new Intent(Settings.ACTION_SETTINGS);
-
-        /**
-         * Creates a new instance.
-         *
-         * @param context Context for accessing resources.
-         */
-        public SettingsActionProvider(Context context) {
-            super(context);
-        }
-
-        @Override
-        public View onCreateActionView() {
-            // Inflate the action view to be shown on the action bar.
-            LayoutInflater layoutInflater = LayoutInflater.from(getContext());
-            View view = layoutInflater.inflate(R.layout.action_bar_settings_action_provider, null);
-            ImageButton button = (ImageButton) view.findViewById(R.id.button);
-            // Attach a click listener for launching the system settings.
-            button.setOnClickListener(new View.OnClickListener() {
-                @Override
-                public void onClick(View v) {
-                    getContext().startActivity(sSettingsIntent);
-                }
-            });
-            return view;
-        }
-
-        @Override
-        public boolean onPerformDefaultAction() {
-            // This is called if the host menu item placed in the overflow menu of the
-            // action bar is clicked and the host activity did not handle the click.
-            getContext().startActivity(sSettingsIntent);
-            return true;
-        }
-    }
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/app/ActionBarShareActionProvider.java b/samples/Support7Demos/src/com/example/android/supportv7/app/ActionBarShareActionProvider.java
deleted file mode 100644
index 7ae96a3..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/app/ActionBarShareActionProvider.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv7.app;
-
-import com.example.android.supportv7.R;
-
-import android.content.Intent;
-import android.support.v4.view.MenuItemCompat;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.ShareActionProvider;
-import android.view.Menu;
-import android.view.View;
-
-/**
- * This activity demonstrates how to use {@link ShareActionProvider} with the Action Bar.
- */
-public class ActionBarShareActionProvider extends AppCompatActivity {
-
-    @Override
-    public boolean onCreateOptionsMenu(Menu menu) {
-        getMenuInflater().inflate(R.menu.action_bar_share_action_provider, menu);
-        return true;
-    }
-
-    @Override
-    protected boolean onPrepareOptionsPanel(View view, Menu menu) {
-        final ShareActionProvider sap = (ShareActionProvider) MenuItemCompat.getActionProvider(
-                menu.findItem(R.id.menu_item_share_provider_action_bar));
-
-        final Intent shareIntent = new Intent(Intent.ACTION_SEND);
-        shareIntent.setType("text/plain");
-        shareIntent.putExtra(Intent.EXTRA_TEXT, "Hello!");
-
-        sap.setShareIntent(shareIntent);
-
-        return true;
-    }
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/app/ActionBarTabs.java b/samples/Support7Demos/src/com/example/android/supportv7/app/ActionBarTabs.java
deleted file mode 100644
index a8c87f4..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/app/ActionBarTabs.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv7.app;
-
-import com.example.android.supportv7.R;
-
-import android.os.Bundle;
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentTransaction;
-import android.support.v7.app.ActionBar;
-import android.support.v7.app.ActionBar.Tab;
-import android.support.v7.app.AppCompatActivity;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.TextView;
-import android.widget.Toast;
-
-/**
- * This demonstrates the use of action bar tabs and how they interact
- * with other action bar features.
- */
-public class ActionBarTabs extends AppCompatActivity {
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.action_bar_tabs);
-    }
-
-    public void onAddTab(View v) {
-        final ActionBar bar = getSupportActionBar();
-        final int tabCount = bar.getTabCount();
-        final String text = "Tab " + tabCount;
-        bar.addTab(bar.newTab()
-                .setText(text)
-                .setTabListener(new TabListener(new TabContentFragment(text))));
-    }
-
-    public void onRemoveTab(View v) {
-        final ActionBar bar = getSupportActionBar();
-        if (bar.getTabCount() > 0) {
-            bar.removeTabAt(bar.getTabCount() - 1);
-        }
-    }
-
-    public void onToggleTabs(View v) {
-        final ActionBar bar = getSupportActionBar();
-
-        if (bar.getNavigationMode() == ActionBar.NAVIGATION_MODE_TABS) {
-            bar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
-        } else {
-            bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
-        }
-    }
-
-    public void onRemoveAllTabs(View v) {
-        getSupportActionBar().removeAllTabs();
-    }
-
-    /**
-     * A TabListener receives event callbacks from the action bar as tabs
-     * are deselected, selected, and reselected. A FragmentTransaction
-     * is provided to each of these callbacks; if any operations are added
-     * to it, it will be committed at the end of the full tab switch operation.
-     * This lets tab switches be atomic without the app needing to track
-     * the interactions between different tabs.
-     *
-     * NOTE: This is a very simple implementation that does not retain
-     * fragment state of the non-visible tabs across activity instances.
-     * Look at the FragmentTabs example for how to do a more complete
-     * implementation.
-     */
-    private class TabListener implements ActionBar.TabListener {
-        private TabContentFragment mFragment;
-
-        public TabListener(TabContentFragment fragment) {
-            mFragment = fragment;
-        }
-
-        @Override
-        public void onTabSelected(Tab tab, FragmentTransaction ft) {
-            ft.add(R.id.fragment_content, mFragment, mFragment.getText());
-        }
-
-        @Override
-        public void onTabUnselected(Tab tab, FragmentTransaction ft) {
-            ft.remove(mFragment);
-        }
-
-        @Override
-        public void onTabReselected(Tab tab, FragmentTransaction ft) {
-            Toast.makeText(ActionBarTabs.this, "Reselected!", Toast.LENGTH_SHORT).show();
-        }
-
-    }
-
-    private class TabContentFragment extends Fragment {
-        private String mText;
-
-        public TabContentFragment(String text) {
-            mText = text;
-        }
-
-        public String getText() {
-            return mText;
-        }
-
-        @Override
-        public View onCreateView(LayoutInflater inflater, ViewGroup container,
-                Bundle savedInstanceState) {
-            View fragView = inflater.inflate(R.layout.action_bar_tab_content, container, false);
-
-            TextView text = (TextView) fragView.findViewById(R.id.text);
-            text.setText(mText);
-
-            return fragView;
-        }
-    }
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/app/ActionBarUsage.java b/samples/Support7Demos/src/com/example/android/supportv7/app/ActionBarUsage.java
deleted file mode 100644
index 8772601..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/app/ActionBarUsage.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv7.app;
-
-import com.example.android.supportv7.R;
-
-import android.graphics.drawable.Drawable;
-import android.os.Bundle;
-import android.support.v4.view.MenuItemCompat;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.SearchView;
-import android.text.TextUtils;
-import android.view.Menu;
-import android.view.MenuInflater;
-import android.view.MenuItem;
-import android.widget.TextView;
-import android.widget.Toast;
-
-/**
- * This demonstrates idiomatic usage of the Action Bar. The default Honeycomb theme
- * includes the action bar by default and a menu resource is used to populate the
- * menu data itself. If you'd like to see how these things work under the hood, see
- * ActionBarMechanics.
- */
-public class ActionBarUsage extends AppCompatActivity {
-    TextView mSearchText;
-    int mSortMode = -1;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        mSearchText = new TextView(this);
-        setContentView(mSearchText);
-    }
-
-    @Override
-    public boolean onCreateOptionsMenu(Menu menu) {
-        MenuInflater inflater = getMenuInflater();
-        inflater.inflate(R.menu.actions, menu);
-        SearchView searchView = (SearchView) MenuItemCompat
-                .getActionView(menu.findItem(R.id.action_search));
-        searchView.setOnQueryTextListener(mOnQueryTextListener);
-        return true;
-    }
-
-    @Override
-    public boolean onPrepareOptionsMenu(Menu menu) {
-        if (mSortMode != -1) {
-            Drawable icon = menu.findItem(mSortMode).getIcon();
-            menu.findItem(R.id.action_sort).setIcon(icon);
-        }
-        return super.onPrepareOptionsMenu(menu);
-    }
-
-    @Override
-    public boolean onOptionsItemSelected(MenuItem item) {
-        switch (item.getItemId()) {
-            case R.id.action_sort_alpha:
-            case R.id.action_sort_size:
-                onSort(item);
-                break;
-        }
-
-        Toast.makeText(this, "Selected Item: " + item.getTitle(), Toast.LENGTH_SHORT).show();
-
-        return true;
-    }
-
-    private void onSort(MenuItem item) {
-        mSortMode = item.getItemId();
-        // Request a call to onPrepareOptionsMenu so we can change the sort icon
-        supportInvalidateOptionsMenu();
-    }
-
-    // The following callbacks are called for the SearchView.OnQueryChangeListener
-    // For more about using SearchView, see src/.../view/SearchView1.java and SearchView2.java
-    private final SearchView.OnQueryTextListener mOnQueryTextListener =
-            new SearchView.OnQueryTextListener() {
-        @Override
-        public boolean onQueryTextChange(String newText) {
-            newText = TextUtils.isEmpty(newText) ? "" : "Query so far: " + newText;
-            mSearchText.setText(newText);
-            return true;
-        }
-
-        @Override
-        public boolean onQueryTextSubmit(String query) {
-            Toast.makeText(ActionBarUsage.this,
-                    "Searching for: " + query + "...", Toast.LENGTH_SHORT).show();
-            return true;
-        }
-    };
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/app/AlertDialogUsage.java b/samples/Support7Demos/src/com/example/android/supportv7/app/AlertDialogUsage.java
deleted file mode 100644
index 560111b..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/app/AlertDialogUsage.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * 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.supportv7.app;
-
-import com.example.android.supportv7.Cheeses;
-import com.example.android.supportv7.R;
-
-import android.os.Bundle;
-import android.support.v7.app.AlertDialog;
-import android.support.v7.app.AppCompatActivity;
-import android.view.View;
-import android.widget.Spinner;
-
-/**
- * This demonstrates idiomatic usage of AppCompat's AlertDialog.
- */
-public class AlertDialogUsage extends AppCompatActivity {
-
-    private Spinner mSpinner;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.alert_dialog_usage);
-
-        mSpinner = (Spinner) findViewById(R.id.spinner_dialogs);
-
-        // Add an OnClickListener to show our selected dialog
-        findViewById(R.id.btn_show_dialog).setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View view) {
-                showSelectedDialog();
-            }
-        });
-    }
-
-    private void showSelectedDialog() {
-        switch (mSpinner.getSelectedItemPosition()) {
-            case 0:
-                showSimpleDialog();
-                break;
-            case 1:
-                showSimpleButtonsDialog();
-                break;
-            case 2:
-                showSingleChoiceDialog();
-                break;
-            case 3:
-                showMultiChoiceDialog();
-                break;
-        }
-    }
-
-    private void showSimpleDialog() {
-        AlertDialog.Builder b = new AlertDialog.Builder(this);
-        b.setTitle(R.string.dialog_title);
-        b.setMessage(R.string.dialog_content);
-        b.show();
-    }
-
-    private void showSimpleButtonsDialog() {
-        AlertDialog.Builder b = new AlertDialog.Builder(this);
-        b.setTitle(R.string.dialog_title);
-        b.setMessage(R.string.dialog_content);
-        b.setNegativeButton("-ve", null);
-        b.setPositiveButton("+ve", null);
-        b.show();
-    }
-
-    private void showSingleChoiceDialog() {
-        AlertDialog.Builder b = new AlertDialog.Builder(this);
-        b.setTitle(R.string.dialog_title);
-        b.setSingleChoiceItems(Cheeses.sCheeseStrings, 0, null);
-        b.setPositiveButton("OK", null);
-        b.show();
-    }
-
-    private void showMultiChoiceDialog() {
-        AlertDialog.Builder b = new AlertDialog.Builder(this);
-        b.setTitle(R.string.dialog_title);
-        b.setMultiChoiceItems(Cheeses.sCheeseStrings, null, null);
-        b.setPositiveButton("OK", null);
-        b.show();
-    }
-
-
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/app/AppCompatAnimatedVector.java b/samples/Support7Demos/src/com/example/android/supportv7/app/AppCompatAnimatedVector.java
deleted file mode 100644
index 888bdc8..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/app/AppCompatAnimatedVector.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv7.app;
-
-import com.example.android.supportv7.R;
-
-import android.graphics.drawable.Animatable;
-import android.graphics.drawable.Drawable;
-import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
-import android.widget.ImageView;
-
-
-public class AppCompatAnimatedVector extends AppCompatActivity {
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.appcompat_animated_vector);
-
-        final ImageView imageView = (ImageView) findViewById(R.id.vector_image);
-        if (imageView != null) {
-            final Drawable src = imageView.getDrawable();
-            if (src instanceof Animatable) {
-                ((Animatable) src).start();
-            }
-        }
-    }
-
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/app/AppCompatNightModeActivity.java b/samples/Support7Demos/src/com/example/android/supportv7/app/AppCompatNightModeActivity.java
deleted file mode 100644
index 0aed8bd..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/app/AppCompatNightModeActivity.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * 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.supportv7.app;
-
-
-import com.example.android.supportv7.R;
-
-import android.os.Bundle;
-import android.support.annotation.Nullable;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.app.AppCompatDelegate;
-import android.view.View;
-
-/**
- * This demonstrates idiomatic usage of AppCompatActivity with Theme.AppCompat.DayNight
- */
-public class AppCompatNightModeActivity extends AppCompatActivity {
-
-    @Override
-    protected void onCreate(@Nullable Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.appcompat_night_mode);
-    }
-
-    public void setModeNightNo(View view) {
-        getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_NO);
-        recreate();
-    }
-
-    public void setModeNightYes(View view) {
-        getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_YES);
-        recreate();
-    }
-
-    public void setModeNightAuto(View view) {
-        getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_AUTO);
-        recreate();
-    }
-}
\ No newline at end of file
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/app/AppCompatNightModeAlertDialog.java b/samples/Support7Demos/src/com/example/android/supportv7/app/AppCompatNightModeAlertDialog.java
deleted file mode 100644
index 276465b..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/app/AppCompatNightModeAlertDialog.java
+++ /dev/null
@@ -1,65 +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.supportv7.app;
-
-import com.example.android.supportv7.R;
-
-import android.os.Bundle;
-import android.support.annotation.Nullable;
-import android.support.v7.app.AlertDialog;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.app.AppCompatDelegate;
-import android.support.v7.app.AppCompatDialog;
-import android.view.View;
-
-/**
- * This demonstrates idiomatic usage of AlertDialog with Theme.AppCompat.DayNight
- */
-public class AppCompatNightModeAlertDialog extends AppCompatActivity {
-
-    @Override
-    protected void onCreate(@Nullable Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.appcompat_night_mode);
-    }
-
-    public void setModeNightNo(View view) {
-        AlertDialog dialog = createAlertDialog();
-        dialog.getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_NO);
-        dialog.show();
-    }
-
-    public void setModeNightYes(View view) {
-        AlertDialog dialog = createAlertDialog();
-        dialog.getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_YES);
-        dialog.show();
-    }
-
-    public void setModeNightAuto(View view) {
-        AlertDialog dialog = createAlertDialog();
-        dialog.getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_AUTO);
-        dialog.show();
-    }
-
-    private AlertDialog createAlertDialog() {
-        AlertDialog.Builder b = new AlertDialog.Builder(this,
-                R.style.Theme_AppCompat_DayNight_Dialog_Alert);
-        b.setTitle(R.string.dialog_title);
-        b.setMessage(R.string.dialog_content);
-        return b.create();
-    }
-
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/app/AppCompatNightModeDialog.java b/samples/Support7Demos/src/com/example/android/supportv7/app/AppCompatNightModeDialog.java
deleted file mode 100644
index d923a92..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/app/AppCompatNightModeDialog.java
+++ /dev/null
@@ -1,70 +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.supportv7.app;
-
-import com.example.android.supportv7.R;
-
-import android.app.Dialog;
-import android.content.Context;
-import android.os.Bundle;
-import android.support.annotation.Nullable;
-import android.support.v4.view.WindowCompat;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.app.AppCompatDelegate;
-import android.support.v7.app.AppCompatDialog;
-import android.view.Menu;
-import android.view.MenuItem;
-import android.view.View;
-import android.widget.Spinner;
-import android.widget.Toast;
-
-/**
- * This demonstrates idiomatic usage of Dialog with Theme.AppCompat.DayNight
- */
-public class AppCompatNightModeDialog extends AppCompatActivity {
-
-    @Override
-    protected void onCreate(@Nullable Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.appcompat_night_mode);
-    }
-
-    public void setModeNightNo(View view) {
-        AppCompatDialog dialog = new AppCompatDialog(this, R.style.Theme_AppCompat_DayNight_Dialog);
-        dialog.getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_NO);
-        dialog.setTitle(R.string.dialog_title);
-        dialog.setContentView(R.layout.dialog_content);
-        dialog.show();
-    }
-
-    public void setModeNightYes(View view) {
-        AppCompatDialog dialog = new AppCompatDialog(this, R.style.Theme_AppCompat_DayNight_Dialog);
-        dialog.getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_YES);
-        dialog.setTitle(R.string.dialog_title);
-        dialog.setContentView(R.layout.dialog_content);
-        dialog.show();
-    }
-
-    public void setModeNightAuto(View view) {
-        AppCompatDialog dialog = new AppCompatDialog(this, R.style.Theme_AppCompat_DayNight_Dialog);
-        dialog.getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_AUTO);
-        dialog.setTitle(R.string.dialog_title);
-        dialog.setContentView(R.layout.dialog_content);
-        dialog.show();
-    }
-
-
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/app/AppCompatPreferenceActivity.java b/samples/Support7Demos/src/com/example/android/supportv7/app/AppCompatPreferenceActivity.java
deleted file mode 100644
index e2ae88c..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/app/AppCompatPreferenceActivity.java
+++ /dev/null
@@ -1,128 +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.supportv7.app;
-
-import android.content.res.Configuration;
-import android.os.Bundle;
-import android.preference.PreferenceActivity;
-import android.support.annotation.LayoutRes;
-import android.support.annotation.Nullable;
-import android.support.v7.app.ActionBar;
-import android.support.v7.app.AppCompatDelegate;
-import android.support.v7.widget.Toolbar;
-import android.view.MenuInflater;
-import android.view.View;
-import android.view.ViewGroup;
-
-/**
- * A {@link android.preference.PreferenceActivity} which implements and proxies the necessary calls
- * to be used with AppCompat.
- *
- * This technique can be used with an {@link android.app.Activity} class, not just
- * {@link android.preference.PreferenceActivity}.
- */
-public abstract class AppCompatPreferenceActivity extends PreferenceActivity {
-
-    private AppCompatDelegate mDelegate;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        getDelegate().installViewFactory();
-        getDelegate().onCreate(savedInstanceState);
-        super.onCreate(savedInstanceState);
-    }
-
-    @Override
-    protected void onPostCreate(Bundle savedInstanceState) {
-        super.onPostCreate(savedInstanceState);
-        getDelegate().onPostCreate(savedInstanceState);
-    }
-
-    public ActionBar getSupportActionBar() {
-        return getDelegate().getSupportActionBar();
-    }
-
-    public void setSupportActionBar(@Nullable Toolbar toolbar) {
-        getDelegate().setSupportActionBar(toolbar);
-    }
-
-    @Override
-    public MenuInflater getMenuInflater() {
-        return getDelegate().getMenuInflater();
-    }
-
-    @Override
-    public void setContentView(@LayoutRes int layoutResID) {
-        getDelegate().setContentView(layoutResID);
-    }
-
-    @Override
-    public void setContentView(View view) {
-        getDelegate().setContentView(view);
-    }
-
-    @Override
-    public void setContentView(View view, ViewGroup.LayoutParams params) {
-        getDelegate().setContentView(view, params);
-    }
-
-    @Override
-    public void addContentView(View view, ViewGroup.LayoutParams params) {
-        getDelegate().addContentView(view, params);
-    }
-
-    @Override
-    protected void onPostResume() {
-        super.onPostResume();
-        getDelegate().onPostResume();
-    }
-
-    @Override
-    protected void onTitleChanged(CharSequence title, int color) {
-        super.onTitleChanged(title, color);
-        getDelegate().setTitle(title);
-    }
-
-    @Override
-    public void onConfigurationChanged(Configuration newConfig) {
-        super.onConfigurationChanged(newConfig);
-        getDelegate().onConfigurationChanged(newConfig);
-    }
-
-    @Override
-    protected void onStop() {
-        super.onStop();
-        getDelegate().onStop();
-    }
-
-    @Override
-    protected void onDestroy() {
-        super.onDestroy();
-        getDelegate().onDestroy();
-    }
-
-    public void invalidateOptionsMenu() {
-        getDelegate().invalidateOptionsMenu();
-    }
-
-    private AppCompatDelegate getDelegate() {
-        if (mDelegate == null) {
-            mDelegate = AppCompatDelegate.create(this, null);
-        }
-        return mDelegate;
-    }
-}
\ No newline at end of file
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/app/AppCompatWidgetsButtons.java b/samples/Support7Demos/src/com/example/android/supportv7/app/AppCompatWidgetsButtons.java
deleted file mode 100644
index d8b2c4f..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/app/AppCompatWidgetsButtons.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * 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.supportv7.app;
-
-import com.example.android.supportv7.R;
-
-import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
-
-/**
- * This demonstrates the styled {@link android.widget.Button} widgets in AppCompat.
- */
-public class AppCompatWidgetsButtons extends AppCompatActivity {
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.appcompat_widgets_buttons);
-    }
-
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/app/AppCompatWidgetsSpinners.java b/samples/Support7Demos/src/com/example/android/supportv7/app/AppCompatWidgetsSpinners.java
deleted file mode 100644
index 2d22b99..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/app/AppCompatWidgetsSpinners.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * 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.supportv7.app;
-
-import com.example.android.supportv7.Cheeses;
-import com.example.android.supportv7.R;
-
-import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
-import android.widget.ArrayAdapter;
-import android.widget.Spinner;
-
-/**
- * This demonstrates the styled {@link android.widget.Spinner} widgets in AppCompat.
- */
-public class AppCompatWidgetsSpinners extends AppCompatActivity {
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.appcompat_widgets_text_spinners);
-
-        // Fetch the Spinners and set an adapter
-        Spinner spinner = (Spinner) findViewById(R.id.widgets_spinner);
-        spinner.setAdapter(new ArrayAdapter<>(this,
-                R.layout.support_simple_spinner_dropdown_item, Cheeses.sCheeseStrings));
-
-        spinner = (Spinner) findViewById(R.id.widgets_spinner_underlined);
-        spinner.setAdapter(new ArrayAdapter<>(this,
-                R.layout.support_simple_spinner_dropdown_item, Cheeses.sCheeseStrings));
-    }
-
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/app/AppCompatWidgetsTextInput.java b/samples/Support7Demos/src/com/example/android/supportv7/app/AppCompatWidgetsTextInput.java
deleted file mode 100644
index c94bd19..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/app/AppCompatWidgetsTextInput.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * 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.supportv7.app;
-
-import com.example.android.supportv7.Cheeses;
-import com.example.android.supportv7.R;
-
-import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
-import android.widget.ArrayAdapter;
-import android.widget.AutoCompleteTextView;
-import android.widget.MultiAutoCompleteTextView;
-
-/**
- * This demonstrates the styled text input widgets in AppCompat, such as
- * {@link android.widget.EditText}, {@link android.widget.AutoCompleteTextView} and
- * {@link android.widget.MultiAutoCompleteTextView}.
- */
-public class AppCompatWidgetsTextInput extends AppCompatActivity {
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.appcompat_widgets_text_input);
-
-        // Fetch the AutoCompleteTextView and set an adapter
-        AutoCompleteTextView actv = (AutoCompleteTextView) findViewById(
-                R.id.widgets_autocompletetextview);
-        actv.setAdapter(new ArrayAdapter<>(this,
-                android.R.layout.simple_dropdown_item_1line, Cheeses.sCheeseStrings));
-
-        // Fetch the MultiAutoCompleteTextView and set an adapter and Tokenizer
-        MultiAutoCompleteTextView mactv = (MultiAutoCompleteTextView) findViewById(
-                R.id.widgets_multiautocompletetextview);
-        mactv.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
-        mactv.setAdapter(new ArrayAdapter<>(this,
-                android.R.layout.simple_dropdown_item_1line, Cheeses.sCheeseStrings));
-    }
-
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/app/DialogFragmentUsage.java b/samples/Support7Demos/src/com/example/android/supportv7/app/DialogFragmentUsage.java
deleted file mode 100644
index f44a0df..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/app/DialogFragmentUsage.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * 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.supportv7.app;
-
-import com.example.android.supportv7.R;
-
-import android.app.Dialog;
-import android.content.Context;
-import android.os.Bundle;
-import android.support.annotation.Nullable;
-import android.support.v4.view.WindowCompat;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.app.AppCompatDialog;
-import android.support.v7.app.AppCompatDialogFragment;
-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.Spinner;
-import android.widget.Toast;
-
-/**
- * This demonstrates idiomatic usage of AppCompatDialogFragment.
- */
-public class DialogFragmentUsage extends AppCompatActivity {
-
-    private Spinner mSpinner;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.dialog_usage);
-
-        mSpinner = (Spinner) findViewById(R.id.spinner_dialogs);
-
-        // Add an OnClickListener to show our selected dialog
-        findViewById(R.id.btn_show_dialog).setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View view) {
-                showSelectedDialog();
-            }
-        });
-    }
-
-    private void showSelectedDialog() {
-        switch (mSpinner.getSelectedItemPosition()) {
-            case 0:
-                showSimpleDialog();
-                break;
-            case 1:
-                showButtonBarDialog();
-                break;
-        }
-    }
-
-    private void showSimpleDialog() {
-        MenuDialogFragment fragment = MenuDialogFragment.create(R.layout.dialog_content);
-        fragment.show(getSupportFragmentManager(), null);
-    }
-
-    private void showButtonBarDialog() {
-        MenuDialogFragment fragment = MenuDialogFragment.create(R.layout.dialog_content_buttons);
-        fragment.show(getSupportFragmentManager(), null);
-    }
-
-    /**
-     * A simple {@link AppCompatDialog} implementation which
-     * inflates some items into it's options menu, and shows a toast when one is selected.
-     */
-    public static class MenuDialogFragment extends AppCompatDialogFragment {
-
-        private static final String PARAM_CONTENT_VIEW = "content_view";
-
-        static MenuDialogFragment create(int contentView) {
-            Bundle b = new Bundle();
-            b.putInt(PARAM_CONTENT_VIEW, contentView);
-
-            MenuDialogFragment fragment = new MenuDialogFragment();
-            fragment.setArguments(b);
-
-            return fragment;
-        }
-
-        @Override
-        public void onCreate(@Nullable Bundle savedInstanceState) {
-            super.onCreate(savedInstanceState);
-            setHasOptionsMenu(true);
-        }
-
-        @Nullable
-        @Override
-        public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
-                @Nullable Bundle savedInstanceState) {
-            Bundle args = getArguments();
-            int contentView = args.getInt(PARAM_CONTENT_VIEW);
-            return inflater.inflate(contentView, container, false);
-        }
-
-        @Override
-        public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
-            inflater.inflate(R.menu.actions, menu);
-        }
-
-        @Override
-        public boolean onOptionsItemSelected(MenuItem item) {
-            Toast.makeText(getActivity(), "Dialog action selected: " + item.getTitle(),
-                    Toast.LENGTH_SHORT).show();
-            return true;
-        }
-    }
-
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/app/DialogUsage.java b/samples/Support7Demos/src/com/example/android/supportv7/app/DialogUsage.java
deleted file mode 100644
index ea1a07d..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/app/DialogUsage.java
+++ /dev/null
@@ -1,104 +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.supportv7.app;
-
-import com.example.android.supportv7.R;
-
-import android.app.Dialog;
-import android.content.Context;
-import android.os.Bundle;
-import android.support.v4.view.WindowCompat;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.app.AppCompatDialog;
-import android.view.Menu;
-import android.view.MenuItem;
-import android.view.View;
-import android.widget.Spinner;
-import android.widget.Toast;
-
-/**
- * This demonstrates idiomatic usage of AppCompatDialog.
- */
-public class DialogUsage extends AppCompatActivity {
-
-    private Spinner mSpinner;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.dialog_usage);
-
-        mSpinner = (Spinner) findViewById(R.id.spinner_dialogs);
-
-        // Add an OnClickListener to show our selected dialog
-        findViewById(R.id.btn_show_dialog).setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View view) {
-                showSelectedDialog();
-            }
-        });
-    }
-
-    private void showSelectedDialog() {
-        switch (mSpinner.getSelectedItemPosition()) {
-            case 0:
-                showSimpleDialog();
-                break;
-            case 1:
-                showButtonBarDialog();
-                break;
-        }
-    }
-
-    private void showSimpleDialog() {
-        Dialog dialog = new AppCompatDialog(this);
-        dialog.setTitle(R.string.dialog_title);
-        dialog.setContentView(R.layout.dialog_content);
-        dialog.show();
-    }
-
-    private void showButtonBarDialog() {
-        Dialog dialog = new AppCompatDialog(this);
-        dialog.setTitle(R.string.dialog_title);
-        dialog.setContentView(R.layout.dialog_content_buttons);
-        dialog.show();
-    }
-
-    /**
-     * A simple {@link android.support.v7.app.AppCompatDialog} implementation which
-     * inflates some items into it's options menu, and shows a toast when one is selected.
-     */
-    private class MenuDialog extends AppCompatDialog {
-
-        public MenuDialog(Context context) {
-            super(context);
-        }
-
-        @Override
-        public boolean onCreateOptionsMenu(Menu menu) {
-            getMenuInflater().inflate(R.menu.actions, menu);
-            return true;
-        }
-
-        @Override
-        public boolean onOptionsItemSelected(MenuItem item) {
-            Toast.makeText(getOwnerActivity(), "Dialog action selected: " + item.getTitle(),
-                    Toast.LENGTH_SHORT).show();
-            return true;
-        }
-    }
-
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/app/RecentSuggestionsProvider.java b/samples/Support7Demos/src/com/example/android/supportv7/app/RecentSuggestionsProvider.java
deleted file mode 100644
index 8d6666d..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/app/RecentSuggestionsProvider.java
+++ /dev/null
@@ -1,28 +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.supportv7.app;
-
-import android.content.SearchRecentSuggestionsProvider;
-
-public class RecentSuggestionsProvider extends SearchRecentSuggestionsProvider {
-    public final static String AUTHORITY = "com.example.android.supportv7.RecentSuggestionsProvider";
-    public final static int MODE = DATABASE_MODE_QUERIES;
-
-    public RecentSuggestionsProvider() {
-        setupSuggestions(AUTHORITY, MODE);
-    }
-}
\ No newline at end of file
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/app/SearchActivity.java b/samples/Support7Demos/src/com/example/android/supportv7/app/SearchActivity.java
deleted file mode 100644
index 622516f..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/app/SearchActivity.java
+++ /dev/null
@@ -1,45 +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.supportv7.app;
-
-import android.app.Activity;
-import android.app.SearchManager;
-import android.content.Intent;
-import android.os.Bundle;
-import android.provider.SearchRecentSuggestions;
-
-/**
- * An Activity which is only used for recieving ACTION_SEARCH intents, saving any queries
- * to our SearchRecentSuggestions so that SearchView's can display suggestions.
- */
-public class SearchActivity extends Activity {
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        // Get the intent, verify the action and get the query
-        Intent intent = getIntent();
-        if (Intent.ACTION_SEARCH.equals(intent.getAction())) {
-            String query = intent.getStringExtra(SearchManager.QUERY);
-            SearchRecentSuggestions suggestions = new SearchRecentSuggestions(this,
-                    RecentSuggestionsProvider.AUTHORITY, RecentSuggestionsProvider.MODE);
-            suggestions.saveRecentQuery(query, null);
-            finish();
-        }
-    }
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/app/ToolbarActionMode.java b/samples/Support7Demos/src/com/example/android/supportv7/app/ToolbarActionMode.java
deleted file mode 100644
index 3977048..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/app/ToolbarActionMode.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * 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.supportv7.app;
-
-import com.example.android.supportv7.R;
-
-import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.view.ActionMode;
-import android.support.v7.widget.Toolbar;
-import android.view.Menu;
-import android.view.MenuItem;
-import android.view.View;
-import android.widget.Toast;
-
-/**
- * This demonstrates idiomatic usage of an action mode with a Toolbar.
- */
-public class ToolbarActionMode extends AppCompatActivity {
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.toolbar_action_mode);
-
-        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
-        setSupportActionBar(toolbar);
-
-        findViewById(R.id.btn_start_action_mode).setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View view) {
-                startActionMode();
-            }
-        });
-    }
-
-    private void startActionMode() {
-        startSupportActionMode(new ActionMode.Callback() {
-            @Override
-            public boolean onCreateActionMode(ActionMode mode, Menu menu) {
-                mode.getMenuInflater().inflate(R.menu.actions, menu);
-                return true;
-            }
-
-            @Override
-            public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
-                return false;
-            }
-
-            @Override
-            public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
-                Toast.makeText(ToolbarActionMode.this,
-                        "Action Mode item clicked:" + item.getTitle(), Toast.LENGTH_SHORT).show();
-                return true;
-            }
-
-            @Override
-            public void onDestroyActionMode(ActionMode mode) {
-            }
-        });
-    }
-
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/app/ToolbarDisplayOptions.java b/samples/Support7Demos/src/com/example/android/supportv7/app/ToolbarDisplayOptions.java
deleted file mode 100644
index e6d179b..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/app/ToolbarDisplayOptions.java
+++ /dev/null
@@ -1,125 +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.supportv7.app;
-
-import com.example.android.supportv7.R;
-
-import android.os.Bundle;
-import android.support.v7.app.ActionBar;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.Toolbar;
-import android.view.Gravity;
-import android.view.Menu;
-import android.view.View;
-import android.view.ViewGroup.LayoutParams;
-
-/**
- * This demo shows how various action bar display option flags can be combined and their effects
- * when used on a Toolbar-provided Action Bar
- */
-public class ToolbarDisplayOptions extends AppCompatActivity
-        implements View.OnClickListener {
-
-    private View mCustomView;
-    private ActionBar.LayoutParams mCustomViewLayoutParams;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.toolbar_display_options);
-
-        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
-        setSupportActionBar(toolbar);
-
-        findViewById(R.id.toggle_home_as_up).setOnClickListener(this);
-        findViewById(R.id.toggle_show_home).setOnClickListener(this);
-        findViewById(R.id.toggle_use_logo).setOnClickListener(this);
-        findViewById(R.id.toggle_show_title).setOnClickListener(this);
-        findViewById(R.id.toggle_show_custom).setOnClickListener(this);
-        findViewById(R.id.cycle_custom_gravity).setOnClickListener(this);
-        findViewById(R.id.toggle_visibility).setOnClickListener(this);
-
-        // Configure several action bar elements that will be toggled by display options.
-        mCustomView = getLayoutInflater().inflate(R.layout.action_bar_display_options_custom, null);
-        mCustomViewLayoutParams = new ActionBar.LayoutParams(
-                LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
-    }
-
-    @Override
-    public boolean onCreateOptionsMenu(Menu menu) {
-        getMenuInflater().inflate(R.menu.display_options_actions, menu);
-        return true;
-    }
-
-    @Override
-    public boolean onSupportNavigateUp() {
-        finish();
-        return true;
-    }
-
-    @Override
-    public void onClick(View v) {
-        final ActionBar bar = getSupportActionBar();
-        int flags = 0;
-        switch (v.getId()) {
-            case R.id.toggle_home_as_up:
-                flags = ActionBar.DISPLAY_HOME_AS_UP;
-                break;
-            case R.id.toggle_show_home:
-                flags = ActionBar.DISPLAY_SHOW_HOME;
-                break;
-            case R.id.toggle_use_logo:
-                flags = ActionBar.DISPLAY_USE_LOGO;
-                getSupportActionBar().setLogo(R.drawable.ic_media_play);
-                break;
-            case R.id.toggle_show_title:
-                flags = ActionBar.DISPLAY_SHOW_TITLE;
-                break;
-            case R.id.toggle_show_custom:
-                flags = ActionBar.DISPLAY_SHOW_CUSTOM;
-                break;
-            case R.id.cycle_custom_gravity: {
-                ActionBar.LayoutParams lp = mCustomViewLayoutParams;
-                int newGravity = 0;
-                switch (lp.gravity & Gravity.HORIZONTAL_GRAVITY_MASK) {
-                    case Gravity.LEFT:
-                        newGravity = Gravity.CENTER_HORIZONTAL;
-                        break;
-                    case Gravity.CENTER_HORIZONTAL:
-                        newGravity = Gravity.RIGHT;
-                        break;
-                    case Gravity.RIGHT:
-                        newGravity = Gravity.LEFT;
-                        break;
-                }
-                lp.gravity = lp.gravity & ~Gravity.HORIZONTAL_GRAVITY_MASK | newGravity;
-                bar.setCustomView(mCustomView, lp);
-                return;
-            }
-            case R.id.toggle_visibility:
-                if (bar.isShowing()) {
-                    bar.hide();
-                } else {
-                    bar.show();
-                }
-                return;
-        }
-
-        int change = bar.getDisplayOptions() ^ flags;
-        bar.setDisplayOptions(change, flags);
-    }
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/app/ToolbarFragmentPagerMenu.java b/samples/Support7Demos/src/com/example/android/supportv7/app/ToolbarFragmentPagerMenu.java
deleted file mode 100644
index 575c7a1..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/app/ToolbarFragmentPagerMenu.java
+++ /dev/null
@@ -1,168 +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.supportv7.app;
-
-import com.example.android.supportv7.R;
-
-import android.os.Bundle;
-import android.support.annotation.Nullable;
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentManager;
-import android.support.v4.app.FragmentPagerAdapter;
-import android.support.v4.view.MenuItemCompat;
-import android.support.v4.view.ViewPager;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.Toolbar;
-import android.view.Gravity;
-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.TextView;
-import android.widget.Toast;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Demonstrates how fragments can participate in the options menu from within a {@link ViewPager}.
- */
-public class ToolbarFragmentPagerMenu extends AppCompatActivity {
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.toolbar_fragment_pager);
-
-        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
-        setSupportActionBar(toolbar);
-
-        ViewPager vp = (ViewPager) findViewById(R.id.viewpager);
-        PagerAdapter adapter = new PagerAdapter(getSupportFragmentManager(),
-                new MenuFragment(), new Menu2Fragment());
-        vp.setAdapter(adapter);
-    }
-
-    private static class PagerAdapter extends FragmentPagerAdapter {
-        private final List<Fragment> mFragments;
-
-        public PagerAdapter(FragmentManager fm, Fragment... fragments) {
-            super(fm);
-
-            mFragments = new ArrayList<Fragment>();
-            for (Fragment fragment : fragments) {
-                mFragments.add(fragment);
-            }
-        }
-
-        @Override
-        public Fragment getItem(int position) {
-            return mFragments.get(position);
-        }
-
-        @Override
-        public int getCount() {
-            return mFragments.size();
-        }
-    }
-
-    /**
-     * A fragment that displays a menu.  This fragment happens to not
-     * have a UI (it does not implement onCreateView), but it could also
-     * have one if it wanted.
-     */
-    public static class MenuFragment extends Fragment {
-        @Override
-        public void onCreate(Bundle savedInstanceState) {
-            super.onCreate(savedInstanceState);
-            setHasOptionsMenu(true);
-        }
-
-        @Override
-        public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
-            MenuItemCompat.setShowAsAction(menu.add("Menu 1a"), MenuItemCompat.SHOW_AS_ACTION_IF_ROOM);
-            MenuItemCompat.setShowAsAction(menu.add("Menu 1b"), MenuItemCompat.SHOW_AS_ACTION_NEVER);
-            super.onCreateOptionsMenu(menu, inflater);
-        }
-
-        @Override
-        public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
-                @Nullable Bundle savedInstanceState) {
-            TextView textView = new TextView(container.getContext());
-
-            textView.setText(getClass().getSimpleName());
-            textView.setGravity(Gravity.CENTER);
-            textView.setLayoutParams(new ViewGroup.LayoutParams(
-                    ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
-
-            return textView;
-        }
-
-        @Override
-        public boolean onOptionsItemSelected(MenuItem item) {
-            if (item.getTitle().equals("Menu 1a")) {
-                Toast.makeText(getActivity(), "Selected Menu 1a.", Toast.LENGTH_SHORT).show();
-                return true;
-            }
-            if (item.getTitle().equals("Menu 1b")) {
-                Toast.makeText(getActivity(), "Selected Menu 1b.", Toast.LENGTH_SHORT).show();
-                return true;
-            }
-            return super.onOptionsItemSelected(item);
-        }
-    }
-
-    /**
-     * Second fragment with a menu.
-     */
-    public static class Menu2Fragment extends Fragment {
-        @Override
-        public void onCreate(Bundle savedInstanceState) {
-            super.onCreate(savedInstanceState);
-            setHasOptionsMenu(true);
-        }
-
-        @Override
-        public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
-            MenuItemCompat.setShowAsAction(menu.add("Menu 2"), MenuItemCompat.SHOW_AS_ACTION_IF_ROOM);
-        }
-
-        @Override
-        public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
-                @Nullable Bundle savedInstanceState) {
-            TextView textView = new TextView(container.getContext());
-
-            textView.setText(getClass().getSimpleName());
-            textView.setGravity(Gravity.CENTER);
-            textView.setLayoutParams(new ViewGroup.LayoutParams(
-                    ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
-
-            return textView;
-        }
-
-        @Override
-        public boolean onOptionsItemSelected(MenuItem item) {
-            if (item.getTitle().equals("Menu 2")) {
-                Toast.makeText(getActivity(), "Selected Menu 2.", Toast.LENGTH_SHORT).show();
-                return true;
-            }
-            return false;
-        }
-    }
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/app/ToolbarUsage.java b/samples/Support7Demos/src/com/example/android/supportv7/app/ToolbarUsage.java
deleted file mode 100644
index 55e7f14..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/app/ToolbarUsage.java
+++ /dev/null
@@ -1,67 +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.supportv7.app;
-
-import com.example.android.supportv7.R;
-
-import android.app.SearchManager;
-import android.os.Bundle;
-import android.support.v4.view.MenuItemCompat;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.SearchView;
-import android.support.v7.widget.Toolbar;
-import android.view.Menu;
-import android.view.MenuInflater;
-import android.view.MenuItem;
-import android.widget.Toast;
-
-/**
- * This demonstrates idiomatic usage of the Toolbar as the action bar.
- */
-public class ToolbarUsage extends AppCompatActivity {
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.toolbar_usage);
-
-        // Retrieve the Toolbar from our content view, and set it as the action bar
-        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
-        setSupportActionBar(toolbar);
-    }
-
-    @Override
-    public boolean onCreateOptionsMenu(Menu menu) {
-        MenuInflater inflater = getMenuInflater();
-        inflater.inflate(R.menu.actions, menu);
-
-        // Retrieve the SearchView and plug it into SearchManager
-        final SearchView searchView = (SearchView) MenuItemCompat
-                .getActionView(menu.findItem(R.id.action_search));
-
-        SearchManager searchManager = (SearchManager) getSystemService(SEARCH_SERVICE);
-        searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
-
-        return true;
-    }
-
-    @Override
-    public boolean onOptionsItemSelected(MenuItem item) {
-        Toast.makeText(this, "Selected Item: " + item.getTitle(), Toast.LENGTH_SHORT).show();
-        return true;
-    }
-
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/app/_index.html b/samples/Support7Demos/src/com/example/android/supportv7/app/_index.html
deleted file mode 100644
index c316d1b..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/app/_index.html
+++ /dev/null
@@ -1,33 +0,0 @@
-
-<p>This section includes samples showing the use of the application
-package features of the static support library.</p>
-<ul>
-  <li><a href="#ActionBar">Action Bar</a></li>
-</ul>
-
-
-<h3 id="ActionBar">Action Bar</h3>
-<dl>
-  <dt><a href="ActionBarMechanics.html">Action Bar Mechanics</a></dt>
-  <dd>Demonstrates the basics of the Action Bar and how it interoperates with the standard options
-menu. This demo is for informative purposes only; see Usage for an example of using the
-Action Bar in a more idiomatic manner.</dd>
-
-  <dt><a href="ActionBarTabs.html">Action Bar Tabs</a></dt>
-  <dd>Demonstrates the use of Action Bar tabs and how they interact with other action bar
-features.  Also see the <a href="FragmentTabs.html">Fragment Tabs</a> for a more
-complete example of how to switch between fragments.</dd>
-
-  <dt><a href="ActionBarUsage.html">Action Bar Usage</a></dt>
-  <dd>Demonstrates simple usage of the Action Bar, including a SearchView as an action item. The
-default Honeycomb theme includes the Action Bar by default and a menu resource is used to populate
-the menu data itself. If you'd like to see how these things work under the hood, see
-Mechanics.</dd>
-
-  <dt><a href="ActionBarActionProviderSettingsActivity.html">Settings Action Provider</a></dt>
-  <dd>Shows how to implement an ActionProvider for launching the system settings that supplies a
-  menu item with a specialized action view and handles standard menu item clicks in one place.</dd>
-
-  <dt><a href="ActionBarDisplayOptions.html">Display Options</a></dt>
-  <dd>Shows how various Action Bar display option flags can be combined and their effects.</dd>
-</dl>
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/graphics/ImageLoader.java b/samples/Support7Demos/src/com/example/android/supportv7/graphics/ImageLoader.java
deleted file mode 100644
index 30a0aa2..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/graphics/ImageLoader.java
+++ /dev/null
@@ -1,101 +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.supportv7.graphics;
-
-import android.graphics.Bitmap;
-import android.os.AsyncTask;
-import android.provider.MediaStore;
-import android.support.v4.graphics.BitmapCompat;
-import android.support.v4.os.AsyncTaskCompat;
-import android.support.v4.util.LruCache;
-import android.widget.ImageView;
-
-/**
- * A very naive lazily implemented image loader. Do not use this in production code.
- */
-class ImageLoader {
-
-    /**
-     * A LruCache used to store images which has a maximum size of 10% of the maximum heap size.
-     */
-    private static final BitmapCache CACHE = new BitmapCache(
-            Math.round(Runtime.getRuntime().maxMemory() / 10));
-
-    private ImageLoader() {
-    }
-
-    interface Listener {
-        void onImageLoaded(Bitmap bitmap);
-    }
-
-    static void loadMediaStoreThumbnail(final ImageView imageView,
-            final long id,
-            final Listener listener) {
-
-        final Bitmap cachedValue = CACHE.get(id);
-        if (cachedValue != null) {
-            // If the image is already in the cache, display the image,
-            // call the listener now and return
-            imageView.setImageBitmap(cachedValue);
-            if (listener != null) {
-                listener.onImageLoaded(cachedValue);
-            }
-            return;
-        }
-
-        AsyncTaskCompat.executeParallel(new AsyncTask<Void, Void, Bitmap>() {
-            @Override
-            protected Bitmap doInBackground(Void... params) {
-                return MediaStore.Images.Thumbnails.getThumbnail(
-                        imageView.getContext().getContentResolver(),
-                        id,
-                        MediaStore.Images.Thumbnails.MINI_KIND,
-                        null);
-            }
-
-            @Override
-            protected void onPostExecute(Bitmap bitmap) {
-                imageView.setImageBitmap(bitmap);
-
-                if (bitmap != null) {
-                    // Add the image to the memory cache first
-                    CACHE.put(id, bitmap);
-
-                    if (listener != null) {
-                        listener.onImageLoaded(bitmap);
-                    }
-                }
-            }
-        });
-    }
-
-    /**
-     * A simple cache implementation for {@link android.graphics.Bitmap} instances which uses
-     * {@link android.support.v4.util.LruCache}.
-     */
-    private static class BitmapCache extends LruCache<Long, Bitmap> {
-        BitmapCache(int maxSize) {
-            super(maxSize);
-        }
-
-        @Override
-        protected int sizeOf(Long key, Bitmap value) {
-            return BitmapCompat.getAllocationByteCount(value);
-        }
-    }
-
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/graphics/PaletteActivity.java b/samples/Support7Demos/src/com/example/android/supportv7/graphics/PaletteActivity.java
deleted file mode 100644
index e82aa3a..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/graphics/PaletteActivity.java
+++ /dev/null
@@ -1,243 +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.supportv7.graphics;
-
-import com.example.android.supportv7.R;
-
-import android.content.Context;
-import android.content.Intent;
-import android.database.Cursor;
-import android.graphics.Bitmap;
-import android.net.Uri;
-import android.os.Bundle;
-import android.provider.MediaStore;
-import android.support.v4.app.ListFragment;
-import android.support.v4.app.LoaderManager;
-import android.support.v4.content.CursorLoader;
-import android.support.v4.content.Loader;
-import android.support.v4.widget.ResourceCursorAdapter;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.graphics.Palette;
-import android.view.Menu;
-import android.view.MenuInflater;
-import android.view.MenuItem;
-import android.view.View;
-import android.widget.ImageView;
-import android.widget.ListView;
-
-/**
- * Activity which displays the images from the device's {@link MediaStore}, alongside the generated
- * {@link android.support.v7.graphics.Palette} results.
- *
- * Allows the customization of the number of colors used in the palette generation, to demonstrate
- * the difference in results for different types of images.
- */
-public class PaletteActivity extends AppCompatActivity {
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        getSupportFragmentManager()
-                .beginTransaction()
-                .replace(android.R.id.content, new PaletteMediaStoreListFragment())
-                .commit();
-    }
-
-    /**
-     * The {@link android.support.v4.app.ListFragment} which does all of the hard work.
-     */
-    public static class PaletteMediaStoreListFragment extends ListFragment
-            implements LoaderManager.LoaderCallbacks<Cursor> {
-
-        /**
-         * Projection used for querying the {@link android.provider.MediaStore}.
-         */
-        static final String[] PROJECTION = {
-                MediaStore.Images.ImageColumns._ID,
-                MediaStore.Images.ImageColumns.DATE_ADDED
-        };
-
-        private PhotosCursorAdapter mAdapter;
-
-        @Override
-        public void onCreate(Bundle savedInstanceState) {
-            super.onCreate(savedInstanceState);
-            setHasOptionsMenu(true);
-        }
-
-        @Override
-        public void onViewCreated(View view, Bundle savedInstanceState) {
-            super.onViewCreated(view, savedInstanceState);
-
-            // Enable fast scroll to make it easier to navigate large number of images
-            getListView().setFastScrollEnabled(true);
-        }
-
-        @Override
-        public void onActivityCreated(Bundle savedInstanceState) {
-            super.onActivityCreated(savedInstanceState);
-
-            // Create an Adapter and use a new Adapter
-            mAdapter = new PhotosCursorAdapter(getActivity(), null);
-            mAdapter.setNumColors(16);
-            setListAdapter(mAdapter);
-
-            // Start the loader manager to create our CursorLoader
-            getLoaderManager().initLoader(0, null, this);
-        }
-
-        @Override
-        public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
-            inflater.inflate(R.menu.sample_palette_actions, menu);
-        }
-
-        @Override
-        public boolean onOptionsItemSelected(MenuItem item) {
-            switch (item.getItemId()) {
-                case R.id.menu_num_colors_8:
-                    mAdapter.setNumColors(8);
-                    item.setChecked(true);
-                    return true;
-                case R.id.menu_num_colors_12:
-                    mAdapter.setNumColors(12);
-                    item.setChecked(true);
-                    return true;
-                case R.id.menu_num_colors_16:
-                    mAdapter.setNumColors(16);
-                    item.setChecked(true);
-                    return true;
-                case R.id.menu_num_colors_24:
-                    mAdapter.setNumColors(24);
-                    item.setChecked(true);
-                    return true;
-                case R.id.menu_num_colors_32:
-                    mAdapter.setNumColors(32);
-                    item.setChecked(true);
-                    return true;
-            }
-
-            return super.onOptionsItemSelected(item);
-        }
-
-        @Override
-        public void onListItemClick(ListView l, View v, int position, long id) {
-            final Uri uri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI.buildUpon()
-                    .appendEncodedPath(String.valueOf(id)).build();
-
-            // Start the Detail Activity
-            Intent intent = new Intent(getActivity(), PaletteDetailActivity.class);
-            intent.setData(uri);
-            startActivity(intent);
-        }
-
-        @Override
-        public Loader<Cursor> onCreateLoader(int id, Bundle bundle) {
-            return new CursorLoader(
-                    getActivity(),
-                    MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
-                    PROJECTION,
-                    null,
-                    null,
-                    MediaStore.Images.ImageColumns.DATE_ADDED + " DESC");
-        }
-
-        @Override
-        public void onLoadFinished(Loader<Cursor> cursorLoader, Cursor cursor) {
-            mAdapter.swapCursor(cursor);
-        }
-
-        @Override
-        public void onLoaderReset(Loader<Cursor> cursorLoader) {
-            mAdapter.swapCursor(null);
-        }
-
-        private static class PhotosCursorAdapter extends ResourceCursorAdapter {
-
-            private int mNumColors;
-
-            public PhotosCursorAdapter(Context context, Cursor c) {
-                super(context, R.layout.palette_list_item, c, false);
-                mContext = context;
-            }
-
-            /**
-             * Set the number of colors used for {@link Palette} generation.
-             */
-            void setNumColors(int numColors) {
-                mNumColors = numColors;
-                notifyDataSetChanged();
-            }
-
-            @Override
-            public void bindView(final View view, Context context, Cursor cursor) {
-                // Let's reset the view, clearing the ImageView and resetting the background colors
-                // of the Palette UI
-                ImageView imageView = (ImageView) view.findViewById(R.id.image);
-                imageView.setImageDrawable(null);
-
-                view.findViewById(R.id.text_vibrant).setBackgroundDrawable(null);
-                view.findViewById(R.id.text_muted).setBackgroundDrawable(null);
-                view.findViewById(R.id.text_light_vibrant).setBackgroundDrawable(null);
-                view.findViewById(R.id.text_light_muted).setBackgroundDrawable(null);
-                view.findViewById(R.id.text_dark_vibrant).setBackgroundDrawable(null);
-                view.findViewById(R.id.text_dark_muted).setBackgroundDrawable(null);
-
-                final long id = cursor.getLong(
-                        cursor.getColumnIndexOrThrow(MediaStore.Images.ImageColumns._ID));
-
-                ImageLoader.loadMediaStoreThumbnail(imageView, id, new ImageLoader.Listener() {
-                    @Override
-                    public void onImageLoaded(Bitmap bitmap) {
-                        Palette.generateAsync(bitmap, mNumColors,
-                                new Palette.PaletteAsyncListener() {
-                                    @Override
-                                    public void onGenerated(Palette palette) {
-                                        setBackgroundColor(
-                                                view.findViewById(R.id.text_vibrant),
-                                                palette.getVibrantSwatch());
-                                        setBackgroundColor(
-                                                view.findViewById(R.id.text_muted),
-                                                palette.getMutedSwatch());
-                                        setBackgroundColor(
-                                                view.findViewById(R.id.text_light_vibrant),
-                                                palette.getLightVibrantSwatch());
-                                        setBackgroundColor(
-                                                view.findViewById(R.id.text_light_muted),
-                                                palette.getLightMutedSwatch());
-                                        setBackgroundColor(
-                                                view.findViewById(R.id.text_dark_vibrant),
-                                                palette.getDarkVibrantSwatch());
-                                        setBackgroundColor(
-                                                view.findViewById(R.id.text_dark_muted),
-                                                palette.getDarkMutedSwatch());
-                                    }
-                                });
-                    }
-                });
-            }
-        }
-
-        static void setBackgroundColor(View view, Palette.Swatch swatch) {
-            if (view != null && swatch != null) {
-                view.setBackgroundColor(swatch.getRgb());
-            }
-        }
-
-    }
-
-}
\ No newline at end of file
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/graphics/PaletteDetailActivity.java b/samples/Support7Demos/src/com/example/android/supportv7/graphics/PaletteDetailActivity.java
deleted file mode 100644
index d7fd47c..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/graphics/PaletteDetailActivity.java
+++ /dev/null
@@ -1,190 +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.supportv7.graphics;
-
-import com.example.android.supportv7.R;
-
-import android.graphics.Bitmap;
-import android.net.Uri;
-import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.graphics.Palette;
-import android.view.Menu;
-import android.view.MenuItem;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.AdapterView;
-import android.widget.BaseAdapter;
-import android.widget.GridView;
-import android.widget.ImageView;
-import android.widget.Toast;
-
-import java.util.List;
-
-/**
- * Activity which displays the more details about a generated {@link Palette} for a specific
- * {@link android.provider.MediaStore} image.
- *
- * Displays the full generated palette of colors in a grid, which allows clicking on an palette item
- * to display more information in a {@link Toast}.
- *
- * Also allows the customization of the number of colors used in the palette generation for
- * demonstration purposes.
- */
-public class PaletteDetailActivity extends AppCompatActivity {
-
-    private ImageView mImageView;
-    private GridView mGridView;
-    private SwatchesPalette mSwatchesPalette;
-
-    private Uri mImageUri;
-
-    private Toast mCurrentToast;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.palette_activity_detail);
-
-        mImageUri = getIntent().getData();
-
-        mImageView = (ImageView) findViewById(R.id.image);
-        mGridView = (GridView) findViewById(R.id.palette);
-        mSwatchesPalette = new SwatchesPalette();
-        mGridView.setAdapter(mSwatchesPalette);
-
-        // Set an OnItemClickListener to display a information Toast when a Palette item is clicked
-        mGridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
-            @Override
-            public void onItemClick(AdapterView<?> adapterView, View view, int pos, long l) {
-                // Cancel the current Toast if there is already one being displayed
-                if (mCurrentToast != null) {
-                    mCurrentToast.cancel();
-                }
-
-                final Palette.Swatch item = (Palette.Swatch) adapterView.getItemAtPosition(pos);
-                mCurrentToast = Toast.makeText(PaletteDetailActivity.this,
-                        item.toString(), Toast.LENGTH_LONG);
-                mCurrentToast.show();
-            }
-        });
-
-        // Load the image with a default number of colors
-        loadImage(16);
-    }
-
-    @Override
-    public boolean onCreateOptionsMenu(Menu menu) {
-        getMenuInflater().inflate(R.menu.sample_palette_actions, menu);
-        return true;
-    }
-
-    @Override
-    public boolean onOptionsItemSelected(MenuItem item) {
-        switch (item.getItemId()) {
-            case R.id.menu_num_colors_8:
-                loadImage(8);
-                item.setChecked(true);
-                return true;
-            case R.id.menu_num_colors_12:
-                loadImage(12);
-                item.setChecked(true);
-                return true;
-            case R.id.menu_num_colors_16:
-                loadImage(16);
-                item.setChecked(true);
-                return true;
-            case R.id.menu_num_colors_24:
-                loadImage(24);
-                item.setChecked(true);
-                return true;
-            case R.id.menu_num_colors_32:
-                loadImage(32);
-                item.setChecked(true);
-                return true;
-        }
-        return super.onOptionsItemSelected(item);
-    }
-
-    private void loadImage(final int numColors) {
-        final int id = Integer.parseInt(mImageUri.getLastPathSegment());
-
-        ImageLoader.loadMediaStoreThumbnail(mImageView, id, new ImageLoader.Listener() {
-            @Override
-            public void onImageLoaded(Bitmap bitmap) {
-                Palette.generateAsync(bitmap, numColors, new Palette.PaletteAsyncListener() {
-                    @Override
-                    public void onGenerated(Palette palette) {
-                        populatePalette(palette);
-                    }
-                });
-            }
-        });
-    }
-
-    private class SwatchesPalette extends BaseAdapter {
-
-        private List<Palette.Swatch> mSwatches;
-
-        @Override
-        public int getCount() {
-            return mSwatches != null ? mSwatches.size() : 0;
-        }
-
-        @Override
-        public Palette.Swatch getItem(int position) {
-            return mSwatches.get(position);
-        }
-
-        @Override
-        public long getItemId(int position) {
-            return position;
-        }
-
-        void setSwatches(List<Palette.Swatch> palette) {
-            mSwatches = palette;
-            notifyDataSetChanged();
-        }
-
-        @Override
-        public View getView(int position, View view, ViewGroup parent) {
-            if (view == null) {
-                view = getLayoutInflater().inflate(R.layout.palette_grid_item, parent, false);
-            }
-            setBackgroundColor(view, getItem(position));
-            return view;
-        }
-    }
-
-    private void populatePalette(Palette palette) {
-        mSwatchesPalette.setSwatches(palette.getSwatches());
-
-        setBackgroundColor(findViewById(R.id.text_vibrant), palette.getVibrantSwatch());
-        setBackgroundColor(findViewById(R.id.text_muted), palette.getMutedSwatch());
-        setBackgroundColor(findViewById(R.id.text_light_vibrant), palette.getLightVibrantSwatch());
-        setBackgroundColor(findViewById(R.id.text_light_muted), palette.getLightMutedSwatch());
-        setBackgroundColor(findViewById(R.id.text_dark_vibrant), palette.getDarkVibrantSwatch());
-        setBackgroundColor(findViewById(R.id.text_dark_muted), palette.getDarkMutedSwatch());
-    }
-
-    private void setBackgroundColor(View view, Palette.Swatch swatch) {
-        if (view != null && swatch != null) {
-            view.setBackgroundColor(swatch.getRgb());
-        }
-    }
-
-}
\ No newline at end of file
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/media/LocalPlayer.java b/samples/Support7Demos/src/com/example/android/supportv7/media/LocalPlayer.java
deleted file mode 100644
index b62f76e..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/media/LocalPlayer.java
+++ /dev/null
@@ -1,649 +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.supportv7.media;
-
-import android.app.Activity;
-import android.app.Presentation;
-import android.content.Context;
-import android.content.DialogInterface;
-import android.graphics.Bitmap;
-import android.media.MediaPlayer;
-import android.os.Build;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.SystemClock;
-import android.support.v7.media.MediaRouter.RouteInfo;
-import android.support.v7.media.MediaItemStatus;
-import android.util.Log;
-import android.view.Display;
-import android.view.Gravity;
-import android.view.Surface;
-import android.view.SurfaceHolder;
-import android.view.SurfaceView;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.WindowManager;
-import android.widget.FrameLayout;
-
-import com.example.android.supportv7.R;
-
-import java.io.IOException;
-
-/**
- * Handles playback of a single media item using MediaPlayer.
- */
-public abstract class LocalPlayer extends Player implements
-        MediaPlayer.OnPreparedListener,
-        MediaPlayer.OnCompletionListener,
-        MediaPlayer.OnErrorListener,
-        MediaPlayer.OnSeekCompleteListener {
-    private static final String TAG = "LocalPlayer";
-    private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
-
-    private final Context mContext;
-    private final Handler mHandler = new Handler();
-    private final Handler mUpdateSurfaceHandler = new Handler(mHandler.getLooper());
-    private MediaPlayer mMediaPlayer;
-    private int mState = STATE_IDLE;
-    private int mSeekToPos;
-    private int mVideoWidth;
-    private int mVideoHeight;
-    private Surface mSurface;
-    private SurfaceHolder mSurfaceHolder;
-
-    public LocalPlayer(Context context) {
-        mContext = context;
-
-        // reset media player
-        reset();
-    }
-
-    @Override
-    public boolean isRemotePlayback() {
-        return false;
-    }
-
-    @Override
-    public boolean isQueuingSupported() {
-        return false;
-    }
-
-    @Override
-    public void connect(RouteInfo route) {
-        if (DEBUG) {
-            Log.d(TAG, "connecting to: " + route);
-        }
-    }
-
-    @Override
-    public void release() {
-        if (DEBUG) {
-            Log.d(TAG, "releasing");
-        }
-        // release media player
-        if (mMediaPlayer != null) {
-            mMediaPlayer.stop();
-            mMediaPlayer.release();
-            mMediaPlayer = null;
-        }
-    }
-
-    // Player
-    @Override
-    public void play(final PlaylistItem item) {
-        if (DEBUG) {
-            Log.d(TAG, "play: item=" + item);
-        }
-        reset();
-        mSeekToPos = (int)item.getPosition();
-        try {
-            mMediaPlayer.setDataSource(mContext, item.getUri());
-            mMediaPlayer.prepareAsync();
-        } catch (IllegalStateException e) {
-            Log.e(TAG, "MediaPlayer throws IllegalStateException, uri=" + item.getUri());
-        } catch (IOException e) {
-            Log.e(TAG, "MediaPlayer throws IOException, uri=" + item.getUri());
-        } catch (IllegalArgumentException e) {
-            Log.e(TAG, "MediaPlayer throws IllegalArgumentException, uri=" + item.getUri());
-        } catch (SecurityException e) {
-            Log.e(TAG, "MediaPlayer throws SecurityException, uri=" + item.getUri());
-        }
-        if (item.getState() == MediaItemStatus.PLAYBACK_STATE_PLAYING) {
-            resume();
-        } else {
-            pause();
-        }
-    }
-
-    @Override
-    public void seek(final PlaylistItem item) {
-        if (DEBUG) {
-            Log.d(TAG, "seek: item=" + item);
-        }
-        int pos = (int)item.getPosition();
-        if (mState == STATE_PLAYING || mState == STATE_PAUSED) {
-            mMediaPlayer.seekTo(pos);
-            mSeekToPos = pos;
-        } else if (mState == STATE_IDLE || mState == STATE_PREPARING_FOR_PLAY
-                || mState == STATE_PREPARING_FOR_PAUSE) {
-            // Seek before onPrepared() arrives,
-            // need to performed delayed seek in onPrepared()
-            mSeekToPos = pos;
-        }
-    }
-
-    @Override
-    public void getStatus(final PlaylistItem item, final boolean update) {
-        if (mState == STATE_PLAYING || mState == STATE_PAUSED) {
-            // use mSeekToPos if we're currently seeking (mSeekToPos is reset
-            // when seeking is completed)
-            item.setDuration(mMediaPlayer.getDuration());
-            item.setPosition(mSeekToPos > 0 ?
-                    mSeekToPos : mMediaPlayer.getCurrentPosition());
-            item.setTimestamp(SystemClock.elapsedRealtime());
-        }
-        if (update && mCallback != null) {
-            mCallback.onPlaylistReady();
-        }
-    }
-
-    @Override
-    public void pause() {
-        if (DEBUG) {
-            Log.d(TAG, "pause");
-        }
-        if (mState == STATE_PLAYING) {
-            mMediaPlayer.pause();
-            mState = STATE_PAUSED;
-        } else if (mState == STATE_PREPARING_FOR_PLAY) {
-            mState = STATE_PREPARING_FOR_PAUSE;
-        }
-    }
-
-    @Override
-    public void resume() {
-        if (DEBUG) {
-            Log.d(TAG, "resume");
-        }
-        if (mState == STATE_READY || mState == STATE_PAUSED) {
-            mMediaPlayer.start();
-            mState = STATE_PLAYING;
-        } else if (mState == STATE_IDLE || mState == STATE_PREPARING_FOR_PAUSE) {
-            mState = STATE_PREPARING_FOR_PLAY;
-        }
-    }
-
-    @Override
-    public void stop() {
-        if (DEBUG) {
-            Log.d(TAG, "stop");
-        }
-        if (mState == STATE_PLAYING || mState == STATE_PAUSED) {
-            mMediaPlayer.stop();
-            mState = STATE_IDLE;
-        }
-    }
-
-    @Override
-    public void enqueue(final PlaylistItem item) {
-        throw new UnsupportedOperationException("LocalPlayer doesn't support enqueue!");
-    }
-
-    @Override
-    public PlaylistItem remove(String iid) {
-        throw new UnsupportedOperationException("LocalPlayer doesn't support remove!");
-    }
-
-    //MediaPlayer Listeners
-    @Override
-    public void onPrepared(MediaPlayer mp) {
-        if (DEBUG) {
-            Log.d(TAG, "onPrepared");
-        }
-        mHandler.post(new Runnable() {
-            @Override
-            public void run() {
-                if (mState == STATE_IDLE) {
-                    mState = STATE_READY;
-                    updateVideoRect();
-                } else if (mState == STATE_PREPARING_FOR_PLAY
-                        || mState == STATE_PREPARING_FOR_PAUSE) {
-                    int prevState = mState;
-                    mState = mState == STATE_PREPARING_FOR_PLAY ? STATE_PLAYING : STATE_PAUSED;
-                    updateVideoRect();
-                    if (mSeekToPos > 0) {
-                        if (DEBUG) {
-                            Log.d(TAG, "seek to initial pos: " + mSeekToPos);
-                        }
-                        mMediaPlayer.seekTo(mSeekToPos);
-                    }
-                    if (prevState == STATE_PREPARING_FOR_PLAY) {
-                        mMediaPlayer.start();
-                    }
-                }
-                if (mCallback != null) {
-                    mCallback.onPlaylistChanged();
-                }
-            }
-        });
-    }
-
-    @Override
-    public void onCompletion(MediaPlayer mp) {
-        if (DEBUG) {
-            Log.d(TAG, "onCompletion");
-        }
-        mHandler.post(new Runnable() {
-            @Override
-            public void run() {
-                if (mCallback != null) {
-                    mCallback.onCompletion();
-                }
-            }
-        });
-    }
-
-    @Override
-    public boolean onError(MediaPlayer mp, int what, int extra) {
-        if (DEBUG) {
-            Log.d(TAG, "onError");
-        }
-        mHandler.post(new Runnable() {
-            @Override
-            public void run() {
-                if (mCallback != null) {
-                    mCallback.onError();
-                }
-            }
-        });
-        // return true so that onCompletion is not called
-        return true;
-    }
-
-    @Override
-    public void onSeekComplete(MediaPlayer mp) {
-        if (DEBUG) {
-            Log.d(TAG, "onSeekComplete");
-        }
-        mHandler.post(new Runnable() {
-            @Override
-            public void run() {
-                mSeekToPos = 0;
-                if (mCallback != null) {
-                    mCallback.onPlaylistChanged();
-                }
-            }
-        });
-    }
-
-    protected Context getContext() { return mContext; }
-    protected MediaPlayer getMediaPlayer() { return mMediaPlayer; }
-    protected int getVideoWidth() { return mVideoWidth; }
-    protected int getVideoHeight() { return mVideoHeight; }
-    protected int getState() { return mState; }
-    protected void setSurface(Surface surface) {
-        mSurface = surface;
-        mSurfaceHolder = null;
-        updateSurface();
-    }
-
-    protected void setSurface(SurfaceHolder surfaceHolder) {
-        mSurface = null;
-        mSurfaceHolder = surfaceHolder;
-        updateSurface();
-    }
-
-    protected void removeSurface(SurfaceHolder surfaceHolder) {
-        if (surfaceHolder == mSurfaceHolder) {
-            setSurface((SurfaceHolder)null);
-        }
-    }
-
-    protected void updateSurface() {
-        mUpdateSurfaceHandler.removeCallbacksAndMessages(null);
-        mUpdateSurfaceHandler.post(new Runnable() {
-            @Override
-            public void run() {
-                if (mMediaPlayer == null) {
-                    // just return if media player is already gone
-                    return;
-                }
-                if (mSurface != null) {
-                    // The setSurface API does not exist until V14+.
-                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
-                        ICSMediaPlayer.setSurface(mMediaPlayer, mSurface);
-                    } else {
-                        throw new UnsupportedOperationException("MediaPlayer does not support "
-                                + "setSurface() on this version of the platform.");
-                    }
-                } else if (mSurfaceHolder != null) {
-                    mMediaPlayer.setDisplay(mSurfaceHolder);
-                } else {
-                    mMediaPlayer.setDisplay(null);
-                }
-            }
-        });
-    }
-
-    protected abstract void updateSize();
-
-    private void reset() {
-        if (mMediaPlayer != null) {
-            mMediaPlayer.stop();
-            mMediaPlayer.release();
-            mMediaPlayer = null;
-        }
-        mMediaPlayer = new MediaPlayer();
-        mMediaPlayer.setOnPreparedListener(this);
-        mMediaPlayer.setOnCompletionListener(this);
-        mMediaPlayer.setOnErrorListener(this);
-        mMediaPlayer.setOnSeekCompleteListener(this);
-        updateSurface();
-        mState = STATE_IDLE;
-        mSeekToPos = 0;
-    }
-
-    private void updateVideoRect() {
-        if (mState != STATE_IDLE && mState != STATE_PREPARING_FOR_PLAY
-                && mState != STATE_PREPARING_FOR_PAUSE) {
-            int width = mMediaPlayer.getVideoWidth();
-            int height = mMediaPlayer.getVideoHeight();
-            if (width > 0 && height > 0) {
-                mVideoWidth = width;
-                mVideoHeight = height;
-                updateSize();
-            } else {
-                Log.e(TAG, "video rect is 0x0!");
-                mVideoWidth = mVideoHeight = 0;
-            }
-        }
-    }
-
-    private static final class ICSMediaPlayer {
-        public static final void setSurface(MediaPlayer player, Surface surface) {
-            player.setSurface(surface);
-        }
-    }
-
-    /**
-     * Handles playback of a single media item using MediaPlayer in SurfaceView
-     */
-    public static class SurfaceViewPlayer extends LocalPlayer implements
-            SurfaceHolder.Callback {
-        private static final String TAG = "SurfaceViewPlayer";
-        private RouteInfo mRoute;
-        private final SurfaceView mSurfaceView;
-        private final FrameLayout mLayout;
-        private DemoPresentation mPresentation;
-
-        public SurfaceViewPlayer(Context context) {
-            super(context);
-
-            mLayout = (FrameLayout)((Activity)context).findViewById(R.id.player);
-            mSurfaceView = (SurfaceView)((Activity)context).findViewById(R.id.surface_view);
-
-            // add surface holder callback
-            SurfaceHolder holder = mSurfaceView.getHolder();
-            holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
-            holder.addCallback(this);
-        }
-
-        @Override
-        public void connect(RouteInfo route) {
-            super.connect(route);
-            mRoute = route;
-        }
-
-        @Override
-        public void release() {
-            super.release();
-
-            // dismiss presentation display
-            if (mPresentation != null) {
-                Log.i(TAG, "Dismissing presentation because the activity is no longer visible.");
-                mPresentation.dismiss();
-                mPresentation = null;
-            }
-
-            // remove surface holder callback
-            SurfaceHolder holder = mSurfaceView.getHolder();
-            holder.removeCallback(this);
-
-            // hide the surface view when SurfaceViewPlayer is destroyed
-            mSurfaceView.setVisibility(View.GONE);
-            mLayout.setVisibility(View.GONE);
-        }
-
-        @Override
-        public void updatePresentation() {
-            // Get the current route and its presentation display.
-            Display presentationDisplay = mRoute != null ? mRoute.getPresentationDisplay() : null;
-
-            // Dismiss the current presentation if the display has changed.
-            if (mPresentation != null && mPresentation.getDisplay() != presentationDisplay) {
-                Log.i(TAG, "Dismissing presentation because the current route no longer "
-                        + "has a presentation display.");
-                mPresentation.dismiss();
-                mPresentation = null;
-            }
-
-            // Show a new presentation if needed.
-            if (mPresentation == null && presentationDisplay != null) {
-                Log.i(TAG, "Showing presentation on display: " + presentationDisplay);
-                mPresentation = new DemoPresentation(getContext(), presentationDisplay);
-                mPresentation.setOnDismissListener(mOnDismissListener);
-                try {
-                    mPresentation.show();
-                } catch (WindowManager.InvalidDisplayException ex) {
-                    Log.w(TAG, "Couldn't show presentation!  Display was removed in "
-                              + "the meantime.", ex);
-                    mPresentation = null;
-                }
-            }
-
-            updateContents();
-        }
-
-        // SurfaceHolder.Callback
-        @Override
-        public void surfaceChanged(SurfaceHolder holder, int format,
-                int width, int height) {
-            if (DEBUG) {
-                Log.d(TAG, "surfaceChanged: " + width + "x" + height);
-            }
-            setSurface(holder);
-        }
-
-        @Override
-        public void surfaceCreated(SurfaceHolder holder) {
-            if (DEBUG) {
-                Log.d(TAG, "surfaceCreated");
-            }
-            setSurface(holder);
-            updateSize();
-        }
-
-        @Override
-        public void surfaceDestroyed(SurfaceHolder holder) {
-            if (DEBUG) {
-                Log.d(TAG, "surfaceDestroyed");
-            }
-            removeSurface(holder);
-        }
-
-        @Override
-        protected void updateSize() {
-            int width = getVideoWidth();
-            int height = getVideoHeight();
-            if (width > 0 && height > 0) {
-                if (mPresentation == null) {
-                    int surfaceWidth = mLayout.getWidth();
-                    int surfaceHeight = mLayout.getHeight();
-
-                    // Calculate the new size of mSurfaceView, so that video is centered
-                    // inside the framelayout with proper letterboxing/pillarboxing
-                    ViewGroup.LayoutParams lp = mSurfaceView.getLayoutParams();
-                    if (surfaceWidth * height < surfaceHeight * width) {
-                        // Black bars on top&bottom, mSurfaceView has full layout width,
-                        // while height is derived from video's aspect ratio
-                        lp.width = surfaceWidth;
-                        lp.height = surfaceWidth * height / width;
-                    } else {
-                        // Black bars on left&right, mSurfaceView has full layout height,
-                        // while width is derived from video's aspect ratio
-                        lp.width = surfaceHeight * width / height;
-                        lp.height = surfaceHeight;
-                    }
-                    Log.i(TAG, "video rect is " + lp.width + "x" + lp.height);
-                    mSurfaceView.setLayoutParams(lp);
-                } else {
-                    mPresentation.updateSize(width, height);
-                }
-            }
-        }
-
-        private void updateContents() {
-            // Show either the content in the main activity or the content in the presentation
-            if (mPresentation != null) {
-                mLayout.setVisibility(View.GONE);
-                mSurfaceView.setVisibility(View.GONE);
-            } else {
-                mLayout.setVisibility(View.VISIBLE);
-                mSurfaceView.setVisibility(View.VISIBLE);
-            }
-        }
-
-        // Listens for when presentations are dismissed.
-        private final DialogInterface.OnDismissListener mOnDismissListener =
-                new DialogInterface.OnDismissListener() {
-            @Override
-            public void onDismiss(DialogInterface dialog) {
-                if (dialog == mPresentation) {
-                    Log.i(TAG, "Presentation dismissed.");
-                    mPresentation = null;
-                    updateContents();
-                }
-            }
-        };
-
-        // Presentation
-        private final class DemoPresentation extends Presentation {
-            private SurfaceView mPresentationSurfaceView;
-
-            public DemoPresentation(Context context, Display display) {
-                super(context, display);
-            }
-
-            @Override
-            protected void onCreate(Bundle savedInstanceState) {
-                // Be sure to call the super class.
-                super.onCreate(savedInstanceState);
-
-                // Inflate the layout.
-                setContentView(R.layout.sample_media_router_presentation);
-
-                // Set up the surface view.
-                mPresentationSurfaceView = (SurfaceView)findViewById(R.id.surface_view);
-                SurfaceHolder holder = mPresentationSurfaceView.getHolder();
-                holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
-                holder.addCallback(SurfaceViewPlayer.this);
-                Log.i(TAG, "Presentation created");
-            }
-
-            public void updateSize(int width, int height) {
-                int surfaceHeight = getWindow().getDecorView().getHeight();
-                int surfaceWidth = getWindow().getDecorView().getWidth();
-                ViewGroup.LayoutParams lp = mPresentationSurfaceView.getLayoutParams();
-                if (surfaceWidth * height < surfaceHeight * width) {
-                    lp.width = surfaceWidth;
-                    lp.height = surfaceWidth * height / width;
-                } else {
-                    lp.width = surfaceHeight * width / height;
-                    lp.height = surfaceHeight;
-                }
-                Log.i(TAG, "Presentation video rect is " + lp.width + "x" + lp.height);
-                mPresentationSurfaceView.setLayoutParams(lp);
-            }
-        }
-    }
-
-    /**
-     * Handles playback of a single media item using MediaPlayer in
-     * OverlayDisplayWindow.
-     */
-    public static class OverlayPlayer extends LocalPlayer implements
-            OverlayDisplayWindow.OverlayWindowListener {
-        private static final String TAG = "OverlayPlayer";
-        private final OverlayDisplayWindow mOverlay;
-
-        public OverlayPlayer(Context context) {
-            super(context);
-
-            mOverlay = OverlayDisplayWindow.create(getContext(),
-                    getContext().getResources().getString(
-                            R.string.sample_media_route_provider_remote),
-                    1024, 768, Gravity.CENTER);
-
-            mOverlay.setOverlayWindowListener(this);
-        }
-
-        @Override
-        public void connect(RouteInfo route) {
-            super.connect(route);
-            mOverlay.show();
-        }
-
-        @Override
-        public void release() {
-            super.release();
-            mOverlay.dismiss();
-        }
-
-        @Override
-        protected void updateSize() {
-            int width = getVideoWidth();
-            int height = getVideoHeight();
-            if (width > 0 && height > 0) {
-                mOverlay.updateAspectRatio(width, height);
-            }
-        }
-
-        // OverlayDisplayWindow.OverlayWindowListener
-        @Override
-        public void onWindowCreated(Surface surface) {
-            setSurface(surface);
-        }
-
-        @Override
-        public void onWindowCreated(SurfaceHolder surfaceHolder) {
-            setSurface(surfaceHolder);
-        }
-
-        @Override
-        public void onWindowDestroyed() {
-            setSurface((SurfaceHolder)null);
-        }
-
-        @Override
-        public Bitmap getSnapshot() {
-            if (getState() == STATE_PLAYING || getState() == STATE_PAUSED) {
-                return mOverlay.getSnapshot();
-            }
-            return null;
-        }
-    }
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/media/MyMediaRouteControllerDialog.java b/samples/Support7Demos/src/com/example/android/supportv7/media/MyMediaRouteControllerDialog.java
deleted file mode 100644
index 3264671..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/media/MyMediaRouteControllerDialog.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * 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.supportv7.media;
-
-import android.graphics.Color;
-import android.os.Bundle;
-import android.support.v7.app.MediaRouteControllerDialog;
-
-import android.content.Context;
-import android.view.View;
-import android.widget.TextView;
-import com.example.android.supportv7.R;
-
-/**
- * An example MediaRouteControllerDialog for demonstrating
- * {@link android.support.v7.app.MediaRouteControllerDialog#onCreateMediaControlView}.
- */
-public class MyMediaRouteControllerDialog extends MediaRouteControllerDialog {
-    public MyMediaRouteControllerDialog(Context context) {
-        super(context);
-    }
-
-    @Override
-    public View onCreateMediaControlView(Bundle savedInstanceState) {
-        TextView view = new TextView(getContext());
-        view.setText(R.string.my_media_control_text);
-        view.setBackgroundColor(Color.GRAY);
-        return view;
-    }
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/media/OverlayDisplayWindow.java b/samples/Support7Demos/src/com/example/android/supportv7/media/OverlayDisplayWindow.java
deleted file mode 100644
index 1d4aaa1..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/media/OverlayDisplayWindow.java
+++ /dev/null
@@ -1,475 +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.supportv7.media;
-import com.example.android.supportv7.R;
-
-import android.content.Context;
-import android.graphics.Bitmap;
-import android.graphics.SurfaceTexture;
-import android.hardware.display.DisplayManager;
-import android.os.Build;
-import android.util.Log;
-import android.view.Display;
-import android.util.DisplayMetrics;
-import android.view.GestureDetector;
-import android.view.Gravity;
-import android.view.LayoutInflater;
-import android.view.MotionEvent;
-import android.view.ScaleGestureDetector;
-import android.view.SurfaceHolder;
-import android.view.SurfaceView;
-import android.view.TextureView;
-import android.view.View;
-import android.view.Surface;
-import android.view.WindowManager;
-import android.view.TextureView.SurfaceTextureListener;
-import android.widget.TextView;
-
-/**
- * Manages an overlay display window, used for simulating remote playback.
- */
-public abstract class OverlayDisplayWindow {
-    private static final String TAG = "OverlayDisplayWindow";
-    private static final boolean DEBUG = false;
-
-    private static final float WINDOW_ALPHA = 0.8f;
-    private static final float INITIAL_SCALE = 0.5f;
-    private static final float MIN_SCALE = 0.3f;
-    private static final float MAX_SCALE = 1.0f;
-
-    protected final Context mContext;
-    protected final String mName;
-    protected final int mWidth;
-    protected final int mHeight;
-    protected final int mGravity;
-    protected OverlayWindowListener mListener;
-
-    protected OverlayDisplayWindow(Context context, String name,
-            int width, int height, int gravity) {
-        mContext = context;
-        mName = name;
-        mWidth = width;
-        mHeight = height;
-        mGravity = gravity;
-    }
-
-    public static OverlayDisplayWindow create(Context context, String name,
-            int width, int height, int gravity) {
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
-            return new JellybeanMr1Impl(context, name, width, height, gravity);
-        } else {
-            return new LegacyImpl(context, name, width, height, gravity);
-        }
-    }
-
-    public void setOverlayWindowListener(OverlayWindowListener listener) {
-        mListener = listener;
-    }
-
-    public Context getContext() {
-        return mContext;
-    }
-
-    public abstract void show();
-
-    public abstract void dismiss();
-
-    public abstract void updateAspectRatio(int width, int height);
-
-    public abstract Bitmap getSnapshot();
-
-    // Watches for significant changes in the overlay display window lifecycle.
-    public interface OverlayWindowListener {
-        void onWindowCreated(Surface surface);
-        void onWindowCreated(SurfaceHolder surfaceHolder);
-        void onWindowDestroyed();
-    }
-
-    /**
-     * Implementation for older versions.
-     */
-    private static final class LegacyImpl extends OverlayDisplayWindow {
-        private final WindowManager mWindowManager;
-
-        private boolean mWindowVisible;
-        private SurfaceView mSurfaceView;
-
-        public LegacyImpl(Context context, String name,
-                int width, int height, int gravity) {
-            super(context, name, width, height, gravity);
-
-            mWindowManager = (WindowManager)context.getSystemService(
-                    Context.WINDOW_SERVICE);
-        }
-
-        @Override
-        public void show() {
-            if (!mWindowVisible) {
-                mSurfaceView = new SurfaceView(mContext);
-
-                Display display = mWindowManager.getDefaultDisplay();
-
-                WindowManager.LayoutParams params = new WindowManager.LayoutParams(
-                        WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
-                params.flags |= WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN
-                        | WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS
-                        | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
-                        | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
-                        | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE;
-                params.alpha = WINDOW_ALPHA;
-                params.gravity = Gravity.LEFT | Gravity.BOTTOM;
-                params.setTitle(mName);
-
-                int width = (int)(display.getWidth() * INITIAL_SCALE);
-                int height = (int)(display.getHeight() * INITIAL_SCALE);
-                if (mWidth > mHeight) {
-                    height = mHeight * width / mWidth;
-                } else {
-                    width = mWidth * height / mHeight;
-                }
-                params.width = width;
-                params.height = height;
-
-                mWindowManager.addView(mSurfaceView, params);
-                mWindowVisible = true;
-
-                SurfaceHolder holder = mSurfaceView.getHolder();
-                holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
-                mListener.onWindowCreated(holder);
-            }
-        }
-
-        @Override
-        public void dismiss() {
-            if (mWindowVisible) {
-                mListener.onWindowDestroyed();
-
-                mWindowManager.removeView(mSurfaceView);
-                mWindowVisible = false;
-            }
-        }
-
-        @Override
-        public void updateAspectRatio(int width, int height) {
-        }
-
-        @Override
-        public Bitmap getSnapshot() {
-            return null;
-        }
-    }
-
-    /**
-     * Implementation for API version 17+.
-     */
-    private static final class JellybeanMr1Impl extends OverlayDisplayWindow {
-        // When true, disables support for moving and resizing the overlay.
-        // The window is made non-touchable, which makes it possible to
-        // directly interact with the content underneath.
-        private static final boolean DISABLE_MOVE_AND_RESIZE = false;
-
-        private final DisplayManager mDisplayManager;
-        private final WindowManager mWindowManager;
-
-        private final Display mDefaultDisplay;
-        private final DisplayMetrics mDefaultDisplayMetrics = new DisplayMetrics();
-
-        private View mWindowContent;
-        private WindowManager.LayoutParams mWindowParams;
-        private TextureView mTextureView;
-        private TextView mNameTextView;
-
-        private GestureDetector mGestureDetector;
-        private ScaleGestureDetector mScaleGestureDetector;
-
-        private boolean mWindowVisible;
-        private int mWindowX;
-        private int mWindowY;
-        private float mWindowScale;
-
-        private float mLiveTranslationX;
-        private float mLiveTranslationY;
-        private float mLiveScale = 1.0f;
-
-        public JellybeanMr1Impl(Context context, String name,
-                int width, int height, int gravity) {
-            super(context, name, width, height, gravity);
-
-            mDisplayManager = (DisplayManager)context.getSystemService(
-                    Context.DISPLAY_SERVICE);
-            mWindowManager = (WindowManager)context.getSystemService(
-                    Context.WINDOW_SERVICE);
-
-            mDefaultDisplay = mWindowManager.getDefaultDisplay();
-            updateDefaultDisplayInfo();
-
-            createWindow();
-        }
-
-        @Override
-        public void show() {
-            if (!mWindowVisible) {
-                mDisplayManager.registerDisplayListener(mDisplayListener, null);
-                if (!updateDefaultDisplayInfo()) {
-                    mDisplayManager.unregisterDisplayListener(mDisplayListener);
-                    return;
-                }
-
-                clearLiveState();
-                updateWindowParams();
-                mWindowManager.addView(mWindowContent, mWindowParams);
-                mWindowVisible = true;
-            }
-        }
-
-        @Override
-        public void dismiss() {
-            if (mWindowVisible) {
-                mDisplayManager.unregisterDisplayListener(mDisplayListener);
-                mWindowManager.removeView(mWindowContent);
-                mWindowVisible = false;
-            }
-        }
-
-        @Override
-        public void updateAspectRatio(int width, int height) {
-            if (mWidth * height < mHeight * width) {
-                mTextureView.getLayoutParams().width = mWidth;
-                mTextureView.getLayoutParams().height = mWidth * height / width;
-            } else {
-                mTextureView.getLayoutParams().width = mHeight * width / height;
-                mTextureView.getLayoutParams().height = mHeight;
-            }
-            relayout();
-        }
-
-        @Override
-        public Bitmap getSnapshot() {
-            return mTextureView.getBitmap();
-        }
-
-        private void relayout() {
-            if (mWindowVisible) {
-                updateWindowParams();
-                mWindowManager.updateViewLayout(mWindowContent, mWindowParams);
-            }
-        }
-
-        private boolean updateDefaultDisplayInfo() {
-            mDefaultDisplay.getMetrics(mDefaultDisplayMetrics);
-            return true;
-        }
-
-        private void createWindow() {
-            LayoutInflater inflater = LayoutInflater.from(mContext);
-
-            mWindowContent = inflater.inflate(
-                    R.layout.overlay_display_window, null);
-            mWindowContent.setOnTouchListener(mOnTouchListener);
-
-            mTextureView = (TextureView)mWindowContent.findViewById(
-                    R.id.overlay_display_window_texture);
-            mTextureView.setPivotX(0);
-            mTextureView.setPivotY(0);
-            mTextureView.getLayoutParams().width = mWidth;
-            mTextureView.getLayoutParams().height = mHeight;
-            mTextureView.setOpaque(false);
-            mTextureView.setSurfaceTextureListener(mSurfaceTextureListener);
-
-            mNameTextView = (TextView)mWindowContent.findViewById(
-                    R.id.overlay_display_window_title);
-            mNameTextView.setText(mName);
-
-            mWindowParams = new WindowManager.LayoutParams(
-                    WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
-            mWindowParams.flags |= WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN
-                    | WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS
-                    | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
-                    | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
-                    | WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED;
-            if (DISABLE_MOVE_AND_RESIZE) {
-                mWindowParams.flags |= WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE;
-            }
-            mWindowParams.alpha = WINDOW_ALPHA;
-            mWindowParams.gravity = Gravity.TOP | Gravity.LEFT;
-            mWindowParams.setTitle(mName);
-
-            mGestureDetector = new GestureDetector(mContext, mOnGestureListener);
-            mScaleGestureDetector = new ScaleGestureDetector(mContext, mOnScaleGestureListener);
-
-            // Set the initial position and scale.
-            // The position and scale will be clamped when the display is first shown.
-            mWindowX = (mGravity & Gravity.LEFT) == Gravity.LEFT ?
-                    0 : mDefaultDisplayMetrics.widthPixels;
-            mWindowY = (mGravity & Gravity.TOP) == Gravity.TOP ?
-                    0 : mDefaultDisplayMetrics.heightPixels;
-            Log.d(TAG, mDefaultDisplayMetrics.toString());
-            mWindowScale = INITIAL_SCALE;
-
-            // calculate and save initial settings
-            updateWindowParams();
-            saveWindowParams();
-        }
-
-        private void updateWindowParams() {
-            float scale = mWindowScale * mLiveScale;
-            scale = Math.min(scale, (float)mDefaultDisplayMetrics.widthPixels / mWidth);
-            scale = Math.min(scale, (float)mDefaultDisplayMetrics.heightPixels / mHeight);
-            scale = Math.max(MIN_SCALE, Math.min(MAX_SCALE, scale));
-
-            float offsetScale = (scale / mWindowScale - 1.0f) * 0.5f;
-            int width = (int)(mWidth * scale);
-            int height = (int)(mHeight * scale);
-            int x = (int)(mWindowX + mLiveTranslationX - width * offsetScale);
-            int y = (int)(mWindowY + mLiveTranslationY - height * offsetScale);
-            x = Math.max(0, Math.min(x, mDefaultDisplayMetrics.widthPixels - width));
-            y = Math.max(0, Math.min(y, mDefaultDisplayMetrics.heightPixels - height));
-
-            if (DEBUG) {
-                Log.d(TAG, "updateWindowParams: scale=" + scale
-                        + ", offsetScale=" + offsetScale
-                        + ", x=" + x + ", y=" + y
-                        + ", width=" + width + ", height=" + height);
-            }
-
-            mTextureView.setScaleX(scale);
-            mTextureView.setScaleY(scale);
-
-            mTextureView.setTranslationX(
-                    (mWidth - mTextureView.getLayoutParams().width) * scale / 2);
-            mTextureView.setTranslationY(
-                    (mHeight - mTextureView.getLayoutParams().height) * scale / 2);
-
-            mWindowParams.x = x;
-            mWindowParams.y = y;
-            mWindowParams.width = width;
-            mWindowParams.height = height;
-        }
-
-        private void saveWindowParams() {
-            mWindowX = mWindowParams.x;
-            mWindowY = mWindowParams.y;
-            mWindowScale = mTextureView.getScaleX();
-            clearLiveState();
-        }
-
-        private void clearLiveState() {
-            mLiveTranslationX = 0f;
-            mLiveTranslationY = 0f;
-            mLiveScale = 1.0f;
-        }
-
-        private final DisplayManager.DisplayListener mDisplayListener =
-                new DisplayManager.DisplayListener() {
-            @Override
-            public void onDisplayAdded(int displayId) {
-            }
-
-            @Override
-            public void onDisplayChanged(int displayId) {
-                if (displayId == mDefaultDisplay.getDisplayId()) {
-                    if (updateDefaultDisplayInfo()) {
-                        relayout();
-                    } else {
-                        dismiss();
-                    }
-                }
-            }
-
-            @Override
-            public void onDisplayRemoved(int displayId) {
-                if (displayId == mDefaultDisplay.getDisplayId()) {
-                    dismiss();
-                }
-            }
-        };
-
-        private final SurfaceTextureListener mSurfaceTextureListener =
-                new SurfaceTextureListener() {
-            @Override
-            public void onSurfaceTextureAvailable(SurfaceTexture surfaceTexture,
-                    int width, int height) {
-                if (mListener != null) {
-                    mListener.onWindowCreated(new Surface(surfaceTexture));
-                }
-            }
-
-            @Override
-            public boolean onSurfaceTextureDestroyed(SurfaceTexture surfaceTexture) {
-                if (mListener != null) {
-                    mListener.onWindowDestroyed();
-                }
-                return true;
-            }
-
-            @Override
-            public void onSurfaceTextureSizeChanged(SurfaceTexture surfaceTexture,
-                    int width, int height) {
-            }
-
-            @Override
-            public void onSurfaceTextureUpdated(SurfaceTexture surfaceTexture) {
-            }
-        };
-
-        private final View.OnTouchListener mOnTouchListener = new View.OnTouchListener() {
-            @Override
-            public boolean onTouch(View view, MotionEvent event) {
-                // Work in screen coordinates.
-                final float oldX = event.getX();
-                final float oldY = event.getY();
-                event.setLocation(event.getRawX(), event.getRawY());
-
-                mGestureDetector.onTouchEvent(event);
-                mScaleGestureDetector.onTouchEvent(event);
-
-                switch (event.getActionMasked()) {
-                    case MotionEvent.ACTION_UP:
-                    case MotionEvent.ACTION_CANCEL:
-                        saveWindowParams();
-                        break;
-                }
-
-                // Revert to window coordinates.
-                event.setLocation(oldX, oldY);
-                return true;
-            }
-        };
-
-        private final GestureDetector.OnGestureListener mOnGestureListener =
-                new GestureDetector.SimpleOnGestureListener() {
-            @Override
-            public boolean onScroll(MotionEvent e1, MotionEvent e2,
-                    float distanceX, float distanceY) {
-                mLiveTranslationX -= distanceX;
-                mLiveTranslationY -= distanceY;
-                relayout();
-                return true;
-            }
-        };
-
-        private final ScaleGestureDetector.OnScaleGestureListener mOnScaleGestureListener =
-                new ScaleGestureDetector.SimpleOnScaleGestureListener() {
-            @Override
-            public boolean onScale(ScaleGestureDetector detector) {
-                mLiveScale *= detector.getScaleFactor();
-                relayout();
-                return true;
-            }
-        };
-    }
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/media/Player.java b/samples/Support7Demos/src/com/example/android/supportv7/media/Player.java
deleted file mode 100644
index a5d5897..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/media/Player.java
+++ /dev/null
@@ -1,158 +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.supportv7.media;
-
-import android.content.Context;
-import android.graphics.Bitmap;
-import android.support.v4.media.MediaMetadataCompat;
-import android.support.v4.media.session.MediaSessionCompat;
-import android.support.v4.media.session.PlaybackStateCompat;
-import android.support.v7.media.MediaControlIntent;
-import android.support.v7.media.MediaRouter.RouteInfo;
-import android.util.Log;
-
-/**
- * Abstraction of common playback operations of media items, such as play,
- * seek, etc. Used by PlaybackManager as a backend to handle actual playback
- * of media items.
- *
- * TODO: Introduce prepare() method and refactor subclasses accordingly.
- */
-public abstract class Player {
-    private static final String TAG = "SampleMediaRoutePlayer";
-    protected static final int STATE_IDLE = 0;
-    protected static final int STATE_PREPARING_FOR_PLAY = 1;
-    protected static final int STATE_PREPARING_FOR_PAUSE = 2;
-    protected static final int STATE_READY = 3;
-    protected static final int STATE_PLAYING = 4;
-    protected static final int STATE_PAUSED = 5;
-
-    private static final long PLAYBACK_ACTIONS = PlaybackStateCompat.ACTION_PAUSE
-            | PlaybackStateCompat.ACTION_PLAY;
-    private static final PlaybackStateCompat INIT_PLAYBACK_STATE = new PlaybackStateCompat.Builder()
-            .setState(PlaybackStateCompat.STATE_NONE, 0, .0f).build();
-
-    protected Callback mCallback;
-    protected MediaSessionCompat mMediaSession;
-
-    public abstract boolean isRemotePlayback();
-    public abstract boolean isQueuingSupported();
-
-    public abstract void connect(RouteInfo route);
-    public abstract void release();
-
-    // basic operations that are always supported
-    public abstract void play(final PlaylistItem item);
-    public abstract void seek(final PlaylistItem item);
-    public abstract void getStatus(final PlaylistItem item, final boolean update);
-    public abstract void pause();
-    public abstract void resume();
-    public abstract void stop();
-
-    // advanced queuing (enqueue & remove) are only supported
-    // if isQueuingSupported() returns true
-    public abstract void enqueue(final PlaylistItem item);
-    public abstract PlaylistItem remove(String iid);
-
-    // track info for current media item
-    public void updateTrackInfo() {}
-    public String getDescription() { return ""; }
-    public Bitmap getSnapshot() { return null; }
-
-    // presentation display
-    public void updatePresentation() {}
-
-    public void setCallback(Callback callback) {
-        mCallback = callback;
-    }
-
-    public static Player create(Context context, RouteInfo route, MediaSessionCompat session) {
-        Player player;
-        if (route != null && route.supportsControlCategory(
-                MediaControlIntent.CATEGORY_REMOTE_PLAYBACK)) {
-            player = new RemotePlayer(context);
-        } else if (route != null) {
-            player = new LocalPlayer.SurfaceViewPlayer(context);
-        } else {
-            player = new LocalPlayer.OverlayPlayer(context);
-        }
-        player.setMediaSession(session);
-        player.initMediaSession();
-        player.connect(route);
-        return player;
-    }
-
-    protected void initMediaSession() {
-        if (mMediaSession == null) {
-            return;
-        }
-        mMediaSession.setMetadata(null);
-        mMediaSession.setPlaybackState(INIT_PLAYBACK_STATE);
-    }
-
-    protected void updateMetadata() {
-        if (mMediaSession == null) {
-            return;
-        }
-        MediaMetadataCompat.Builder bob = new MediaMetadataCompat.Builder();
-        bob.putString(MediaMetadataCompat.METADATA_KEY_DISPLAY_TITLE, getDescription());
-        bob.putString(MediaMetadataCompat.METADATA_KEY_DISPLAY_SUBTITLE, "Subtitle of the thing");
-        bob.putString(MediaMetadataCompat.METADATA_KEY_DISPLAY_DESCRIPTION,
-                "Description of the thing");
-        bob.putBitmap(MediaMetadataCompat.METADATA_KEY_DISPLAY_ICON, getSnapshot());
-        mMediaSession.setMetadata(bob.build());
-    }
-
-    protected void publishState(int state) {
-        if (mMediaSession == null) {
-            return;
-        }
-        PlaybackStateCompat.Builder bob = new PlaybackStateCompat.Builder();
-        bob.setActions(PLAYBACK_ACTIONS);
-        switch (state) {
-            case STATE_PLAYING:
-                bob.setState(PlaybackStateCompat.STATE_PLAYING, -1, 1);
-                break;
-            case STATE_READY:
-            case STATE_PAUSED:
-                bob.setState(PlaybackStateCompat.STATE_PAUSED, -1, 0);
-                break;
-            case STATE_IDLE:
-                bob.setState(PlaybackStateCompat.STATE_STOPPED, -1, 0);
-                break;
-        }
-        PlaybackStateCompat pbState = bob.build();
-        Log.d(TAG, "Setting state to " + pbState);
-        mMediaSession.setPlaybackState(pbState);
-        if (state != STATE_IDLE) {
-            mMediaSession.setActive(true);
-        } else {
-            mMediaSession.setActive(false);
-        }
-    }
-
-    private void setMediaSession(MediaSessionCompat session) {
-        mMediaSession = session;
-    }
-
-    public interface Callback {
-        void onError();
-        void onCompletion();
-        void onPlaylistChanged();
-        void onPlaylistReady();
-    }
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/media/PlaylistItem.java b/samples/Support7Demos/src/com/example/android/supportv7/media/PlaylistItem.java
deleted file mode 100644
index 9a12d59..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/media/PlaylistItem.java
+++ /dev/null
@@ -1,130 +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.supportv7.media;
-
-import android.app.PendingIntent;
-import android.net.Uri;
-import android.os.SystemClock;
-import android.support.v7.media.MediaItemStatus;
-
-/**
- * PlaylistItem helps keep track of the current status of an media item.
- */
-final class PlaylistItem {
-    // immutables
-    private final String mSessionId;
-    private final String mItemId;
-    private final Uri mUri;
-    private final String mMime;
-    private final PendingIntent mUpdateReceiver;
-    // changeable states
-    private int mPlaybackState = MediaItemStatus.PLAYBACK_STATE_PENDING;
-    private long mContentPosition;
-    private long mContentDuration;
-    private long mTimestamp;
-    private String mRemoteItemId;
-
-    public PlaylistItem(String qid, String iid, Uri uri, String mime, PendingIntent pi) {
-        mSessionId = qid;
-        mItemId = iid;
-        mUri = uri;
-        mMime = mime;
-        mUpdateReceiver = pi;
-        setTimestamp(SystemClock.elapsedRealtime());
-    }
-
-    public void setRemoteItemId(String riid) {
-        mRemoteItemId = riid;
-    }
-
-    public void setState(int state) {
-        mPlaybackState = state;
-    }
-
-    public void setPosition(long pos) {
-        mContentPosition = pos;
-    }
-
-    public void setTimestamp(long ts) {
-        mTimestamp = ts;
-    }
-
-    public void setDuration(long duration) {
-        mContentDuration = duration;
-    }
-
-    public String getSessionId() {
-        return mSessionId;
-    }
-
-    public String getItemId() {
-        return mItemId;
-    }
-
-    public String getRemoteItemId() {
-        return mRemoteItemId;
-    }
-
-    public Uri getUri() {
-        return mUri;
-    }
-
-    public PendingIntent getUpdateReceiver() {
-        return mUpdateReceiver;
-    }
-
-    public int getState() {
-        return mPlaybackState;
-    }
-
-    public long getPosition() {
-        return mContentPosition;
-    }
-
-    public long getDuration() {
-        return mContentDuration;
-    }
-
-    public long getTimestamp() {
-        return mTimestamp;
-    }
-
-    public MediaItemStatus getStatus() {
-        return new MediaItemStatus.Builder(mPlaybackState)
-            .setContentPosition(mContentPosition)
-            .setContentDuration(mContentDuration)
-            .setTimestamp(mTimestamp)
-            .build();
-    }
-
-    @Override
-    public String toString() {
-        String state[] = {
-            "PENDING",
-            "PLAYING",
-            "PAUSED",
-            "BUFFERING",
-            "FINISHED",
-            "CANCELED",
-            "INVALIDATED",
-            "ERROR"
-        };
-        return "[" + mSessionId + "|" + mItemId + "|"
-            + (mRemoteItemId != null ? mRemoteItemId : "-") + "|"
-            + state[mPlaybackState] + "] " + mUri.toString();
-    }
-}
\ No newline at end of file
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/media/RemotePlayer.java b/samples/Support7Demos/src/com/example/android/supportv7/media/RemotePlayer.java
deleted file mode 100644
index 6ad4f75..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/media/RemotePlayer.java
+++ /dev/null
@@ -1,493 +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.supportv7.media;
-
-import android.content.Context;
-import android.content.Intent;
-import android.graphics.Bitmap;
-import android.os.Bundle;
-import android.support.v7.media.MediaItemStatus;
-import android.support.v7.media.MediaRouter.ControlRequestCallback;
-import android.support.v7.media.MediaRouter.RouteInfo;
-import android.support.v7.media.MediaSessionStatus;
-import android.support.v7.media.RemotePlaybackClient;
-import android.support.v7.media.RemotePlaybackClient.ItemActionCallback;
-import android.support.v7.media.RemotePlaybackClient.SessionActionCallback;
-import android.support.v7.media.RemotePlaybackClient.StatusCallback;
-import android.util.Log;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Handles playback of media items using a remote route.
- *
- * This class is used as a backend by PlaybackManager to feed media items to
- * the remote route. When the remote route doesn't support queuing, media items
- * are fed one-at-a-time; otherwise media items are enqueued to the remote side.
- */
-public class RemotePlayer extends Player {
-    private static final String TAG = "RemotePlayer";
-    private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
-    private Context mContext;
-    private RouteInfo mRoute;
-    private boolean mEnqueuePending;
-    private String mTrackInfo = "";
-    private Bitmap mSnapshot;
-    private List<PlaylistItem> mTempQueue = new ArrayList<PlaylistItem>();
-
-    private RemotePlaybackClient mClient;
-    private StatusCallback mStatusCallback = new StatusCallback() {
-        @Override
-        public void onItemStatusChanged(Bundle data,
-                String sessionId, MediaSessionStatus sessionStatus,
-                String itemId, MediaItemStatus itemStatus) {
-            logStatus("onItemStatusChanged", sessionId, sessionStatus, itemId, itemStatus);
-            if (mCallback != null) {
-                if (itemStatus.getPlaybackState() ==
-                        MediaItemStatus.PLAYBACK_STATE_FINISHED) {
-                    mCallback.onCompletion();
-                } else if (itemStatus.getPlaybackState() ==
-                        MediaItemStatus.PLAYBACK_STATE_ERROR) {
-                    mCallback.onError();
-                }
-            }
-        }
-
-        @Override
-        public void onSessionStatusChanged(Bundle data,
-                String sessionId, MediaSessionStatus sessionStatus) {
-            logStatus("onSessionStatusChanged", sessionId, sessionStatus, null, null);
-            if (mCallback != null) {
-                mCallback.onPlaylistChanged();
-            }
-        }
-
-        @Override
-        public void onSessionChanged(String sessionId) {
-            if (DEBUG) {
-                Log.d(TAG, "onSessionChanged: sessionId=" + sessionId);
-            }
-        }
-    };
-
-    public RemotePlayer(Context context) {
-        mContext = context;
-    }
-
-    @Override
-    public boolean isRemotePlayback() {
-        return true;
-    }
-
-    @Override
-    public boolean isQueuingSupported() {
-        return mClient.isQueuingSupported();
-    }
-
-    @Override
-    public void connect(RouteInfo route) {
-        mRoute = route;
-        mClient = new RemotePlaybackClient(mContext, route);
-        mClient.setStatusCallback(mStatusCallback);
-
-        if (DEBUG) {
-            Log.d(TAG, "connected to: " + route
-                    + ", isRemotePlaybackSupported: " + mClient.isRemotePlaybackSupported()
-                    + ", isQueuingSupported: "+ mClient.isQueuingSupported());
-        }
-    }
-
-    @Override
-    public void release() {
-        mClient.release();
-
-        if (DEBUG) {
-            Log.d(TAG, "released.");
-        }
-    }
-
-    // basic playback operations that are always supported
-    @Override
-    public void play(final PlaylistItem item) {
-        if (DEBUG) {
-            Log.d(TAG, "play: item=" + item);
-        }
-        mClient.play(item.getUri(), "video/mp4", null, 0, null, new ItemActionCallback() {
-            @Override
-            public void onResult(Bundle data, String sessionId, MediaSessionStatus sessionStatus,
-                    String itemId, MediaItemStatus itemStatus) {
-                logStatus("play: succeeded", sessionId, sessionStatus, itemId, itemStatus);
-                item.setRemoteItemId(itemId);
-                if (item.getPosition() > 0) {
-                    seekInternal(item);
-                }
-                if (item.getState() == MediaItemStatus.PLAYBACK_STATE_PAUSED) {
-                    pause();
-                } else {
-                    publishState(STATE_PLAYING);
-                }
-                if (mCallback != null) {
-                    mCallback.onPlaylistChanged();
-                }
-            }
-
-            @Override
-            public void onError(String error, int code, Bundle data) {
-                logError("play: failed", error, code);
-            }
-        });
-    }
-
-    @Override
-    public void seek(final PlaylistItem item) {
-        seekInternal(item);
-    }
-
-    @Override
-    public void getStatus(final PlaylistItem item, final boolean update) {
-        if (!mClient.hasSession() || item.getRemoteItemId() == null) {
-            // if session is not valid or item id not assigend yet.
-            // just return, it's not fatal
-            return;
-        }
-
-        if (DEBUG) {
-            Log.d(TAG, "getStatus: item=" + item + ", update=" + update);
-        }
-        mClient.getStatus(item.getRemoteItemId(), null, new ItemActionCallback() {
-            @Override
-            public void onResult(Bundle data, String sessionId, MediaSessionStatus sessionStatus,
-                    String itemId, MediaItemStatus itemStatus) {
-                logStatus("getStatus: succeeded", sessionId, sessionStatus, itemId, itemStatus);
-                int state = itemStatus.getPlaybackState();
-                if (state == MediaItemStatus.PLAYBACK_STATE_PLAYING
-                        || state == MediaItemStatus.PLAYBACK_STATE_PAUSED
-                        || state == MediaItemStatus.PLAYBACK_STATE_PENDING) {
-                    item.setState(state);
-                    item.setPosition(itemStatus.getContentPosition());
-                    item.setDuration(itemStatus.getContentDuration());
-                    item.setTimestamp(itemStatus.getTimestamp());
-                }
-                if (update && mCallback != null) {
-                    mCallback.onPlaylistReady();
-                }
-            }
-
-            @Override
-            public void onError(String error, int code, Bundle data) {
-                logError("getStatus: failed", error, code);
-                if (update && mCallback != null) {
-                    mCallback.onPlaylistReady();
-                }
-            }
-        });
-    }
-
-    @Override
-    public void pause() {
-        if (!mClient.hasSession()) {
-            // ignore if no session
-            return;
-        }
-        if (DEBUG) {
-            Log.d(TAG, "pause");
-        }
-        mClient.pause(null, new SessionActionCallback() {
-            @Override
-            public void onResult(Bundle data, String sessionId, MediaSessionStatus sessionStatus) {
-                logStatus("pause: succeeded", sessionId, sessionStatus, null, null);
-                if (mCallback != null) {
-                    mCallback.onPlaylistChanged();
-                }
-                publishState(STATE_PAUSED);
-            }
-
-            @Override
-            public void onError(String error, int code, Bundle data) {
-                logError("pause: failed", error, code);
-            }
-        });
-    }
-
-    @Override
-    public void resume() {
-        if (!mClient.hasSession()) {
-            // ignore if no session
-            return;
-        }
-        if (DEBUG) {
-            Log.d(TAG, "resume");
-        }
-        mClient.resume(null, new SessionActionCallback() {
-            @Override
-            public void onResult(Bundle data, String sessionId, MediaSessionStatus sessionStatus) {
-                logStatus("resume: succeeded", sessionId, sessionStatus, null, null);
-                if (mCallback != null) {
-                    mCallback.onPlaylistChanged();
-                }
-                publishState(STATE_PLAYING);
-            }
-
-            @Override
-            public void onError(String error, int code, Bundle data) {
-                logError("resume: failed", error, code);
-            }
-        });
-    }
-
-    @Override
-    public void stop() {
-        if (!mClient.hasSession()) {
-            // ignore if no session
-            return;
-        }
-        publishState(STATE_IDLE);
-        if (DEBUG) {
-            Log.d(TAG, "stop");
-        }
-        mClient.stop(null, new SessionActionCallback() {
-            @Override
-            public void onResult(Bundle data, String sessionId, MediaSessionStatus sessionStatus) {
-                logStatus("stop: succeeded", sessionId, sessionStatus, null, null);
-                if (mClient.isSessionManagementSupported()) {
-                    endSession();
-                }
-                if (mCallback != null) {
-                    mCallback.onPlaylistChanged();
-                }
-            }
-
-            @Override
-            public void onError(String error, int code, Bundle data) {
-                logError("stop: failed", error, code);
-            }
-        });
-    }
-
-    // enqueue & remove are only supported if isQueuingSupported() returns true
-    @Override
-    public void enqueue(final PlaylistItem item) {
-        throwIfQueuingUnsupported();
-
-        if (!mClient.hasSession() && !mEnqueuePending) {
-            mEnqueuePending = true;
-            if (mClient.isSessionManagementSupported()) {
-                startSession(item);
-            } else {
-                enqueueInternal(item);
-            }
-        } else if (mEnqueuePending){
-            mTempQueue.add(item);
-        } else {
-            enqueueInternal(item);
-        }
-    }
-
-    @Override
-    public PlaylistItem remove(String itemId) {
-        throwIfNoSession();
-        throwIfQueuingUnsupported();
-
-        if (DEBUG) {
-            Log.d(TAG, "remove: itemId=" + itemId);
-        }
-        mClient.remove(itemId, null, new ItemActionCallback() {
-            @Override
-            public void onResult(Bundle data, String sessionId, MediaSessionStatus sessionStatus,
-                    String itemId, MediaItemStatus itemStatus) {
-                logStatus("remove: succeeded", sessionId, sessionStatus, itemId, itemStatus);
-            }
-
-            @Override
-            public void onError(String error, int code, Bundle data) {
-                logError("remove: failed", error, code);
-            }
-        });
-
-        return null;
-    }
-
-    @Override
-    public void updateTrackInfo() {
-        // clear stats info first
-        mTrackInfo = "";
-        mSnapshot = null;
-
-        Intent intent = new Intent(SampleMediaRouteProvider.ACTION_GET_TRACK_INFO);
-        intent.addCategory(SampleMediaRouteProvider.CATEGORY_SAMPLE_ROUTE);
-
-        if (mRoute != null && mRoute.supportsControlRequest(intent)) {
-            ControlRequestCallback callback = new ControlRequestCallback() {
-                @Override
-                public void onResult(Bundle data) {
-                    if (DEBUG) {
-                        Log.d(TAG, "getStatistics: succeeded: data=" + data);
-                    }
-                    if (data != null) {
-                        mTrackInfo = data.getString(SampleMediaRouteProvider.TRACK_INFO_DESC);
-                        mSnapshot = data.getParcelable(
-                                SampleMediaRouteProvider.TRACK_INFO_SNAPSHOT);
-                    }
-                }
-
-                @Override
-                public void onError(String error, Bundle data) {
-                    Log.d(TAG, "getStatistics: failed: error=" + error + ", data=" + data);
-                }
-            };
-
-            mRoute.sendControlRequest(intent, callback);
-        }
-    }
-
-    @Override
-    public String getDescription() {
-        return mTrackInfo;
-    }
-
-    @Override
-    public Bitmap getSnapshot() {
-        return mSnapshot;
-    }
-
-    private void enqueueInternal(final PlaylistItem item) {
-        throwIfQueuingUnsupported();
-
-        if (DEBUG) {
-            Log.d(TAG, "enqueue: item=" + item);
-        }
-        mClient.enqueue(item.getUri(), "video/mp4", null, 0, null, new ItemActionCallback() {
-            @Override
-            public void onResult(Bundle data, String sessionId, MediaSessionStatus sessionStatus,
-                    String itemId, MediaItemStatus itemStatus) {
-                logStatus("enqueue: succeeded", sessionId, sessionStatus, itemId, itemStatus);
-                item.setRemoteItemId(itemId);
-                if (item.getPosition() > 0) {
-                    seekInternal(item);
-                }
-                if (item.getState() == MediaItemStatus.PLAYBACK_STATE_PAUSED) {
-                    pause();
-                } else if (item.getState() == MediaItemStatus.PLAYBACK_STATE_PLAYING) {
-                    publishState(STATE_PLAYING);
-                }
-                if (mEnqueuePending) {
-                    mEnqueuePending = false;
-                    for (PlaylistItem item : mTempQueue) {
-                        enqueueInternal(item);
-                    }
-                    mTempQueue.clear();
-                }
-                if (mCallback != null) {
-                    mCallback.onPlaylistChanged();
-                }
-            }
-
-            @Override
-            public void onError(String error, int code, Bundle data) {
-                logError("enqueue: failed", error, code);
-                if (mCallback != null) {
-                    mCallback.onPlaylistChanged();
-                }
-            }
-        });
-    }
-
-    private void seekInternal(final PlaylistItem item) {
-        throwIfNoSession();
-
-        if (DEBUG) {
-            Log.d(TAG, "seek: item=" + item);
-        }
-        mClient.seek(item.getRemoteItemId(), item.getPosition(), null, new ItemActionCallback() {
-           @Override
-           public void onResult(Bundle data, String sessionId, MediaSessionStatus sessionStatus,
-                   String itemId, MediaItemStatus itemStatus) {
-               logStatus("seek: succeeded", sessionId, sessionStatus, itemId, itemStatus);
-               if (mCallback != null) {
-                   mCallback.onPlaylistChanged();
-               }
-           }
-
-           @Override
-           public void onError(String error, int code, Bundle data) {
-               logError("seek: failed", error, code);
-           }
-        });
-    }
-
-    private void startSession(final PlaylistItem item) {
-        mClient.startSession(null, new SessionActionCallback() {
-            @Override
-            public void onResult(Bundle data, String sessionId, MediaSessionStatus sessionStatus) {
-                logStatus("startSession: succeeded", sessionId, sessionStatus, null, null);
-                enqueueInternal(item);
-            }
-
-            @Override
-            public void onError(String error, int code, Bundle data) {
-                logError("startSession: failed", error, code);
-            }
-        });
-    }
-
-    private void endSession() {
-        mClient.endSession(null, new SessionActionCallback() {
-            @Override
-            public void onResult(Bundle data, String sessionId, MediaSessionStatus sessionStatus) {
-                logStatus("endSession: succeeded", sessionId, sessionStatus, null, null);
-            }
-
-            @Override
-            public void onError(String error, int code, Bundle data) {
-                logError("endSession: failed", error, code);
-            }
-        });
-    }
-
-    private void logStatus(String message,
-            String sessionId, MediaSessionStatus sessionStatus,
-            String itemId, MediaItemStatus itemStatus) {
-        if (DEBUG) {
-            String result = "";
-            if (sessionId != null && sessionStatus != null) {
-                result += "sessionId=" + sessionId + ", sessionStatus=" + sessionStatus;
-            }
-            if (itemId != null & itemStatus != null) {
-                result += (result.isEmpty() ? "" : ", ")
-                        + "itemId=" + itemId + ", itemStatus=" + itemStatus;
-            }
-            Log.d(TAG, message + ": " + result);
-        }
-    }
-
-    private void logError(String message, String error, int code) {
-        Log.d(TAG, message + ": error=" + error + ", code=" + code);
-    }
-
-    private void throwIfNoSession() {
-        if (!mClient.hasSession()) {
-            throw new IllegalStateException("Session is invalid");
-        }
-    }
-
-    private void throwIfQueuingUnsupported() {
-        if (!isQueuingSupported()) {
-            throw new UnsupportedOperationException("Queuing is unsupported");
-        }
-    }
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/media/SampleMediaButtonReceiver.java b/samples/Support7Demos/src/com/example/android/supportv7/media/SampleMediaButtonReceiver.java
deleted file mode 100644
index d356446..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/media/SampleMediaButtonReceiver.java
+++ /dev/null
@@ -1,46 +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.supportv7.media;
-
-import android.content.Context;
-import android.content.Intent;
-import android.content.BroadcastReceiver;
-import android.view.KeyEvent;
-
-/**
- * Broadcast receiver for handling ACTION_MEDIA_BUTTON.
- *
- * This is needed to create the RemoteControlClient for controlling
- * remote route volume in lock screen. It routes media key events back
- * to main app activity SampleMediaRouterActivity.
- */
-public class SampleMediaButtonReceiver extends BroadcastReceiver {
-    private static final String TAG = "SampleMediaButtonReceiver";
-    private static SampleMediaRouterActivity mActivity;
-
-    public static void setActivity(SampleMediaRouterActivity activity) {
-        mActivity = activity;
-    }
-
-    @Override
-    public void onReceive(Context context, Intent intent) {
-        if (mActivity != null && Intent.ACTION_MEDIA_BUTTON.equals(intent.getAction())) {
-            mActivity.handleMediaKey(
-                    (KeyEvent)intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT));
-        }
-    }
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/media/SampleMediaRouteProvider.java b/samples/Support7Demos/src/com/example/android/supportv7/media/SampleMediaRouteProvider.java
deleted file mode 100644
index 4208f58..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/media/SampleMediaRouteProvider.java
+++ /dev/null
@@ -1,617 +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.supportv7.media;
-
-import android.app.PendingIntent;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.content.IntentFilter.MalformedMimeTypeException;
-import android.content.IntentSender;
-import android.content.res.Resources;
-import android.media.AudioManager;
-import android.media.MediaRouter;
-import android.net.Uri;
-import android.os.Bundle;
-import android.support.v7.media.MediaControlIntent;
-import android.support.v7.media.MediaRouteDescriptor;
-import android.support.v7.media.MediaRouteProvider;
-import android.support.v7.media.MediaRouteProviderDescriptor;
-import android.support.v7.media.MediaRouter.ControlRequestCallback;
-import android.support.v7.media.MediaSessionStatus;
-import android.util.Log;
-
-import com.example.android.supportv7.R;
-
-import java.util.ArrayList;
-
-/**
- * Demonstrates how to create a custom media route provider.
- *
- * @see SampleMediaRouteProviderService
- */
-final class SampleMediaRouteProvider extends MediaRouteProvider {
-    private static final String TAG = "SampleMediaRouteProvider";
-
-    private static final String FIXED_VOLUME_ROUTE_ID = "fixed";
-    private static final String VARIABLE_VOLUME_BASIC_ROUTE_ID = "variable_basic";
-    private static final String VARIABLE_VOLUME_QUEUING_ROUTE_ID = "variable_queuing";
-    private static final String VARIABLE_VOLUME_SESSION_ROUTE_ID = "variable_session";
-
-    private static final int VOLUME_MAX = 10;
-
-    /**
-     * A custom media control intent category for special requests that are
-     * supported by this provider's routes.
-     */
-    public static final String CATEGORY_SAMPLE_ROUTE =
-            "com.example.android.supportv7.media.CATEGORY_SAMPLE_ROUTE";
-
-    /**
-     * A custom media control intent action for special requests that are
-     * supported by this provider's routes.
-     * </p>
-     *
-     * @see #TRACK_INFO_DESC
-     * @see #TRACK_INFO_SNAPSHOT
-     */
-    public static final String ACTION_GET_TRACK_INFO =
-            "com.example.android.supportv7.media.ACTION_GET_TRACK_INFO";
-
-    /**
-     * {@link #ACTION_GET_TRACK_INFO} result data: a string of information about
-     * the currently playing media item
-     */
-    public static final String TRACK_INFO_DESC =
-            "com.example.android.supportv7.media.EXTRA_TRACK_INFO_DESC";
-
-    /**
-     * {@link #ACTION_GET_TRACK_INFO} result data: a bitmap containing a snapshot
-     * of the currently playing media item
-     */
-    public static final String TRACK_INFO_SNAPSHOT =
-            "com.example.android.supportv7.media.EXTRA_TRACK_INFO_SNAPSHOT";
-
-    private static final ArrayList<IntentFilter> CONTROL_FILTERS_BASIC;
-    private static final ArrayList<IntentFilter> CONTROL_FILTERS_QUEUING;
-    private static final ArrayList<IntentFilter> CONTROL_FILTERS_SESSION;
-
-    static {
-        IntentFilter f1 = new IntentFilter();
-        f1.addCategory(CATEGORY_SAMPLE_ROUTE);
-        f1.addAction(ACTION_GET_TRACK_INFO);
-
-        IntentFilter f2 = new IntentFilter();
-        f2.addCategory(MediaControlIntent.CATEGORY_REMOTE_PLAYBACK);
-        f2.addAction(MediaControlIntent.ACTION_PLAY);
-        f2.addDataScheme("http");
-        f2.addDataScheme("https");
-        f2.addDataScheme("rtsp");
-        f2.addDataScheme("file");
-        addDataTypeUnchecked(f2, "video/*");
-
-        IntentFilter f3 = new IntentFilter();
-        f3.addCategory(MediaControlIntent.CATEGORY_REMOTE_PLAYBACK);
-        f3.addAction(MediaControlIntent.ACTION_SEEK);
-        f3.addAction(MediaControlIntent.ACTION_GET_STATUS);
-        f3.addAction(MediaControlIntent.ACTION_PAUSE);
-        f3.addAction(MediaControlIntent.ACTION_RESUME);
-        f3.addAction(MediaControlIntent.ACTION_STOP);
-
-        IntentFilter f4 = new IntentFilter();
-        f4.addCategory(MediaControlIntent.CATEGORY_REMOTE_PLAYBACK);
-        f4.addAction(MediaControlIntent.ACTION_ENQUEUE);
-        f4.addDataScheme("http");
-        f4.addDataScheme("https");
-        f4.addDataScheme("rtsp");
-        f4.addDataScheme("file");
-        addDataTypeUnchecked(f4, "video/*");
-
-        IntentFilter f5 = new IntentFilter();
-        f5.addCategory(MediaControlIntent.CATEGORY_REMOTE_PLAYBACK);
-        f5.addAction(MediaControlIntent.ACTION_REMOVE);
-
-        IntentFilter f6 = new IntentFilter();
-        f6.addCategory(MediaControlIntent.CATEGORY_REMOTE_PLAYBACK);
-        f6.addAction(MediaControlIntent.ACTION_START_SESSION);
-        f6.addAction(MediaControlIntent.ACTION_GET_SESSION_STATUS);
-        f6.addAction(MediaControlIntent.ACTION_END_SESSION);
-
-        CONTROL_FILTERS_BASIC = new ArrayList<>();
-        CONTROL_FILTERS_BASIC.add(f1);
-        CONTROL_FILTERS_BASIC.add(f2);
-        CONTROL_FILTERS_BASIC.add(f3);
-
-        CONTROL_FILTERS_QUEUING = new ArrayList<>(CONTROL_FILTERS_BASIC);
-        CONTROL_FILTERS_QUEUING.add(f4);
-        CONTROL_FILTERS_QUEUING.add(f5);
-
-        CONTROL_FILTERS_SESSION = new ArrayList<>(CONTROL_FILTERS_QUEUING);
-        CONTROL_FILTERS_SESSION.add(f6);
-    }
-
-    private static void addDataTypeUnchecked(IntentFilter filter, String type) {
-        try {
-            filter.addDataType(type);
-        } catch (MalformedMimeTypeException ex) {
-            throw new RuntimeException(ex);
-        }
-    }
-
-    private int mVolume = 5;
-
-    public SampleMediaRouteProvider(Context context) {
-        super(context);
-
-        publishRoutes();
-    }
-
-    @Override
-    public RouteController onCreateRouteController(String routeId) {
-        return new SampleRouteController(routeId);
-    }
-
-    private void publishRoutes() {
-        Resources r = getContext().getResources();
-        Intent settingsIntent = new Intent(Intent.ACTION_MAIN);
-        settingsIntent.setClass(getContext(), SampleMediaRouteSettingsActivity.class);
-        IntentSender is = PendingIntent.getActivity(getContext(), 99, settingsIntent,
-                Intent.FLAG_ACTIVITY_NEW_TASK).getIntentSender();
-
-        MediaRouteDescriptor routeDescriptor1 = new MediaRouteDescriptor.Builder(
-                FIXED_VOLUME_ROUTE_ID,
-                r.getString(R.string.fixed_volume_route_name))
-                .setDescription(r.getString(R.string.sample_route_description))
-                .addControlFilters(CONTROL_FILTERS_BASIC)
-                .setPlaybackStream(AudioManager.STREAM_MUSIC)
-                .setPlaybackType(MediaRouter.RouteInfo.PLAYBACK_TYPE_REMOTE)
-                .setVolumeHandling(MediaRouter.RouteInfo.PLAYBACK_VOLUME_FIXED)
-                .setVolume(VOLUME_MAX)
-                .setCanDisconnect(true)
-                .setSettingsActivity(is)
-                .build();
-
-        MediaRouteDescriptor routeDescriptor2 = new MediaRouteDescriptor.Builder(
-                VARIABLE_VOLUME_BASIC_ROUTE_ID,
-                r.getString(R.string.variable_volume_basic_route_name))
-                .setDescription(r.getString(R.string.sample_route_description))
-                .addControlFilters(CONTROL_FILTERS_BASIC)
-                .setPlaybackStream(AudioManager.STREAM_MUSIC)
-                .setPlaybackType(MediaRouter.RouteInfo.PLAYBACK_TYPE_REMOTE)
-                .setVolumeHandling(MediaRouter.RouteInfo.PLAYBACK_VOLUME_VARIABLE)
-                .setVolumeMax(VOLUME_MAX)
-                .setVolume(mVolume)
-                .setSettingsActivity(is)
-                .build();
-
-        MediaRouteDescriptor routeDescriptor3 = new MediaRouteDescriptor.Builder(
-                VARIABLE_VOLUME_QUEUING_ROUTE_ID,
-                r.getString(R.string.variable_volume_queuing_route_name))
-                .setDescription(r.getString(R.string.sample_route_description))
-                .addControlFilters(CONTROL_FILTERS_QUEUING)
-                .setPlaybackStream(AudioManager.STREAM_MUSIC)
-                .setPlaybackType(MediaRouter.RouteInfo.PLAYBACK_TYPE_REMOTE)
-                .setVolumeHandling(MediaRouter.RouteInfo.PLAYBACK_VOLUME_VARIABLE)
-                .setVolumeMax(VOLUME_MAX)
-                .setVolume(mVolume)
-                .setCanDisconnect(true)
-                .build();
-
-        Uri iconUri = Uri.parse("android.resource://com.example.android.supportv7/"
-                + R.drawable.ic_android);
-        MediaRouteDescriptor routeDescriptor4 = new MediaRouteDescriptor.Builder(
-                VARIABLE_VOLUME_SESSION_ROUTE_ID,
-                r.getString(R.string.variable_volume_session_route_name))
-                .setDescription(r.getString(R.string.sample_route_description))
-                .addControlFilters(CONTROL_FILTERS_SESSION)
-                .setPlaybackStream(AudioManager.STREAM_MUSIC)
-                .setPlaybackType(MediaRouter.RouteInfo.PLAYBACK_TYPE_REMOTE)
-                .setVolumeHandling(MediaRouter.RouteInfo.PLAYBACK_VOLUME_VARIABLE)
-                .setVolumeMax(VOLUME_MAX)
-                .setVolume(mVolume)
-                .setIconUri(iconUri)
-                .build();
-
-        MediaRouteProviderDescriptor providerDescriptor = new MediaRouteProviderDescriptor.Builder()
-                .addRoute(routeDescriptor1)
-                .addRoute(routeDescriptor2)
-                .addRoute(routeDescriptor3)
-                .addRoute(routeDescriptor4)
-                .build();
-        setDescriptor(providerDescriptor);
-    }
-
-    private final class SampleRouteController extends MediaRouteProvider.RouteController {
-        private final String mRouteId;
-        private final SessionManager mSessionManager = new SessionManager("mrp");
-        private final Player mPlayer;
-        private PendingIntent mSessionReceiver;
-
-        public SampleRouteController(String routeId) {
-            mRouteId = routeId;
-            mPlayer = Player.create(getContext(), null, null);
-            mSessionManager.setPlayer(mPlayer);
-            mSessionManager.setCallback(new SessionManager.Callback() {
-                @Override
-                public void onStatusChanged() {
-                }
-
-                @Override
-                public void onItemChanged(PlaylistItem item) {
-                    handleStatusChange(item);
-                }
-            });
-            setVolumeInternal(mVolume);
-            Log.d(TAG, mRouteId + ": Controller created");
-        }
-
-        @Override
-        public void onRelease() {
-            Log.d(TAG, mRouteId + ": Controller released");
-            mPlayer.release();
-        }
-
-        @Override
-        public void onSelect() {
-            Log.d(TAG, mRouteId + ": Selected");
-            mPlayer.connect(null);
-        }
-
-        @Override
-        public void onUnselect() {
-            Log.d(TAG, mRouteId + ": Unselected");
-            mPlayer.release();
-        }
-
-        @Override
-        public void onSetVolume(int volume) {
-            Log.d(TAG, mRouteId + ": Set volume to " + volume);
-            if (!mRouteId.equals(FIXED_VOLUME_ROUTE_ID)) {
-                setVolumeInternal(volume);
-            }
-        }
-
-        @Override
-        public void onUpdateVolume(int delta) {
-            Log.d(TAG, mRouteId + ": Update volume by " + delta);
-            if (!mRouteId.equals(FIXED_VOLUME_ROUTE_ID)) {
-                setVolumeInternal(mVolume + delta);
-            }
-        }
-
-        @Override
-        public boolean onControlRequest(Intent intent, ControlRequestCallback callback) {
-            Log.d(TAG, mRouteId + ": Received control request " + intent);
-            String action = intent.getAction();
-            if (intent.hasCategory(MediaControlIntent.CATEGORY_REMOTE_PLAYBACK)) {
-                boolean success = false;
-                if (action.equals(MediaControlIntent.ACTION_PLAY)) {
-                    success = handlePlay(intent, callback);
-                } else if (action.equals(MediaControlIntent.ACTION_ENQUEUE)) {
-                    success = handleEnqueue(intent, callback);
-                } else if (action.equals(MediaControlIntent.ACTION_REMOVE)) {
-                    success = handleRemove(intent, callback);
-                } else if (action.equals(MediaControlIntent.ACTION_SEEK)) {
-                    success = handleSeek(intent, callback);
-                } else if (action.equals(MediaControlIntent.ACTION_GET_STATUS)) {
-                    success = handleGetStatus(intent, callback);
-                } else if (action.equals(MediaControlIntent.ACTION_PAUSE)) {
-                    success = handlePause(intent, callback);
-                } else if (action.equals(MediaControlIntent.ACTION_RESUME)) {
-                    success = handleResume(intent, callback);
-                } else if (action.equals(MediaControlIntent.ACTION_STOP)) {
-                    success = handleStop(intent, callback);
-                } else if (action.equals(MediaControlIntent.ACTION_START_SESSION)) {
-                    success = handleStartSession(intent, callback);
-                } else if (action.equals(MediaControlIntent.ACTION_GET_SESSION_STATUS)) {
-                    success = handleGetSessionStatus(intent, callback);
-                } else if (action.equals(MediaControlIntent.ACTION_END_SESSION)) {
-                    success = handleEndSession(intent, callback);
-                }
-                Log.d(TAG, mSessionManager.toString());
-                return success;
-            }
-
-            if (action.equals(ACTION_GET_TRACK_INFO)
-                    && intent.hasCategory(CATEGORY_SAMPLE_ROUTE)) {
-                Bundle data = new Bundle();
-                PlaylistItem item = mSessionManager.getCurrentItem();
-                if (item != null) {
-                    data.putString(TRACK_INFO_DESC, item.toString());
-                    data.putParcelable(TRACK_INFO_SNAPSHOT, mPlayer.getSnapshot());
-                }
-                if (callback != null) {
-                    callback.onResult(data);
-                }
-                return true;
-            }
-            return false;
-        }
-
-        private void setVolumeInternal(int volume) {
-            if (volume >= 0 && volume <= VOLUME_MAX) {
-                mVolume = volume;
-                Log.d(TAG, mRouteId + ": New volume is " + mVolume);
-                AudioManager audioManager =
-                        (AudioManager)getContext().getSystemService(Context.AUDIO_SERVICE);
-                audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, volume, 0);
-                publishRoutes();
-            }
-        }
-
-        private boolean handlePlay(Intent intent, ControlRequestCallback callback) {
-            String sid = intent.getStringExtra(MediaControlIntent.EXTRA_SESSION_ID);
-            if (sid != null && !sid.equals(mSessionManager.getSessionId())) {
-                Log.d(TAG, "handlePlay fails because of bad sid="+sid);
-                return false;
-            }
-            if (mSessionManager.hasSession()) {
-                mSessionManager.stop();
-            }
-            return handleEnqueue(intent, callback);
-        }
-
-        private boolean handleEnqueue(Intent intent, ControlRequestCallback callback) {
-            String sid = intent.getStringExtra(MediaControlIntent.EXTRA_SESSION_ID);
-            if (sid != null && !sid.equals(mSessionManager.getSessionId())) {
-                Log.d(TAG, "handleEnqueue fails because of bad sid="+sid);
-                return false;
-            }
-
-            Uri uri = intent.getData();
-            if (uri == null) {
-                Log.d(TAG, "handleEnqueue fails because of bad uri="+uri);
-                return false;
-            }
-
-            boolean enqueue = intent.getAction().equals(MediaControlIntent.ACTION_ENQUEUE);
-            String mime = intent.getType();
-            long pos = intent.getLongExtra(MediaControlIntent.EXTRA_ITEM_CONTENT_POSITION, 0);
-            Bundle metadata = intent.getBundleExtra(MediaControlIntent.EXTRA_ITEM_METADATA);
-            Bundle headers = intent.getBundleExtra(MediaControlIntent.EXTRA_ITEM_HTTP_HEADERS);
-            PendingIntent receiver = (PendingIntent)intent.getParcelableExtra(
-                    MediaControlIntent.EXTRA_ITEM_STATUS_UPDATE_RECEIVER);
-
-            Log.d(TAG, mRouteId + ": Received " + (enqueue?"enqueue":"play") + " request"
-                    + ", uri=" + uri
-                    + ", mime=" + mime
-                    + ", sid=" + sid
-                    + ", pos=" + pos
-                    + ", metadata=" + metadata
-                    + ", headers=" + headers
-                    + ", receiver=" + receiver);
-            PlaylistItem item = mSessionManager.add(uri, mime, receiver);
-            if (callback != null) {
-                if (item != null) {
-                    Bundle result = new Bundle();
-                    result.putString(MediaControlIntent.EXTRA_SESSION_ID, item.getSessionId());
-                    result.putString(MediaControlIntent.EXTRA_ITEM_ID, item.getItemId());
-                    result.putBundle(MediaControlIntent.EXTRA_ITEM_STATUS,
-                            item.getStatus().asBundle());
-                    callback.onResult(result);
-                } else {
-                    callback.onError("Failed to open " + uri.toString(), null);
-                }
-            }
-            return true;
-        }
-
-        private boolean handleRemove(Intent intent, ControlRequestCallback callback) {
-            String sid = intent.getStringExtra(MediaControlIntent.EXTRA_SESSION_ID);
-            if (sid == null || !sid.equals(mSessionManager.getSessionId())) {
-                return false;
-            }
-
-            String iid = intent.getStringExtra(MediaControlIntent.EXTRA_ITEM_ID);
-            PlaylistItem item = mSessionManager.remove(iid);
-            if (callback != null) {
-                if (item != null) {
-                    Bundle result = new Bundle();
-                    result.putBundle(MediaControlIntent.EXTRA_ITEM_STATUS,
-                            item.getStatus().asBundle());
-                    callback.onResult(result);
-                } else {
-                    callback.onError("Failed to remove" +
-                            ", sid=" + sid + ", iid=" + iid, null);
-                }
-            }
-            return (item != null);
-        }
-
-        private boolean handleSeek(Intent intent, ControlRequestCallback callback) {
-            String sid = intent.getStringExtra(MediaControlIntent.EXTRA_SESSION_ID);
-            if (sid == null || !sid.equals(mSessionManager.getSessionId())) {
-                return false;
-            }
-
-            String iid = intent.getStringExtra(MediaControlIntent.EXTRA_ITEM_ID);
-            long pos = intent.getLongExtra(MediaControlIntent.EXTRA_ITEM_CONTENT_POSITION, 0);
-            Log.d(TAG, mRouteId + ": Received seek request, pos=" + pos);
-            PlaylistItem item = mSessionManager.seek(iid, pos);
-            if (callback != null) {
-                if (item != null) {
-                    Bundle result = new Bundle();
-                    result.putBundle(MediaControlIntent.EXTRA_ITEM_STATUS,
-                            item.getStatus().asBundle());
-                    callback.onResult(result);
-                } else {
-                    callback.onError("Failed to seek" +
-                            ", sid=" + sid + ", iid=" + iid + ", pos=" + pos, null);
-                }
-            }
-            return (item != null);
-        }
-
-        private boolean handleGetStatus(Intent intent, ControlRequestCallback callback) {
-            String sid = intent.getStringExtra(MediaControlIntent.EXTRA_SESSION_ID);
-            String iid = intent.getStringExtra(MediaControlIntent.EXTRA_ITEM_ID);
-            Log.d(TAG, mRouteId + ": Received getStatus request, sid=" + sid + ", iid=" + iid);
-            PlaylistItem item = mSessionManager.getStatus(iid);
-            if (callback != null) {
-                if (item != null) {
-                    Bundle result = new Bundle();
-                    result.putBundle(MediaControlIntent.EXTRA_ITEM_STATUS,
-                            item.getStatus().asBundle());
-                    callback.onResult(result);
-                } else {
-                    callback.onError("Failed to get status" +
-                            ", sid=" + sid + ", iid=" + iid, null);
-                }
-            }
-            return (item != null);
-        }
-
-        private boolean handlePause(Intent intent, ControlRequestCallback callback) {
-            String sid = intent.getStringExtra(MediaControlIntent.EXTRA_SESSION_ID);
-            boolean success = (sid != null) && sid.equals(mSessionManager.getSessionId());
-            mSessionManager.pause();
-            if (callback != null) {
-                if (success) {
-                    callback.onResult(new Bundle());
-                    handleSessionStatusChange(sid);
-                } else {
-                    callback.onError("Failed to pause, sid=" + sid, null);
-                }
-            }
-            return success;
-        }
-
-        private boolean handleResume(Intent intent, ControlRequestCallback callback) {
-            String sid = intent.getStringExtra(MediaControlIntent.EXTRA_SESSION_ID);
-            boolean success = (sid != null) && sid.equals(mSessionManager.getSessionId());
-            mSessionManager.resume();
-            if (callback != null) {
-                if (success) {
-                    callback.onResult(new Bundle());
-                    handleSessionStatusChange(sid);
-                } else {
-                    callback.onError("Failed to resume, sid=" + sid, null);
-                }
-            }
-            return success;
-        }
-
-        private boolean handleStop(Intent intent, ControlRequestCallback callback) {
-            String sid = intent.getStringExtra(MediaControlIntent.EXTRA_SESSION_ID);
-            boolean success = (sid != null) && sid.equals(mSessionManager.getSessionId());
-            mSessionManager.stop();
-            if (callback != null) {
-                if (success) {
-                    callback.onResult(new Bundle());
-                    handleSessionStatusChange(sid);
-                } else {
-                    callback.onError("Failed to stop, sid=" + sid, null);
-                }
-            }
-            return success;
-        }
-
-        private boolean handleStartSession(Intent intent, ControlRequestCallback callback) {
-            String sid = mSessionManager.startSession();
-            Log.d(TAG, "StartSession returns sessionId "+sid);
-            if (callback != null) {
-                if (sid != null) {
-                    Bundle result = new Bundle();
-                    result.putString(MediaControlIntent.EXTRA_SESSION_ID, sid);
-                    result.putBundle(MediaControlIntent.EXTRA_SESSION_STATUS,
-                            mSessionManager.getSessionStatus(sid).asBundle());
-                    callback.onResult(result);
-                    mSessionReceiver = (PendingIntent)intent.getParcelableExtra(
-                            MediaControlIntent.EXTRA_SESSION_STATUS_UPDATE_RECEIVER);
-                    handleSessionStatusChange(sid);
-                } else {
-                    callback.onError("Failed to start session.", null);
-                }
-            }
-            return (sid != null);
-        }
-
-        private boolean handleGetSessionStatus(Intent intent, ControlRequestCallback callback) {
-            String sid = intent.getStringExtra(MediaControlIntent.EXTRA_SESSION_ID);
-
-            MediaSessionStatus sessionStatus = mSessionManager.getSessionStatus(sid);
-            if (callback != null) {
-                if (sessionStatus != null) {
-                    Bundle result = new Bundle();
-                    result.putBundle(MediaControlIntent.EXTRA_SESSION_STATUS,
-                            mSessionManager.getSessionStatus(sid).asBundle());
-                    callback.onResult(result);
-                } else {
-                    callback.onError("Failed to get session status, sid=" + sid, null);
-                }
-            }
-            return (sessionStatus != null);
-        }
-
-        private boolean handleEndSession(Intent intent, ControlRequestCallback callback) {
-            String sid = intent.getStringExtra(MediaControlIntent.EXTRA_SESSION_ID);
-            boolean success = (sid != null) && sid.equals(mSessionManager.getSessionId())
-                    && mSessionManager.endSession();
-            if (callback != null) {
-                if (success) {
-                    Bundle result = new Bundle();
-                    MediaSessionStatus sessionStatus = new MediaSessionStatus.Builder(
-                            MediaSessionStatus.SESSION_STATE_ENDED).build();
-                    result.putBundle(MediaControlIntent.EXTRA_SESSION_STATUS, sessionStatus.asBundle());
-                    callback.onResult(result);
-                    handleSessionStatusChange(sid);
-                    mSessionReceiver = null;
-                } else {
-                    callback.onError("Failed to end session, sid=" + sid, null);
-                }
-            }
-            return success;
-        }
-
-        private void handleStatusChange(PlaylistItem item) {
-            if (item == null) {
-                item = mSessionManager.getCurrentItem();
-            }
-            if (item != null) {
-                PendingIntent receiver = item.getUpdateReceiver();
-                if (receiver != null) {
-                    Intent intent = new Intent();
-                    intent.putExtra(MediaControlIntent.EXTRA_SESSION_ID, item.getSessionId());
-                    intent.putExtra(MediaControlIntent.EXTRA_ITEM_ID, item.getItemId());
-                    intent.putExtra(MediaControlIntent.EXTRA_ITEM_STATUS,
-                            item.getStatus().asBundle());
-                    try {
-                        receiver.send(getContext(), 0, intent);
-                        Log.d(TAG, mRouteId + ": Sending status update from provider");
-                    } catch (PendingIntent.CanceledException e) {
-                        Log.d(TAG, mRouteId + ": Failed to send status update!");
-                    }
-                }
-            }
-        }
-
-        private void handleSessionStatusChange(String sid) {
-            if (mSessionReceiver != null) {
-                Intent intent = new Intent();
-                intent.putExtra(MediaControlIntent.EXTRA_SESSION_ID, sid);
-                intent.putExtra(MediaControlIntent.EXTRA_SESSION_STATUS,
-                        mSessionManager.getSessionStatus(sid).asBundle());
-                try {
-                    mSessionReceiver.send(getContext(), 0, intent);
-                    Log.d(TAG, mRouteId + ": Sending session status update from provider");
-                } catch (PendingIntent.CanceledException e) {
-                    Log.d(TAG, mRouteId + ": Failed to send session status update!");
-                }
-            }
-        }
-    }
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/media/SampleMediaRouteProviderService.java b/samples/Support7Demos/src/com/example/android/supportv7/media/SampleMediaRouteProviderService.java
deleted file mode 100644
index bb0aa07..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/media/SampleMediaRouteProviderService.java
+++ /dev/null
@@ -1,33 +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.supportv7.media;
-
-import android.support.v7.media.MediaRouteProvider;
-import android.support.v7.media.MediaRouteProviderService;
-
-/**
- * Demonstrates how to register a custom media route provider service
- * using the support library.
- *
- * @see SampleMediaRouteProvider
- */
-public class SampleMediaRouteProviderService extends MediaRouteProviderService {
-    @Override
-    public MediaRouteProvider onCreateMediaRouteProvider() {
-        return new SampleMediaRouteProvider(this);
-    }
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/media/SampleMediaRouteSettingsActivity.java b/samples/Support7Demos/src/com/example/android/supportv7/media/SampleMediaRouteSettingsActivity.java
deleted file mode 100644
index 5f1cfd6..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/media/SampleMediaRouteSettingsActivity.java
+++ /dev/null
@@ -1,27 +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.supportv7.media;
-
-import android.support.v7.app.AppCompatActivity;
-
-/**
- * This activity is a dummy settings activity for the
- * {@link SampleMediaRouteProvider}.
- */
-public class SampleMediaRouteSettingsActivity extends AppCompatActivity {
-
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/media/SampleMediaRouterActivity.java b/samples/Support7Demos/src/com/example/android/supportv7/media/SampleMediaRouterActivity.java
deleted file mode 100644
index be66cca..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/media/SampleMediaRouterActivity.java
+++ /dev/null
@@ -1,734 +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.supportv7.media;
-
-import android.app.PendingIntent;
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.DialogInterface;
-import android.content.Intent;
-import android.media.AudioManager;
-import android.media.AudioManager.OnAudioFocusChangeListener;
-import android.net.Uri;
-import android.os.Bundle;
-import android.os.Environment;
-import android.os.Handler;
-import android.os.SystemClock;
-import android.support.v4.media.session.MediaSessionCompat;
-import android.support.v4.view.MenuItemCompat;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.app.MediaRouteActionProvider;
-import android.support.v7.app.MediaRouteControllerDialog;
-import android.support.v7.app.MediaRouteControllerDialogFragment;
-import android.support.v7.app.MediaRouteDialogFactory;
-import android.support.v7.media.MediaControlIntent;
-import android.support.v7.media.MediaItemStatus;
-import android.support.v7.media.MediaRouteSelector;
-import android.support.v7.media.MediaRouter;
-import android.support.v7.media.MediaRouter.ProviderInfo;
-import android.support.v7.media.MediaRouter.RouteInfo;
-import android.util.Log;
-import android.view.KeyEvent;
-import android.view.Menu;
-import android.view.MenuItem;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.view.ViewGroup;
-import android.widget.AdapterView;
-import android.widget.AdapterView.OnItemClickListener;
-import android.widget.ArrayAdapter;
-import android.widget.CheckBox;
-import android.widget.ImageButton;
-import android.widget.ListView;
-import android.widget.SeekBar;
-import android.widget.SeekBar.OnSeekBarChangeListener;
-import android.widget.TabHost;
-import android.widget.TabHost.OnTabChangeListener;
-import android.widget.TabHost.TabSpec;
-import android.widget.TextView;
-
-import com.example.android.supportv7.R;
-
-import java.io.File;
-
-/**
- * <h3>Media Router Support Activity</h3>
- *
- * <p>
- * This demonstrates how to use the {@link MediaRouter} API to build an
- * application that allows the user to send content to various rendering
- * targets.
- * </p>
- */
-public class SampleMediaRouterActivity extends AppCompatActivity {
-    private static final String TAG = "SampleMediaRouterActivity";
-    private static final String DISCOVERY_FRAGMENT_TAG = "DiscoveryFragment";
-    private static final boolean ENABLE_DEFAULT_CONTROL_CHECK_BOX = false;
-
-    private MediaRouter mMediaRouter;
-    private MediaRouteSelector mSelector;
-    private LibraryAdapter mLibraryItems;
-    private PlaylistAdapter mPlayListItems;
-    private TextView mInfoTextView;
-    private ListView mLibraryView;
-    private ListView mPlayListView;
-    private CheckBox mUseDefaultControlCheckBox;
-    private ImageButton mPauseResumeButton;
-    private ImageButton mStopButton;
-    private SeekBar mSeekBar;
-    private boolean mNeedResume;
-    private boolean mSeeking;
-
-    private final Handler mHandler = new Handler();
-    private final Runnable mUpdateSeekRunnable = new Runnable() {
-        @Override
-        public void run() {
-            updateProgress();
-            // update Ui every 1 second
-            mHandler.postDelayed(this, 1000);
-        }
-    };
-
-    private final SessionManager mSessionManager = new SessionManager("app");
-    private Player mPlayer;
-
-    private final MediaRouter.Callback mMediaRouterCB = new MediaRouter.Callback() {
-        // Return a custom callback that will simply log all of the route events
-        // for demonstration purposes.
-        @Override
-        public void onRouteAdded(MediaRouter router, RouteInfo route) {
-            Log.d(TAG, "onRouteAdded: route=" + route);
-        }
-
-        @Override
-        public void onRouteChanged(MediaRouter router, RouteInfo route) {
-            Log.d(TAG, "onRouteChanged: route=" + route);
-        }
-
-        @Override
-        public void onRouteRemoved(MediaRouter router, RouteInfo route) {
-            Log.d(TAG, "onRouteRemoved: route=" + route);
-        }
-
-        @Override
-        public void onRouteSelected(MediaRouter router, RouteInfo route) {
-            Log.d(TAG, "onRouteSelected: route=" + route);
-
-            mPlayer = Player.create(SampleMediaRouterActivity.this, route, mMediaSession);
-            mPlayer.updatePresentation();
-            mSessionManager.setPlayer(mPlayer);
-            mSessionManager.unsuspend();
-
-            updateUi();
-        }
-
-        @Override
-        public void onRouteUnselected(MediaRouter router, RouteInfo route) {
-            Log.d(TAG, "onRouteUnselected: route=" + route);
-            mMediaSession.setActive(false);
-
-            PlaylistItem item = getCheckedPlaylistItem();
-            if (item != null) {
-                long pos = item.getPosition() + (mSessionManager.isPaused() ?
-                        0 : (SystemClock.elapsedRealtime() - item.getTimestamp()));
-                mSessionManager.suspend(pos);
-            }
-            mPlayer.updatePresentation();
-            mPlayer.release();
-        }
-
-        @Override
-        public void onRouteVolumeChanged(MediaRouter router, RouteInfo route) {
-            Log.d(TAG, "onRouteVolumeChanged: route=" + route);
-        }
-
-        @Override
-        public void onRoutePresentationDisplayChanged(
-                MediaRouter router, RouteInfo route) {
-            Log.d(TAG, "onRoutePresentationDisplayChanged: route=" + route);
-            mPlayer.updatePresentation();
-        }
-
-        @Override
-        public void onProviderAdded(MediaRouter router, ProviderInfo provider) {
-            Log.d(TAG, "onRouteProviderAdded: provider=" + provider);
-        }
-
-        @Override
-        public void onProviderRemoved(MediaRouter router, ProviderInfo provider) {
-            Log.d(TAG, "onRouteProviderRemoved: provider=" + provider);
-        }
-
-        @Override
-        public void onProviderChanged(MediaRouter router, ProviderInfo provider) {
-            Log.d(TAG, "onRouteProviderChanged: provider=" + provider);
-        }
-    };
-
-    private MediaSessionCompat mMediaSession;
-    private ComponentName mEventReceiver;
-    private AudioManager mAudioManager;
-    private PendingIntent mMediaPendingIntent;
-    private final OnAudioFocusChangeListener mAfChangeListener =
-            new OnAudioFocusChangeListener() {
-        @Override
-        public void onAudioFocusChange(int focusChange) {
-            if (focusChange == AudioManager.AUDIOFOCUS_LOSS_TRANSIENT) {
-                Log.d(TAG, "onAudioFocusChange: LOSS_TRANSIENT");
-            } else if (focusChange == AudioManager.AUDIOFOCUS_GAIN) {
-                Log.d(TAG, "onAudioFocusChange: AUDIOFOCUS_GAIN");
-            } else if (focusChange == AudioManager.AUDIOFOCUS_LOSS) {
-                Log.d(TAG, "onAudioFocusChange: AUDIOFOCUS_LOSS");
-            }
-        }
-    };
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        // Be sure to call the super class.
-        super.onCreate(savedInstanceState);
-
-        // Get the media router service.
-        mMediaRouter = MediaRouter.getInstance(this);
-
-        // Create a route selector for the type of routes that we care about.
-        mSelector = new MediaRouteSelector.Builder()
-                .addControlCategory(MediaControlIntent.CATEGORY_LIVE_AUDIO)
-                .addControlCategory(MediaControlIntent.CATEGORY_LIVE_VIDEO)
-                .addControlCategory(MediaControlIntent.CATEGORY_REMOTE_PLAYBACK)
-                .addControlCategory(SampleMediaRouteProvider.CATEGORY_SAMPLE_ROUTE)
-                .build();
-        mMediaRouter.addCallback(mSelector, mMediaRouterCB);
-
-        // Populate an array adapter with streaming media items.
-        String[] mediaNames = getResources().getStringArray(R.array.media_names);
-        String[] mediaUris = getResources().getStringArray(R.array.media_uris);
-        mLibraryItems = new LibraryAdapter();
-        for (int i = 0; i < mediaNames.length; i++) {
-            mLibraryItems.add(new MediaItem(
-                    "[streaming] "+mediaNames[i], Uri.parse(mediaUris[i]), "video/mp4"));
-        }
-
-        // Scan local external storage directory for media files.
-        File externalDir = Environment.getExternalStorageDirectory();
-        if (externalDir != null) {
-            File list[] = externalDir.listFiles();
-            if (list != null) {
-                for (int i = 0; i < list.length; i++) {
-                    String filename = list[i].getName();
-                    if (filename.matches(".*\\.(m4v|mp4)")) {
-                        mLibraryItems.add(new MediaItem("[local] " + filename,
-                                Uri.fromFile(list[i]), "video/mp4"));
-                    }
-                }
-            }
-        }
-
-        mPlayListItems = new PlaylistAdapter();
-
-        // Initialize the layout.
-        setContentView(R.layout.sample_media_router);
-
-        TabHost tabHost=(TabHost)findViewById(R.id.tabHost);
-        tabHost.setup();
-        String tabName = getResources().getString(R.string.library_tab_text);
-        TabSpec spec1=tabHost.newTabSpec(tabName);
-        spec1.setContent(R.id.tab1);
-        spec1.setIndicator(tabName);
-
-        tabName = getResources().getString(R.string.playlist_tab_text);
-        TabSpec spec2=tabHost.newTabSpec(tabName);
-        spec2.setIndicator(tabName);
-        spec2.setContent(R.id.tab2);
-
-        tabName = getResources().getString(R.string.info_tab_text);
-        TabSpec spec3=tabHost.newTabSpec(tabName);
-        spec3.setIndicator(tabName);
-        spec3.setContent(R.id.tab3);
-
-        tabHost.addTab(spec1);
-        tabHost.addTab(spec2);
-        tabHost.addTab(spec3);
-        tabHost.setOnTabChangedListener(new OnTabChangeListener() {
-            @Override
-            public void onTabChanged(String arg0) {
-                updateUi();
-            }
-        });
-
-        mLibraryView = (ListView) findViewById(R.id.media);
-        mLibraryView.setAdapter(mLibraryItems);
-        mLibraryView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
-        mLibraryView.setOnItemClickListener(new OnItemClickListener() {
-            @Override
-            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
-                updateButtons();
-            }
-        });
-
-        mPlayListView = (ListView) findViewById(R.id.playlist);
-        mPlayListView.setAdapter(mPlayListItems);
-        mPlayListView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
-        mPlayListView.setOnItemClickListener(new OnItemClickListener() {
-            @Override
-            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
-                updateButtons();
-            }
-        });
-
-        mInfoTextView = (TextView) findViewById(R.id.info);
-
-        mUseDefaultControlCheckBox = (CheckBox) findViewById(R.id.custom_control_view_checkbox);
-        if (ENABLE_DEFAULT_CONTROL_CHECK_BOX) {
-            mUseDefaultControlCheckBox.setVisibility(View.VISIBLE);
-        }
-        mPauseResumeButton = (ImageButton)findViewById(R.id.pause_resume_button);
-        mPauseResumeButton.setOnClickListener(new OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                if (mSessionManager.isPaused()) {
-                    mSessionManager.resume();
-                } else {
-                    mSessionManager.pause();
-                }
-            }
-        });
-
-        mStopButton = (ImageButton)findViewById(R.id.stop_button);
-        mStopButton.setOnClickListener(new OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                mSessionManager.stop();
-            }
-        });
-
-        mSeekBar = (SeekBar) findViewById(R.id.seekbar);
-        mSeekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
-            @Override
-            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
-                PlaylistItem item = getCheckedPlaylistItem();
-                if (fromUser && item != null && item.getDuration() > 0) {
-                    long pos = progress * item.getDuration() / 100;
-                    mSessionManager.seek(item.getItemId(), pos);
-                    item.setPosition(pos);
-                    item.setTimestamp(SystemClock.elapsedRealtime());
-                }
-            }
-            @Override
-            public void onStartTrackingTouch(SeekBar seekBar) {
-                mSeeking = true;
-            }
-            @Override
-            public void onStopTrackingTouch(SeekBar seekBar) {
-                mSeeking = false;
-                updateUi();
-            }
-        });
-
-        // Schedule Ui update
-        mHandler.postDelayed(mUpdateSeekRunnable, 1000);
-
-        // Build the PendingIntent for the remote control client
-        mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
-        mEventReceiver = new ComponentName(getPackageName(),
-                SampleMediaButtonReceiver.class.getName());
-        Intent mediaButtonIntent = new Intent(Intent.ACTION_MEDIA_BUTTON);
-        mediaButtonIntent.setComponent(mEventReceiver);
-        mMediaPendingIntent = PendingIntent.getBroadcast(this, 0, mediaButtonIntent, 0);
-
-        // Create and register the remote control client
-        createMediaSession();
-        mMediaRouter.setMediaSessionCompat(mMediaSession);
-
-        // Set up playback manager and player
-        mPlayer = Player.create(SampleMediaRouterActivity.this,
-                mMediaRouter.getSelectedRoute(), mMediaSession);
-
-        mSessionManager.setPlayer(mPlayer);
-        mSessionManager.setCallback(new SessionManager.Callback() {
-            @Override
-            public void onStatusChanged() {
-                updateUi();
-            }
-
-            @Override
-            public void onItemChanged(PlaylistItem item) {
-            }
-        });
-
-        updateUi();
-    }
-
-    private void createMediaSession() {
-        // Create the MediaSession
-        mMediaSession = new MediaSessionCompat(this, "SampleMediaRouter", mEventReceiver,
-                mMediaPendingIntent);
-        mMediaSession.setFlags(MediaSessionCompat.FLAG_HANDLES_MEDIA_BUTTONS
-                | MediaSessionCompat.FLAG_HANDLES_TRANSPORT_CONTROLS);
-        mMediaSession.setCallback(new MediaSessionCompat.Callback() {
-            @Override
-            public boolean onMediaButtonEvent(Intent mediaButtonEvent) {
-                if (mediaButtonEvent != null) {
-                    return handleMediaKey(
-                            (KeyEvent) mediaButtonEvent.getParcelableExtra(Intent.EXTRA_KEY_EVENT));
-                }
-                return super.onMediaButtonEvent(mediaButtonEvent);
-            }
-
-            @Override
-            public void onPlay() {
-                mSessionManager.resume();
-            }
-
-            @Override
-            public void onPause() {
-                mSessionManager.pause();
-            }
-        });
-
-        SampleMediaButtonReceiver.setActivity(SampleMediaRouterActivity.this);
-    }
-
-    public boolean handleMediaKey(KeyEvent event) {
-        if (event != null && event.getAction() == KeyEvent.ACTION_DOWN
-                && event.getRepeatCount() == 0) {
-            switch (event.getKeyCode()) {
-                case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE:
-                case KeyEvent.KEYCODE_HEADSETHOOK:
-                {
-                    Log.d(TAG, "Received Play/Pause event from RemoteControlClient");
-                    if (mSessionManager.isPaused()) {
-                        mSessionManager.resume();
-                    } else {
-                        mSessionManager.pause();
-                    }
-                    return true;
-                }
-                case KeyEvent.KEYCODE_MEDIA_PLAY:
-                {
-                    Log.d(TAG, "Received Play event from RemoteControlClient");
-                    if (mSessionManager.isPaused()) {
-                        mSessionManager.resume();
-                    }
-                    return true;
-                }
-                case KeyEvent.KEYCODE_MEDIA_PAUSE:
-                {
-                    Log.d(TAG, "Received Pause event from RemoteControlClient");
-                    if (!mSessionManager.isPaused()) {
-                        mSessionManager.pause();
-                    }
-                    return true;
-                }
-                case KeyEvent.KEYCODE_MEDIA_STOP:
-                {
-                    Log.d(TAG, "Received Stop event from RemoteControlClient");
-                    mSessionManager.stop();
-                    return true;
-                }
-                default:
-                    break;
-            }
-        }
-        return false;
-    }
-
-    @Override
-    public boolean onKeyDown(int keyCode, KeyEvent event) {
-        return handleMediaKey(event) || super.onKeyDown(keyCode, event);
-    }
-
-    @Override
-    public boolean onKeyUp(int keyCode, KeyEvent event) {
-        return handleMediaKey(event) || super.onKeyUp(keyCode, event);
-    }
-
-    @Override
-    public void onStart() {
-        // Be sure to call the super class.
-        super.onStart();
-    }
-
-    @Override
-    public void onPause() {
-        // pause media player for local playback case only
-        if (!mPlayer.isRemotePlayback() && !mSessionManager.isPaused()) {
-            mNeedResume = true;
-            mSessionManager.pause();
-        }
-        super.onPause();
-    }
-
-    @Override
-    public void onResume() {
-        // resume media player for local playback case only
-        if (!mPlayer.isRemotePlayback() && mNeedResume) {
-            mSessionManager.resume();
-            mNeedResume = false;
-        }
-        super.onResume();
-    }
-
-    @Override
-    public void onDestroy() {
-        mSessionManager.stop();
-        mPlayer.release();
-        mMediaSession.release();
-        super.onDestroy();
-    }
-
-    @Override
-    public boolean onCreateOptionsMenu(Menu menu) {
-        // Be sure to call the super class.
-        super.onCreateOptionsMenu(menu);
-
-        // Inflate the menu and configure the media router action provider.
-        getMenuInflater().inflate(R.menu.sample_media_router_menu, menu);
-
-        MenuItem mediaRouteMenuItem = menu.findItem(R.id.media_route_menu_item);
-        MyMediaRouteActionProvider mediaRouteActionProvider =
-                (MyMediaRouteActionProvider)MenuItemCompat.getActionProvider(mediaRouteMenuItem);
-        mediaRouteActionProvider.setRouteSelector(mSelector);
-        mediaRouteActionProvider.setDialogFactory(new MediaRouteDialogFactory() {
-            @Override
-            public MediaRouteControllerDialogFragment onCreateControllerDialogFragment() {
-                return new ControllerDialogFragment(mPlayer, mUseDefaultControlCheckBox);
-            }
-        });
-
-        // Return true to show the menu.
-        return true;
-    }
-
-    private void updateProgress() {
-        // Estimate content position from last status time and elapsed time.
-        // (Note this might be slightly out of sync with remote side, however
-        // it avoids frequent polling the MRP.)
-        int progress = 0;
-        PlaylistItem item = getCheckedPlaylistItem();
-        if (item != null) {
-            int state = item.getState();
-            long duration = item.getDuration();
-            if (duration <= 0) {
-                if (state == MediaItemStatus.PLAYBACK_STATE_PLAYING
-                        || state == MediaItemStatus.PLAYBACK_STATE_PAUSED) {
-                    mSessionManager.updateStatus();
-                }
-            } else {
-                long position = item.getPosition();
-                long timeDelta = mSessionManager.isPaused() ? 0 :
-                        (SystemClock.elapsedRealtime() - item.getTimestamp());
-                progress = (int)(100.0 * (position + timeDelta) / duration);
-            }
-        }
-        mSeekBar.setProgress(progress);
-    }
-
-    private void updateUi() {
-        updatePlaylist();
-        updateRouteDescription();
-        updateButtons();
-        if (mPlayer != null) {
-            mPlayer.updateMetadata();
-        }
-    }
-
-    private void updatePlaylist() {
-        mPlayListItems.clear();
-        for (PlaylistItem item : mSessionManager.getPlaylist()) {
-            mPlayListItems.add(item);
-        }
-        mPlayListView.invalidate();
-    }
-
-    private void updateRouteDescription() {
-        RouteInfo route = mMediaRouter.getSelectedRoute();
-        mInfoTextView.setText("Currently selected route:"
-                + "\nName: " + route.getName()
-                + "\nProvider: " + route.getProvider().getPackageName()
-                + "\nDescription: " + route.getDescription());
-    }
-
-    private void updateButtons() {
-        MediaRouter.RouteInfo route = mMediaRouter.getSelectedRoute();
-        // show pause or resume icon depending on current state
-        mPauseResumeButton.setImageResource(mSessionManager.isPaused() ?
-                R.drawable.ic_media_play : R.drawable.ic_media_pause);
-        // only enable seek bar when duration is known
-        PlaylistItem item = getCheckedPlaylistItem();
-        mSeekBar.setEnabled(item != null && item.getDuration() > 0);
-    }
-
-    private PlaylistItem getCheckedPlaylistItem() {
-        int count = mPlayListView.getCount();
-        int index = mPlayListView.getCheckedItemPosition();
-        if (count > 0) {
-            if (index < 0 || index >= count) {
-                index = 0;
-                mPlayListView.setItemChecked(0, true);
-            }
-            return mPlayListItems.getItem(index);
-        }
-        return null;
-    }
-
-    private static final class MediaItem {
-        public final String mName;
-        public final Uri mUri;
-        public final String mMime;
-
-        public MediaItem(String name, Uri uri, String mime) {
-            mName = name;
-            mUri = uri;
-            mMime = mime;
-        }
-
-        @Override
-        public String toString() {
-            return mName;
-        }
-    }
-
-    private final class LibraryAdapter extends ArrayAdapter<MediaItem> {
-        public LibraryAdapter() {
-            super(SampleMediaRouterActivity.this, R.layout.media_item);
-        }
-
-        @Override
-        public View getView(int position, View convertView, ViewGroup parent) {
-            final View v;
-            if (convertView == null) {
-                v = getLayoutInflater().inflate(R.layout.media_item, null);
-            } else {
-                v = convertView;
-            }
-
-            final MediaItem item = getItem(position);
-
-            TextView tv = (TextView)v.findViewById(R.id.item_text);
-            tv.setText(item.mName);
-
-            ImageButton b = (ImageButton)v.findViewById(R.id.item_action);
-            b.setImageResource(R.drawable.ic_menu_add);
-            b.setTag(item);
-            b.setOnClickListener(new OnClickListener() {
-                @Override
-                public void onClick(View v) {
-                    if (item != null) {
-                        mSessionManager.add(item.mUri, item.mMime);
-                    }
-                }
-            });
-
-            return v;
-        }
-    }
-
-    private final class PlaylistAdapter extends ArrayAdapter<PlaylistItem> {
-        public PlaylistAdapter() {
-            super(SampleMediaRouterActivity.this, R.layout.media_item);
-        }
-
-        @Override
-        public View getView(int position, View convertView, ViewGroup parent) {
-            final View v;
-            if (convertView == null) {
-                v = getLayoutInflater().inflate(R.layout.media_item, null);
-            } else {
-                v = convertView;
-            }
-
-            final PlaylistItem item = getItem(position);
-
-            TextView tv = (TextView)v.findViewById(R.id.item_text);
-            tv.setText(item.toString());
-
-            ImageButton b = (ImageButton)v.findViewById(R.id.item_action);
-            b.setImageResource(R.drawable.ic_menu_delete);
-            b.setTag(item);
-            b.setOnClickListener(new OnClickListener() {
-                @Override
-                public void onClick(View v) {
-                    if (item != null) {
-                        mSessionManager.remove(item.getItemId());
-                    }
-                }
-            });
-
-            return v;
-        }
-    }
-
-    /**
-     * Trivial subclass of this activity used to provide another copy of the
-     * same activity using a light theme instead of the dark theme.
-     */
-    public static class Light extends SampleMediaRouterActivity {
-    }
-
-    /**
-     * Trivial subclass of this activity used to provide another copy of the
-     * same activity using a light theme with dark action bar instead of the dark theme.
-     */
-    public static class LightWithDarkActionBar extends SampleMediaRouterActivity {
-    }
-
-    public static class MyMediaRouteActionProvider extends MediaRouteActionProvider {
-        public MyMediaRouteActionProvider(Context context) {
-            super(context);
-        }
-
-        @Override
-        public boolean isVisible() {
-            return true;
-        }
-    }
-
-    public static class ControllerDialogFragment extends MediaRouteControllerDialogFragment {
-        private MediaRouteControllerDialog mControllerDialog;
-        private Player mPlayer;
-        private CheckBox mUseDefaultControlCheckBox;
-
-        public ControllerDialogFragment() {
-            super();
-        }
-
-        public ControllerDialogFragment(Player player, CheckBox customControlViewCheckBox) {
-            mPlayer = player;
-            this.mUseDefaultControlCheckBox = customControlViewCheckBox;
-        }
-
-        @Override
-        public MediaRouteControllerDialog onCreateControllerDialog(
-                Context context, Bundle savedInstanceState) {
-            mControllerDialog = this.mUseDefaultControlCheckBox.isChecked()
-                    ? super.onCreateControllerDialog(context, savedInstanceState)
-                    : new MyMediaRouteControllerDialog(context);
-            mControllerDialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
-                @Override
-                public void onDismiss(DialogInterface dialog) {
-                    mControllerDialog = null;
-                }
-            });
-            return mControllerDialog;
-        }
-
-        public void setPlayer(Player player) {
-            mPlayer = player;
-        }
-    }
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/media/SessionManager.java b/samples/Support7Demos/src/com/example/android/supportv7/media/SessionManager.java
deleted file mode 100644
index 6fab2eb..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/media/SessionManager.java
+++ /dev/null
@@ -1,429 +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.supportv7.media;
-
-import android.app.PendingIntent;
-import android.net.Uri;
-import android.support.v7.media.MediaItemStatus;
-import android.support.v7.media.MediaSessionStatus;
-import android.util.Log;
-
-import java.util.List;
-import java.util.ArrayList;
-
-/**
- * SessionManager manages a media session as a queue. It supports common
- * queuing behaviors such as enqueue/remove of media items, pause/resume/stop,
- * etc.
- *
- * Actual playback of a single media item is abstracted into a Player interface,
- * and is handled outside this class.
- */
-public class SessionManager implements Player.Callback {
-    private static final String TAG = "SessionManager";
-    private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
-
-    private String mName;
-    private int mSessionId;
-    private int mItemId;
-    private boolean mPaused;
-    private boolean mSessionValid;
-    private Player mPlayer;
-    private Callback mCallback;
-    private List<PlaylistItem> mPlaylist = new ArrayList<PlaylistItem>();
-
-    public SessionManager(String name) {
-        mName = name;
-    }
-
-    public boolean isPaused() {
-        return hasSession() && mPaused;
-    }
-
-    public boolean hasSession() {
-        return mSessionValid;
-    }
-
-    public String getSessionId() {
-        return mSessionValid ? Integer.toString(mSessionId) : null;
-    }
-
-    public PlaylistItem getCurrentItem() {
-        return mPlaylist.isEmpty() ? null : mPlaylist.get(0);
-    }
-
-    // Returns the cached playlist (note this is not responsible for updating it)
-    public List<PlaylistItem> getPlaylist() {
-        return mPlaylist;
-    }
-
-    // Updates the playlist asynchronously, calls onPlaylistReady() when finished.
-    public void updateStatus() {
-        if (DEBUG) {
-            log("updateStatus");
-        }
-        checkPlayer();
-        // update the statistics first, so that the stats string is valid when
-        // onPlaylistReady() gets called in the end
-        mPlayer.updateTrackInfo();
-
-        if (mPlaylist.isEmpty()) {
-            // If queue is empty, don't forget to call onPlaylistReady()!
-            onPlaylistReady();
-        } else if (mPlayer.isQueuingSupported()) {
-            // If player supports queuing, get status of each item. Player is
-            // responsible to call onPlaylistReady() after last getStatus().
-            // (update=1 requires player to callback onPlaylistReady())
-            for (int i = 0; i < mPlaylist.size(); i++) {
-                PlaylistItem item = mPlaylist.get(i);
-                mPlayer.getStatus(item, (i == mPlaylist.size() - 1) /* update */);
-            }
-        } else {
-            // Otherwise, only need to get status for current item. Player is
-            // responsible to call onPlaylistReady() when finished.
-            mPlayer.getStatus(getCurrentItem(), true /* update */);
-        }
-    }
-
-    public PlaylistItem add(Uri uri, String mime) {
-        return add(uri, mime, null);
-    }
-
-    public PlaylistItem add(Uri uri, String mime, PendingIntent receiver) {
-        if (DEBUG) {
-            log("add: uri=" + uri + ", receiver=" + receiver);
-        }
-        // create new session if needed
-        startSession();
-        checkPlayerAndSession();
-
-        // append new item with initial status PLAYBACK_STATE_PENDING
-        PlaylistItem item = new PlaylistItem(
-                Integer.toString(mSessionId), Integer.toString(mItemId), uri, mime, receiver);
-        mPlaylist.add(item);
-        mItemId++;
-
-        // if player supports queuing, enqueue the item now
-        if (mPlayer.isQueuingSupported()) {
-            mPlayer.enqueue(item);
-        }
-        updatePlaybackState();
-        return item;
-    }
-
-    public PlaylistItem remove(String iid) {
-        if (DEBUG) {
-            log("remove: iid=" + iid);
-        }
-        checkPlayerAndSession();
-        return removeItem(iid, MediaItemStatus.PLAYBACK_STATE_CANCELED);
-    }
-
-    public PlaylistItem seek(String iid, long pos) {
-        if (DEBUG) {
-            log("seek: iid=" + iid +", pos=" + pos);
-        }
-        checkPlayerAndSession();
-        // seeking on pending items are not yet supported
-        checkItemCurrent(iid);
-
-        PlaylistItem item = getCurrentItem();
-        if (pos != item.getPosition()) {
-            item.setPosition(pos);
-            if (item.getState() == MediaItemStatus.PLAYBACK_STATE_PLAYING
-                    || item.getState() == MediaItemStatus.PLAYBACK_STATE_PAUSED) {
-                mPlayer.seek(item);
-            }
-        }
-        return item;
-    }
-
-    public PlaylistItem getStatus(String iid) {
-        checkPlayerAndSession();
-
-        // This should only be called for local player. Remote player is
-        // asynchronous, need to use updateStatus() instead.
-        if (mPlayer.isRemotePlayback()) {
-            throw new IllegalStateException(
-                    "getStatus should not be called on remote player!");
-        }
-
-        for (PlaylistItem item : mPlaylist) {
-            if (item.getItemId().equals(iid)) {
-                if (item == getCurrentItem()) {
-                    mPlayer.getStatus(item, false);
-                }
-                return item;
-            }
-        }
-        return null;
-    }
-
-    public void pause() {
-        if (DEBUG) {
-            log("pause");
-        }
-        if (!mSessionValid) {
-            return;
-        }
-        checkPlayer();
-        mPaused = true;
-        updatePlaybackState();
-    }
-
-    public void resume() {
-        if (DEBUG) {
-            log("resume");
-        }
-        if (!mSessionValid) {
-            return;
-        }
-        checkPlayer();
-        mPaused = false;
-        updatePlaybackState();
-    }
-
-    public void stop() {
-        if (DEBUG) {
-            log("stop");
-        }
-        if (!mSessionValid) {
-            return;
-        }
-        checkPlayer();
-        mPlayer.stop();
-        mPlaylist.clear();
-        mPaused = false;
-        updateStatus();
-    }
-
-    public String startSession() {
-        if (!mSessionValid) {
-            mSessionId++;
-            mItemId = 0;
-            mPaused = false;
-            mSessionValid = true;
-            return Integer.toString(mSessionId);
-        }
-        return null;
-    }
-
-    public boolean endSession() {
-        if (mSessionValid) {
-            mSessionValid = false;
-            return true;
-        }
-        return false;
-    }
-
-    MediaSessionStatus getSessionStatus(String sid) {
-        int sessionState = (sid != null && sid.equals(mSessionId)) ?
-                MediaSessionStatus.SESSION_STATE_ACTIVE :
-                    MediaSessionStatus.SESSION_STATE_INVALIDATED;
-
-        return new MediaSessionStatus.Builder(sessionState)
-                .setQueuePaused(mPaused)
-                .build();
-    }
-
-    // Suspend the playback manager. Put the current item back into PENDING
-    // state, and remember the current playback position. Called when switching
-    // to a different player (route).
-    public void suspend(long pos) {
-        for (PlaylistItem item : mPlaylist) {
-            item.setRemoteItemId(null);
-            item.setDuration(0);
-        }
-        PlaylistItem item = getCurrentItem();
-        if (DEBUG) {
-            log("suspend: item=" + item + ", pos=" + pos);
-        }
-        if (item != null) {
-            if (item.getState() == MediaItemStatus.PLAYBACK_STATE_PLAYING
-                    || item.getState() == MediaItemStatus.PLAYBACK_STATE_PAUSED) {
-                item.setState(MediaItemStatus.PLAYBACK_STATE_PENDING);
-                item.setPosition(pos);
-            }
-        }
-    }
-
-    // Unsuspend the playback manager. Restart playback on new player (route).
-    // This will resume playback of current item. Furthermore, if the new player
-    // supports queuing, playlist will be re-established on the remote player.
-    public void unsuspend() {
-        if (DEBUG) {
-            log("unsuspend");
-        }
-        if (mPlayer.isQueuingSupported()) {
-            for (PlaylistItem item : mPlaylist) {
-                mPlayer.enqueue(item);
-            }
-        }
-        updatePlaybackState();
-    }
-
-    // Player.Callback
-    @Override
-    public void onError() {
-        finishItem(true);
-    }
-
-    @Override
-    public void onCompletion() {
-        finishItem(false);
-    }
-
-    @Override
-    public void onPlaylistChanged() {
-        // Playlist has changed, update the cached playlist
-        updateStatus();
-    }
-
-    @Override
-    public void onPlaylistReady() {
-        // Notify activity to update Ui
-        if (mCallback != null) {
-            mCallback.onStatusChanged();
-        }
-    }
-
-    private void log(String message) {
-        Log.d(TAG, mName + ": " + message);
-    }
-
-    private void checkPlayer() {
-        if (mPlayer == null) {
-            throw new IllegalStateException("Player not set!");
-        }
-    }
-
-    private void checkSession() {
-        if (!mSessionValid) {
-            throw new IllegalStateException("Session not set!");
-        }
-    }
-
-    private void checkPlayerAndSession() {
-        checkPlayer();
-        checkSession();
-    }
-
-    private void checkItemCurrent(String iid) {
-        PlaylistItem item = getCurrentItem();
-        if (item == null || !item.getItemId().equals(iid)) {
-            throw new IllegalArgumentException("Item is not current!");
-        }
-    }
-
-    private void updatePlaybackState() {
-        PlaylistItem item = getCurrentItem();
-        if (item != null) {
-            if (item.getState() == MediaItemStatus.PLAYBACK_STATE_PENDING) {
-                item.setState(mPaused ? MediaItemStatus.PLAYBACK_STATE_PAUSED
-                        : MediaItemStatus.PLAYBACK_STATE_PLAYING);
-                if (!mPlayer.isQueuingSupported()) {
-                    mPlayer.play(item);
-                }
-            } else if (mPaused && item.getState() == MediaItemStatus.PLAYBACK_STATE_PLAYING) {
-                mPlayer.pause();
-                item.setState(MediaItemStatus.PLAYBACK_STATE_PAUSED);
-            } else if (!mPaused && item.getState() == MediaItemStatus.PLAYBACK_STATE_PAUSED) {
-                mPlayer.resume();
-                item.setState(MediaItemStatus.PLAYBACK_STATE_PLAYING);
-            }
-            // notify client that item playback status has changed
-            if (mCallback != null) {
-                mCallback.onItemChanged(item);
-            }
-        } else {
-            mPlayer.initMediaSession();
-        }
-        updateStatus();
-    }
-
-    private PlaylistItem removeItem(String iid, int state) {
-        checkPlayerAndSession();
-        List<PlaylistItem> queue =
-                new ArrayList<PlaylistItem>(mPlaylist.size());
-        PlaylistItem found = null;
-        for (PlaylistItem item : mPlaylist) {
-            if (iid.equals(item.getItemId())) {
-                if (mPlayer.isQueuingSupported()) {
-                    mPlayer.remove(item.getRemoteItemId());
-                } else if (item.getState() == MediaItemStatus.PLAYBACK_STATE_PLAYING
-                        || item.getState() == MediaItemStatus.PLAYBACK_STATE_PAUSED){
-                    mPlayer.stop();
-                }
-                item.setState(state);
-                found = item;
-                // notify client that item is now removed
-                if (mCallback != null) {
-                    mCallback.onItemChanged(found);
-                }
-            } else {
-                queue.add(item);
-            }
-        }
-        if (found != null) {
-            mPlaylist = queue;
-            updatePlaybackState();
-        } else {
-            log("item not found");
-        }
-        return found;
-    }
-
-    private void finishItem(boolean error) {
-        PlaylistItem item = getCurrentItem();
-        if (item != null) {
-            removeItem(item.getItemId(), error ?
-                    MediaItemStatus.PLAYBACK_STATE_ERROR :
-                        MediaItemStatus.PLAYBACK_STATE_FINISHED);
-            updateStatus();
-        }
-    }
-
-    // set the Player that this playback manager will interact with
-    public void setPlayer(Player player) {
-        mPlayer = player;
-        checkPlayer();
-        mPlayer.setCallback(this);
-    }
-
-    // provide a callback interface to tell the UI when significant state changes occur
-    public void setCallback(Callback callback) {
-        mCallback = callback;
-    }
-
-    @Override
-    public String toString() {
-        String result = "Media Queue: ";
-        if (!mPlaylist.isEmpty()) {
-            for (PlaylistItem item : mPlaylist) {
-                result += "\n" + item.toString();
-            }
-        } else {
-            result += "<empty>";
-        }
-        return result;
-    }
-
-    public interface Callback {
-        void onStatusChanged();
-        void onItemChanged(PlaylistItem item);
-    }
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/media/_index.html b/samples/Support7Demos/src/com/example/android/supportv7/media/_index.html
deleted file mode 100644
index 0802cae..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/media/_index.html
+++ /dev/null
@@ -1,23 +0,0 @@
-
-<p>This section includes samples showing the use of the application
-package features of the static support library.</p>
-<ul>
-  <li><a href="#MediaRouter">Media Router</a></li>
-</ul>
-
-
-<h3 id="MediaRouter">Media Router</h3>
-<dl>
-  <dt><a href="SampleMediaRouteProvider.html">Media Route Provider</a></dt>
-  <dd>Demonstrates how to implement a MediaRouteProvider to discover,
-  publish and control custom media routes.</dd>
-
-  <dt><a href="SampleMediaRouteProviderService.html">Media Route Provider Service</a></dt>
-  <dd>Demonstrates how to make a MediaRouteProvider available to all
-  running applications by registering it as a service.</dd>
-
-  <dt><a href="SampleMediaRouterActivity.html">Media Router Activity</a></dt>
-  <dd>Demonstrates how to use MediaRouter within an Activity to support
-  remote media playback.</dd>
-</dl>
- 
\ No newline at end of file
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/util/SortedListActivity.java b/samples/Support7Demos/src/com/example/android/supportv7/util/SortedListActivity.java
deleted file mode 100644
index 8f3871d..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/util/SortedListActivity.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- * 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.supportv7.util;
-
-import com.example.android.supportv7.R;
-import android.os.Bundle;
-import android.support.v7.app.ActionBarActivity;
-import android.support.v7.util.SortedList;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.v7.widget.RecyclerView;
-import android.support.v7.widget.util.SortedListAdapterCallback;
-import android.view.KeyEvent;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.inputmethod.EditorInfo;
-import android.widget.CheckBox;
-import android.widget.CompoundButton;
-import android.widget.EditText;
-import android.widget.TextView;
-
-/**
- * A sample activity that uses {@link SortedList} in combination with RecyclerView.
- */
-public class SortedListActivity extends ActionBarActivity {
-    private RecyclerView mRecyclerView;
-    private LinearLayoutManager mLinearLayoutManager;
-    private SortedListAdapter mAdapter;
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.sorted_list_activity);
-        mRecyclerView = (RecyclerView) findViewById(R.id.recycler_view);
-        mRecyclerView.setHasFixedSize(true);
-        mLinearLayoutManager = new LinearLayoutManager(this);
-        mRecyclerView.setLayoutManager(mLinearLayoutManager);
-        mAdapter = new SortedListAdapter(getLayoutInflater(),
-                new Item("buy milk"), new Item("wash the car"),
-                new Item("wash the dishes"));
-        mRecyclerView.setAdapter(mAdapter);
-        mRecyclerView.setHasFixedSize(true);
-        final EditText newItemTextView = (EditText) findViewById(R.id.new_item_text_view);
-        newItemTextView.setOnEditorActionListener(new TextView.OnEditorActionListener() {
-            @Override
-            public boolean onEditorAction(TextView textView, int id, KeyEvent keyEvent) {
-                if (id == EditorInfo.IME_ACTION_DONE &&
-                        (keyEvent == null || keyEvent.getAction() == KeyEvent.ACTION_DOWN)) {
-                    final String text = textView.getText().toString().trim();
-                    if (text.length() > 0) {
-                        mAdapter.addItem(new Item(text));
-                    }
-                    textView.setText("");
-                    return true;
-                }
-                return false;
-            }
-        });
-    }
-
-    private static class SortedListAdapter extends RecyclerView.Adapter<TodoViewHolder> {
-        SortedList<Item> mData;
-        final LayoutInflater mLayoutInflater;
-        public SortedListAdapter(LayoutInflater layoutInflater, Item... items) {
-            mLayoutInflater = layoutInflater;
-            mData = new SortedList<Item>(Item.class, new SortedListAdapterCallback<Item>(this) {
-                @Override
-                public int compare(Item t0, Item t1) {
-                    if (t0.mIsDone != t1.mIsDone) {
-                        return t0.mIsDone ? 1 : -1;
-                    }
-                    int txtComp = t0.mText.compareTo(t1.mText);
-                    if (txtComp != 0) {
-                        return txtComp;
-                    }
-                    if (t0.id < t1.id) {
-                        return -1;
-                    } else if (t0.id > t1.id) {
-                        return 1;
-                    }
-                    return 0;
-                }
-
-                @Override
-                public boolean areContentsTheSame(Item oldItem,
-                        Item newItem) {
-                    return oldItem.mText.equals(newItem.mText);
-                }
-
-                @Override
-                public boolean areItemsTheSame(Item item1, Item item2) {
-                    return item1.id == item2.id;
-                }
-            });
-            for (Item item : items) {
-                mData.add(item);
-            }
-        }
-
-        public void addItem(Item item) {
-            mData.add(item);
-        }
-
-        @Override
-        public TodoViewHolder onCreateViewHolder(final ViewGroup parent, int viewType) {
-            return new TodoViewHolder (
-                    mLayoutInflater.inflate(R.layout.sorted_list_item_view, parent, false)) {
-                @Override
-                void onDoneChanged(boolean isDone) {
-                    int adapterPosition = getAdapterPosition();
-                    if (adapterPosition == RecyclerView.NO_POSITION) {
-                        return;
-                    }
-                    mBoundItem.mIsDone = isDone;
-                    mData.recalculatePositionOfItemAt(adapterPosition);
-                }
-            };
-        }
-
-        @Override
-        public void onBindViewHolder(TodoViewHolder holder, int position) {
-            holder.bindTo(mData.get(position));
-        }
-
-        @Override
-        public int getItemCount() {
-            return mData.size();
-        }
-    }
-
-    abstract private static class TodoViewHolder extends RecyclerView.ViewHolder {
-        final CheckBox mCheckBox;
-        Item mBoundItem;
-        public TodoViewHolder(View itemView) {
-            super(itemView);
-            mCheckBox = (CheckBox) itemView;
-            mCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
-                @Override
-                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
-                    if (mBoundItem != null && isChecked != mBoundItem.mIsDone) {
-                        onDoneChanged(isChecked);
-                    }
-                }
-            });
-        }
-
-        public void bindTo(Item item) {
-            mBoundItem = item;
-            mCheckBox.setText(item.mText);
-            mCheckBox.setChecked(item.mIsDone);
-        }
-
-        abstract void onDoneChanged(boolean isChecked);
-    }
-
-    private static class Item {
-        String mText;
-        boolean mIsDone = false;
-        final public int id;
-        private static int idCounter = 0;
-
-        public Item(String text) {
-            id = idCounter ++;
-            this.mText = text;
-        }
-    }
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/view/CardViewActivity.java b/samples/Support7Demos/src/com/example/android/supportv7/view/CardViewActivity.java
deleted file mode 100644
index cc70442..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/view/CardViewActivity.java
+++ /dev/null
@@ -1,187 +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.supportv7.view;
-
-import android.os.Bundle;
-import android.os.Handler;
-import android.support.v4.view.ViewCompat;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.CardView;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.RadioGroup;
-import android.widget.SeekBar;
-import android.widget.TextView;
-
-import com.example.android.supportv7.R;
-
-public class CardViewActivity extends AppCompatActivity {
-
-    CardView mCardView;
-
-    TextView mInfoText;
-
-    SeekBar mCornerRadiusSeekBar;
-
-    SeekBar mWidthSeekBar;
-
-    SeekBar mHeightSeekBar;
-
-    SeekBar mElevationSeekBar;
-
-    SeekBar mMaxElevationSeekBar;
-
-    SeekBar mAlphaSeekBar;
-
-    boolean mResizeCardView = true;
-
-    private SeekBar.OnSeekBarChangeListener mOnSeekBarChangedListener
-            = new SeekBar.OnSeekBarChangeListener() {
-        @Override
-        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
-            update();
-        }
-
-        @Override
-        public void onStartTrackingTouch(SeekBar seekBar) {
-
-        }
-
-        @Override
-        public void onStopTrackingTouch(SeekBar seekBar) {
-
-        }
-    };
-
-    private void update() {
-        mElevationSeekBar.setMax(mMaxElevationSeekBar.getProgress());
-        if (mCornerRadiusSeekBar.getProgress() != mCardView.getRadius()) {
-            mCardView.setRadius(mCornerRadiusSeekBar.getProgress());
-        }
-        if (mElevationSeekBar.getProgress() != mCardView.getCardElevation()) {
-            mCardView.setCardElevation(mElevationSeekBar.getProgress());
-        }
-        if (mMaxElevationSeekBar.getProgress() != mCardView.getMaxCardElevation()) {
-            mCardView.setMaxCardElevation(mMaxElevationSeekBar.getProgress());
-        }
-        ViewCompat.setAlpha(mCardView, mAlphaSeekBar.getProgress() / 255f);
-        ViewGroup.LayoutParams lp;
-        if (mResizeCardView) {
-            lp = setViewBounds(mCardView);
-        } else {
-            lp = setViewBounds(mInfoText);
-        }
-        mInfoText.setText("radius: " + mCornerRadiusSeekBar.getProgress()
-                + ", alpha: " + mAlphaSeekBar.getProgress()
-                + "\n w: " + lp.width + "\nh: " + lp.height
-                + "\nelevation: " + mCardView.getCardElevation() + " of "
-                + mCardView.getMaxCardElevation());
-    }
-
-    private ViewGroup.LayoutParams setViewBounds(View view) {
-        ViewGroup.LayoutParams lp = view.getLayoutParams();
-        boolean changed = lp.width != mWidthSeekBar.getProgress()
-                || lp.height != mHeightSeekBar.getProgress();
-        if (!changed) {
-            return lp;
-        }
-        lp.width = mWidthSeekBar.getProgress();
-        lp.height = mHeightSeekBar.getProgress();
-        view.setLayoutParams(lp);
-        return lp;
-    }
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.activity_card_view);
-        mInfoText = (TextView) findViewById(R.id.info_text);
-        mCardView = (CardView) findViewById(R.id.card_view);
-        mCornerRadiusSeekBar = (SeekBar) findViewById(R.id.corner_radius_seek_bar);
-        mCornerRadiusSeekBar.setProgress((int) mCardView.getRadius());
-        mCornerRadiusSeekBar.setOnSeekBarChangeListener(mOnSeekBarChangedListener);
-
-        mWidthSeekBar = (SeekBar) findViewById(R.id.width_seek_bar);
-        mWidthSeekBar.setProgress(mCardView.getLayoutParams().width);
-
-        mWidthSeekBar.setOnSeekBarChangeListener(mOnSeekBarChangedListener);
-
-        mHeightSeekBar = (SeekBar) findViewById(R.id.height_seek_bar);
-        mHeightSeekBar.setProgress(mCardView.getLayoutParams().height);
-        mHeightSeekBar.setOnSeekBarChangeListener(mOnSeekBarChangedListener);
-
-        mElevationSeekBar = (SeekBar) findViewById(R.id.elevation_seek_bar);
-        mElevationSeekBar.setProgress((int) mCardView.getCardElevation());
-        mElevationSeekBar.setOnSeekBarChangeListener(mOnSeekBarChangedListener);
-
-        mMaxElevationSeekBar = (SeekBar) findViewById(R.id.max_elevation_seek_bar);
-        mMaxElevationSeekBar.setProgress((int) mCardView.getMaxCardElevation());
-        mMaxElevationSeekBar.setOnSeekBarChangeListener(mOnSeekBarChangedListener);
-
-        mAlphaSeekBar = (SeekBar) findViewById(R.id.alpha_seek_bar);
-        mAlphaSeekBar.setProgress((int) ViewCompat.getAlpha(mCardView) * 255);
-        mAlphaSeekBar.setOnSeekBarChangeListener(mOnSeekBarChangedListener);
-
-        RadioGroup rb = (RadioGroup) findViewById(R.id.select_target_radio);
-        rb.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
-            @Override
-            public void onCheckedChanged(RadioGroup group, int checkedId) {
-                mResizeCardView = checkedId == R.id.resize_card_view;
-                update();
-            }
-        });
-
-        new Handler().postDelayed(new Runnable() {
-            @Override
-            public void run() {
-                View content = findViewById(android.R.id.content);
-                mWidthSeekBar.setProgress(mCardView.getWidth());
-                mHeightSeekBar.setProgress(mCardView.getHeight());
-                mWidthSeekBar.setMax(content.getWidth());
-                mHeightSeekBar.setMax(content.getHeight());
-                update();
-            }
-        }, 100);
-
-        ((RadioGroup) findViewById(R.id.select_bg_color_radio))
-                .setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
-                    @Override
-                    public void onCheckedChanged(RadioGroup group, int checkedId) {
-                        mCardView.setCardBackgroundColor(
-                                getResources().getColorStateList(getColorId(checkedId)));
-                    }
-                });
-    }
-
-    private int getColorId(int id) {
-        switch (id) {
-            case R.id.yellow:
-                return R.color.card_yellow;
-            case R.id.aquatic:
-                return R.color.card_aquatic;
-            case R.id.classic:
-                return R.color.card_classic;
-            case R.id.sunbrite:
-                return R.color.card_sunbrite;
-            case R.id.tropical:
-                return R.color.card_tropical;
-            case R.id.selector:
-                return R.color.card_selector;
-            default:
-                return R.color.cardview_light_background;
-        }
-    }
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/view/GridLayout1.java b/samples/Support7Demos/src/com/example/android/supportv7/view/GridLayout1.java
deleted file mode 100644
index 6b27a2d..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/view/GridLayout1.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv7.view;
-
-import com.example.android.supportv7.R;
-
-import android.app.Activity;
-import android.os.Bundle;
-
-/**
- * Demonstrates using GridLayout to build the same "Simple Form" as in the
- * LinearLayout and RelativeLayout demos.
- */
-public class GridLayout1 extends Activity {
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.grid_layout_1);
-    }
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/view/GridLayout2.java b/samples/Support7Demos/src/com/example/android/supportv7/view/GridLayout2.java
deleted file mode 100644
index 86258aa..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/view/GridLayout2.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv7.view;
-
-import com.example.android.supportv7.R;
-
-import android.app.Activity;
-import android.os.Bundle;
-
-/**
- * A form, showing use of the GridLayout API from XML.
- */
-public class GridLayout2 extends Activity {
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.grid_layout_2);
-    }
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/view/GridLayout3.java b/samples/Support7Demos/src/com/example/android/supportv7/view/GridLayout3.java
deleted file mode 100644
index 71dffe5..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/view/GridLayout3.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv7.view;
-
-import static android.support.v7.widget.GridLayout.ALIGN_BOUNDS;
-import static android.support.v7.widget.GridLayout.BASELINE;
-import static android.support.v7.widget.GridLayout.CENTER;
-import static android.support.v7.widget.GridLayout.FILL;
-import static android.support.v7.widget.GridLayout.LEFT;
-import static android.support.v7.widget.GridLayout.RIGHT;
-import static android.support.v7.widget.GridLayout.spec;
-import static android.text.InputType.TYPE_CLASS_TEXT;
-import static android.text.InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS;
-import static android.text.InputType.TYPE_TEXT_VARIATION_PASSWORD;
-
-import android.app.Activity;
-import android.content.Context;
-import android.content.res.Configuration;
-import android.os.Bundle;
-import android.support.v7.widget.GridLayout;
-import android.support.v7.widget.GridLayout.LayoutParams;
-import android.support.v7.widget.GridLayout.Spec;
-import android.view.View;
-import android.widget.Button;
-import android.widget.EditText;
-import android.widget.TextView;
-
-/**
- * A form, showing use of the GridLayout API. Here we demonstrate use of the row/column order
- * preserved property which allows rows and or columns to pass over each other when needed.
- * The two buttons in the bottom right corner need to be separated from the other UI elements.
- * This can either be done by separating rows or separating columns - but we don't need
- * to do both and may only have enough space to do one or the other.
- */
-public class GridLayout3 extends Activity {
-    public static View create(Context context) {
-        GridLayout p = new GridLayout(context);
-        p.setUseDefaultMargins(true);
-        p.setAlignmentMode(ALIGN_BOUNDS);
-        Configuration configuration = context.getResources().getConfiguration();
-        if ((configuration.orientation == Configuration.ORIENTATION_PORTRAIT)) {
-            p.setColumnOrderPreserved(false);
-        } else {
-            p.setRowOrderPreserved(false);
-        }
-
-        Spec titleRow              = spec(0);
-        Spec introRow              = spec(1);
-        Spec emailRow              = spec(2, BASELINE);
-        Spec passwordRow           = spec(3, BASELINE);
-        Spec button1Row            = spec(5);
-        Spec button2Row            = spec(6);
-
-        Spec centerInAllColumns    = spec(0, 4, CENTER);
-        Spec leftAlignInAllColumns = spec(0, 4, LEFT);
-        Spec labelColumn           = spec(0, RIGHT);
-        Spec fieldColumn           = spec(1, LEFT);
-        Spec defineLastColumn      = spec(3);
-        Spec fillLastColumn        = spec(3, FILL);
-
-        {
-            TextView c = new TextView(context);
-            c.setTextSize(32);
-            c.setText("Email setup");
-            p.addView(c, new LayoutParams(titleRow, centerInAllColumns));
-        }
-        {
-            TextView c = new TextView(context);
-            c.setTextSize(16);
-            c.setText("You can configure email in a few simple steps:");
-            p.addView(c, new LayoutParams(introRow, leftAlignInAllColumns));
-        }
-        {
-            TextView c = new TextView(context);
-            c.setText("Email address:");
-            p.addView(c, new LayoutParams(emailRow, labelColumn));
-        }
-        {
-            EditText c = new EditText(context);
-            c.setEms(10);
-            c.setInputType(TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
-            p.addView(c, new LayoutParams(emailRow, fieldColumn));
-        }
-        {
-            TextView c = new TextView(context);
-            c.setText("Password:");
-            p.addView(c, new LayoutParams(passwordRow, labelColumn));
-        }
-        {
-            EditText c = new EditText(context);
-            c.setEms(8);
-            c.setInputType(TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_PASSWORD);
-            p.addView(c, new LayoutParams(passwordRow, fieldColumn));
-        }
-        {
-            Button c = new Button(context);
-            c.setText("Manual setup");
-            p.addView(c, new LayoutParams(button1Row, defineLastColumn));
-        }
-        {
-            Button c = new Button(context);
-            c.setText("Next");
-            p.addView(c, new LayoutParams(button2Row, fillLastColumn));
-        }
-
-        return p;
-    }
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(create(this));
-    }
-
-}
\ No newline at end of file
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/view/_index.html b/samples/Support7Demos/src/com/example/android/supportv7/view/_index.html
deleted file mode 100644
index 072967a..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/view/_index.html
+++ /dev/null
@@ -1,22 +0,0 @@
-
-<p>This section includes samples showing the use of the view
-package features of the static support library.</p>
-<ul>
-  <li><a href="#GridLayout">Grid Layout</a></li>
-</ul>
-
-
-<h3 id="GridLayout">Grid Layout</h3>
-<dl>
-  <dt><a href="GridLayout1.html">Grid Layout Simple Form</a></dt>
-  <dd>Demonstrates how to use GridLayout to create a simple data entry form.</dd>
-
-  <dt><a href="GridLayout2.html">Grid Layout Form (XML)</a></dt>
-  <dd>Demonstrates how to use GridLayout to create a more complex
-  data entry form using XML layout resources.</dd>
-
-  <dt><a href="GridLayout3.html">Grid Layout Form (Java)</a></dt>
-  <dd>Demonstrates how to use GridLayout to create a more complex
-  data entry form programmatically.</dd>
-</dl>
- 
\ No newline at end of file
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/widget/AnimatedRecyclerView.java b/samples/Support7Demos/src/com/example/android/supportv7/widget/AnimatedRecyclerView.java
deleted file mode 100644
index 6714f6d..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/widget/AnimatedRecyclerView.java
+++ /dev/null
@@ -1,750 +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.supportv7.widget;
-
-import com.example.android.supportv7.R;
-
-import android.animation.Animator;
-import android.animation.ValueAnimator;
-import android.annotation.TargetApi;
-import android.app.Activity;
-import android.content.Context;
-import android.os.Build;
-import android.os.Bundle;
-import android.support.v4.util.ArrayMap;
-import android.support.v4.view.MenuItemCompat;
-import android.support.v4.view.ViewCompat;
-import android.support.v4.view.ViewPropertyAnimatorListener;
-import android.support.v7.widget.DefaultItemAnimator;
-import android.support.v7.widget.RecyclerView;
-import android.util.DisplayMetrics;
-import android.util.TypedValue;
-import android.view.Menu;
-import android.view.MenuItem;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.CheckBox;
-import android.widget.CompoundButton;
-import android.widget.TextView;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class AnimatedRecyclerView extends Activity {
-
-    private static final int SCROLL_DISTANCE = 80; // dp
-
-    private RecyclerView mRecyclerView;
-
-    private int mNumItemsAdded = 0;
-    ArrayList<String> mItems = new ArrayList<String>();
-    MyAdapter mAdapter;
-
-    boolean mAnimationsEnabled = true;
-    boolean mPredictiveAnimationsEnabled = true;
-    RecyclerView.ItemAnimator mCachedAnimator = null;
-    boolean mEnableInPlaceChange = true;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.animated_recycler_view);
-
-        ViewGroup container = (ViewGroup) findViewById(R.id.container);
-        mRecyclerView = new RecyclerView(this);
-        mCachedAnimator = createAnimator();
-        mCachedAnimator.setChangeDuration(2000);
-        mRecyclerView.setItemAnimator(mCachedAnimator);
-        mRecyclerView.setLayoutManager(new MyLayoutManager(this));
-        mRecyclerView.setHasFixedSize(true);
-        mRecyclerView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
-                ViewGroup.LayoutParams.MATCH_PARENT));
-        for (int i = 0; i < 6; ++i) {
-            mItems.add("Item #" + i);
-        }
-        mAdapter = new MyAdapter(mItems);
-        mRecyclerView.setAdapter(mAdapter);
-        container.addView(mRecyclerView);
-
-        CheckBox enableAnimations = (CheckBox) findViewById(R.id.enableAnimations);
-        enableAnimations.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
-            @Override
-            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
-                if (isChecked && mRecyclerView.getItemAnimator() == null) {
-                    mRecyclerView.setItemAnimator(mCachedAnimator);
-                } else if (!isChecked && mRecyclerView.getItemAnimator() != null) {
-                    mRecyclerView.setItemAnimator(null);
-                }
-                mAnimationsEnabled = isChecked;
-            }
-        });
-
-        CheckBox enablePredictiveAnimations =
-                (CheckBox) findViewById(R.id.enablePredictiveAnimations);
-        enablePredictiveAnimations.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
-            @Override
-            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
-                mPredictiveAnimationsEnabled = isChecked;
-            }
-        });
-
-        CheckBox enableInPlaceChange = (CheckBox) findViewById(R.id.enableInPlaceChange);
-        enableInPlaceChange.setChecked(mEnableInPlaceChange);
-        enableInPlaceChange.setOnCheckedChangeListener(
-                new CompoundButton.OnCheckedChangeListener() {
-                    @Override
-                    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
-                        mEnableInPlaceChange = isChecked;
-                    }
-                });
-    }
-
-    private RecyclerView.ItemAnimator createAnimator() {
-        return new DefaultItemAnimator() {
-            List<ItemChangeAnimator> mPendingChangeAnimations = new ArrayList<>();
-            ArrayMap<RecyclerView.ViewHolder, ItemChangeAnimator> mRunningAnimations
-                    = new ArrayMap<>();
-            ArrayMap<MyViewHolder, Long> mPendingSettleList = new ArrayMap<>();
-
-            @Override
-            public void runPendingAnimations() {
-                super.runPendingAnimations();
-                for (ItemChangeAnimator anim : mPendingChangeAnimations) {
-                    anim.start();
-                    mRunningAnimations.put(anim.mViewHolder, anim);
-                }
-                mPendingChangeAnimations.clear();
-                for (int i = mPendingSettleList.size() - 1; i >=0; i--) {
-                    final MyViewHolder vh = mPendingSettleList.keyAt(i);
-                    final long duration = mPendingSettleList.valueAt(i);
-                    ViewCompat.animate(vh.textView).translationX(0f).alpha(1f)
-                            .setDuration(duration).setListener(
-                            new ViewPropertyAnimatorListener() {
-                                @Override
-                                public void onAnimationStart(View view) {
-                                    dispatchAnimationStarted(vh);
-                                }
-
-                                @Override
-                                public void onAnimationEnd(View view) {
-                                    ViewCompat.setTranslationX(vh.textView, 0f);
-                                    ViewCompat.setAlpha(vh.textView, 1f);
-                                    dispatchAnimationFinished(vh);
-                                }
-
-                                @Override
-                                public void onAnimationCancel(View view) {
-
-                                }
-                            }).start();
-                }
-                mPendingSettleList.clear();
-            }
-
-            @Override
-            public ItemHolderInfo recordPreLayoutInformation(RecyclerView.State state,
-                    RecyclerView.ViewHolder viewHolder,
-                    @AdapterChanges int changeFlags, List<Object> payloads) {
-                MyItemInfo info = (MyItemInfo) super
-                        .recordPreLayoutInformation(state, viewHolder, changeFlags, payloads);
-                info.text = ((MyViewHolder) viewHolder).textView.getText();
-                return info;
-            }
-
-            @Override
-            public ItemHolderInfo recordPostLayoutInformation(RecyclerView.State state,
-                    RecyclerView.ViewHolder viewHolder) {
-                MyItemInfo info = (MyItemInfo) super.recordPostLayoutInformation(state, viewHolder);
-                info.text = ((MyViewHolder) viewHolder).textView.getText();
-                return info;
-            }
-
-
-            @Override
-            public boolean canReuseUpdatedViewHolder(RecyclerView.ViewHolder viewHolder) {
-                return mEnableInPlaceChange;
-            }
-
-            @Override
-            public void endAnimation(RecyclerView.ViewHolder item) {
-                super.endAnimation(item);
-                for (int i = mPendingChangeAnimations.size() - 1; i >= 0; i--) {
-                    ItemChangeAnimator anim = mPendingChangeAnimations.get(i);
-                    if (anim.mViewHolder == item) {
-                        mPendingChangeAnimations.remove(i);
-                        anim.setFraction(1f);
-                        dispatchChangeFinished(item, true);
-                    }
-                }
-                for (int i = mRunningAnimations.size() - 1; i >= 0; i--) {
-                    ItemChangeAnimator animator = mRunningAnimations.get(item);
-                    if (animator != null) {
-                        animator.end();
-                        mRunningAnimations.removeAt(i);
-                    }
-                }
-                for (int  i = mPendingSettleList.size() - 1; i >= 0; i--) {
-                    final MyViewHolder vh = mPendingSettleList.keyAt(i);
-                    if (vh == item) {
-                        mPendingSettleList.removeAt(i);
-                        dispatchChangeFinished(item, true);
-                    }
-                }
-            }
-
-            @Override
-            public boolean animateChange(RecyclerView.ViewHolder oldHolder,
-                    RecyclerView.ViewHolder newHolder, ItemHolderInfo preInfo,
-                    ItemHolderInfo postInfo) {
-                if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB_MR1
-                        || oldHolder != newHolder) {
-                    return super.animateChange(oldHolder, newHolder, preInfo, postInfo);
-                }
-                return animateChangeApiHoneycombMr1(oldHolder, newHolder, preInfo, postInfo);
-            }
-
-            @TargetApi(Build.VERSION_CODES.HONEYCOMB_MR1)
-            private boolean animateChangeApiHoneycombMr1(RecyclerView.ViewHolder oldHolder,
-                    RecyclerView.ViewHolder newHolder,
-                    ItemHolderInfo preInfo, ItemHolderInfo postInfo) {
-                endAnimation(oldHolder);
-                MyItemInfo pre = (MyItemInfo) preInfo;
-                MyItemInfo post = (MyItemInfo) postInfo;
-                MyViewHolder vh = (MyViewHolder) oldHolder;
-
-                CharSequence finalText = post.text;
-
-                if (pre.text.equals(post.text)) {
-                    // same content. Just translate back to 0
-                    final long duration = (long) (getChangeDuration()
-                            * (ViewCompat.getTranslationX(vh.textView) / vh.textView.getWidth()));
-                    mPendingSettleList.put(vh, duration);
-                    // we set it here because previous endAnimation would set it to other value.
-                    vh.textView.setText(finalText);
-                } else {
-                    // different content, get out and come back.
-                    vh.textView.setText(pre.text);
-                    final ItemChangeAnimator anim = new ItemChangeAnimator(vh, finalText,
-                            getChangeDuration()) {
-                        @Override
-                        public void onAnimationEnd(Animator animation) {
-                            setFraction(1f);
-                            dispatchChangeFinished(mViewHolder, true);
-                        }
-
-                        @Override
-                        public void onAnimationStart(Animator animation) {
-                            dispatchChangeStarting(mViewHolder, true);
-                        }
-                    };
-                    mPendingChangeAnimations.add(anim);
-                }
-                return true;
-            }
-
-            @Override
-            public ItemHolderInfo obtainHolderInfo() {
-                return new MyItemInfo();
-            }
-        };
-    }
-
-
-    @TargetApi(Build.VERSION_CODES.HONEYCOMB_MR1)
-    abstract private static class ItemChangeAnimator implements
-            ValueAnimator.AnimatorUpdateListener, Animator.AnimatorListener {
-        CharSequence mFinalText;
-        ValueAnimator mValueAnimator;
-        MyViewHolder mViewHolder;
-        final float mMaxX;
-        final float mStartRatio;
-        public ItemChangeAnimator(MyViewHolder viewHolder, CharSequence finalText, long duration) {
-            mViewHolder = viewHolder;
-            mMaxX = mViewHolder.itemView.getWidth();
-            mStartRatio = ViewCompat.getTranslationX(mViewHolder.textView) / mMaxX;
-            mFinalText = finalText;
-            mValueAnimator = ValueAnimator.ofFloat(0f, 1f);
-            mValueAnimator.addUpdateListener(this);
-            mValueAnimator.addListener(this);
-            mValueAnimator.setDuration(duration);
-            mValueAnimator.setTarget(mViewHolder.itemView);
-        }
-
-        void setFraction(float fraction) {
-            fraction = mStartRatio + (1f - mStartRatio) * fraction;
-            if (fraction < .5f) {
-                ViewCompat.setTranslationX(mViewHolder.textView, fraction * mMaxX);
-                ViewCompat.setAlpha(mViewHolder.textView, 1f - fraction);
-            } else {
-                ViewCompat.setTranslationX(mViewHolder.textView, (1f - fraction) * mMaxX);
-                ViewCompat.setAlpha(mViewHolder.textView, fraction);
-                maybeSetFinalText();
-            }
-        }
-
-        @Override
-        public void onAnimationUpdate(ValueAnimator valueAnimator) {
-            setFraction(valueAnimator.getAnimatedFraction());
-        }
-
-        public void start() {
-            mValueAnimator.start();
-        }
-
-        @Override
-        public void onAnimationEnd(Animator animation) {
-            maybeSetFinalText();
-            ViewCompat.setAlpha(mViewHolder.textView, 1f);
-        }
-
-        public void maybeSetFinalText() {
-            if (mFinalText != null) {
-                mViewHolder.textView.setText(mFinalText);
-                mFinalText = null;
-            }
-        }
-
-        public void end() {
-            mValueAnimator.cancel();
-        }
-
-        @Override
-        public void onAnimationStart(Animator animation) {
-        }
-
-        @Override
-        public void onAnimationCancel(Animator animation) {
-        }
-
-        @Override
-        public void onAnimationRepeat(Animator animation) {
-        }
-    }
-
-    private static class MyItemInfo extends DefaultItemAnimator.ItemHolderInfo {
-        CharSequence text;
-    }
-
-    @Override
-    public boolean onCreateOptionsMenu(Menu menu) {
-        super.onCreateOptionsMenu(menu);
-        MenuItemCompat.setShowAsAction(menu.add("Layout"), MenuItemCompat.SHOW_AS_ACTION_IF_ROOM);
-        return true;
-    }
-
-    @Override
-    public boolean onOptionsItemSelected(MenuItem item) {
-        mRecyclerView.requestLayout();
-        return super.onOptionsItemSelected(item);
-    }
-
-    @SuppressWarnings("unused")
-    public void checkboxClicked(View view) {
-        ViewGroup parent = (ViewGroup) view.getParent();
-        boolean selected = ((CheckBox) view).isChecked();
-        MyViewHolder holder = (MyViewHolder) mRecyclerView.getChildViewHolder(parent);
-        mAdapter.selectItem(holder, selected);
-    }
-
-    @SuppressWarnings("unused")
-    public void itemClicked(View view) {
-        ViewGroup parent = (ViewGroup) view;
-        MyViewHolder holder = (MyViewHolder) mRecyclerView.getChildViewHolder(parent);
-        final int position = holder.getAdapterPosition();
-        if (position == RecyclerView.NO_POSITION) {
-            return;
-        }
-        mAdapter.toggleExpanded(holder);
-        mAdapter.notifyItemChanged(position);
-    }
-
-    public void deleteSelectedItems(View view) {
-        int numItems = mItems.size();
-        if (numItems > 0) {
-            for (int i = numItems - 1; i >= 0; --i) {
-                final String itemText = mItems.get(i);
-                boolean selected = mAdapter.mSelected.get(itemText);
-                if (selected) {
-                    removeAtPosition(i);
-                }
-            }
-        }
-    }
-
-    private String generateNewText() {
-        return "Added Item #" + mNumItemsAdded++;
-    }
-
-    public void d1a2d3(View view) {
-        removeAtPosition(1);
-        addAtPosition(2, "Added Item #" + mNumItemsAdded++);
-        removeAtPosition(3);
-    }
-
-    private void removeAtPosition(int position) {
-        if(position < mItems.size()) {
-            mItems.remove(position);
-            mAdapter.notifyItemRemoved(position);
-        }
-    }
-
-    private void addAtPosition(int position, String text) {
-        if (position > mItems.size()) {
-            position = mItems.size();
-        }
-        mItems.add(position, text);
-        mAdapter.mSelected.put(text, Boolean.FALSE);
-        mAdapter.mExpanded.put(text, Boolean.FALSE);
-        mAdapter.notifyItemInserted(position);
-    }
-
-    public void addDeleteItem(View view) {
-        addItem(view);
-        deleteSelectedItems(view);
-    }
-
-    public void deleteAddItem(View view) {
-        deleteSelectedItems(view);
-        addItem(view);
-    }
-
-    public void addItem(View view) {
-        addAtPosition(3, "Added Item #" + mNumItemsAdded++);
-    }
-
-    /**
-     * A basic ListView-style LayoutManager.
-     */
-    class MyLayoutManager extends RecyclerView.LayoutManager {
-        private static final String TAG = "MyLayoutManager";
-        private int mFirstPosition;
-        private final int mScrollDistance;
-
-        public MyLayoutManager(Context c) {
-            final DisplayMetrics dm = c.getResources().getDisplayMetrics();
-            mScrollDistance = (int) (SCROLL_DISTANCE * dm.density + 0.5f);
-        }
-
-        @Override
-        public boolean supportsPredictiveItemAnimations() {
-            return mPredictiveAnimationsEnabled;
-        }
-
-        @Override
-        public void onLayoutChildren(RecyclerView.Recycler recycler, RecyclerView.State state) {
-            int parentBottom = getHeight() - getPaddingBottom();
-
-            final View oldTopView = getChildCount() > 0 ? getChildAt(0) : null;
-            int oldTop = getPaddingTop();
-            if (oldTopView != null) {
-                oldTop = Math.min(oldTopView.getTop(), oldTop);
-            }
-
-            // Note that we add everything to the scrap, but we do not clean it up;
-            // that is handled by the RecyclerView after this method returns
-            detachAndScrapAttachedViews(recycler);
-
-            int top = oldTop;
-            int bottom = top;
-            final int left = getPaddingLeft();
-            final int right = getWidth() - getPaddingRight();
-
-            int count = state.getItemCount();
-            for (int i = 0; mFirstPosition + i < count && top < parentBottom; i++, top = bottom) {
-                View v = recycler.getViewForPosition(mFirstPosition + i);
-
-                RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) v.getLayoutParams();
-                addView(v);
-                measureChild(v, 0, 0);
-                bottom = top + v.getMeasuredHeight();
-                v.layout(left, top, right, bottom);
-                if (mPredictiveAnimationsEnabled && params.isItemRemoved()) {
-                    parentBottom += v.getHeight();
-                }
-            }
-
-            if (mAnimationsEnabled && mPredictiveAnimationsEnabled && !state.isPreLayout()) {
-                // Now that we've run a full layout, figure out which views were not used
-                // (cached in previousViews). For each of these views, position it where
-                // it would go, according to its position relative to the visible
-                // positions in the list. This information will be used by RecyclerView to
-                // record post-layout positions of these items for the purposes of animating them
-                // out of view
-
-                View lastVisibleView = getChildAt(getChildCount() - 1);
-                if (lastVisibleView != null) {
-                    RecyclerView.LayoutParams lastParams =
-                            (RecyclerView.LayoutParams) lastVisibleView.getLayoutParams();
-                    int lastPosition = lastParams.getViewLayoutPosition();
-                    final List<RecyclerView.ViewHolder> previousViews = recycler.getScrapList();
-                    count = previousViews.size();
-                    for (int i = 0; i < count; ++i) {
-                        View view = previousViews.get(i).itemView;
-                        RecyclerView.LayoutParams params =
-                                (RecyclerView.LayoutParams) view.getLayoutParams();
-                        if (params.isItemRemoved()) {
-                            continue;
-                        }
-                        int position = params.getViewLayoutPosition();
-                        int newTop;
-                        if (position < mFirstPosition) {
-                            newTop = view.getHeight() * (position - mFirstPosition);
-                        } else {
-                            newTop = lastVisibleView.getTop() + view.getHeight() *
-                                    (position - lastPosition);
-                        }
-                        view.offsetTopAndBottom(newTop - view.getTop());
-                    }
-                }
-            }
-        }
-
-        @Override
-        public RecyclerView.LayoutParams generateDefaultLayoutParams() {
-            return new RecyclerView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
-                    ViewGroup.LayoutParams.WRAP_CONTENT);
-        }
-
-        @Override
-        public boolean canScrollVertically() {
-            return true;
-        }
-
-        @Override
-        public int scrollVerticallyBy(int dy, RecyclerView.Recycler recycler,
-                RecyclerView.State state) {
-            if (getChildCount() == 0) {
-                return 0;
-            }
-
-            int scrolled = 0;
-            final int left = getPaddingLeft();
-            final int right = getWidth() - getPaddingRight();
-            if (dy < 0) {
-                while (scrolled > dy) {
-                    final View topView = getChildAt(0);
-                    final int hangingTop = Math.max(-topView.getTop(), 0);
-                    final int scrollBy = Math.min(scrolled - dy, hangingTop);
-                    scrolled -= scrollBy;
-                    offsetChildrenVertical(scrollBy);
-                    if (mFirstPosition > 0 && scrolled > dy) {
-                        mFirstPosition--;
-                        View v = recycler.getViewForPosition(mFirstPosition);
-                        addView(v, 0);
-                        measureChild(v, 0, 0);
-                        final int bottom = topView.getTop(); // TODO decorated top?
-                        final int top = bottom - v.getMeasuredHeight();
-                        v.layout(left, top, right, bottom);
-                    } else {
-                        break;
-                    }
-                }
-            } else if (dy > 0) {
-                final int parentHeight = getHeight();
-                while (scrolled < dy) {
-                    final View bottomView = getChildAt(getChildCount() - 1);
-                    final int hangingBottom = Math.max(bottomView.getBottom() - parentHeight, 0);
-                    final int scrollBy = -Math.min(dy - scrolled, hangingBottom);
-                    scrolled -= scrollBy;
-                    offsetChildrenVertical(scrollBy);
-                    if (scrolled < dy && state.getItemCount() > mFirstPosition + getChildCount()) {
-                        View v = recycler.getViewForPosition(mFirstPosition + getChildCount());
-                        final int top = getChildAt(getChildCount() - 1).getBottom();
-                        addView(v);
-                        measureChild(v, 0, 0);
-                        final int bottom = top + v.getMeasuredHeight();
-                        v.layout(left, top, right, bottom);
-                    } else {
-                        break;
-                    }
-                }
-            }
-            recycleViewsOutOfBounds(recycler);
-            return scrolled;
-        }
-
-        @Override
-        public View onFocusSearchFailed(View focused, int direction,
-                RecyclerView.Recycler recycler, RecyclerView.State state) {
-            final int oldCount = getChildCount();
-
-            if (oldCount == 0) {
-                return null;
-            }
-
-            final int left = getPaddingLeft();
-            final int right = getWidth() - getPaddingRight();
-
-            View toFocus = null;
-            int newViewsHeight = 0;
-            if (direction == View.FOCUS_UP || direction == View.FOCUS_BACKWARD) {
-                while (mFirstPosition > 0 && newViewsHeight < mScrollDistance) {
-                    mFirstPosition--;
-                    View v = recycler.getViewForPosition(mFirstPosition);
-                    final int bottom = getChildAt(0).getTop(); // TODO decorated top?
-                    addView(v, 0);
-                    measureChild(v, 0, 0);
-                    final int top = bottom - v.getMeasuredHeight();
-                    v.layout(left, top, right, bottom);
-                    if (v.isFocusable()) {
-                        toFocus = v;
-                        break;
-                    }
-                }
-            }
-            if (direction == View.FOCUS_DOWN || direction == View.FOCUS_FORWARD) {
-                while (mFirstPosition + getChildCount() < state.getItemCount() &&
-                        newViewsHeight < mScrollDistance) {
-                    View v = recycler.getViewForPosition(mFirstPosition + getChildCount());
-                    final int top = getChildAt(getChildCount() - 1).getBottom();
-                    addView(v);
-                    measureChild(v, 0, 0);
-                    final int bottom = top + v.getMeasuredHeight();
-                    v.layout(left, top, right, bottom);
-                    if (v.isFocusable()) {
-                        toFocus = v;
-                        break;
-                    }
-                }
-            }
-
-            return toFocus;
-        }
-
-        public void recycleViewsOutOfBounds(RecyclerView.Recycler recycler) {
-            final int childCount = getChildCount();
-            final int parentWidth = getWidth();
-            final int parentHeight = getHeight();
-            boolean foundFirst = false;
-            int first = 0;
-            int last = 0;
-            for (int i = 0; i < childCount; i++) {
-                final View v = getChildAt(i);
-                if (v.hasFocus() || (v.getRight() >= 0 && v.getLeft() <= parentWidth &&
-                        v.getBottom() >= 0 && v.getTop() <= parentHeight)) {
-                    if (!foundFirst) {
-                        first = i;
-                        foundFirst = true;
-                    }
-                    last = i;
-                }
-            }
-            for (int i = childCount - 1; i > last; i--) {
-                removeAndRecycleViewAt(i, recycler);
-            }
-            for (int i = first - 1; i >= 0; i--) {
-                removeAndRecycleViewAt(i, recycler);
-            }
-            if (getChildCount() == 0) {
-                mFirstPosition = 0;
-            } else {
-                mFirstPosition += first;
-            }
-        }
-
-        @Override
-        public void onItemsAdded(RecyclerView recyclerView, int positionStart, int itemCount) {
-            if (positionStart < mFirstPosition) {
-                mFirstPosition += itemCount;
-            }
-        }
-
-        @Override
-        public void onItemsRemoved(RecyclerView recyclerView, int positionStart, int itemCount) {
-            if (positionStart < mFirstPosition) {
-                mFirstPosition -= itemCount;
-            }
-        }
-    }
-
-    class MyAdapter extends RecyclerView.Adapter {
-        private int mBackground;
-        List<String> mData;
-        ArrayMap<String, Boolean> mSelected = new ArrayMap<String, Boolean>();
-        ArrayMap<String, Boolean> mExpanded = new ArrayMap<String, Boolean>();
-
-        public MyAdapter(List<String> data) {
-            TypedValue val = new TypedValue();
-            AnimatedRecyclerView.this.getTheme().resolveAttribute(
-                    R.attr.selectableItemBackground, val, true);
-            mBackground = val.resourceId;
-            mData = data;
-            for (String itemText : mData) {
-                mSelected.put(itemText, Boolean.FALSE);
-                mExpanded.put(itemText, Boolean.FALSE);
-            }
-        }
-
-        @Override
-        public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
-            MyViewHolder h = new MyViewHolder(getLayoutInflater().inflate(R.layout.selectable_item,
-                    null));
-            h.textView.setMinimumHeight(128);
-            h.textView.setFocusable(true);
-            h.textView.setBackgroundResource(mBackground);
-            return h;
-        }
-
-        @Override
-        public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
-            String itemText = mData.get(position);
-            MyViewHolder myViewHolder = (MyViewHolder) holder;
-            myViewHolder.boundText = itemText;
-            myViewHolder.textView.setText(itemText);
-            boolean selected = false;
-            if (mSelected.get(itemText) != null) {
-                selected = mSelected.get(itemText);
-            }
-            myViewHolder.checkBox.setChecked(selected);
-            Boolean expanded = mExpanded.get(itemText);
-            if (Boolean.TRUE.equals(expanded)) {
-                myViewHolder.textView.setText("More text for the expanded version");
-            } else {
-                myViewHolder.textView.setText(itemText);
-            }
-        }
-
-        @Override
-        public int getItemCount() {
-            return mData.size();
-        }
-
-        public void selectItem(MyViewHolder holder, boolean selected) {
-            mSelected.put(holder.boundText, selected);
-        }
-
-        public void toggleExpanded(MyViewHolder holder) {
-            mExpanded.put(holder.boundText, !mExpanded.get(holder.boundText));
-        }
-    }
-
-    static class MyViewHolder extends RecyclerView.ViewHolder {
-        public TextView textView;
-        public CheckBox checkBox;
-        public String boundText;
-
-        public MyViewHolder(View v) {
-            super(v);
-            textView = (TextView) v.findViewById(R.id.text);
-            checkBox = (CheckBox) v.findViewById(R.id.selected);
-        }
-
-        @Override
-        public String toString() {
-            return super.toString() + " \"" + textView.getText() + "\"";
-        }
-    }
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/widget/AsyncListUtilActivity.java b/samples/Support7Demos/src/com/example/android/supportv7/widget/AsyncListUtilActivity.java
deleted file mode 100644
index 8ec3a23..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/widget/AsyncListUtilActivity.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- * 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.supportv7.widget;
-
-import com.example.android.supportv7.Cheeses;
-
-import android.app.Activity;
-import android.content.Context;
-import android.os.Bundle;
-import android.support.v4.view.MenuItemCompat;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.v7.widget.RecyclerView;
-import android.support.v7.util.AsyncListUtil;
-import android.view.Menu;
-import android.view.MenuItem;
-import android.view.ViewGroup;
-import android.widget.TextView;
-
-/**
- * A sample Activity to demonstrate capabilities of {@link AsyncListUtil}.
- */
-public class AsyncListUtilActivity extends Activity {
-
-    private static final String TAG = "AsyncListUtilActivity";
-
-    private RecyclerView mRecyclerView;
-
-    private LinearLayoutManager mLinearLayoutManager;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        mRecyclerView = new RecyclerView(this);
-        mLinearLayoutManager = new LinearLayoutManager(this);
-        mRecyclerView.setLayoutManager(mLinearLayoutManager);
-        mRecyclerView.setHasFixedSize(true);
-        final ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(
-                ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
-        mRecyclerView.setLayoutParams(layoutParams);
-        mRecyclerView.setAdapter(new AsyncAdapter());
-        setContentView(mRecyclerView);
-    }
-
-    @Override
-    public boolean onCreateOptionsMenu(Menu menu) {
-        super.onCreateOptionsMenu(menu);
-        MenuItemCompat.setShowAsAction(menu.add("Layout"), MenuItemCompat.SHOW_AS_ACTION_IF_ROOM);
-        return true;
-    }
-
-    @Override
-    public boolean onOptionsItemSelected(MenuItem item) {
-        mRecyclerView.requestLayout();
-        return super.onOptionsItemSelected(item);
-    }
-
-    private static class TextViewHolder extends RecyclerView.ViewHolder {
-        TextView textView;
-        public TextViewHolder(Context context) {
-            super(new TextView(context));
-            textView = (TextView) itemView;
-        }
-    }
-
-    private class AsyncAdapter extends RecyclerView.Adapter<TextViewHolder> {
-
-        private AsyncListUtil<String> mAsyncListUtil;
-
-        AsyncAdapter() {
-            mAsyncListUtil = new AsyncStringListUtil();
-        }
-
-        @Override
-        public TextViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
-            return new TextViewHolder(parent.getContext());
-        }
-
-        @Override
-        public void onBindViewHolder(TextViewHolder holder, int position) {
-            final String itemString = mAsyncListUtil.getItem(position);
-            if (itemString == null) {
-                holder.textView.setText("loading...");
-            } else {
-                holder.textView.setText(itemString);
-            }
-        }
-
-        @Override
-        public int getItemCount() {
-            return mAsyncListUtil.getItemCount();
-        }
-    }
-
-    private class AsyncStringListUtil extends AsyncListUtil<String> {
-
-        private static final int TILE_SIZE = 5;
-
-        private static final long DELAY_MS = 500;
-
-        public AsyncStringListUtil() {
-            super(String.class, TILE_SIZE,
-                    new AsyncListUtil.DataCallback<String>() {
-                        @Override
-                        public int refreshData() {
-                            return Cheeses.sCheeseStrings.length;
-                        }
-
-                        @Override
-                        public void fillData(String[] data, int startPosition, int itemCount) {
-                            sleep();
-                            for (int i = 0; i < itemCount; i++) {
-                                data[i] = Cheeses.sCheeseStrings[startPosition + i];
-                            }
-                        }
-
-                        private void sleep() {
-                            try {
-                                Thread.sleep(DELAY_MS);
-                            } catch (InterruptedException e) {
-                                e.printStackTrace();
-                            }
-                        }
-                    },
-                    new AsyncListUtil.ViewCallback() {
-                        @Override
-                        public void getItemRangeInto(int[] outRange) {
-                            outRange[0] = mLinearLayoutManager.findFirstVisibleItemPosition();
-                            outRange[1] = mLinearLayoutManager.findLastVisibleItemPosition();
-                        }
-
-                        @Override
-                        public void onDataRefresh() {
-                            mRecyclerView.getAdapter().notifyDataSetChanged();
-                        }
-
-                        @Override
-                        public void onItemLoaded(int position) {
-                            mRecyclerView.getAdapter().notifyItemChanged(position);
-                        }
-                    });
-
-            mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
-                @Override
-                public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
-                    onRangeChanged();
-                }
-            });
-        }
-    }
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/widget/BaseLayoutManagerActivity.java b/samples/Support7Demos/src/com/example/android/supportv7/widget/BaseLayoutManagerActivity.java
deleted file mode 100644
index 002a574..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/widget/BaseLayoutManagerActivity.java
+++ /dev/null
@@ -1,192 +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.supportv7.widget;
-
-import com.example.android.supportv7.Cheeses;
-import com.example.android.supportv7.R;
-import com.example.android.supportv7.widget.adapter.SimpleStringAdapter;
-import com.example.android.supportv7.widget.util.ConfigToggle;
-import com.example.android.supportv7.widget.util.ConfigViewHolder;
-
-import android.app.Activity;
-import android.content.Context;
-import android.os.Bundle;
-import android.support.v7.widget.DefaultItemAnimator;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.v7.widget.RecyclerView;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.BaseAdapter;
-import android.widget.CheckBox;
-import android.widget.CompoundButton;
-import android.widget.EditText;
-import android.widget.Spinner;
-import android.widget.TextView;
-
-/**
- * A simple activity that can be extended to demonstrate LayoutManagers.
- * <p>
- * It initializes a sample adapter and a list of configuration options. Extending activities can
- * define the {@link ConfigToggle} list depending on its functionality.
- */
-abstract public class BaseLayoutManagerActivity<T extends RecyclerView.LayoutManager>
-        extends Activity {
-
-    protected T mLayoutManager;
-
-    protected RecyclerView mRecyclerView;
-
-    private ConfigToggle[] mConfigToggles;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.activity_base_layout_manager);
-        initToggles();
-        initRecyclerView();
-        initSpinner();
-    }
-
-    abstract protected T createLayoutManager();
-
-    private void initRecyclerView() {
-        mRecyclerView = (RecyclerView) findViewById(R.id.recycler_view);
-        mRecyclerView.setHasFixedSize(true);
-        mLayoutManager = createLayoutManager();
-        mRecyclerView.setLayoutManager(mLayoutManager);
-        mRecyclerView.setAdapter(createAdapter());
-        ((DefaultItemAnimator)mRecyclerView.getItemAnimator()).setSupportsChangeAnimations(true);
-        onRecyclerViewInit(mRecyclerView);
-    }
-
-    protected void onRecyclerViewInit(RecyclerView recyclerView) {
-
-    }
-
-    protected RecyclerView.Adapter createAdapter() {
-        return new SimpleStringAdapter(this, Cheeses.sCheeseStrings) {
-            @Override
-            public SimpleStringAdapter.ViewHolder onCreateViewHolder(ViewGroup parent,
-                    int viewType) {
-                final SimpleStringAdapter.ViewHolder vh = super
-                        .onCreateViewHolder(parent, viewType);
-                vh.itemView.setOnClickListener(new View.OnClickListener() {
-                    @Override
-                    public void onClick(View v) {
-                        final int pos = vh.getAdapterPosition();
-                        if (pos != RecyclerView.NO_POSITION && pos + 1 < getItemCount()) {
-                            swap(pos, pos + 1);
-                        }
-                    }
-                });
-                return vh;
-            }
-        };
-    }
-
-    private void initToggles() {
-        mConfigToggles = createConfigToggles();
-        RecyclerView configView = (RecyclerView) findViewById(R.id.config_recycler_view);
-        configView.setAdapter(mConfigAdapter);
-        configView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL,
-                false));
-        configView.setHasFixedSize(true);
-    }
-
-    public void onScrollClicked(View view) {
-        final EditText scrollOffset = (EditText) findViewById(R.id.scroll_offset);
-        final CheckBox checkBox = (CheckBox) findViewById(R.id.enable_smooth_scroll);
-        final Spinner spinner = (Spinner) findViewById(R.id.spinner);
-
-        Integer offset = null;
-        String offsetString = scrollOffset.getText().toString();
-        try {
-            offset = Integer.parseInt(offsetString);
-        } catch (NumberFormatException ex) {
-
-        }
-        final boolean smooth = checkBox.isChecked();
-        if (offset == null) {
-            scrollToPosition(smooth, spinner.getSelectedItemPosition());
-        } else {
-            scrollToPositionWithOffset(smooth, spinner.getSelectedItemPosition(), offset);
-        }
-    }
-
-    private void initSpinner() {
-        final Spinner spinner = (Spinner) findViewById(R.id.spinner);
-        spinner.setAdapter(new BaseAdapter() {
-            @Override
-            public int getCount() {
-                return mRecyclerView.getAdapter().getItemCount();
-            }
-
-            @Override
-            public Integer getItem(int position) {
-                return position;
-            }
-
-            @Override
-            public long getItemId(int position) {
-                return position;
-            }
-
-            @Override
-            public View getView(int position, View convertView, ViewGroup parent) {
-                if (convertView == null) {
-                    convertView = new TextView(parent.getContext());
-                }
-                ((TextView) convertView).setText(" " + position + " ");
-                return convertView;
-            }
-        });
-    }
-
-    protected void scrollToPosition(boolean smooth, int position) {
-        if (smooth) {
-            mRecyclerView.smoothScrollToPosition(position);
-        } else {
-            mRecyclerView.scrollToPosition(position);
-        }
-    }
-
-    protected void scrollToPositionWithOffset(boolean smooth, int position, int offset) {
-        scrollToPosition(smooth, position);
-    }
-
-    abstract ConfigToggle[] createConfigToggles();
-
-    private RecyclerView.Adapter mConfigAdapter = new RecyclerView.Adapter<ConfigViewHolder>() {
-        @Override
-        public ConfigViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
-            return new ConfigViewHolder(LayoutInflater.from(parent.getContext())
-                    .inflate(R.layout.config_view_toggle, parent, false));
-        }
-
-        @Override
-        public void onBindViewHolder(ConfigViewHolder holder, int position) {
-            ConfigToggle toggle = mConfigToggles[position];
-            holder.bind(toggle);
-        }
-
-        @Override
-        public int getItemCount() {
-            return mConfigToggles.length;
-        }
-    };
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/widget/DrawerLayoutActivity.java b/samples/Support7Demos/src/com/example/android/supportv7/widget/DrawerLayoutActivity.java
deleted file mode 100644
index 55ad19d..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/widget/DrawerLayoutActivity.java
+++ /dev/null
@@ -1,257 +0,0 @@
-/*
- * 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.supportv7.widget;
-
-import android.content.res.Configuration;
-import android.content.res.Resources;
-import android.content.res.TypedArray;
-import android.os.Bundle;
-import android.support.v4.view.GravityCompat;
-import android.support.v4.widget.DrawerLayout;
-import android.support.v7.app.ActionBarDrawerToggle;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.Toolbar;
-import android.view.MenuItem;
-import android.view.View;
-import android.view.ViewTreeObserver;
-import android.widget.AdapterView;
-import android.widget.ArrayAdapter;
-import android.widget.FrameLayout;
-import android.widget.ListView;
-import android.widget.TextView;
-import com.example.android.supportv7.R;
-import com.example.android.supportv7.Shakespeare;
-
-/**
- * This example illustrates a common usage of the DrawerLayout widget combined with Toolbar
- * in the Android support library that respect the
- * <a href="https://www.google.com/design/spec/patterns/navigation-drawer.html">Material design
- * guidelines</a> for the drawer component.
- *
- *
- * <p>A DrawerLayout should be positioned at the top of your view hierarchy, placing it
- * below the action bar but above your content views. The primary content should match_parent
- * in both dimensions. Each drawer should define a reasonable width and match_parent for height.
- * Drawer views should be positioned after the content view in your layout to preserve proper
- * ordering.</p>
- *
- * <p>When a navigation (left) drawer is present, the host activity should detect presses of
- * the action bar's Up affordance as a signal to open and close the navigation drawer.
- * Items within the drawer should fall into one of two categories.</p>
- *
- * <ul>
- *     <li><strong>View switches</strong>. A view switch follows the same basic policies as
- *     list or tab navigation in that a view switch does not create navigation history.
- *     This pattern should only be used at the root activity of a task, leaving some form
- *     of Up navigation active for activities further down the navigation hierarchy.</li>
- *     <li><strong>Selective Up</strong>. The drawer allows the user to choose an alternate
- *     parent for Up navigation. This allows a user to jump across an app's navigation
- *     hierarchy at will. The application should treat this as it treats Up navigation from
- *     a different task, replacing the current task stack using TaskStackBuilder or similar.
- *     This is the only form of navigation drawer that should be used outside of the root
- *     activity of a task.</li>
- * </ul>
- *
- * <p>Right side drawers should be used for actions, not navigation. This follows the pattern
- * established by the Action Bar that navigation should be to the left and actions to the right.
- * An action should be an operation performed on the current contents of the window,
- * for example enabling or disabling a data overlay on top of the current content.</p>
- *
- * <p>When the drawer is open, it is above the application toolbar. On Lollipop versions of the
- * platform and above the drawer spans the full height of the screen, including behind the system
- * status bar.</p>
- */
-public class DrawerLayoutActivity extends AppCompatActivity {
-    private DrawerLayout mDrawerLayout;
-    private ListView mStartDrawer;
-    private FrameLayout mEndDrawer;
-    private TextView mContent;
-
-    private ActionBarDrawerToggle mDrawerToggle;
-    private Toolbar mToolbar;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        setContentView(R.layout.drawer_layout);
-
-        mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
-        mStartDrawer = (ListView) findViewById(R.id.start_drawer);
-        mEndDrawer = (FrameLayout) findViewById(R.id.end_drawer);
-        mContent = (TextView) findViewById(R.id.content_text);
-
-        mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START);
-        mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow_end, GravityCompat.END);
-
-        // The drawer title must be set in order to announce state changes when
-        // accessibility is turned on. This is typically a simple description,
-        // e.g. "Navigation".
-        mDrawerLayout.setDrawerTitle(GravityCompat.START, getString(R.string.drawer_title));
-
-        mStartDrawer.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,
-                Shakespeare.TITLES));
-        mStartDrawer.setOnItemClickListener(new DrawerItemClickListener());
-
-        // Find the toolbar in our layout and set it as the support action bar on the activity.
-        // This is required to have the drawer slide "over" the toolbar.
-        mToolbar = (Toolbar) findViewById(R.id.toolbar);
-        mToolbar.setTitle(R.string.drawer_title);
-        setSupportActionBar(mToolbar);
-
-        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
-        getSupportActionBar().setDisplayShowHomeEnabled(false);
-
-        // ActionBarDrawerToggle provides convenient helpers for tying together the
-        // prescribed interactions between a top-level sliding drawer and the action bar.
-        // Note that, as the Javadocs of ActionBarDrawerToggle constructors say, we are
-        // *not* using a constructor that gets a Toolbar since we're setting our toolbar
-        // dynamically at runtime. Furthermore, as the drawer is sliding over the toolbar,
-        // we are suppressing the morphing animation from hamburger to back arrow by
-        // calling super.onDrawerSlide with slideOffset=0.0f. In case your app only has
-        // top-level pages and doesn't need back arrow visuals at all, you can set up
-        // your activity theme to have attribute named "drawerArrowStyle" that points
-        // to an extension of Widget.AppCompat.DrawerArrowToggle that has its "spinBars"
-        // attribute set to false.
-        mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
-                R.string.drawer_open, R.string.drawer_close) {
-            @Override
-            public void onDrawerOpened(View drawerView) {
-                super.onDrawerOpened(drawerView);
-                super.onDrawerSlide(drawerView, 0.0f);
-            }
-
-            @Override
-            public void onDrawerSlide(View drawerView, float slideOffset) {
-                super.onDrawerSlide(drawerView, 0.0f);
-            }
-        };
-
-        mDrawerLayout.addDrawerListener(mDrawerToggle);
-
-        // Configure the background color fill of the system status bar (on supported platform
-        // versions) and the toolbar itself. We're using the same color, and android:statusBar
-        // from the theme makes the status bar slightly darker.
-        final int metalBlueColor = getResources().getColor(R.color.drawer_sample_metal_blue);
-        mDrawerLayout.setStatusBarBackgroundColor(metalBlueColor);
-        mToolbar.setBackgroundColor(metalBlueColor);
-
-        // Register a pre-draw listener to get the initial width of the DrawerLayout so
-        // that we can determine the width of the drawer based on the Material spec at
-        // https://www.google.com/design/spec/patterns/navigation-drawer.html#navigation-drawer-specs
-        mDrawerLayout.getViewTreeObserver().addOnPreDrawListener(
-                new ViewTreeObserver.OnPreDrawListener() {
-                    @Override
-                    public boolean onPreDraw() {
-                        // What is the width of the entire DrawerLayout?
-                        final int drawerLayoutWidth = mDrawerLayout.getWidth();
-
-                        // What is the action bar size?
-                        final Resources.Theme theme = mDrawerLayout.getContext().getTheme();
-                        final TypedArray a = theme.obtainStyledAttributes(
-                                new int[] { android.support.v7.appcompat.R.attr.actionBarSize });
-                        final int actionBarSize = a.getDimensionPixelSize(0, 0);
-                        if (a != null) {
-                            a.recycle();
-                        }
-
-                        // Compute the width of the drawer and set it on the layout params.
-                        final int idealDrawerWidth = 5 * actionBarSize;
-                        final int maxDrawerWidth = Math.max(0, drawerLayoutWidth - actionBarSize);
-                        final int drawerWidth = Math.min(idealDrawerWidth, maxDrawerWidth);
-
-                        final DrawerLayout.LayoutParams startDrawerLp =
-                                (DrawerLayout.LayoutParams) mStartDrawer.getLayoutParams();
-                        startDrawerLp.width = drawerWidth;
-                        mStartDrawer.setLayoutParams(startDrawerLp);
-
-                        final DrawerLayout.LayoutParams endDrawerLp =
-                                (DrawerLayout.LayoutParams) mEndDrawer.getLayoutParams();
-                        endDrawerLp.width = drawerWidth;
-                        mEndDrawer.setLayoutParams(endDrawerLp);
-
-                        // Remove ourselves as the pre-draw listener since this is a one-time
-                        // configuration.
-                        mDrawerLayout.getViewTreeObserver().removeOnPreDrawListener(this);
-                        return true;
-                    }
-        });
-    }
-
-    @Override
-    protected void onPostCreate(Bundle savedInstanceState) {
-        super.onPostCreate(savedInstanceState);
-
-        // Sync the toggle state after onRestoreInstanceState has occurred.
-        mDrawerToggle.syncState();
-    }
-
-    @Override
-    public boolean onOptionsItemSelected(MenuItem item) {
-        /*
-         * The action bar home/up action should open or close the drawer.
-         * The drawer toggle will take care of this.
-         */
-        if (mDrawerToggle.onOptionsItemSelected(item)) {
-            return true;
-        }
-        return super.onOptionsItemSelected(item);
-    }
-
-    @Override
-    public void onBackPressed() {
-        boolean hadOpenDrawer = false;
-        // Is the start drawer open?
-        if (mDrawerLayout.isDrawerOpen(mStartDrawer)) {
-            // Close it
-            mDrawerLayout.closeDrawer(mStartDrawer);
-            hadOpenDrawer = true;
-        }
-        // Is the end drawer open?
-        if (mDrawerLayout.isDrawerOpen(mEndDrawer)) {
-            // Close it
-            mDrawerLayout.closeDrawer(mEndDrawer);
-            hadOpenDrawer = true;
-        }
-
-        if (hadOpenDrawer) {
-            // If we had one or both drawers open, now that we've closed it / them, return.
-            return;
-        }
-
-        super.onBackPressed();
-    }
-
-    @Override
-    public void onConfigurationChanged(Configuration newConfig) {
-        super.onConfigurationChanged(newConfig);
-        mDrawerToggle.onConfigurationChanged(newConfig);
-    }
-
-    /**
-     * This list item click listener implements very simple view switching by changing
-     * the primary content text. The drawer is closed when a selection is made.
-     */
-    private class DrawerItemClickListener implements ListView.OnItemClickListener {
-        @Override
-        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
-            mContent.setText(Shakespeare.DIALOGUE[position]);
-            mToolbar.setTitle(Shakespeare.TITLES[position]);
-            mDrawerLayout.closeDrawer(mStartDrawer);
-        }
-    }
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/widget/GridLayoutManagerActivity.java b/samples/Support7Demos/src/com/example/android/supportv7/widget/GridLayoutManagerActivity.java
deleted file mode 100644
index 3ce5c60..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/widget/GridLayoutManagerActivity.java
+++ /dev/null
@@ -1,137 +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.supportv7.widget;
-
-import com.example.android.supportv7.Cheeses;
-import com.example.android.supportv7.R;
-import com.example.android.supportv7.widget.adapter.SimpleStringAdapter;
-import com.example.android.supportv7.widget.util.ConfigToggle;
-
-import android.support.v4.view.ViewCompat;
-import android.support.v7.widget.GridLayoutManager;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.v7.widget.RecyclerView;
-import android.view.View;
-import android.view.ViewGroup;
-
-/**
- * A sample Activity to demonstrate capabilities of {@link GridLayoutManager}.
- */
-public class GridLayoutManagerActivity extends BaseLayoutManagerActivity<GridLayoutManager> {
-    SimpleStringAdapter mAdapter;
-    @Override
-    protected GridLayoutManager createLayoutManager() {
-        GridLayoutManager lm = new GridLayoutManager(this, 3);
-        lm.setReverseLayout(true);
-        lm.setSpanSizeLookup(mSpanSizeLookup);
-        return lm;
-    }
-
-    GridLayoutManager.SpanSizeLookup mSpanSizeLookup = new GridLayoutManager.SpanSizeLookup() {
-        @Override
-        public int getSpanSize(int position) {
-            String item = mAdapter.getValueAt(position);
-            return 1 + (Math.abs(item.hashCode()) % mLayoutManager.getSpanCount());
-        }
-    };
-
-    @Override
-    ConfigToggle[] createConfigToggles() {
-        return new ConfigToggle[]{
-                new ConfigToggle(this, R.string.checkbox_orientation) {
-                    @Override
-                    public boolean isChecked() {
-                        return mLayoutManager.getOrientation() == LinearLayoutManager.HORIZONTAL;
-                    }
-
-                    @Override
-                    public void onChange(boolean newValue) {
-                        mLayoutManager.setOrientation(newValue ? LinearLayoutManager.HORIZONTAL
-                                : LinearLayoutManager.VERTICAL);
-                    }
-                },
-                new ConfigToggle(this, R.string.checkbox_reverse) {
-                    @Override
-                    public boolean isChecked() {
-                        return mLayoutManager.getReverseLayout();
-                    }
-
-                    @Override
-                    public void onChange(boolean newValue) {
-                        mLayoutManager.setReverseLayout(newValue);
-                    }
-                },
-                new ConfigToggle(this, R.string.checkbox_layout_dir) {
-                    @Override
-                    public boolean isChecked() {
-                        return ViewCompat.getLayoutDirection(mRecyclerView) ==
-                                ViewCompat.LAYOUT_DIRECTION_RTL;
-                    }
-
-                    @Override
-                    public void onChange(boolean newValue) {
-                        ViewCompat.setLayoutDirection(mRecyclerView, newValue ?
-                                ViewCompat.LAYOUT_DIRECTION_RTL : ViewCompat.LAYOUT_DIRECTION_LTR);
-                    }
-                },
-                new ConfigToggle(this, R.string.checkbox_stack_from_end) {
-                    @Override
-                    public boolean isChecked() {
-                        return mLayoutManager.getStackFromEnd();
-                    }
-
-                    @Override
-                    public void onChange(boolean newValue) {
-                        mLayoutManager.setStackFromEnd(newValue);
-                    }
-                }
-        };
-    }
-
-    @Override
-    protected void scrollToPositionWithOffset(boolean smooth, int position, int offset) {
-        if (smooth) {
-            super.scrollToPositionWithOffset(smooth, position, offset);
-        } else {
-            mLayoutManager.scrollToPositionWithOffset(position, offset);
-        }
-    }
-
-    protected RecyclerView.Adapter createAdapter() {
-        mAdapter = new SimpleStringAdapter(this, Cheeses.sCheeseStrings) {
-            @Override
-            public SimpleStringAdapter.ViewHolder onCreateViewHolder(ViewGroup parent,
-                    int viewType) {
-                final SimpleStringAdapter.ViewHolder vh = super
-                        .onCreateViewHolder(parent, viewType);
-                vh.itemView.setOnClickListener(new View.OnClickListener() {
-                    @Override
-                    public void onClick(View v) {
-                        final int pos = vh.getAdapterPosition();
-                        if (pos == RecyclerView.NO_POSITION) {
-                            return;
-                        }
-                        if (pos + 1 < getItemCount()) {
-                            swap(pos, pos + 1);
-                        }
-                    }
-                });
-                return vh;
-            }
-        };
-        return mAdapter;
-    }
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/widget/LinearLayoutManagerActivity.java b/samples/Support7Demos/src/com/example/android/supportv7/widget/LinearLayoutManagerActivity.java
deleted file mode 100644
index 7482e3e..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/widget/LinearLayoutManagerActivity.java
+++ /dev/null
@@ -1,100 +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.supportv7.widget;
-
-import com.example.android.supportv7.widget.decorator.DividerItemDecoration;
-
-import android.support.v4.view.ViewCompat;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.v7.widget.RecyclerView;
-import com.example.android.supportv7.R;
-import com.example.android.supportv7.widget.util.ConfigToggle;
-
-/**
- * A sample activity that uses {@link LinearLayoutManager}.
- */
-public class LinearLayoutManagerActivity extends BaseLayoutManagerActivity<LinearLayoutManager> {
-    private DividerItemDecoration mDividerItemDecoration;
-
-    @Override
-    protected LinearLayoutManager createLayoutManager() {
-        return new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false);
-    }
-
-    @Override
-    protected void onRecyclerViewInit(RecyclerView recyclerView) {
-        mDividerItemDecoration = new DividerItemDecoration(this, mLayoutManager.getOrientation());
-        recyclerView.addItemDecoration(mDividerItemDecoration);
-    }
-
-    @Override
-    ConfigToggle[] createConfigToggles() {
-        return new ConfigToggle[]{
-                new ConfigToggle(this, R.string.checkbox_orientation) {
-                    @Override
-                    public boolean isChecked() {
-                        return mLayoutManager.getOrientation() == LinearLayoutManager.HORIZONTAL;
-                    }
-
-                    @Override
-                    public void onChange(boolean newValue) {
-                        mLayoutManager.setOrientation(newValue ? LinearLayoutManager.HORIZONTAL
-                                : LinearLayoutManager.VERTICAL);
-                        if (mDividerItemDecoration != null) {
-                            mDividerItemDecoration.setOrientation(mLayoutManager.getOrientation());
-                        }
-
-                    }
-                },
-                new ConfigToggle(this, R.string.checkbox_reverse) {
-                    @Override
-                    public boolean isChecked() {
-                        return mLayoutManager.getReverseLayout();
-                    }
-
-                    @Override
-                    public void onChange(boolean newValue) {
-                        mLayoutManager.setReverseLayout(newValue);
-                    }
-                },
-                new ConfigToggle(this, R.string.checkbox_layout_dir) {
-                    @Override
-                    public boolean isChecked() {
-                        return ViewCompat.getLayoutDirection(mRecyclerView) ==
-                                ViewCompat.LAYOUT_DIRECTION_RTL;
-                    }
-
-                    @Override
-                    public void onChange(boolean newValue) {
-                        ViewCompat.setLayoutDirection(mRecyclerView, newValue ?
-                                ViewCompat.LAYOUT_DIRECTION_RTL : ViewCompat.LAYOUT_DIRECTION_LTR);
-                    }
-                },
-                new ConfigToggle(this, R.string.checkbox_stack_from_end) {
-                    @Override
-                    public boolean isChecked() {
-                        return mLayoutManager.getStackFromEnd();
-                    }
-
-                    @Override
-                    public void onChange(boolean newValue) {
-                        mLayoutManager.setStackFromEnd(newValue);
-                    }
-                }
-        };
-    }
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/widget/ListPopupWindowActivity.java b/samples/Support7Demos/src/com/example/android/supportv7/widget/ListPopupWindowActivity.java
deleted file mode 100644
index 9e4628e..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/widget/ListPopupWindowActivity.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * 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.supportv7.widget;
-
-import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.ListPopupWindow;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.AdapterView;
-import android.widget.BaseAdapter;
-import android.widget.Button;
-import android.widget.CheckBox;
-import android.widget.PopupWindow;
-import android.widget.TextView;
-import com.example.android.supportv7.R;
-
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-public class ListPopupWindowActivity extends AppCompatActivity {
-    private ViewGroup mContainer;
-
-    private CheckBox mIsModal;
-
-    private TextView mLog;
-
-    private Button mButton;
-
-    private ListPopupWindow mListPopupWindow;
-
-    private BaseAdapter mListPopupAdapter;
-
-    private SimpleDateFormat mDateFormat;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        setContentView(R.layout.list_popup_window_activity);
-
-        mDateFormat = new SimpleDateFormat("HH:mm:ss.SSS");
-
-        mContainer = (ViewGroup) findViewById(R.id.container);
-        mIsModal = (CheckBox) mContainer.findViewById(R.id.is_modal);
-        mLog = (TextView) mContainer.findViewById(R.id.log);
-        mButton = (Button) mContainer.findViewById(R.id.test_button);
-
-        mButton.setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                mListPopupWindow = new ListPopupWindow(mContainer.getContext());
-
-                final String[] POPUP_CONTENT =
-                        new String[] { "Alice", "Bob", "Charlie", "Deirdre", "El" };
-                mListPopupAdapter = new BaseAdapter() {
-                    class ViewHolder {
-                        private TextView title;
-                        private TextView shortcut;
-                    }
-
-                    @Override
-                    public int getCount() {
-                        return POPUP_CONTENT.length;
-                    }
-
-                    @Override
-                    public Object getItem(int position) {
-                        return POPUP_CONTENT[position];
-                    }
-
-                    @Override
-                    public long getItemId(int position) {
-                        return position;
-                    }
-
-                    @Override
-                    public View getView(int position, View convertView, ViewGroup parent) {
-                        if (convertView == null) {
-                            convertView = LayoutInflater.from(parent.getContext()).inflate(
-                                    R.layout.abc_popup_menu_item_layout, parent, false);
-                            ViewHolder viewHolder = new ViewHolder();
-                            viewHolder.title = (TextView) convertView.findViewById(R.id.title);
-                            viewHolder.shortcut =
-                                    (TextView) convertView.findViewById(R.id.shortcut);
-                            convertView.setTag(viewHolder);
-                        }
-
-                        ViewHolder viewHolder = (ViewHolder) convertView.getTag();
-                        viewHolder.title.setText(POPUP_CONTENT[position]);
-                        viewHolder.shortcut.setVisibility(View.GONE);
-                        return convertView;
-                    }
-                };
-
-                mListPopupWindow.setAdapter(mListPopupAdapter);
-                mListPopupWindow.setAnchorView(mButton);
-
-                // Register a listener to be notified when an item in our popup window has
-                // been clicked.
-                mListPopupWindow.setOnItemClickListener(new AdapterView.OnItemClickListener() {
-                    @Override
-                    public void onItemClick(AdapterView<?> parent, View view, int position,
-                            long id) {
-                        addToLog("Item #"+ position + " clicked");
-                        addToLog("Dismissing popup window");
-                        mListPopupWindow.dismiss();
-                    }
-                });
-
-                // Register a listener to be notified when our popup window is dismissed.
-                mListPopupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
-                    @Override
-                    public void onDismiss() {
-                        addToLog("Popup window dismissed");
-                    }
-                });
-
-                // Set popup window modality based on the current checkbox state.
-                mListPopupWindow.setModal(mIsModal.isChecked());
-
-                // and show it
-                mListPopupWindow.show();
-            }
-        });
-
-        // Set up a click listener on the log text view. When the popup window is in modal
-        // mode and is dismissed by tapping outside of its bounds *and* over the log text
-        // view bounds, we should *not* get this click listener invoked.
-        mLog.setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                addToLog("Log view clicked");
-            }
-        });
-    }
-
-    private void addToLog(String toLog) {
-        String toPrepend = mDateFormat.format(new Date()) + " " + toLog + "\n";
-        mLog.setText(toPrepend + mLog.getText());
-    }
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/widget/PopupMenuActivity.java b/samples/Support7Demos/src/com/example/android/supportv7/widget/PopupMenuActivity.java
deleted file mode 100644
index 2701c82..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/widget/PopupMenuActivity.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.supportv7.widget;
-
-import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.PopupMenu;
-import android.view.MenuInflater;
-import android.view.MenuItem;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.Button;
-import android.widget.TextView;
-import com.example.android.supportv7.R;
-
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-public class PopupMenuActivity extends AppCompatActivity {
-    private ViewGroup mContainer;
-
-    private TextView mLog;
-
-    private Button mButton;
-
-    private PopupMenu mPopupMenu;
-
-    private SimpleDateFormat mDateFormat;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        setContentView(R.layout.popup_menu_activity);
-
-        mDateFormat = new SimpleDateFormat("HH:mm:ss.SSS");
-
-        mContainer = (ViewGroup) findViewById(R.id.container);
-        mLog = (TextView) mContainer.findViewById(R.id.log);
-        mButton = (Button) mContainer.findViewById(R.id.test_button);
-
-        mButton.setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                mPopupMenu = new PopupMenu(mContainer.getContext(), mButton);
-                final MenuInflater menuInflater = mPopupMenu.getMenuInflater();
-                menuInflater.inflate(R.menu.popup_menu, mPopupMenu.getMenu());
-
-                // Register a listener to be notified when a menu item in our popup menu has
-                // been clicked.
-                mPopupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
-                    @Override
-                    public boolean onMenuItemClick(MenuItem item) {
-                        addToLog("Item '"+ item.getTitle() + "' clicked");
-                        return true;
-                    }
-                });
-
-                // Register a listener to be notified when our popup menu is dismissed.
-                mPopupMenu.setOnDismissListener(new PopupMenu.OnDismissListener() {
-                    @Override
-                    public void onDismiss(PopupMenu menu) {
-                        addToLog("Popup menu dismissed");
-                    }
-                });
-
-                // Show the popup menu
-                mPopupMenu.show();
-            }
-        });
-    }
-
-    private void addToLog(String toLog) {
-        String toPrepend = mDateFormat.format(new Date()) + " " + toLog + "\n";
-        mLog.setText(toPrepend + mLog.getText());
-    }
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/widget/RecyclerViewActivity.java b/samples/Support7Demos/src/com/example/android/supportv7/widget/RecyclerViewActivity.java
deleted file mode 100644
index 38b50bd..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/widget/RecyclerViewActivity.java
+++ /dev/null
@@ -1,279 +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.supportv7.widget;
-
-import com.example.android.supportv7.Cheeses;
-import com.example.android.supportv7.widget.adapter.SimpleStringAdapter;
-import com.example.android.supportv7.widget.decorator.DividerItemDecoration;
-
-import android.app.Activity;
-import android.content.Context;
-import android.os.Bundle;
-import android.support.v4.view.MenuItemCompat;
-import android.support.v7.widget.RecyclerView;
-import android.util.DisplayMetrics;
-import android.view.Menu;
-import android.view.MenuItem;
-import android.view.View;
-import android.view.ViewGroup;
-
-public class RecyclerViewActivity extends Activity {
-
-    private static final String TAG = "RecyclerViewActivity";
-
-    private RecyclerView mRecyclerView;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        final RecyclerView rv = new RecyclerView(this);
-        rv.setLayoutManager(new MyLayoutManager(this));
-        rv.setHasFixedSize(true);
-        rv.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
-                ViewGroup.LayoutParams.MATCH_PARENT));
-        rv.setAdapter(new SimpleStringAdapter(this, Cheeses.sCheeseStrings) {
-            @Override
-            public SimpleStringAdapter.ViewHolder onCreateViewHolder(ViewGroup parent,
-                    int viewType) {
-                final SimpleStringAdapter.ViewHolder vh = super
-                        .onCreateViewHolder(parent, viewType);
-                vh.itemView.setOnClickListener(new View.OnClickListener() {
-                    @Override
-                    public void onClick(View v) {
-                        final int pos = vh.getAdapterPosition();
-                        if (pos == RecyclerView.NO_POSITION) {
-                            return;
-                        }
-                        if (pos + 1 < getItemCount()) {
-                            swap(pos, pos + 1);
-                        }
-                    }
-                });
-                return vh;
-            }
-        });
-        rv.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL_LIST));
-        setContentView(rv);
-        mRecyclerView = rv;
-    }
-
-    @Override
-    public boolean onCreateOptionsMenu(Menu menu) {
-        super.onCreateOptionsMenu(menu);
-        MenuItemCompat.setShowAsAction(menu.add("Layout"), MenuItemCompat.SHOW_AS_ACTION_IF_ROOM);
-        return true;
-    }
-
-    @Override
-    public boolean onOptionsItemSelected(MenuItem item) {
-        mRecyclerView.requestLayout();
-        return super.onOptionsItemSelected(item);
-    }
-
-    private static final int SCROLL_DISTANCE = 80; // dp
-
-    /**
-     * A basic ListView-style LayoutManager.
-     */
-    class MyLayoutManager extends RecyclerView.LayoutManager {
-
-        private static final String TAG = "MyLayoutManager";
-
-        private int mFirstPosition;
-
-        private final int mScrollDistance;
-
-        public MyLayoutManager(Context c) {
-            final DisplayMetrics dm = c.getResources().getDisplayMetrics();
-            mScrollDistance = (int) (SCROLL_DISTANCE * dm.density + 0.5f);
-        }
-
-        @Override
-        public void onLayoutChildren(RecyclerView.Recycler recycler, RecyclerView.State state) {
-            final int parentBottom = getHeight() - getPaddingBottom();
-            final View oldTopView = getChildCount() > 0 ? getChildAt(0) : null;
-            int oldTop = getPaddingTop();
-            if (oldTopView != null) {
-                oldTop = oldTopView.getTop();
-            }
-
-            detachAndScrapAttachedViews(recycler);
-
-            int top = oldTop;
-            int bottom;
-            final int left = getPaddingLeft();
-            final int right = getWidth() - getPaddingRight();
-
-            final int count = state.getItemCount();
-            for (int i = 0; mFirstPosition + i < count && top < parentBottom; i++, top = bottom) {
-                View v = recycler.getViewForPosition(mFirstPosition + i);
-                addView(v, i);
-                measureChildWithMargins(v, 0, 0);
-                bottom = top + getDecoratedMeasuredHeight(v);
-                layoutDecorated(v, left, top, right, bottom);
-            }
-        }
-
-        @Override
-        public RecyclerView.LayoutParams generateDefaultLayoutParams() {
-            return new RecyclerView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
-                    ViewGroup.LayoutParams.WRAP_CONTENT);
-        }
-
-        @Override
-        public boolean canScrollVertically() {
-            return true;
-        }
-
-        @Override
-        public int scrollVerticallyBy(int dy, RecyclerView.Recycler recycler,
-                RecyclerView.State state) {
-            if (getChildCount() == 0) {
-                return 0;
-            }
-
-            int scrolled = 0;
-            final int left = getPaddingLeft();
-            final int right = getWidth() - getPaddingRight();
-            if (dy < 0) {
-                while (scrolled > dy) {
-                    final View topView = getChildAt(0);
-                    final int hangingTop = Math.max(-getDecoratedTop(topView), 0);
-                    final int scrollBy = Math.min(scrolled - dy, hangingTop);
-                    scrolled -= scrollBy;
-                    offsetChildrenVertical(scrollBy);
-                    if (mFirstPosition > 0 && scrolled > dy) {
-                        mFirstPosition--;
-                        View v = recycler.getViewForPosition(mFirstPosition);
-                        addView(v, 0);
-                        measureChildWithMargins(v, 0, 0);
-                        final int bottom = getDecoratedTop(topView);
-                        final int top = bottom - getDecoratedMeasuredHeight(v);
-                        layoutDecorated(v, left, top, right, bottom);
-                    } else {
-                        break;
-                    }
-                }
-            } else if (dy > 0) {
-                final int parentHeight = getHeight();
-                while (scrolled < dy) {
-                    final View bottomView = getChildAt(getChildCount() - 1);
-                    final int hangingBottom =
-                            Math.max(getDecoratedBottom(bottomView) - parentHeight, 0);
-                    final int scrollBy = -Math.min(dy - scrolled, hangingBottom);
-                    scrolled -= scrollBy;
-                    offsetChildrenVertical(scrollBy);
-                    if (scrolled < dy && state.getItemCount() > mFirstPosition + getChildCount()) {
-                        View v = recycler.getViewForPosition(mFirstPosition + getChildCount());
-                        final int top = getDecoratedBottom(getChildAt(getChildCount() - 1));
-                        addView(v);
-                        measureChildWithMargins(v, 0, 0);
-                        final int bottom = top + getDecoratedMeasuredHeight(v);
-                        layoutDecorated(v, left, top, right, bottom);
-                    } else {
-                        break;
-                    }
-                }
-            }
-            recycleViewsOutOfBounds(recycler);
-            return scrolled;
-        }
-
-        @Override
-        public View onFocusSearchFailed(View focused, int direction,
-                RecyclerView.Recycler recycler, RecyclerView.State state) {
-            final int oldCount = getChildCount();
-
-            if (oldCount == 0) {
-                return null;
-            }
-
-            final int left = getPaddingLeft();
-            final int right = getWidth() - getPaddingRight();
-
-            View toFocus = null;
-            int newViewsHeight = 0;
-            if (direction == View.FOCUS_UP || direction == View.FOCUS_BACKWARD) {
-                while (mFirstPosition > 0 && newViewsHeight < mScrollDistance) {
-                    mFirstPosition--;
-                    View v = recycler.getViewForPosition(mFirstPosition);
-                    final int bottom = getDecoratedTop(getChildAt(0));
-                    addView(v, 0);
-                    measureChildWithMargins(v, 0, 0);
-                    final int top = bottom - getDecoratedMeasuredHeight(v);
-                    layoutDecorated(v, left, top, right, bottom);
-                    if (v.isFocusable()) {
-                        toFocus = v;
-                        break;
-                    }
-                }
-            }
-            if (direction == View.FOCUS_DOWN || direction == View.FOCUS_FORWARD) {
-                while (mFirstPosition + getChildCount() < state.getItemCount() &&
-                        newViewsHeight < mScrollDistance) {
-                    View v = recycler.getViewForPosition(mFirstPosition + getChildCount());
-                    final int top = getDecoratedBottom(getChildAt(getChildCount() - 1));
-                    addView(v);
-                    measureChildWithMargins(v, 0, 0);
-                    final int bottom = top + getDecoratedMeasuredHeight(v);
-                    layoutDecorated(v, left, top, right, bottom);
-                    if (v.isFocusable()) {
-                        toFocus = v;
-                        break;
-                    }
-                }
-            }
-
-            return toFocus;
-        }
-
-        public void recycleViewsOutOfBounds(RecyclerView.Recycler recycler) {
-            final int childCount = getChildCount();
-            final int parentWidth = getWidth();
-            final int parentHeight = getHeight();
-            boolean foundFirst = false;
-            int first = 0;
-            int last = 0;
-            for (int i = 0; i < childCount; i++) {
-                final View v = getChildAt(i);
-                if (v.hasFocus() || (getDecoratedRight(v) >= 0 &&
-                        getDecoratedLeft(v) <= parentWidth &&
-                        getDecoratedBottom(v) >= 0 &&
-                        getDecoratedTop(v) <= parentHeight)) {
-                    if (!foundFirst) {
-                        first = i;
-                        foundFirst = true;
-                    }
-                    last = i;
-                }
-            }
-            for (int i = childCount - 1; i > last; i--) {
-                removeAndRecycleViewAt(i, recycler);
-            }
-            for (int i = first - 1; i >= 0; i--) {
-                removeAndRecycleViewAt(i, recycler);
-            }
-            if (getChildCount() == 0) {
-                mFirstPosition = 0;
-            } else {
-                mFirstPosition += first;
-            }
-        }
-    }
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/widget/StaggeredGridLayoutManagerActivity.java b/samples/Support7Demos/src/com/example/android/supportv7/widget/StaggeredGridLayoutManagerActivity.java
deleted file mode 100644
index 39d8657..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/widget/StaggeredGridLayoutManagerActivity.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * 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.supportv7.widget;
-
-import com.example.android.supportv7.R;
-import com.example.android.supportv7.widget.util.ConfigToggle;
-
-import android.support.v7.widget.StaggeredGridLayoutManager;
-
-public class StaggeredGridLayoutManagerActivity
-        extends BaseLayoutManagerActivity<StaggeredGridLayoutManager> {
-
-    private boolean mVertical = true;
-
-    @Override
-    protected StaggeredGridLayoutManager createLayoutManager() {
-        if (mVertical) {
-            return new StaggeredGridLayoutManager(3, StaggeredGridLayoutManager.VERTICAL);
-        } else {
-            return new StaggeredGridLayoutManager(3, StaggeredGridLayoutManager.HORIZONTAL);
-        }
-    }
-
-    @Override
-    ConfigToggle[] createConfigToggles() {
-        return new ConfigToggle[] {
-                new ConfigToggle(this, R.string.vertical) {
-                    @Override
-                    public boolean isChecked() {
-                        return mVertical;
-                    }
-
-                    @Override
-                    public void onChange(boolean newValue) {
-                        if (mVertical == newValue) {
-                            return;
-                        }
-                        mVertical = newValue;
-                        mRecyclerView.setLayoutManager(createLayoutManager());
-                    }
-                }
-        };
-    }
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/widget/adapter/SimpleStringAdapter.java b/samples/Support7Demos/src/com/example/android/supportv7/widget/adapter/SimpleStringAdapter.java
deleted file mode 100644
index 49f1e19..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/widget/adapter/SimpleStringAdapter.java
+++ /dev/null
@@ -1,113 +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.supportv7.widget.adapter;
-
-import android.content.Context;
-import android.graphics.Color;
-import android.support.v7.widget.RecyclerView;
-import android.util.TypedValue;
-import android.view.ViewGroup;
-import android.widget.TextView;
-
-import java.util.ArrayList;
-import java.util.Collections;
-
-public class SimpleStringAdapter extends RecyclerView.Adapter<SimpleStringAdapter.ViewHolder> {
-
-    private int mBackground;
-
-    private ArrayList<String> mValues;
-
-    public static class ViewHolder extends RecyclerView.ViewHolder {
-        public String mBoundString;
-        public TextView mTextView;
-
-        public ViewHolder(TextView v) {
-            super(v);
-            mTextView = v;
-        }
-
-        @Override
-        public String toString() {
-            return super.toString() + " '" + mTextView.getText();
-        }
-    }
-
-    public String getValueAt(int position) {
-        return mValues.get(position);
-    }
-
-    public SimpleStringAdapter(Context context, String[] strings) {
-        TypedValue val = new TypedValue();
-        if (context.getTheme() != null) {
-            context.getTheme().resolveAttribute(
-                    android.R.attr.selectableItemBackground, val, true);
-        }
-        mBackground = val.resourceId;
-        mValues = new ArrayList<String>();
-        Collections.addAll(mValues, strings);
-    }
-
-    public void swap(int pos1, int pos2) {
-        String tmp = mValues.get(pos1);
-        mValues.set(pos1, mValues.get(pos2));
-        mValues.set(pos2, tmp);
-        notifyItemRemoved(pos1);
-        notifyItemInserted(pos2);
-    }
-
-    @Override
-    public SimpleStringAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
-        final ViewHolder h = new ViewHolder(new TextView(parent.getContext()));
-        h.mTextView.setMinimumHeight(128);
-        h.mTextView.setPadding(20, 0, 20, 0);
-        h.mTextView.setFocusable(true);
-        h.mTextView.setBackgroundResource(mBackground);
-        RecyclerView.LayoutParams lp = new RecyclerView.LayoutParams(
-                ViewGroup.LayoutParams.WRAP_CONTENT,
-                ViewGroup.LayoutParams.WRAP_CONTENT);
-        lp.leftMargin = 10;
-        lp.rightMargin = 5;
-        lp.topMargin = 20;
-        lp.bottomMargin = 15;
-        h.mTextView.setLayoutParams(lp);
-        return h;
-    }
-
-    @Override
-    public void onBindViewHolder(ViewHolder holder, int position) {
-        holder.mBoundString = mValues.get(position);
-        holder.mTextView.setText(position + ":" + mValues.get(position));
-        holder.mTextView.setMinHeight((200 + mValues.get(position).length() * 10));
-        holder.mTextView.setBackgroundColor(getBackgroundColor(position));
-    }
-
-    private int getBackgroundColor(int position) {
-        switch (position % 4) {
-            case 0: return Color.BLACK;
-            case 1: return Color.RED;
-            case 2: return Color.DKGRAY;
-            case 3: return Color.BLUE;
-        }
-        return Color.TRANSPARENT;
-    }
-
-    @Override
-    public int getItemCount() {
-        return mValues.size();
-    }
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/widget/decorator/DividerItemDecoration.java b/samples/Support7Demos/src/com/example/android/supportv7/widget/decorator/DividerItemDecoration.java
deleted file mode 100644
index 4386f4f..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/widget/decorator/DividerItemDecoration.java
+++ /dev/null
@@ -1,108 +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.supportv7.widget.decorator;
-
-import android.content.Context;
-import android.content.res.TypedArray;
-import android.graphics.Canvas;
-import android.graphics.Rect;
-import android.graphics.drawable.Drawable;
-import android.support.v4.view.ViewCompat;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.v7.widget.RecyclerView;
-import android.view.View;
-
-public class DividerItemDecoration extends RecyclerView.ItemDecoration {
-
-    private static final int[] ATTRS = new int[]{
-            android.R.attr.listDivider
-    };
-
-    public static final int HORIZONTAL_LIST = LinearLayoutManager.HORIZONTAL;
-
-    public static final int VERTICAL_LIST = LinearLayoutManager.VERTICAL;
-
-    private Drawable mDivider;
-
-    private int mOrientation;
-
-    public DividerItemDecoration(Context context, int orientation) {
-        final TypedArray a = context.obtainStyledAttributes(ATTRS);
-        mDivider = a.getDrawable(0);
-        a.recycle();
-        setOrientation(orientation);
-    }
-
-    public void setOrientation(int orientation) {
-        if (orientation != HORIZONTAL_LIST && orientation != VERTICAL_LIST) {
-            throw new IllegalArgumentException("invalid orientation");
-        }
-        mOrientation = orientation;
-    }
-
-    @Override
-    public void onDraw(Canvas c, RecyclerView parent) {
-        if (mOrientation == VERTICAL_LIST) {
-            drawVertical(c, parent);
-        } else {
-            drawHorizontal(c, parent);
-        }
-    }
-
-    public void drawVertical(Canvas c, RecyclerView parent) {
-        final int left = parent.getPaddingLeft();
-        final int right = parent.getWidth() - parent.getPaddingRight();
-
-        final int childCount = parent.getChildCount();
-        for (int i = 0; i < childCount; i++) {
-            final View child = parent.getChildAt(i);
-            final RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child
-                    .getLayoutParams();
-            final int top = child.getBottom() + params.bottomMargin +
-                    Math.round(ViewCompat.getTranslationY(child));
-            final int bottom = top + mDivider.getIntrinsicHeight();
-            mDivider.setBounds(left, top, right, bottom);
-            mDivider.draw(c);
-        }
-    }
-
-    public void drawHorizontal(Canvas c, RecyclerView parent) {
-        final int top = parent.getPaddingTop();
-        final int bottom = parent.getHeight() - parent.getPaddingBottom();
-
-        final int childCount = parent.getChildCount();
-        for (int i = 0; i < childCount; i++) {
-            final View child = parent.getChildAt(i);
-            final RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child
-                    .getLayoutParams();
-            final int left = child.getRight() + params.rightMargin +
-                    Math.round(ViewCompat.getTranslationX(child));
-            final int right = left + mDivider.getIntrinsicHeight();
-            mDivider.setBounds(left, top, right, bottom);
-            mDivider.draw(c);
-        }
-    }
-
-    @Override
-    public void getItemOffsets(Rect outRect, int itemPosition, RecyclerView parent) {
-        if (mOrientation == VERTICAL_LIST) {
-            outRect.set(0, 0, 0, mDivider.getIntrinsicHeight());
-        } else {
-            outRect.set(0, 0, mDivider.getIntrinsicWidth(), 0);
-        }
-    }
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/widget/touch/DragAndDropActivity.java b/samples/Support7Demos/src/com/example/android/supportv7/widget/touch/DragAndDropActivity.java
deleted file mode 100644
index 7f9f7e5..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/widget/touch/DragAndDropActivity.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * 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.supportv7.widget.touch;
-
-import com.example.android.supportv7.R;
-import com.example.android.supportv7.widget.util.ConfigToggle;
-
-import android.annotation.TargetApi;
-import android.os.Build;
-import android.support.v4.view.MotionEventCompat;
-import android.support.v7.widget.RecyclerView;
-import android.support.v7.widget.helper.ItemTouchHelper;
-import android.view.MotionEvent;
-import android.view.View;
-import android.view.ViewGroup;
-
-public class DragAndDropActivity extends ItemTouchHelperActivity {
-
-    boolean mDragUpEnabled = true;
-    boolean mDragDownEnabled = true;
-    boolean mLongPressDragEnabled = true;
-
-    @Override
-    ConfigToggle[] createConfigToggles() {
-        return new ConfigToggle[]{
-                new ConfigToggle(this, R.string.drag_up) {
-                    @Override
-                    public boolean isChecked() {
-                        return mDragUpEnabled;
-                    }
-
-                    @Override
-                    public void onChange(boolean newValue) {
-                        mDragUpEnabled = newValue;
-                    }
-                },
-                new ConfigToggle(this, R.string.drag_down) {
-                    @Override
-                    public boolean isChecked() {
-                        return mDragDownEnabled;
-                    }
-
-                    @Override
-                    public void onChange(boolean newValue) {
-                        mDragDownEnabled = newValue;
-                    }
-                },
-                new ConfigToggle(this, R.string.long_press_drag) {
-                    @Override
-                    public boolean isChecked() {
-                        return mLongPressDragEnabled;
-                    }
-
-                    @Override
-                    public void onChange(boolean newValue) {
-                        mLongPressDragEnabled = newValue;
-                        mAdapter.notifyDataSetChanged();
-                    }
-                }
-        };
-    }
-
-    @Override
-    public boolean isLongPressDragEnabled() {
-        return mLongPressDragEnabled;
-    }
-
-    @Override
-    public void onBind(ItemTouchViewHolder viewHolder) {
-        super.onBind(viewHolder);
-        viewHolder.actionButton.setVisibility(mLongPressDragEnabled ? View.GONE : View.VISIBLE);
-    }
-
-    @Override
-    public void clearView(RecyclerView.ViewHolder viewHolder) {
-        super.clearView(viewHolder);
-        ItemTouchViewHolder touchVH = (ItemTouchViewHolder) viewHolder;
-        touchVH.cardView.setCardBackgroundColor(getResources().getColor(android.R.color.white));
-        touchVH.overlay.setVisibility(View.GONE);
-    }
-
-    @Override
-    public void onSelectedChanged(RecyclerView.ViewHolder viewHolder, int actionState) {
-        ItemTouchViewHolder touchVH = (ItemTouchViewHolder) viewHolder;
-        if (actionState != ItemTouchHelper.ACTION_STATE_IDLE) {
-            touchVH.cardView.setCardBackgroundColor(getResources().getColor(R.color.card_aquatic));
-        }
-        super.onSelectedChanged(viewHolder, actionState);
-    }
-
-    @Override
-    public ItemTouchViewHolder onCreateViewHolder(ViewGroup parent) {
-        final ItemTouchViewHolder vh = super.onCreateViewHolder(parent);
-        vh.actionButton.setText(R.string.drag);
-        vh.actionButton.setOnTouchListener(new View.OnTouchListener() {
-            @Override
-            public boolean onTouch(View v, MotionEvent event) {
-                if (MotionEventCompat.getActionMasked(event) == MotionEvent.ACTION_DOWN) {
-                    mItemTouchHelper.startDrag(vh);
-                }
-                return false;
-            }
-        });
-        return vh;
-    }
-
-    @Override
-    public int getMovementFlags(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
-        return mCallback.makeMovementFlags(
-                (mDragUpEnabled ? ItemTouchHelper.UP : 0) |
-                        (mDragDownEnabled ? ItemTouchHelper.DOWN : 0), 0);
-    }
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/widget/touch/ItemTouchHelperActivity.java b/samples/Support7Demos/src/com/example/android/supportv7/widget/touch/ItemTouchHelperActivity.java
deleted file mode 100644
index 54a0bb3..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/widget/touch/ItemTouchHelperActivity.java
+++ /dev/null
@@ -1,283 +0,0 @@
-/*
- * 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.supportv7.widget.touch;
-
-import com.example.android.supportv7.Cheeses;
-import com.example.android.supportv7.R;
-import com.example.android.supportv7.widget.util.ConfigToggle;
-import com.example.android.supportv7.widget.util.ConfigViewHolder;
-
-import android.app.Activity;
-import android.graphics.Canvas;
-import android.os.Bundle;
-import android.support.v7.widget.CardView;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.v7.widget.RecyclerView;
-import android.support.v7.widget.helper.ItemTouchHelper;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.Button;
-import android.widget.TextView;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-/**
- * Sample activity from which ItemTouchHelper demo activities inherit.
- */
-abstract public class ItemTouchHelperActivity extends Activity {
-
-    public RecyclerView mRecyclerView;
-
-    public ItemTouchAdapter mAdapter;
-
-    public ItemTouchHelper mItemTouchHelper;
-
-    public ItemTouchHelper.Callback mCallback;
-
-    private ConfigToggle[] mConfigToggles;
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.activity_item_touch);
-        mRecyclerView = (RecyclerView) findViewById(R.id.recycler_view);
-        mRecyclerView.setHasFixedSize(true);
-        mAdapter = createAdapter();
-        mRecyclerView.setAdapter(mAdapter);
-        mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
-        mItemTouchHelper = createItemTouchHelper();
-        mItemTouchHelper.attachToRecyclerView(mRecyclerView);
-        initToggles();
-    }
-
-    private void initToggles() {
-        mConfigToggles = createConfigToggles();
-        RecyclerView configView = (RecyclerView) findViewById(R.id.config_recycler_view);
-        configView.setAdapter(new RecyclerView.Adapter<ConfigViewHolder>() {
-            @Override
-            public ConfigViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
-                return new ConfigViewHolder(LayoutInflater.from(parent.getContext())
-                        .inflate(R.layout.config_view_toggle, parent, false));
-            }
-
-            @Override
-            public void onBindViewHolder(ConfigViewHolder holder, int position) {
-                ConfigToggle toggle = mConfigToggles[position];
-                holder.bind(toggle);
-            }
-
-            @Override
-            public int getItemCount() {
-                return mConfigToggles.length;
-            }
-        });
-        configView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL,
-                false));
-        configView.setHasFixedSize(true);
-    }
-
-    abstract ConfigToggle[] createConfigToggles();
-
-    public ItemTouchHelper createItemTouchHelper() {
-        mCallback = createCallback();
-        return new ItemTouchHelper(mCallback);
-    }
-
-    public ItemTouchHelper.Callback createCallback() {
-        return new ItemTouchHelper.Callback() {
-            @Override
-            public int getMovementFlags(RecyclerView recyclerView,
-                    RecyclerView.ViewHolder viewHolder) {
-                return ItemTouchHelperActivity.this.getMovementFlags(recyclerView, viewHolder);
-            }
-
-            @Override
-            public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder,
-                    RecyclerView.ViewHolder target) {
-                mAdapter.move(viewHolder.getAdapterPosition(), target.getAdapterPosition());
-                return true;
-            }
-
-            @Override
-            public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
-                mAdapter.delete(viewHolder.getAdapterPosition());
-            }
-
-            @Override
-            public void onSelectedChanged(RecyclerView.ViewHolder viewHolder, int actionState) {
-                super.onSelectedChanged(viewHolder, actionState);
-                ItemTouchHelperActivity.this.onSelectedChanged(viewHolder, actionState);
-            }
-
-            @Override
-            public void onChildDraw(Canvas c, RecyclerView recyclerView,
-                    RecyclerView.ViewHolder viewHolder,
-                    float dX, float dY, int actionState, boolean isCurrentlyActive) {
-                if (ItemTouchHelperActivity.this.onChildDraw(c, recyclerView, viewHolder,
-                        dX, dY, actionState, isCurrentlyActive)) {
-                    return;
-                }
-                super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState,
-                        isCurrentlyActive);
-            }
-
-            @Override
-            public void onChildDrawOver(Canvas c, RecyclerView recyclerView,
-                    RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState,
-                    boolean isCurrentlyActive) {
-                if (ItemTouchHelperActivity.this.onChildDrawOver(c, recyclerView, viewHolder,
-                        dX, dY, actionState, isCurrentlyActive)) {
-                    return;
-                }
-                super.onChildDrawOver(c, recyclerView, viewHolder, dX, dY, actionState,
-                        isCurrentlyActive);
-            }
-
-            @Override
-            public boolean isLongPressDragEnabled() {
-                return ItemTouchHelperActivity.this.isLongPressDragEnabled();
-            }
-
-            @Override
-            public boolean isItemViewSwipeEnabled() {
-                return ItemTouchHelperActivity.this.isPointerSwipeEnabled();
-            }
-
-            @Override
-            public void clearView(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
-                super.clearView(recyclerView, viewHolder);
-                ItemTouchHelperActivity.this.clearView(viewHolder);
-            }
-        };
-    }
-
-    /**
-     * @return True if we should NOT call parent
-     */
-    public boolean onChildDraw(Canvas c, RecyclerView recyclerView,
-            RecyclerView.ViewHolder viewHolder,
-            float dX, float dY, int actionState, boolean isCurrentlyActive) {
-        return false;
-    }
-
-    /**
-     * @return True if we should NOT call parent
-     */
-    public boolean onChildDrawOver(Canvas c, RecyclerView recyclerView,
-            RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState,
-            boolean isCurrentlyActive) {
-        return false;
-    }
-
-    public void clearView(RecyclerView.ViewHolder viewHolder) {
-
-    }
-
-    public void onSelectedChanged(RecyclerView.ViewHolder viewHolder, int actionState) {
-
-    }
-
-    public boolean isLongPressDragEnabled() {
-        return true;
-    }
-
-    public boolean isPointerSwipeEnabled() {
-        return true;
-    }
-
-    public ItemTouchViewHolder onCreateViewHolder(ViewGroup parent) {
-        ItemTouchViewHolder itemTouchViewHolder = new ItemTouchViewHolder(
-                LayoutInflater.from(parent.getContext())
-                        .inflate(R.layout.touch_item, parent, false));
-        return itemTouchViewHolder;
-    }
-
-    abstract public int getMovementFlags(RecyclerView recyclerView,
-            RecyclerView.ViewHolder viewHolder);
-
-    public ItemTouchAdapter createAdapter() {
-        return new ItemTouchAdapter();
-    }
-
-    public void onBind(ItemTouchViewHolder viewHolder) {
-
-    }
-
-    public void onCreateViewHolder(ItemTouchViewHolder viewHolder) {
-
-    }
-
-    public class ItemTouchViewHolder extends RecyclerView.ViewHolder {
-
-        public final TextView textView;
-
-        public final Button actionButton;
-
-        public final CardView cardView;
-
-        public final View overlay;
-
-        public ItemTouchViewHolder(View itemView) {
-            super(itemView);
-            cardView = (CardView) itemView;
-            textView = (TextView) itemView.findViewById(R.id.text_view);
-            actionButton = (Button) itemView.findViewById(R.id.action_button);
-            overlay = itemView.findViewById(R.id.overlay);
-        }
-    }
-
-    public class ItemTouchAdapter extends RecyclerView.Adapter<ItemTouchViewHolder> {
-
-        private List<String> mItems = new ArrayList<String>();
-
-        public ItemTouchAdapter() {
-            mItems.addAll(Arrays.asList(Cheeses.sCheeseStrings));
-        }
-
-        @Override
-        public ItemTouchViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
-            return ItemTouchHelperActivity.this.onCreateViewHolder(parent);
-        }
-
-        @Override
-        public void onBindViewHolder(ItemTouchViewHolder holder, int position) {
-            holder.textView.setText(mItems.get(position));
-            onBind(holder);
-        }
-
-        public void delete(int position) {
-            mItems.remove(position);
-            notifyItemRemoved(position);
-        }
-
-        public void move(int from, int to) {
-            String prev = mItems.remove(from);
-            mItems.add(to > from ? to - 1 : to, prev);
-            notifyItemMoved(from, to);
-        }
-
-        @Override
-        public int getItemCount() {
-            return mItems.size();
-        }
-    }
-
-
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/widget/touch/SwipeToDismissActivity.java b/samples/Support7Demos/src/com/example/android/supportv7/widget/touch/SwipeToDismissActivity.java
deleted file mode 100644
index bb7e27e..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/widget/touch/SwipeToDismissActivity.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/*
- * 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.supportv7.widget.touch;
-
-import com.example.android.supportv7.R;
-import com.example.android.supportv7.widget.util.ConfigToggle;
-
-import android.annotation.TargetApi;
-import android.graphics.Canvas;
-import android.os.Build;
-import android.support.v4.view.MotionEventCompat;
-import android.support.v7.widget.RecyclerView;
-import android.support.v7.widget.helper.ItemTouchHelper;
-import android.view.MotionEvent;
-import android.view.View;
-import android.view.ViewGroup;
-
-public class SwipeToDismissActivity extends ItemTouchHelperActivity {
-    boolean mSwipeStartEnabled = true;
-    boolean mSwipeEndEnabled = true;
-    boolean mPointerSwipeEnabled = true;
-    boolean mCustomSwipeEnabled = false;
-
-    @Override
-    ConfigToggle[] createConfigToggles() {
-        ConfigToggle[] configToggles = {
-                new ConfigToggle(this, R.string.swipe_start) {
-                    @Override
-                    public boolean isChecked() {
-                        return mSwipeStartEnabled;
-                    }
-
-                    @Override
-                    public void onChange(boolean newValue) {
-                        mSwipeStartEnabled = newValue;
-                    }
-                },
-                new ConfigToggle(this, R.string.swipe_end) {
-                    @Override
-                    public boolean isChecked() {
-                        return mSwipeEndEnabled;
-                    }
-
-                    @Override
-                    public void onChange(boolean newValue) {
-                        mSwipeEndEnabled = newValue;
-                    }
-                },
-                new ConfigToggle(this, R.string.pointer_swipe_enabled) {
-                    @Override
-                    public boolean isChecked() {
-                        return mPointerSwipeEnabled;
-                    }
-
-                    @Override
-                    public void onChange(boolean newValue) {
-                        mPointerSwipeEnabled = newValue;
-                        mAdapter.notifyDataSetChanged();
-                    }
-                }
-        };
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
-            ConfigToggle[] copy = new ConfigToggle[configToggles.length + 1];
-            System.arraycopy(configToggles, 0, copy, 0, configToggles.length);
-            copy[copy.length - 1] = new ConfigToggle(this, R.string.custom_swipe_enabled) {
-                @Override
-                public boolean isChecked() {
-                    return mCustomSwipeEnabled;
-                }
-
-                @Override
-                public void onChange(boolean newValue) {
-                    mCustomSwipeEnabled = newValue;
-                }
-            };
-            return copy;
-        } else {
-            return configToggles;
-        }
-    }
-
-    @Override
-    public void onBind(ItemTouchViewHolder viewHolder) {
-        super.onBind(viewHolder);
-        viewHolder.actionButton.setVisibility(mPointerSwipeEnabled ? View.GONE : View.VISIBLE);
-    }
-
-    @Override
-    public void clearView(RecyclerView.ViewHolder viewHolder) {
-        super.clearView(viewHolder);
-        ItemTouchViewHolder touchVH = (ItemTouchViewHolder) viewHolder;
-        touchVH.cardView.setCardBackgroundColor(getResources().getColor(android.R.color.white));
-        touchVH.overlay.setVisibility(View.GONE);
-    }
-
-    @Override
-    @TargetApi(Build.VERSION_CODES.HONEYCOMB)
-    public void onSelectedChanged(RecyclerView.ViewHolder viewHolder, int actionState) {
-        ItemTouchViewHolder touchVH = (ItemTouchViewHolder) viewHolder;
-        if (actionState != ItemTouchHelper.ACTION_STATE_IDLE) {
-            touchVH.cardView.setCardBackgroundColor(getResources().getColor(R.color.card_aquatic));
-            if (mCustomSwipeEnabled) {
-                // hide it
-                touchVH.overlay.setTranslationX(viewHolder.itemView.getWidth());
-                touchVH.overlay.setVisibility(View.VISIBLE);
-            }
-        }
-        super.onSelectedChanged(viewHolder, actionState);
-    }
-
-    @Override
-    @TargetApi(Build.VERSION_CODES.HONEYCOMB)
-    public boolean onChildDraw(Canvas c, RecyclerView recyclerView,
-            RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState,
-            boolean isCurrentlyActive) {
-        if (!mCustomSwipeEnabled) {
-            return false;
-        }
-        ItemTouchViewHolder touchVH = (ItemTouchViewHolder) viewHolder;
-        final float dir = Math.signum(dX);
-        if (dir == 0) {
-            touchVH.overlay.setTranslationX(-touchVH.overlay.getWidth());
-        } else {
-            final float overlayOffset = dX - dir * viewHolder.itemView.getWidth();
-            touchVH.overlay.setTranslationX(overlayOffset);
-        }
-        float alpha = (float) (.2 + .8 * Math.abs(dX) / viewHolder.itemView.getWidth());
-        touchVH.overlay.setAlpha(alpha);
-        return true;
-    }
-
-    @Override
-    public ItemTouchViewHolder onCreateViewHolder(ViewGroup parent) {
-        final ItemTouchViewHolder vh = super.onCreateViewHolder(parent);
-        vh.actionButton.setText(R.string.swipe);
-        vh.actionButton.setOnTouchListener(new View.OnTouchListener() {
-            @Override
-            public boolean onTouch(View v, MotionEvent event) {
-                if (MotionEventCompat.getActionMasked(event) == MotionEvent.ACTION_DOWN) {
-                    mItemTouchHelper.startSwipe(vh);
-                }
-                return false;
-            }
-        });
-        return vh;
-    }
-
-    @Override
-    public boolean isPointerSwipeEnabled() {
-        return mPointerSwipeEnabled;
-    }
-
-    @Override
-    public int getMovementFlags(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
-        return mCallback.makeMovementFlags(0,
-                (mSwipeStartEnabled ? ItemTouchHelper.START : 0) |
-                        (mSwipeEndEnabled ? ItemTouchHelper.END : 0));
-    }
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/widget/util/ConfigToggle.java b/samples/Support7Demos/src/com/example/android/supportv7/widget/util/ConfigToggle.java
deleted file mode 100644
index eae04b0..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/widget/util/ConfigToggle.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * 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.supportv7.widget.util;
-
-import android.content.Context;
-
-abstract public class ConfigToggle {
-    private String mLabel;
-
-    protected ConfigToggle(Context context, int labelId) {
-        mLabel = context.getResources().getString(labelId);
-    }
-
-    public String getText() {
-        return mLabel;
-    }
-
-    abstract public boolean isChecked();
-
-    abstract public void onChange(boolean newValue);
-}
diff --git a/samples/Support7Demos/src/com/example/android/supportv7/widget/util/ConfigViewHolder.java b/samples/Support7Demos/src/com/example/android/supportv7/widget/util/ConfigViewHolder.java
deleted file mode 100644
index 1bdf155..0000000
--- a/samples/Support7Demos/src/com/example/android/supportv7/widget/util/ConfigViewHolder.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * 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.supportv7.widget.util;
-
-import android.support.v7.widget.RecyclerView;
-import android.view.View;
-import android.widget.CheckBox;
-import android.widget.CompoundButton;
-
-public class ConfigViewHolder extends RecyclerView.ViewHolder
-        implements CompoundButton.OnCheckedChangeListener {
-
-    private CheckBox mCheckBox;
-
-    private ConfigToggle mConfigToggle;
-
-    public ConfigViewHolder(View itemView) {
-        super(itemView);
-        mCheckBox = (CheckBox) itemView;
-        mCheckBox.setOnCheckedChangeListener(this);
-    }
-
-    public void bind(ConfigToggle toggle) {
-        mConfigToggle = toggle;
-        mCheckBox.setText(toggle.getText());
-        mCheckBox.setChecked(toggle.isChecked());
-    }
-
-    @Override
-    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
-        if (mConfigToggle != null) {
-            mConfigToggle.onChange(isChecked);
-        }
-    }
-}
diff --git a/samples/SupportAppNavigation/Android.mk b/samples/SupportAppNavigation/Android.mk
deleted file mode 100644
index 7d28ef0..0000000
--- a/samples/SupportAppNavigation/Android.mk
+++ /dev/null
@@ -1,21 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-include $(CLEAR_VARS)
-
-LOCAL_MODULE_TAGS := samples tests
-
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-
-LOCAL_PACKAGE_NAME := SupportAppNavigation
-
-LOCAL_STATIC_JAVA_LIBRARIES += android-support-v4
-
-LOCAL_SDK_VERSION := current
-
-LOCAL_MIN_SDK_VERSION := 8
-
-include $(BUILD_PACKAGE)
-
-LOCAL_PROGUARD_FLAG_FILES := proguard.flags
-
-# Use the following include to make our test apk.
-include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/samples/SupportAppNavigation/AndroidManifest.xml b/samples/SupportAppNavigation/AndroidManifest.xml
deleted file mode 100644
index c8e4fa8..0000000
--- a/samples/SupportAppNavigation/AndroidManifest.xml
+++ /dev/null
@@ -1,116 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-
-<manifest android:versionCode="1"
-        android:versionName="1"
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        package="com.example.android.support.appnavigation">
-
-    <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="15" />
-
-    <application android:label="@string/app_name">
-        <activity android:name=".app.AppNavHomeActivity"
-                android:label="@string/app_nav_home_label">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.LAUNCHER" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".app.SimpleUpActivity"
-                  android:label="@string/simple_up_label">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.SAMPLE_CODE" />
-            </intent-filter>
-            <meta-data android:name="android.support.PARENT_ACTIVITY"
-                       android:value=".app.AppNavHomeActivity" />
-        </activity>
-
-        <activity android:name=".app.PeerActivity"
-                  android:label="@string/peer_label">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.SAMPLE_CODE" />
-            </intent-filter>
-            <meta-data android:name="android.support.PARENT_ACTIVITY"
-                       android:value=".app.AppNavHomeActivity" />
-        </activity>
-
-        <activity android:name=".app.ViewFromOtherTaskActivity"
-                  android:label="@string/view_from_other_task_label">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.SAMPLE_CODE" />
-            </intent-filter>
-            <meta-data android:name="android.support.PARENT_ACTIVITY"
-                       android:value=".app.AppNavHomeActivity" />
-        </activity>
-
-        <activity android:name=".app.OutsideTaskActivity"
-                  android:label="@string/outside_task_label"
-                  android:theme="@style/Theme.Light"
-                  android:taskAffinity="com.example.android.appnavigation.outsidetask">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.DEFAULT" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".app.ContentViewActivity"
-                  android:label="@string/content_view_label">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <action android:name="android.intent.action.VIEW" />
-                <data android:mimeType="application/x-example" />
-                <category android:name="android.intent.category.DEFAULT" />
-            </intent-filter>
-            <meta-data android:name="android.support.PARENT_ACTIVITY"
-                       android:value=".app.ContentCategoryActivity" />
-        </activity>
-
-        <activity android:name=".app.ContentCategoryActivity"
-                  android:label="@string/content_category_label">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.SAMPLE_CODE" />
-            </intent-filter>
-            <meta-data android:name="android.support.PARENT_ACTIVITY"
-                       android:value=".app.AppNavHomeActivity" />
-        </activity>
-
-        <activity android:name=".app.NotificationsActivity"
-                  android:label="@string/notifications_label">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.SAMPLE_CODE" />
-            </intent-filter>
-            <meta-data android:name="android.support.PARENT_ACTIVITY"
-                       android:value=".app.AppNavHomeActivity" />
-        </activity>
-
-        <activity android:name=".app.InterstitialMessageActivity"
-                  android:label="@string/interstitial_label"
-                  android:theme="@style/Theme.Dialog"
-                  android:launchMode="singleTask"
-                  android:excludeFromRecents="true"
-                  android:taskAffinity="">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-            </intent-filter>
-        </activity>
-    </application>
-</manifest>
diff --git a/samples/SupportAppNavigation/res/layout/content_category.xml b/samples/SupportAppNavigation/res/layout/content_category.xml
deleted file mode 100644
index 2727260..0000000
--- a/samples/SupportAppNavigation/res/layout/content_category.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-              android:layout_width="match_parent"
-              android:layout_height="match_parent"
-              android:padding="16dp"
-              android:orientation="vertical">
-    <TextView android:layout_width="match_parent"
-              android:layout_height="wrap_content"
-              android:text="@string/intermediate_description" />
-    <Button android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginTop="8dp"
-            android:text="@string/launch_content_view"
-            android:onClick="onViewContent" />
-</LinearLayout>
diff --git a/samples/SupportAppNavigation/res/layout/content_view.xml b/samples/SupportAppNavigation/res/layout/content_view.xml
deleted file mode 100644
index eabd2eb..0000000
--- a/samples/SupportAppNavigation/res/layout/content_view.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-              android:layout_width="match_parent"
-              android:layout_height="match_parent"
-              android:padding="16dp"
-              android:orientation="vertical">
-    <TextView android:layout_width="match_parent"
-              android:layout_height="wrap_content"
-              android:text="@string/content_view_description" />
-    <TextView android:id="@+id/status_text"
-              android:layout_width="match_parent"
-              android:layout_height="wrap_content"
-              android:layout_marginTop="8dp"
-              android:text="@string/default_status_text" />
-</LinearLayout>
\ No newline at end of file
diff --git a/samples/SupportAppNavigation/res/layout/interstitial_message.xml b/samples/SupportAppNavigation/res/layout/interstitial_message.xml
deleted file mode 100644
index d957ecd..0000000
--- a/samples/SupportAppNavigation/res/layout/interstitial_message.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-              android:layout_width="match_parent"
-              android:layout_height="match_parent"
-              android:orientation="vertical"
-              style="@style/InterstitialDialogLayout">
-    <TextView android:layout_width="match_parent"
-              android:layout_height="wrap_content"
-              android:text="@string/interstitial_description"
-              android:layout_marginTop="16dp"
-              android:layout_marginBottom="16dp"
-              android:layout_marginLeft="16dp"
-              android:layout_marginRight="16dp"/>
-    <LinearLayout android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  style="@style/ButtonBar">
-        <Button android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:text="@string/launch_content_view"
-                android:onClick="onViewContent"
-                style="@style/ButtonBarButton"/>
-    </LinearLayout>
-</LinearLayout>
diff --git a/samples/SupportAppNavigation/res/layout/notifications.xml b/samples/SupportAppNavigation/res/layout/notifications.xml
deleted file mode 100644
index 10112f3..0000000
--- a/samples/SupportAppNavigation/res/layout/notifications.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-              android:layout_width="match_parent"
-              android:layout_height="match_parent"
-              android:padding="16dp"
-              android:orientation="vertical">
-    <TextView android:layout_width="match_parent"
-              android:layout_height="wrap_content"
-              android:text="@string/notifications_description" />
-    <Button android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginTop="8dp"
-            android:text="@string/post_direct_notification"
-            android:onClick="onPostDirect" />
-    <Button android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginTop="8dp"
-            android:text="@string/post_interstitial_notification"
-            android:onClick="onPostInterstitial" />
-</LinearLayout>
diff --git a/samples/SupportAppNavigation/res/layout/outside_task.xml b/samples/SupportAppNavigation/res/layout/outside_task.xml
deleted file mode 100644
index 00c78aa..0000000
--- a/samples/SupportAppNavigation/res/layout/outside_task.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-              android:layout_width="match_parent"
-              android:layout_height="match_parent"
-              android:padding="16dp"
-              android:orientation="vertical">
-    <TextView android:layout_width="match_parent"
-              android:layout_height="wrap_content"
-              android:text="@string/outside_task_description" />
-    <Button android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginTop="8dp"
-            android:text="@string/launch_content_view"
-            android:onClick="onViewContent" />
-</LinearLayout>
diff --git a/samples/SupportAppNavigation/res/layout/peer.xml b/samples/SupportAppNavigation/res/layout/peer.xml
deleted file mode 100644
index ee706b3..0000000
--- a/samples/SupportAppNavigation/res/layout/peer.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-              android:layout_width="match_parent"
-              android:layout_height="match_parent"
-              android:padding="16dp"
-              android:orientation="vertical">
-    <TextView android:layout_width="match_parent"
-              android:layout_height="wrap_content"
-              android:text="@string/peer_description" />
-    <TextView android:id="@+id/peer_counter"
-              android:layout_width="match_parent"
-              android:layout_height="wrap_content"
-              android:layout_marginTop="8dp"
-              android:text="@string/peer_count" />
-    <Button android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginTop="8dp"
-            android:text="@string/launch_peer"
-            android:onClick="onLaunchPeer" />
-</LinearLayout>
\ No newline at end of file
diff --git a/samples/SupportAppNavigation/res/layout/simple_up.xml b/samples/SupportAppNavigation/res/layout/simple_up.xml
deleted file mode 100644
index 2897d84..0000000
--- a/samples/SupportAppNavigation/res/layout/simple_up.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-<TextView xmlns:android="http://schemas.android.com/apk/res/android"
-          android:layout_width="match_parent"
-          android:layout_height="match_parent"
-          android:text="@string/simple_up_description"
-          android:padding="16dp" />
diff --git a/samples/SupportAppNavigation/res/layout/view_from_other_task.xml b/samples/SupportAppNavigation/res/layout/view_from_other_task.xml
deleted file mode 100644
index 941d74c..0000000
--- a/samples/SupportAppNavigation/res/layout/view_from_other_task.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-              android:layout_width="match_parent"
-              android:layout_height="match_parent"
-              android:padding="16dp"
-              android:orientation="vertical">
-    <TextView android:layout_width="match_parent"
-              android:layout_height="wrap_content"
-              android:text="@string/view_from_other_task_description" />
-    <Button android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginTop="8dp"
-            android:text="@string/launch_other_task"
-            android:onClick="onLaunchOtherTask" />
-</LinearLayout>
\ No newline at end of file
diff --git a/samples/SupportAppNavigation/res/values-v11/styles.xml b/samples/SupportAppNavigation/res/values-v11/styles.xml
deleted file mode 100644
index e61e9d4..0000000
--- a/samples/SupportAppNavigation/res/values-v11/styles.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-<resources>
-    <style name="InterstitialDialogLayout">
-        <item name="android:divider">?android:attr/dividerHorizontal</item>
-        <item name="android:showDividers">middle</item>
-    </style>
-
-    <style name="ButtonBar" parent="@android:style/Holo.ButtonBar.AlertDialog" />
-    <style name="ButtonBarButton" parent="@android:style/Widget.Holo.Button.Borderless" />
-
-</resources>
diff --git a/samples/SupportAppNavigation/res/values-v11/themes.xml b/samples/SupportAppNavigation/res/values-v11/themes.xml
deleted file mode 100644
index b9f7fdb..0000000
--- a/samples/SupportAppNavigation/res/values-v11/themes.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-<resources>
-    <style name="Theme.Light" parent="@android:style/Theme.Holo.Light" />
-    <style name="Theme.Dialog" parent="@android:style/Theme.Holo.Dialog" />
-</resources>
diff --git a/samples/SupportAppNavigation/res/values-v14/themes.xml b/samples/SupportAppNavigation/res/values-v14/themes.xml
deleted file mode 100644
index 79fabda..0000000
--- a/samples/SupportAppNavigation/res/values-v14/themes.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-<resources>
-    <style name="Theme.Light" parent="@android:style/Theme.DeviceDefault.Light" />
-</resources>
diff --git a/samples/SupportAppNavigation/res/values/ids.xml b/samples/SupportAppNavigation/res/values/ids.xml
deleted file mode 100644
index c143cf7..0000000
--- a/samples/SupportAppNavigation/res/values/ids.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-<resources>
-    <item type="id" name="direct_notification" />
-    <item type="id" name="interstitial_notification" />
-</resources>
diff --git a/samples/SupportAppNavigation/res/values/strings.xml b/samples/SupportAppNavigation/res/values/strings.xml
deleted file mode 100644
index e939b3f..0000000
--- a/samples/SupportAppNavigation/res/values/strings.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-<resources>
-    <string name="app_name">Support App Navigation Sample</string>
-    <string name="app_nav_home_label">Support App Navigation</string>
-
-    <string name="simple_up_label">Simple Up Navigation</string>
-    <string name="simple_up_description">This demo shows the simple case of up navigation that does not ever need to cross across different tasks. Press the up button on the action bar to return to the demo list. For simple drill-down navigation, the application up and system back buttons will navigate to the same location, leaving the task\'s back stack in the same state.</string>
-
-    <string name="peer_label">Peer Activities</string>
-    <string name="peer_description">This is an activity that shows content with many navigation peers. Think of a content browser that offers links to related content items. Pressing back from this activity will return to the previously viewed content item if you reached this point through a related link. If you reached it from the app nav example home activity, back will return there. Navigating up from this activity will always return to the app nav example home activity and clean up the back stack along the way.</string>
-    <string name="launch_peer">Link to another peer activity</string>
-    <string name="peer_count">Peer count: </string>
-
-    <string name="view_from_other_task_label">View from other task</string>
-    <string name="view_from_other_task_description">This combined demo shows how to handle up navigation when another task has launched your app\'s activity on its own task stack. Navigating up in this scenario should synthesize a task stack representing the most common or direct navigation path to the parent activity. The code example shows how to handle this using helper code from the support library. Press the button below to launch a separate task and begin the demo.</string>
-    <string name="launch_other_task">Launch new task</string>
-
-    <string name="outside_task_label">Outside Task</string>
-    <string name="outside_task_description">This activity has been launched in a new task. You can confirm this by pressing the Recents button now and switching back to the app navigation example task. This activity will view content with the fake mimetype \"application/x-example\" which will be received by another code example activity to continue the demo. Press the View button below.</string>
-
-    <string name="content_view_label">Content Viewer</string>
-    <string name="content_view_description">This activity can receive ACTION_VIEW intents with the mimetype \"application/x-example\", sent by the outside task component of this demo. If you launched the activity this way then it will be on the viewing activity\'s task stack. Press the back button to finish this activity and return to the activity that wanted to view the content. Press the up button in the action bar to jump back into the main demo task with a synthesized back stack. This matches the pattern for content viewers such as a photo gallery or video player.</string>
-    <string name="default_status_text">Navigated here from category</string>
-
-    <string name="content_category_label">Content Category</string>
-    <string name="intermediate_description">This activity is a parent for the example content viewer activity. Navigating up from the content viewer will lead here. Navigating up from here will lead back to the app navigation home activity. Note that if you reached this activity by navigating up from the example content viewer activity, you are back on the main app navigation example task. Press the button below to navigate to the content viewer activity.</string>
-    <string name="launch_content_view">Launch content view activity</string>
-
-    <string name="notifications_label">Notifications</string>
-    <string name="notifications_description">There are two classes of notifications: notifications that deep-link into an app directly, (e.g. an incoming SMS) and notifications that present an interstitial/summary of multiple collapsed notifications before linking into the app itself. (e.g. Calendar event notifications.) The buttons below will create notifications of each type.</string>
-    <string name="post_direct_notification">Post direct notification</string>
-    <string name="post_interstitial_notification">Post interstitial notification</string>
-
-    <string name="interstitial_label">Interstitial</string>
-    <string name="interstitial_description">This is an interstitial activity running in response to a notification. It presents a summary of info in a lightweight manner that does not exist as a task in Recents. Tap the button below to jump to the primary content.</string>
-
-</resources>
diff --git a/samples/SupportAppNavigation/res/values/styles.xml b/samples/SupportAppNavigation/res/values/styles.xml
deleted file mode 100644
index d869170..0000000
--- a/samples/SupportAppNavigation/res/values/styles.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-<resources>
-    <style name="InterstitialDialogLayout" />
-
-    <style name="ButtonBar" parent="@android:style/ButtonBar" />
-    <style name="ButtonBarButton" parent="@android:style/Widget.Button" />
-
-</resources>
diff --git a/samples/SupportAppNavigation/res/values/themes.xml b/samples/SupportAppNavigation/res/values/themes.xml
deleted file mode 100644
index beebacf..0000000
--- a/samples/SupportAppNavigation/res/values/themes.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-<resources>
-    <style name="Theme.Light" parent="@android:style/Theme.Light" />
-    <style name="Theme.Dialog" parent="@android:style/Theme.Dialog" />
-</resources>
diff --git a/samples/SupportAppNavigation/src/com/example/android/support/appnavigation/app/ActionBarCompat.java b/samples/SupportAppNavigation/src/com/example/android/support/appnavigation/app/ActionBarCompat.java
deleted file mode 100644
index 6f22280..0000000
--- a/samples/SupportAppNavigation/src/com/example/android/support/appnavigation/app/ActionBarCompat.java
+++ /dev/null
@@ -1,42 +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.support.appnavigation.app;
-
-import android.app.Activity;
-import android.os.Build;
-
-/**
- * Very limited shim for enabling the action bar's up button on devices that support it.
- */
-public class ActionBarCompat {
-    /**
-     * This class will only ever be loaded if the version check succeeds,
-     * keeping the verifier from rejecting the use of framework classes that
-     * don't exist on older platform versions.
-     */
-    static class ActionBarCompatImpl {
-        static void setDisplayHomeAsUpEnabled(Activity activity, boolean enable) {
-            activity.getActionBar().setDisplayHomeAsUpEnabled(enable);
-        }
-    }
-
-    public static void setDisplayHomeAsUpEnabled(Activity activity, boolean enable) {
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
-            ActionBarCompatImpl.setDisplayHomeAsUpEnabled(activity, enable);
-        }
-    }
-}
diff --git a/samples/SupportAppNavigation/src/com/example/android/support/appnavigation/app/AppNavHomeActivity.java b/samples/SupportAppNavigation/src/com/example/android/support/appnavigation/app/AppNavHomeActivity.java
deleted file mode 100644
index 17f4d5b..0000000
--- a/samples/SupportAppNavigation/src/com/example/android/support/appnavigation/app/AppNavHomeActivity.java
+++ /dev/null
@@ -1,121 +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.support.appnavigation.app;
-
-import android.app.ListActivity;
-import android.content.Intent;
-import android.content.pm.PackageManager;
-import android.content.pm.ResolveInfo;
-import android.os.Bundle;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.BaseAdapter;
-import android.widget.ListView;
-import android.widget.TextView;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Home activity for app navigation code samples.
- */
-public class AppNavHomeActivity extends ListActivity {
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        setListAdapter(new SampleAdapter(querySampleActivities()));
-    }
-
-    @Override
-    protected void onListItemClick(ListView lv, View v, int pos, long id) {
-        SampleInfo info = (SampleInfo) getListAdapter().getItem(pos);
-        startActivity(info.intent);
-    }
-
-    protected List<SampleInfo> querySampleActivities() {
-        Intent intent = new Intent(Intent.ACTION_MAIN, null);
-        intent.setPackage(getPackageName());
-        intent.addCategory(Intent.CATEGORY_SAMPLE_CODE);
-
-        PackageManager pm = getPackageManager();
-        List<ResolveInfo> infos = pm.queryIntentActivities(intent, 0);
-
-        ArrayList<SampleInfo> samples = new ArrayList<SampleInfo>();
-
-        final int count = infos.size();
-        for (int i = 0; i < count; i++) {
-            final ResolveInfo info = infos.get(i);
-            final CharSequence labelSeq = info.loadLabel(pm);
-            String label = labelSeq != null ? labelSeq.toString() : info.activityInfo.name;
-
-            Intent target = new Intent();
-            target.setClassName(info.activityInfo.applicationInfo.packageName,
-                    info.activityInfo.name);
-            SampleInfo sample = new SampleInfo(label, target);
-            samples.add(sample);
-        }
-
-        return samples;
-    }
-
-    static class SampleInfo {
-        String name;
-        Intent intent;
-
-        SampleInfo(String name, Intent intent) {
-            this.name = name;
-            this.intent = intent;
-        }
-    }
-
-    class SampleAdapter extends BaseAdapter {
-        private List<SampleInfo> mItems;
-
-        public SampleAdapter(List<SampleInfo> items) {
-            mItems = items;
-        }
-
-        @Override
-        public int getCount() {
-            return mItems.size();
-        }
-
-        @Override
-        public Object getItem(int position) {
-            return mItems.get(position);
-        }
-
-        @Override
-        public long getItemId(int position) {
-            return position;
-        }
-
-        @Override
-        public View getView(int position, View convertView, ViewGroup parent) {
-            if (convertView == null) {
-                convertView = getLayoutInflater().inflate(android.R.layout.simple_list_item_1,
-                        parent, false);
-                convertView.setTag(convertView.findViewById(android.R.id.text1));
-            }
-            TextView tv = (TextView) convertView.getTag();
-            tv.setText(mItems.get(position).name);
-            return convertView;
-        }
-
-    }
-}
diff --git a/samples/SupportAppNavigation/src/com/example/android/support/appnavigation/app/ContentCategoryActivity.java b/samples/SupportAppNavigation/src/com/example/android/support/appnavigation/app/ContentCategoryActivity.java
deleted file mode 100644
index d93482c..0000000
--- a/samples/SupportAppNavigation/src/com/example/android/support/appnavigation/app/ContentCategoryActivity.java
+++ /dev/null
@@ -1,50 +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.support.appnavigation.app;
-
-import com.example.android.support.appnavigation.R;
-
-import android.app.Activity;
-import android.content.Intent;
-import android.os.Bundle;
-import android.support.v4.app.NavUtils;
-import android.view.MenuItem;
-import android.view.View;
-
-public class ContentCategoryActivity extends Activity {
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.content_category);
-
-        ActionBarCompat.setDisplayHomeAsUpEnabled(this, true);
-    }
-
-    @Override
-    public boolean onOptionsItemSelected(MenuItem item) {
-        if (item.getItemId() == android.R.id.home) {
-            NavUtils.navigateUpFromSameTask(this);
-            return true;
-        }
-        return super.onOptionsItemSelected(item);
-    }
-
-    public void onViewContent(View v) {
-        Intent target = new Intent(this, ContentViewActivity.class);
-        startActivity(target);
-    }
-}
diff --git a/samples/SupportAppNavigation/src/com/example/android/support/appnavigation/app/ContentViewActivity.java b/samples/SupportAppNavigation/src/com/example/android/support/appnavigation/app/ContentViewActivity.java
deleted file mode 100644
index 42e25ea..0000000
--- a/samples/SupportAppNavigation/src/com/example/android/support/appnavigation/app/ContentViewActivity.java
+++ /dev/null
@@ -1,67 +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.support.appnavigation.app;
-
-import com.example.android.support.appnavigation.R;
-
-import android.app.Activity;
-import android.content.Intent;
-import android.os.Bundle;
-import android.support.v4.app.NavUtils;
-import android.support.v4.app.ShareCompat;
-import android.support.v4.app.TaskStackBuilder;
-import android.text.TextUtils;
-import android.view.MenuItem;
-import android.widget.TextView;
-
-public class ContentViewActivity extends Activity {
-    public static final String EXTRA_TEXT = "com.example.android.appnavigation.EXTRA_TEXT";
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.content_view);
-
-        ActionBarCompat.setDisplayHomeAsUpEnabled(this, true);
-
-        Intent intent = getIntent();
-        if (Intent.ACTION_VIEW.equals(intent.getAction())) {
-            TextView tv = (TextView) findViewById(R.id.status_text);
-            tv.setText("Viewing content from ACTION_VIEW");
-        } else if (intent.hasExtra(EXTRA_TEXT)) {
-            TextView tv = (TextView) findViewById(R.id.status_text);
-            tv.setText(intent.getStringExtra(EXTRA_TEXT));
-        }
-    }
-
-    @Override
-    public boolean onOptionsItemSelected(MenuItem item) {
-        if (item.getItemId() == android.R.id.home) {
-            Intent upIntent = NavUtils.getParentActivityIntent(this);
-            if (NavUtils.shouldUpRecreateTask(this, upIntent)) {
-                TaskStackBuilder.from(this)
-                        .addParentStack(this)
-                        .startActivities();
-                finish();
-            } else {
-                NavUtils.navigateUpTo(this, upIntent);
-            }
-            return true;
-        }
-        return super.onOptionsItemSelected(item);
-    }
-}
diff --git a/samples/SupportAppNavigation/src/com/example/android/support/appnavigation/app/InterstitialMessageActivity.java b/samples/SupportAppNavigation/src/com/example/android/support/appnavigation/app/InterstitialMessageActivity.java
deleted file mode 100644
index 72c3565..0000000
--- a/samples/SupportAppNavigation/src/com/example/android/support/appnavigation/app/InterstitialMessageActivity.java
+++ /dev/null
@@ -1,42 +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.support.appnavigation.app;
-
-import com.example.android.support.appnavigation.R;
-
-import android.app.Activity;
-import android.content.Intent;
-import android.os.Bundle;
-import android.support.v4.app.TaskStackBuilder;
-import android.view.View;
-
-public class InterstitialMessageActivity extends Activity {
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.interstitial_message);
-    }
-
-    public void onViewContent(View v) {
-        TaskStackBuilder.from(this)
-                .addParentStack(ContentViewActivity.class)
-                .addNextIntent(new Intent(this, ContentViewActivity.class)
-                        .putExtra(ContentViewActivity.EXTRA_TEXT, "From Interstitial Notification"))
-                .startActivities();
-        finish();
-    }
-}
diff --git a/samples/SupportAppNavigation/src/com/example/android/support/appnavigation/app/NotificationsActivity.java b/samples/SupportAppNavigation/src/com/example/android/support/appnavigation/app/NotificationsActivity.java
deleted file mode 100644
index 0f80938..0000000
--- a/samples/SupportAppNavigation/src/com/example/android/support/appnavigation/app/NotificationsActivity.java
+++ /dev/null
@@ -1,80 +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.support.appnavigation.app;
-
-import com.example.android.support.appnavigation.R;
-
-import android.app.Activity;
-import android.app.NotificationManager;
-import android.app.PendingIntent;
-import android.content.Intent;
-import android.os.Bundle;
-import android.support.v4.app.NavUtils;
-import android.support.v4.app.NotificationCompat;
-import android.support.v4.app.TaskStackBuilder;
-import android.view.MenuItem;
-import android.view.View;
-
-public class NotificationsActivity extends Activity {
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.notifications);
-
-        ActionBarCompat.setDisplayHomeAsUpEnabled(this, true);
-    }
-
-    @Override
-    public boolean onOptionsItemSelected(MenuItem item) {
-        if (item.getItemId() == android.R.id.home) {
-            NavUtils.navigateUpFromSameTask(this);
-            return true;
-        }
-        return super.onOptionsItemSelected(item);
-    }
-
-    public void onPostDirect(View v) {
-        NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
-                .setTicker("Direct Notification")
-                .setSmallIcon(android.R.drawable.stat_notify_chat)
-                .setContentTitle("Direct Notification")
-                .setContentText("This will open the content viewer")
-                .setAutoCancel(true)
-                .setContentIntent(TaskStackBuilder.from(this)
-                        .addParentStack(ContentViewActivity.class)
-                        .addNextIntent(new Intent(this, ContentViewActivity.class)
-                                .putExtra(ContentViewActivity.EXTRA_TEXT, "From Notification"))
-                        .getPendingIntent(0, 0));
-        NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
-        nm.notify("direct_tag", R.id.direct_notification, builder.getNotification());
-    }
-
-    public void onPostInterstitial(View v) {
-        NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
-                .setTicker("Interstitial Notification")
-                .setSmallIcon(android.R.drawable.stat_notify_chat)
-                .setContentTitle("Interstitial Notification")
-                .setContentText("This will show a detail page")
-                .setAutoCancel(true)
-                .setContentIntent(PendingIntent.getActivity(this, 0,
-                        new Intent(this, InterstitialMessageActivity.class)
-                                .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK |
-                                        Intent.FLAG_ACTIVITY_CLEAR_TASK), 0));
-        NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
-        nm.notify("interstitial_tag", R.id.interstitial_notification, builder.getNotification());
-    }
-}
diff --git a/samples/SupportAppNavigation/src/com/example/android/support/appnavigation/app/OutsideTaskActivity.java b/samples/SupportAppNavigation/src/com/example/android/support/appnavigation/app/OutsideTaskActivity.java
deleted file mode 100644
index 2f75d6b..0000000
--- a/samples/SupportAppNavigation/src/com/example/android/support/appnavigation/app/OutsideTaskActivity.java
+++ /dev/null
@@ -1,38 +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.support.appnavigation.app;
-
-import com.example.android.support.appnavigation.R;
-
-import android.app.Activity;
-import android.content.Intent;
-import android.os.Bundle;
-import android.view.View;
-
-public class OutsideTaskActivity extends Activity {
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.outside_task);
-    }
-
-    public void onViewContent(View v) {
-        Intent intent = new Intent(Intent.ACTION_VIEW)
-                .setType("application/x-example")
-                .addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
-        startActivity(intent);
-    }
-}
diff --git a/samples/SupportAppNavigation/src/com/example/android/support/appnavigation/app/PeerActivity.java b/samples/SupportAppNavigation/src/com/example/android/support/appnavigation/app/PeerActivity.java
deleted file mode 100644
index a6dbca4..0000000
--- a/samples/SupportAppNavigation/src/com/example/android/support/appnavigation/app/PeerActivity.java
+++ /dev/null
@@ -1,62 +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.support.appnavigation.app;
-
-import com.example.android.support.appnavigation.R;
-
-import android.app.ActionBar;
-import android.app.Activity;
-import android.content.Intent;
-import android.os.Bundle;
-import android.support.v4.app.NavUtils;
-import android.view.MenuItem;
-import android.view.View;
-import android.widget.TextView;
-
-public class PeerActivity extends Activity {
-    private static final String EXTRA_PEER_COUNT =
-            "com.example.android.appnavigation.EXTRA_PEER_COUNT";
-
-    private int mPeerCount;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.peer);
-
-        ActionBarCompat.setDisplayHomeAsUpEnabled(this, true);
-
-        mPeerCount = getIntent().getIntExtra(EXTRA_PEER_COUNT, 0) + 1;
-        TextView tv = (TextView) findViewById(R.id.peer_counter);
-        tv.setText(getResources().getText(R.string.peer_count).toString() + mPeerCount);
-    }
-
-    @Override
-    public boolean onOptionsItemSelected(MenuItem item) {
-        if (item.getItemId() == android.R.id.home) {
-            NavUtils.navigateUpFromSameTask(this);
-            return true;
-        }
-        return super.onOptionsItemSelected(item);
-    }
-
-    public void onLaunchPeer(View v) {
-        Intent target = new Intent(this, PeerActivity.class);
-        target.putExtra(EXTRA_PEER_COUNT, mPeerCount);
-        startActivity(target);
-    }
-}
diff --git a/samples/SupportAppNavigation/src/com/example/android/support/appnavigation/app/SimpleUpActivity.java b/samples/SupportAppNavigation/src/com/example/android/support/appnavigation/app/SimpleUpActivity.java
deleted file mode 100644
index 7c09051..0000000
--- a/samples/SupportAppNavigation/src/com/example/android/support/appnavigation/app/SimpleUpActivity.java
+++ /dev/null
@@ -1,44 +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.support.appnavigation.app;
-
-import com.example.android.support.appnavigation.R;
-
-import android.app.ActionBar;
-import android.app.Activity;
-import android.os.Bundle;
-import android.support.v4.app.NavUtils;
-import android.view.MenuItem;
-
-public class SimpleUpActivity extends Activity {
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.simple_up);
-
-        ActionBarCompat.setDisplayHomeAsUpEnabled(this, true);
-    }
-
-    @Override
-    public boolean onOptionsItemSelected(MenuItem item) {
-        if (item.getItemId() == android.R.id.home) {
-            NavUtils.navigateUpFromSameTask(this);
-            return true;
-        }
-        return super.onOptionsItemSelected(item);
-    }
-}
diff --git a/samples/SupportAppNavigation/src/com/example/android/support/appnavigation/app/ViewFromOtherTaskActivity.java b/samples/SupportAppNavigation/src/com/example/android/support/appnavigation/app/ViewFromOtherTaskActivity.java
deleted file mode 100644
index 46e6349..0000000
--- a/samples/SupportAppNavigation/src/com/example/android/support/appnavigation/app/ViewFromOtherTaskActivity.java
+++ /dev/null
@@ -1,52 +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.support.appnavigation.app;
-
-import com.example.android.support.appnavigation.R;
-
-import android.app.Activity;
-import android.content.Intent;
-import android.os.Bundle;
-import android.support.v4.app.NavUtils;
-import android.view.MenuItem;
-import android.view.View;
-
-public class ViewFromOtherTaskActivity extends Activity {
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.view_from_other_task);
-
-        ActionBarCompat.setDisplayHomeAsUpEnabled(this, true);
-    }
-
-    @Override
-    public boolean onOptionsItemSelected(MenuItem item) {
-        if (item.getItemId() == android.R.id.home) {
-            NavUtils.navigateUpFromSameTask(this);
-            return true;
-        }
-        return false;
-    }
-
-    public void onLaunchOtherTask(View v) {
-        Intent target = new Intent(this, OutsideTaskActivity.class)
-                .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK |
-                        Intent.FLAG_ACTIVITY_TASK_ON_HOME);
-        startActivity(target);
-    }
-}
diff --git a/samples/SupportDesignDemos/Android.mk b/samples/SupportDesignDemos/Android.mk
deleted file mode 100644
index c34ef1f..0000000
--- a/samples/SupportDesignDemos/Android.mk
+++ /dev/null
@@ -1,43 +0,0 @@
-# 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.
-
-LOCAL_PATH:= $(call my-dir)
-
-# Build the samples.
-# We need to add some special AAPT flags to generate R classes
-# for resources that are included from the libraries.
-include $(CLEAR_VARS)
-LOCAL_PACKAGE_NAME := SupportDesignDemos
-LOCAL_MODULE_TAGS := samples
-LOCAL_SDK_VERSION := current
-LOCAL_MIN_SDK_VERSION := 7
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-LOCAL_STATIC_JAVA_LIBRARIES := \
-        android-support-v4 \
-        android-support-v7-appcompat \
-        android-support-v7-recyclerview \
-        android-support-design
-LOCAL_RESOURCE_DIR = \
-        $(LOCAL_PATH)/res \
-        frameworks/support/v7/appcompat/res \
-        frameworks/support/v7/recyclerview/res \
-        frameworks/support/design/res
-LOCAL_AAPT_FLAGS := \
-        --auto-add-overlay \
-        --extra-packages android.support.v7.appcompat \
-        --extra-packages android.support.v7.recyclerview \
-        --extra-packages android.support.design \
-        --no-version-vectors
-LOCAL_PROGUARD_FLAG_FILES := proguard.flags
-include $(BUILD_PACKAGE)
diff --git a/samples/SupportDesignDemos/AndroidManifest.xml b/samples/SupportDesignDemos/AndroidManifest.xml
deleted file mode 100644
index c68faa4..0000000
--- a/samples/SupportDesignDemos/AndroidManifest.xml
+++ /dev/null
@@ -1,302 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-
-<!-- Declare the contents of this Android application.  The namespace
-     attribute brings in the Android platform namespace, and the package
-     supplies a unique name for the application.  When writing your
-     own application, the package name must be changed from "com.example.*"
-     to come from a domain that you own or have control over. -->
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.example.android.support.design">
-
-    <uses-sdk android:minSdkVersion="7" android:targetSdkVersion="21" />
-
-    <application android:label="@string/activity_sample_code"
-            android:supportsRtl="true"
-            android:icon="@drawable/app_sample_code"
-            android:theme="@style/Theme.FAB">
-
-        <activity android:name="SupportDesignDemos">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.DEFAULT" />
-                <category android:name="android.intent.category.LAUNCHER" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".widget.FloatingActionButtonUsage"
-                  android:label="@string/design_fab"
-                  android:theme="@style/Theme.FAB">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.support.design.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".widget.NavigationViewUsage"
-                  android:label="@string/design_navigation"
-                  android:theme="@style/Theme.Navigation">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.support.design.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".widget.NavigationViewWithoutDrawer"
-                  android:label="@string/design_navigation_without_drawer"
-                  android:theme="@style/Theme.Design">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.support.design.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".widget.TabLayoutUsage"
-                  android:label="@string/design_tabs_viewpager"
-                  android:theme="@style/Theme.Design">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.support.design.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".widget.TabLayoutPreselectedUsage"
-                  android:label="@string/design_tabs_preselected_viewpager"
-                  android:theme="@style/Theme.Design">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.support.design.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".widget.TabLayoutLayoutItemsUsage"
-                  android:label="@string/design_tabs_layout_items"
-                  android:theme="@style/Theme.Design">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.support.design.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".widget.TabLayoutCustomItemsUsage"
-                  android:label="@string/design_tabs_custom_items"
-                  android:theme="@style/Theme.Design">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.support.design.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".widget.TextInputLayoutUsage"
-                  android:label="@string/design_text_input"
-                  android:theme="@style/Theme.AppCompat.Light.DarkActionBar">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN"/>
-                <category android:name="com.example.android.support.design.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".widget.SnackbarUsage"
-                  android:label="@string/design_snackbar_basic"
-                  android:theme="@style/Theme.AppCompat.Light.DarkActionBar">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.support.design.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".widget.SnackbarWithFloatingActionButton"
-                  android:label="@string/design_snackbar_fab"
-                  android:theme="@style/Theme.AppCompat.Light.DarkActionBar">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.support.design.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".widget.SnackbarWithoutCoordinatorLayout"
-                  android:label="@string/design_snackbar_without_col"
-                  android:theme="@style/Theme.AppCompat.Light.DarkActionBar">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.support.design.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".widget.AppBarLayoutToolbarScrollTabsScroll"
-                  android:label="@string/design_appbar_toolbar_scroll_tabs_scroll"
-                  android:theme="@style/Theme.Design">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.support.design.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".widget.AppBarLayoutToolbarScrollTabsScrollSnap"
-                  android:label="@string/design_appbar_toolbar_scroll_tabs_scroll_snap"
-                  android:theme="@style/Theme.Design">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.support.design.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".widget.AppBarLayoutToolbarScrollTabsPin"
-                  android:label="@string/design_appbar_toolbar_scroll_tabs_pin"
-                  android:theme="@style/Theme.Design">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.support.design.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".widget.AppBarLayoutToolbarScrollTabsPinWithSwipeRefresh"
-                  android:label="@string/design_appbar_toolbar_scroll_tabs_pin_with_swiperefresh"
-                  android:theme="@style/Theme.Design">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.support.design.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".widget.AppBarLayoutToolbarCollapseThenPin"
-                  android:label="@string/design_appbar_collapsing_toolbar_pin"
-                  android:theme="@style/Theme.Design">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.support.design.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".widget.AppBarLayoutToolbarCollapseThenPinWithFab"
-                  android:label="@string/design_appbar_collapsing_toolbar_pin_fab"
-                  android:theme="@style/Theme.Design">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.support.design.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".widget.AppBarLayoutToolbarCollapseThenPinNested"
-                  android:label="@string/design_appbar_collapsing_toolbar_pin_nested"
-                  android:theme="@style/Theme.Design">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.support.design.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".widget.AppBarLayoutToolbarCollapseThenScroll"
-                  android:label="@string/design_appbar_collapsing_toolbar_scroll"
-                  android:theme="@style/Theme.Design">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.support.design.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".widget.AppBarLayoutToolbarCollapseThenScrollWithSwipeRefresh"
-                  android:label="@string/design_appbar_collapsing_toolbar_scroll_with_swiperefresh"
-                  android:theme="@style/Theme.Design">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.support.design.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".widget.AppBarLayoutToolbarCollapseWithImage"
-                  android:label="@string/design_appbar_collapsing_toolbar_with_image"
-                  android:theme="@style/Theme.Design">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.support.design.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".widget.AppBarLayoutToolbarCollapseWithImageWithInsets"
-                  android:label="@string/design_appbar_collapsing_toolbar_with_image_insets"
-                  android:theme="@style/Theme.Design.TransparentStatus">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.support.design.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".widget.AppBarLayoutToolbarParallaxOverlapContent"
-                  android:label="@string/design_appbar_parallax_overlap"
-                  android:theme="@style/Theme.Design">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.support.design.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".widget.BottomSheetPersistent"
-                  android:label="@string/design_bottomsheet_persistent"
-                  android:theme="@style/Theme.Design">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.support.design.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".widget.BottomSheetHideable"
-                  android:label="@string/design_bottomsheet_hideable"
-                  android:theme="@style/Theme.Design">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.support.design.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".widget.BottomSheetScrollView"
-                  android:label="@string/design_bottomsheet_scroll"
-                  android:theme="@style/Theme.Design">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.support.design.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".widget.BottomSheetWithFragment"
-                  android:label="@string/design_bottomsheet_with_fragment"
-                  android:theme="@style/Theme.Design">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.support.design.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".widget.BottomSheetModal"
-                  android:label="@string/design_bottomsheet_modal"
-                  android:theme="@style/Theme.BottomSheetModal">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.support.design.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".widget.BottomSheetModalSkipCollapsed"
-                  android:label="@string/design_bottomsheet_modal_skip_collapsed"
-                  android:theme="@style/Theme.BottomSheetModalSkipCollapsed">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.example.android.support.design.SAMPLE_CODE" />
-            </intent-filter>
-        </activity>
-
-    </application>
-</manifest>
diff --git a/samples/SupportDesignDemos/proguard.flags b/samples/SupportDesignDemos/proguard.flags
deleted file mode 100644
index 9ebd737..0000000
--- a/samples/SupportDesignDemos/proguard.flags
+++ /dev/null
@@ -1,7 +0,0 @@
--keep public class * extends android.support.design.widget.CoordinatorLayout$Behavior {
-    public <init>(android.content.Context, android.util.AttributeSet);
-}
-
--keep public class * extends android.support.v7.widget.LinearLayoutManager {
-    public <init>(android.content.Context, android.util.AttributeSet, int, int);
-}
diff --git a/samples/SupportDesignDemos/res/drawable-hdpi/app_sample_code.png b/samples/SupportDesignDemos/res/drawable-hdpi/app_sample_code.png
deleted file mode 100755
index 66a1984..0000000
--- a/samples/SupportDesignDemos/res/drawable-hdpi/app_sample_code.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportDesignDemos/res/drawable-hdpi/ic_action_navigation_menu.png b/samples/SupportDesignDemos/res/drawable-hdpi/ic_action_navigation_menu.png
deleted file mode 100644
index 743fd7d..0000000
--- a/samples/SupportDesignDemos/res/drawable-hdpi/ic_action_navigation_menu.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportDesignDemos/res/drawable-hdpi/ic_android.png b/samples/SupportDesignDemos/res/drawable-hdpi/ic_android.png
deleted file mode 100644
index 94b8fb1..0000000
--- a/samples/SupportDesignDemos/res/drawable-hdpi/ic_android.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportDesignDemos/res/drawable-mdpi/app_sample_code.png b/samples/SupportDesignDemos/res/drawable-mdpi/app_sample_code.png
deleted file mode 100644
index 5ae7701..0000000
--- a/samples/SupportDesignDemos/res/drawable-mdpi/app_sample_code.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportDesignDemos/res/drawable-mdpi/ic_action_navigation_menu.png b/samples/SupportDesignDemos/res/drawable-mdpi/ic_action_navigation_menu.png
deleted file mode 100644
index 4fa2c22..0000000
--- a/samples/SupportDesignDemos/res/drawable-mdpi/ic_action_navigation_menu.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportDesignDemos/res/drawable-mdpi/ic_android.png b/samples/SupportDesignDemos/res/drawable-mdpi/ic_android.png
deleted file mode 100644
index afc43db..0000000
--- a/samples/SupportDesignDemos/res/drawable-mdpi/ic_android.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportDesignDemos/res/drawable-nodpi/photo.jpg b/samples/SupportDesignDemos/res/drawable-nodpi/photo.jpg
deleted file mode 100644
index d5a2ef0..0000000
--- a/samples/SupportDesignDemos/res/drawable-nodpi/photo.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/SupportDesignDemos/res/drawable-xhdpi/ic_action_navigation_menu.png b/samples/SupportDesignDemos/res/drawable-xhdpi/ic_action_navigation_menu.png
deleted file mode 100644
index 595da84..0000000
--- a/samples/SupportDesignDemos/res/drawable-xhdpi/ic_action_navigation_menu.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportDesignDemos/res/drawable-xhdpi/ic_android.png b/samples/SupportDesignDemos/res/drawable-xhdpi/ic_android.png
deleted file mode 100644
index 74c6f68..0000000
--- a/samples/SupportDesignDemos/res/drawable-xhdpi/ic_android.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportDesignDemos/res/drawable-xxhdpi/ic_action_navigation_menu.png b/samples/SupportDesignDemos/res/drawable-xxhdpi/ic_action_navigation_menu.png
deleted file mode 100644
index 3ebee24..0000000
--- a/samples/SupportDesignDemos/res/drawable-xxhdpi/ic_action_navigation_menu.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportDesignDemos/res/drawable-xxhdpi/ic_add.png b/samples/SupportDesignDemos/res/drawable-xxhdpi/ic_add.png
deleted file mode 100644
index a84106b..0000000
--- a/samples/SupportDesignDemos/res/drawable-xxhdpi/ic_add.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportDesignDemos/res/drawable-xxhdpi/ic_android.png b/samples/SupportDesignDemos/res/drawable-xxhdpi/ic_android.png
deleted file mode 100644
index 5cb6acd..0000000
--- a/samples/SupportDesignDemos/res/drawable-xxhdpi/ic_android.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportDesignDemos/res/drawable-xxxhdpi/ic_android.png b/samples/SupportDesignDemos/res/drawable-xxxhdpi/ic_android.png
deleted file mode 100644
index e302a07..0000000
--- a/samples/SupportDesignDemos/res/drawable-xxxhdpi/ic_android.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportDesignDemos/res/drawable/custom_tab_indicator.xml b/samples/SupportDesignDemos/res/drawable/custom_tab_indicator.xml
deleted file mode 100644
index 8a3e2e3..0000000
--- a/samples/SupportDesignDemos/res/drawable/custom_tab_indicator.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2016 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item
-          android:state_selected="true"
-          android:drawable="@drawable/custom_tab_indicator_selected" />
-    <item
-        android:drawable="@drawable/custom_tab_indicator_default" />
-</selector>
\ No newline at end of file
diff --git a/samples/SupportDesignDemos/res/drawable/custom_tab_indicator_default.xml b/samples/SupportDesignDemos/res/drawable/custom_tab_indicator_default.xml
deleted file mode 100644
index e06b058..0000000
--- a/samples/SupportDesignDemos/res/drawable/custom_tab_indicator_default.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<shape
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:shape="rectangle">
-    <size
-        android:width="16dp"
-        android:height="16dp" />
-    <solid
-        android:color="#FF8080" />
-</shape>
\ No newline at end of file
diff --git a/samples/SupportDesignDemos/res/drawable/custom_tab_indicator_selected.xml b/samples/SupportDesignDemos/res/drawable/custom_tab_indicator_selected.xml
deleted file mode 100644
index dfab0ab..0000000
--- a/samples/SupportDesignDemos/res/drawable/custom_tab_indicator_selected.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<shape
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:shape="rectangle">
-    <size
-        android:width="16dp"
-        android:height="16dp" />
-    <solid
-        android:color="#600000" />
-</shape>
\ No newline at end of file
diff --git a/samples/SupportDesignDemos/res/drawable/ic_search.xml b/samples/SupportDesignDemos/res/drawable/ic_search.xml
deleted file mode 100644
index b4cba34..0000000
--- a/samples/SupportDesignDemos/res/drawable/ic_search.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-    Copyright (C) 2016 The Android Open Source Project
-
-    Licensed under the Apache License, Version 2.0 (the "License");
-    you may not use this file except in compliance with the License.
-    You may obtain a copy of the License at
-
-         http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-        android:width="24dp"
-        android:height="24dp"
-        android:viewportWidth="24.0"
-        android:viewportHeight="24.0"
-        android:tint="?attr/colorControlNormal">
-    <path
-        android:pathData="M15.5,14l-0.8,0l-0.3,-0.3c1,-1.1 1.6,-2.6 1.6,-4.2C16,5.9 13.1,3 9.5,3C5.9,3 3,5.9 3,9.5S5.9,16 9.5,16c1.6,0 3.1,-0.6 4.2,-1.6l0.3,0.3l0,0.8l5,5l1.5,-1.5L15.5,14zM9.5,14C7,14 5,12 5,9.5S7,5 9.5,5C12,5 14,7 14,9.5S12,14 9.5,14z"
-        android:fillColor="@android:color/white"/>
-</vector>
diff --git a/samples/SupportDesignDemos/res/layout/action_layout.xml b/samples/SupportDesignDemos/res/layout/action_layout.xml
deleted file mode 100644
index a266d51..0000000
--- a/samples/SupportDesignDemos/res/layout/action_layout.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<android.support.v7.widget.SwitchCompat
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        android:id="@+id/toggle"
-        android:orientation="vertical"
-        android:layout_width="wrap_content"
-        android:layout_height="match_parent"
-        android:gravity="center_vertical"/>
diff --git a/samples/SupportDesignDemos/res/layout/design_appbar_toolbar_collapse_pin.xml b/samples/SupportDesignDemos/res/layout/design_appbar_toolbar_collapse_pin.xml
deleted file mode 100644
index ee3114d..0000000
--- a/samples/SupportDesignDemos/res/layout/design_appbar_toolbar_collapse_pin.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-
-<android.support.design.widget.CoordinatorLayout
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        xmlns:app="http://schemas.android.com/apk/res-auto"
-        android:id="@+id/col"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent">
-
-    <android.support.design.widget.AppBarLayout
-            android:id="@+id/app_bar"
-            android:layout_height="192dp"
-            android:layout_width="match_parent"
-            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
-
-        <android.support.design.widget.CollapsingToolbarLayout
-                android:id="@+id/collapsing_app_bar"
-                android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                app:layout_scrollFlags="scroll|exitUntilCollapsed">
-
-            <android.support.v7.widget.Toolbar
-                    android:id="@+id/toolbar"
-                    android:layout_height="?attr/actionBarSize"
-                    android:layout_width="match_parent"
-                    app:layout_collapseMode="pin"/>
-
-        </android.support.design.widget.CollapsingToolbarLayout>
-
-    </android.support.design.widget.AppBarLayout>
-
-    <include layout="@layout/include_appbar_recyclerview"/>
-
-</android.support.design.widget.CoordinatorLayout>
diff --git a/samples/SupportDesignDemos/res/layout/design_appbar_toolbar_collapse_pin_nested.xml b/samples/SupportDesignDemos/res/layout/design_appbar_toolbar_collapse_pin_nested.xml
deleted file mode 100644
index baed926..0000000
--- a/samples/SupportDesignDemos/res/layout/design_appbar_toolbar_collapse_pin_nested.xml
+++ /dev/null
@@ -1,59 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-
-<android.support.design.widget.CoordinatorLayout
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        xmlns:app="http://schemas.android.com/apk/res-auto"
-        android:id="@+id/col"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent">
-
-    <android.support.design.widget.AppBarLayout
-            android:id="@+id/app_bar"
-            android:layout_height="192dp"
-            android:layout_width="match_parent">
-
-        <android.support.design.widget.CollapsingToolbarLayout
-                android:id="@+id/collapsing_app_bar"
-                android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                app:layout_scrollFlags="scroll|exitUntilCollapsed"
-                app:toolbarId="@+id/toolbar">
-
-            <FrameLayout
-                    android:layout_width="match_parent"
-                    android:layout_height="wrap_content"
-                    android:layout_marginTop="8dp"
-                    android:layout_marginBottom="16dp"
-                    android:background="?android:colorBackground"
-                    app:layout_collapseMode="pin">
-
-                <android.support.v7.widget.Toolbar
-                        android:id="@+id/toolbar"
-                        android:layout_height="?attr/actionBarSize"
-                        android:layout_width="match_parent"
-                        android:theme="@style/ThemeOverlay.AppCompat.Light"/>
-
-            </FrameLayout>
-
-        </android.support.design.widget.CollapsingToolbarLayout>
-
-    </android.support.design.widget.AppBarLayout>
-
-    <include layout="@layout/include_appbar_recyclerview"/>
-
-</android.support.design.widget.CoordinatorLayout>
diff --git a/samples/SupportDesignDemos/res/layout/design_appbar_toolbar_collapse_pin_with_fab.xml b/samples/SupportDesignDemos/res/layout/design_appbar_toolbar_collapse_pin_with_fab.xml
deleted file mode 100644
index a960ddb..0000000
--- a/samples/SupportDesignDemos/res/layout/design_appbar_toolbar_collapse_pin_with_fab.xml
+++ /dev/null
@@ -1,59 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-
-<android.support.design.widget.CoordinatorLayout
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        xmlns:app="http://schemas.android.com/apk/res-auto"
-        android:id="@+id/col"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent">
-
-    <android.support.design.widget.AppBarLayout
-            android:id="@+id/appbar"
-            android:layout_height="192dp"
-            android:layout_width="match_parent"
-            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
-
-        <android.support.design.widget.CollapsingToolbarLayout
-                android:id="@+id/collapsing_app_bar"
-                android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                app:layout_scrollFlags="scroll|exitUntilCollapsed">
-
-            <android.support.v7.widget.Toolbar
-                    android:id="@+id/toolbar"
-                    android:layout_height="?attr/actionBarSize"
-                    android:layout_width="match_parent"
-                    app:layout_collapseMode="pin"/>
-
-        </android.support.design.widget.CollapsingToolbarLayout>
-
-    </android.support.design.widget.AppBarLayout>
-
-    <include layout="@layout/include_appbar_scrollview"/>
-
-    <android.support.design.widget.FloatingActionButton
-            android:layout_height="wrap_content"
-            android:layout_width="wrap_content"
-            app:layout_anchor="@id/appbar"
-            app:layout_anchorGravity="bottom|right|end"
-            android:src="@drawable/ic_add"
-            android:layout_marginRight="16dp"
-            android:clickable="true"
-            app:fabSize="mini"/>
-
-</android.support.design.widget.CoordinatorLayout>
diff --git a/samples/SupportDesignDemos/res/layout/design_appbar_toolbar_collapse_scroll.xml b/samples/SupportDesignDemos/res/layout/design_appbar_toolbar_collapse_scroll.xml
deleted file mode 100644
index fc85db0..0000000
--- a/samples/SupportDesignDemos/res/layout/design_appbar_toolbar_collapse_scroll.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-
-<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
-        xmlns:app="http://schemas.android.com/apk/res-auto"
-        android:id="@+id/col"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent">
-
-    <android.support.design.widget.AppBarLayout
-            android:id="@+id/app_bar"
-            android:layout_height="192dp"
-            android:layout_width="match_parent"
-            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
-
-        <android.support.design.widget.CollapsingToolbarLayout
-                android:id="@+id/collapsing_app_bar"
-                android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                app:layout_scrollFlags="scroll|enterAlways|enterAlwaysCollapsed">
-
-            <android.support.v7.widget.Toolbar
-                    android:id="@+id/toolbar"
-                    android:layout_height="?attr/actionBarSize"
-                    android:layout_width="match_parent"
-                    app:layout_collapseMode="pin"/>
-
-        </android.support.design.widget.CollapsingToolbarLayout>
-
-    </android.support.design.widget.AppBarLayout>
-
-    <include layout="@layout/include_appbar_scrollview"/>
-
-</android.support.design.widget.CoordinatorLayout>
diff --git a/samples/SupportDesignDemos/res/layout/design_appbar_toolbar_collapse_scroll_with_swiperefresh.xml b/samples/SupportDesignDemos/res/layout/design_appbar_toolbar_collapse_scroll_with_swiperefresh.xml
deleted file mode 100644
index d0572af..0000000
--- a/samples/SupportDesignDemos/res/layout/design_appbar_toolbar_collapse_scroll_with_swiperefresh.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-
-<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
-        xmlns:app="http://schemas.android.com/apk/res-auto"
-        android:id="@+id/col"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent">
-
-    <android.support.design.widget.AppBarLayout
-            android:id="@+id/app_bar"
-            android:layout_height="192dp"
-            android:layout_width="match_parent"
-            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
-
-        <android.support.design.widget.CollapsingToolbarLayout
-                android:id="@+id/collapsing_app_bar"
-                android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                app:layout_scrollFlags="scroll|enterAlways|enterAlwaysCollapsed">
-
-            <android.support.v7.widget.Toolbar
-                    android:id="@+id/toolbar"
-                    android:layout_height="?attr/actionBarSize"
-                    android:layout_width="match_parent"
-                    app:layout_collapseMode="pin"/>
-
-        </android.support.design.widget.CollapsingToolbarLayout>
-
-    </android.support.design.widget.AppBarLayout>
-
-    <include layout="@layout/include_appbar_recyclerview_swiperefresh"/>
-
-</android.support.design.widget.CoordinatorLayout>
diff --git a/samples/SupportDesignDemos/res/layout/design_appbar_toolbar_collapse_with_image.xml b/samples/SupportDesignDemos/res/layout/design_appbar_toolbar_collapse_with_image.xml
deleted file mode 100644
index 930c1a8..0000000
--- a/samples/SupportDesignDemos/res/layout/design_appbar_toolbar_collapse_with_image.xml
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-
-<android.support.design.widget.CoordinatorLayout
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        xmlns:app="http://schemas.android.com/apk/res-auto"
-        android:id="@+id/col"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent">
-
-    <android.support.design.widget.AppBarLayout
-            android:id="@+id/app_bar"
-            android:layout_height="192dp"
-            android:layout_width="match_parent"
-            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
-
-        <android.support.design.widget.CollapsingToolbarLayout
-                android:id="@+id/collapsing_app_bar"
-                android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                app:layout_scrollFlags="scroll|exitUntilCollapsed"
-                app:contentScrim="?attr/colorPrimary">
-
-            <ImageView
-                    android:id="@+id/app_bar_image"
-                    android:layout_width="match_parent"
-                    android:layout_height="match_parent"
-                    app:layout_collapseMode="parallax"
-                    android:src="@drawable/photo"
-                    android:scaleType="centerCrop"/>
-
-            <android.support.v7.widget.Toolbar
-                    android:id="@+id/toolbar"
-                    android:layout_height="?attr/actionBarSize"
-                    android:layout_width="match_parent"
-                    app:layout_collapseMode="pin"/>
-
-        </android.support.design.widget.CollapsingToolbarLayout>
-
-    </android.support.design.widget.AppBarLayout>
-
-    <include layout="@layout/include_appbar_scrollview"/>
-
-</android.support.design.widget.CoordinatorLayout>
diff --git a/samples/SupportDesignDemos/res/layout/design_appbar_toolbar_collapse_with_image_insets.xml b/samples/SupportDesignDemos/res/layout/design_appbar_toolbar_collapse_with_image_insets.xml
deleted file mode 100644
index 6e2ba9b..0000000
--- a/samples/SupportDesignDemos/res/layout/design_appbar_toolbar_collapse_with_image_insets.xml
+++ /dev/null
@@ -1,61 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ 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.
-  -->
-
-<android.support.design.widget.CoordinatorLayout
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        xmlns:app="http://schemas.android.com/apk/res-auto"
-        android:id="@+id/col"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:fitsSystemWindows="true">
-
-    <android.support.design.widget.AppBarLayout
-            android:id="@+id/app_bar"
-            android:layout_height="wrap_content"
-            android:layout_width="match_parent"
-            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
-            android:fitsSystemWindows="true">
-
-        <android.support.design.widget.CollapsingToolbarLayout
-                android:id="@+id/collapsing_app_bar"
-                android:layout_width="match_parent"
-                android:layout_height="256dp"
-                app:layout_scrollFlags="scroll|exitUntilCollapsed"
-                app:contentScrim="?attr/colorPrimary">
-
-            <ImageView
-                    android:id="@+id/app_bar_image"
-                    android:layout_width="match_parent"
-                    android:layout_height="match_parent"
-                    app:layout_collapseMode="parallax"
-                    android:src="@drawable/photo"
-                    android:scaleType="centerCrop"
-                    android:fitsSystemWindows="true"/>
-
-            <android.support.v7.widget.Toolbar
-                    android:id="@+id/toolbar"
-                    android:layout_height="?attr/actionBarSize"
-                    android:layout_width="match_parent"
-                    app:layout_collapseMode="pin"/>
-
-        </android.support.design.widget.CollapsingToolbarLayout>
-
-    </android.support.design.widget.AppBarLayout>
-
-    <include layout="@layout/include_appbar_scrollview"/>
-
-</android.support.design.widget.CoordinatorLayout>
diff --git a/samples/SupportDesignDemos/res/layout/design_appbar_toolbar_parallax_overlap.xml b/samples/SupportDesignDemos/res/layout/design_appbar_toolbar_parallax_overlap.xml
deleted file mode 100644
index 2b12b91..0000000
--- a/samples/SupportDesignDemos/res/layout/design_appbar_toolbar_parallax_overlap.xml
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-
-<android.support.design.widget.CoordinatorLayout
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        xmlns:app="http://schemas.android.com/apk/res-auto"
-        android:id="@+id/col"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent">
-
-    <android.support.design.widget.AppBarLayout
-            android:id="@+id/app_bar"
-            android:layout_height="192dp"
-            android:layout_width="match_parent"
-            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
-
-        <android.support.design.widget.CollapsingToolbarLayout
-                android:id="@+id/collapsing_app_bar"
-                android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                app:layout_scrollFlags="scroll|exitUntilCollapsed"
-                app:layout_scrollInterpolator="@android:anim/decelerate_interpolator"
-                app:contentScrim="?attr/colorPrimary">
-
-            <ImageView
-                    android:id="@+id/app_bar_image"
-                    android:layout_width="match_parent"
-                    android:layout_height="match_parent"
-                    android:src="@drawable/photo"
-                    android:scaleType="centerCrop"/>
-
-            <android.support.v7.widget.Toolbar
-                    android:id="@+id/toolbar"
-                    android:layout_height="?attr/actionBarSize"
-                    android:layout_width="match_parent"
-                    app:layout_collapseMode="pin"/>
-
-        </android.support.design.widget.CollapsingToolbarLayout>
-
-    </android.support.design.widget.AppBarLayout>
-
-    <include layout="@layout/include_appbar_scrollview_with_image" />
-
-</android.support.design.widget.CoordinatorLayout>
diff --git a/samples/SupportDesignDemos/res/layout/design_appbar_toolbar_scroll_tabs_pinned.xml b/samples/SupportDesignDemos/res/layout/design_appbar_toolbar_scroll_tabs_pinned.xml
deleted file mode 100644
index c7bc615..0000000
--- a/samples/SupportDesignDemos/res/layout/design_appbar_toolbar_scroll_tabs_pinned.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-
-<android.support.design.widget.CoordinatorLayout
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        xmlns:app="http://schemas.android.com/apk/res-auto"
-        android:id="@+id/col"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent">
-
-    <android.support.design.widget.AppBarLayout
-            android:id="@+id/app_bar"
-            android:layout_height="wrap_content"
-            android:layout_width="match_parent"
-            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
-
-        <android.support.v7.widget.Toolbar
-                android:id="@+id/toolbar"
-                android:layout_height="?attr/actionBarSize"
-                android:layout_width="match_parent"
-                app:layout_scrollFlags="scroll|enterAlways"/>
-
-        <android.support.design.widget.TabLayout
-                android:id="@+id/tabs"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                app:tabMode="scrollable"/>
-
-    </android.support.design.widget.AppBarLayout>
-
-    <include layout="@layout/include_appbar_recyclerview"/>
-
-</android.support.design.widget.CoordinatorLayout>
-
diff --git a/samples/SupportDesignDemos/res/layout/design_appbar_toolbar_scroll_tabs_pinned_with_swiperefres.xml b/samples/SupportDesignDemos/res/layout/design_appbar_toolbar_scroll_tabs_pinned_with_swiperefres.xml
deleted file mode 100644
index b5e0c07..0000000
--- a/samples/SupportDesignDemos/res/layout/design_appbar_toolbar_scroll_tabs_pinned_with_swiperefres.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-
-<android.support.design.widget.CoordinatorLayout
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        xmlns:app="http://schemas.android.com/apk/res-auto"
-        android:id="@+id/col"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent">
-
-    <android.support.design.widget.AppBarLayout
-            android:id="@+id/app_bar"
-            android:layout_height="wrap_content"
-            android:layout_width="match_parent"
-            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
-
-        <android.support.v7.widget.Toolbar
-                android:id="@+id/toolbar"
-                android:layout_height="?attr/actionBarSize"
-                android:layout_width="match_parent"
-                app:layout_scrollFlags="scroll|enterAlways"/>
-
-        <android.support.design.widget.TabLayout
-                android:id="@+id/tabs"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                app:tabMode="scrollable"/>
-
-    </android.support.design.widget.AppBarLayout>
-
-    <include layout="@layout/include_appbar_recyclerview_swiperefresh" />
-
-</android.support.design.widget.CoordinatorLayout>
-
diff --git a/samples/SupportDesignDemos/res/layout/design_appbar_toolbar_scroll_tabs_scroll.xml b/samples/SupportDesignDemos/res/layout/design_appbar_toolbar_scroll_tabs_scroll.xml
deleted file mode 100644
index 239c036..0000000
--- a/samples/SupportDesignDemos/res/layout/design_appbar_toolbar_scroll_tabs_scroll.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-
-<android.support.design.widget.CoordinatorLayout
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        xmlns:app="http://schemas.android.com/apk/res-auto"
-        android:id="@+id/col"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent">
-
-    <android.support.design.widget.AppBarLayout
-            android:id="@+id/app_bar"
-            android:layout_height="wrap_content"
-            android:layout_width="match_parent"
-            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
-
-        <android.support.v7.widget.Toolbar
-                android:id="@+id/toolbar"
-                android:layout_height="?attr/actionBarSize"
-                android:layout_width="match_parent"
-                app:layout_scrollFlags="scroll|enterAlways"/>
-
-        <android.support.design.widget.TabLayout
-                android:id="@+id/tabs"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                app:layout_scrollFlags="scroll|enterAlways"
-                app:tabMode="scrollable"/>
-
-    </android.support.design.widget.AppBarLayout>
-
-    <include layout="@layout/include_appbar_scrollview"/>
-
-</android.support.design.widget.CoordinatorLayout>
-
diff --git a/samples/SupportDesignDemos/res/layout/design_appbar_toolbar_scroll_tabs_scroll_snap.xml b/samples/SupportDesignDemos/res/layout/design_appbar_toolbar_scroll_tabs_scroll_snap.xml
deleted file mode 100644
index b559ca3..0000000
--- a/samples/SupportDesignDemos/res/layout/design_appbar_toolbar_scroll_tabs_scroll_snap.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-
-<android.support.design.widget.CoordinatorLayout
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        xmlns:app="http://schemas.android.com/apk/res-auto"
-        android:id="@+id/col"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent">
-
-    <android.support.design.widget.AppBarLayout
-            android:id="@+id/app_bar"
-            android:layout_height="wrap_content"
-            android:layout_width="match_parent"
-            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
-
-        <android.support.v7.widget.Toolbar
-                android:id="@+id/toolbar"
-                android:layout_height="?attr/actionBarSize"
-                android:layout_width="match_parent"
-                app:layout_scrollFlags="scroll|enterAlways|snap"/>
-
-        <android.support.design.widget.TabLayout
-                android:id="@+id/tabs"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                app:layout_scrollFlags="scroll|enterAlways|snap"
-                app:tabMode="scrollable"/>
-
-    </android.support.design.widget.AppBarLayout>
-
-    <include layout="@layout/include_appbar_scrollview"/>
-
-</android.support.design.widget.CoordinatorLayout>
-
diff --git a/samples/SupportDesignDemos/res/layout/design_bottom_sheet_fragment.xml b/samples/SupportDesignDemos/res/layout/design_bottom_sheet_fragment.xml
deleted file mode 100644
index bdaff00..0000000
--- a/samples/SupportDesignDemos/res/layout/design_bottom_sheet_fragment.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2016 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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:background="#ccc">
-
-    <TextView
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:text="@string/bottomsheet_with_fragment"
-            android:padding="16dp"
-            style="@style/TextAppearance.AppCompat.Headline"/>
-
-    <android.support.v7.widget.RecyclerView
-            android:id="@+id/list2"
-            android:layout_width="match_parent"
-            android:layout_height="0dp"
-            android:layout_weight="1"/>
-
-</LinearLayout>
diff --git a/samples/SupportDesignDemos/res/layout/design_bottom_sheet_hideable.xml b/samples/SupportDesignDemos/res/layout/design_bottom_sheet_hideable.xml
deleted file mode 100644
index d139a92..0000000
--- a/samples/SupportDesignDemos/res/layout/design_bottom_sheet_hideable.xml
+++ /dev/null
@@ -1,78 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<android.support.design.widget.CoordinatorLayout
-        android:id="@+id/coordinator"
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        xmlns:app="http://schemas.android.com/apk/res/com.example.android.support.design"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent">
-
-    <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:orientation="vertical"
-            android:padding="16dp">
-
-        <TextView
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:text="@string/bottomsheet_hideable"
-                style="@style/TextAppearance.AppCompat.Headline"/>
-
-        <Button
-                android:id="@+id/toggle"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_marginTop="16dp"
-                android:freezesText="true"
-                android:text="@string/bottomsheet_hide"/>
-
-    </LinearLayout>
-
-    <!--
-        This is the bottom sheet. You can use any View as a bottom sheet by marking it with
-        app:layout_behavior as BottomSheetBehavior.
-    -->
-    <LinearLayout
-            android:id="@+id/bottom_sheet"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:layout_marginLeft="@dimen/bottom_sheet_horizontal_margin"
-            android:layout_marginRight="@dimen/bottom_sheet_horizontal_margin"
-            android:background="?android:attr/windowBackground"
-            android:elevation="@dimen/bottom_sheet_elevation"
-            android:minHeight="@dimen/bottom_sheet_peek_height"
-            android:orientation="vertical"
-            app:layout_behavior="@string/bottom_sheet_behavior"
-            app:behavior_peekHeight="@dimen/bottom_sheet_peek_height"
-            app:behavior_hideable="true">
-
-        <include layout="@layout/include_bottom_sheet"/>
-
-    </LinearLayout>
-
-    <TextView
-            android:id="@+id/slide_offset"
-            android:layout_width="128dp"
-            android:layout_height="wrap_content"
-            android:layout_gravity="top|right"
-            android:padding="8dp"
-            android:elevation="24dp"
-            android:clickable="false"
-            style="@style/TextAppearance.AppCompat.Body1"/>
-
-</android.support.design.widget.CoordinatorLayout>
diff --git a/samples/SupportDesignDemos/res/layout/design_bottom_sheet_modal.xml b/samples/SupportDesignDemos/res/layout/design_bottom_sheet_modal.xml
deleted file mode 100644
index cbd3b27..0000000
--- a/samples/SupportDesignDemos/res/layout/design_bottom_sheet_modal.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<LinearLayout
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        android:orientation="vertical"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:padding="16dp">
-
-    <TextView
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:text="@string/bottomsheet_modal"
-            style="@style/TextAppearance.AppCompat.Headline"/>
-
-    <Button
-            android:id="@+id/show"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginTop="16dp"
-            android:text="@string/bottomsheet_show"/>
-
-</LinearLayout>
diff --git a/samples/SupportDesignDemos/res/layout/design_bottom_sheet_persistent.xml b/samples/SupportDesignDemos/res/layout/design_bottom_sheet_persistent.xml
deleted file mode 100644
index 65ed728..0000000
--- a/samples/SupportDesignDemos/res/layout/design_bottom_sheet_persistent.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<android.support.design.widget.CoordinatorLayout
-        android:id="@+id/coordinator"
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        xmlns:app="http://schemas.android.com/apk/res/com.example.android.support.design"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent">
-
-    <TextView
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:text="@string/bottomsheet_persistent"
-            android:padding="16dp"
-            style="@style/TextAppearance.AppCompat.Headline"/>
-
-    <!--
-        This is the bottom sheet. You can use any View as a bottom sheet by marking it with
-        app:layout_behavior as BottomSheetBehavior.
-    -->
-    <LinearLayout
-            android:id="@+id/bottom_sheet"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:layout_marginLeft="@dimen/bottom_sheet_horizontal_margin"
-            android:layout_marginRight="@dimen/bottom_sheet_horizontal_margin"
-            android:background="?android:attr/windowBackground"
-            android:elevation="@dimen/bottom_sheet_elevation"
-            android:minHeight="@dimen/bottom_sheet_peek_height"
-            android:orientation="vertical"
-            app:layout_behavior="@string/bottom_sheet_behavior"
-            app:behavior_peekHeight="@dimen/bottom_sheet_peek_height">
-
-        <include layout="@layout/include_bottom_sheet"/>
-
-    </LinearLayout>
-
-</android.support.design.widget.CoordinatorLayout>
diff --git a/samples/SupportDesignDemos/res/layout/design_bottom_sheet_recyclerview.xml b/samples/SupportDesignDemos/res/layout/design_bottom_sheet_recyclerview.xml
deleted file mode 100644
index 7126262..0000000
--- a/samples/SupportDesignDemos/res/layout/design_bottom_sheet_recyclerview.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<android.support.v7.widget.RecyclerView
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        android:id="@+id/bottom_sheet_recyclerview"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:paddingTop="8dp"
-        android:paddingBottom="8dp"
-        android:clipToPadding="false"
-        android:scrollbars="vertical"/>
diff --git a/samples/SupportDesignDemos/res/layout/design_bottom_sheet_scroll.xml b/samples/SupportDesignDemos/res/layout/design_bottom_sheet_scroll.xml
deleted file mode 100644
index 7b3da9f..0000000
--- a/samples/SupportDesignDemos/res/layout/design_bottom_sheet_scroll.xml
+++ /dev/null
@@ -1,72 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2016 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<android.support.design.widget.CoordinatorLayout
-        android:id="@+id/coordinator"
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        xmlns:app="http://schemas.android.com/apk/res/com.example.android.support.design"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent">
-
-    <ScrollView
-            android:layout_width="match_parent"
-            android:layout_height="match_parent">
-
-        <LinearLayout
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:orientation="vertical"
-                android:padding="16dp">
-
-            <TextView
-                    android:layout_width="match_parent"
-                    android:layout_height="wrap_content"
-                    android:text="@string/bottomsheet_scroll"
-                    style="@style/TextAppearance.AppCompat.Headline"/>
-
-            <TextView
-                    android:id="@+id/dialogue_background"
-                    android:layout_width="match_parent"
-                    android:layout_height="wrap_content"
-                    android:layout_marginTop="16dp"
-                    style="@style/TextAppearance.AppCompat.Body1"/>
-
-        </LinearLayout>
-
-    </ScrollView>
-
-    <!--
-        This is the bottom sheet. You can use any View as a bottom sheet by marking it with
-        app:layout_behavior as BottomSheetBehavior.
-    -->
-    <LinearLayout
-            android:id="@+id/bottom_sheet"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:layout_marginLeft="@dimen/bottom_sheet_horizontal_margin"
-            android:layout_marginRight="@dimen/bottom_sheet_horizontal_margin"
-            android:background="?android:attr/windowBackground"
-            android:elevation="@dimen/bottom_sheet_elevation"
-            android:minHeight="@dimen/bottom_sheet_peek_height"
-            android:orientation="vertical"
-            app:layout_behavior="@string/bottom_sheet_behavior"
-            app:behavior_peekHeight="@dimen/bottom_sheet_peek_height">
-
-        <include layout="@layout/include_bottom_sheet"/>
-
-    </LinearLayout>
-
-</android.support.design.widget.CoordinatorLayout>
diff --git a/samples/SupportDesignDemos/res/layout/design_bottom_sheet_with_fragment.xml b/samples/SupportDesignDemos/res/layout/design_bottom_sheet_with_fragment.xml
deleted file mode 100644
index 61d38cf..0000000
--- a/samples/SupportDesignDemos/res/layout/design_bottom_sheet_with_fragment.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<android.support.design.widget.CoordinatorLayout
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        xmlns:app="http://schemas.android.com/apk/res-auto">
-
-    <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:layout_marginBottom="@dimen/bottom_sheet_peek_height"
-            android:orientation="vertical">
-
-        <TextView
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:text="@string/bottomsheet_with_fragment"
-                android:padding="16dp"
-                style="@style/TextAppearance.AppCompat.Headline"/>
-
-        <android.support.v7.widget.RecyclerView
-                android:id="@+id/list1"
-                android:layout_width="match_parent"
-                android:layout_height="0dp"
-                android:layout_weight="1"/>
-
-    </LinearLayout>
-
-    <fragment
-            android:id="@+id/bottom_sheet"
-            class="com.example.android.support.design.widget.BottomSheetWithFragment$BottomSheetFragment"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            app:layout_behavior="@string/bottom_sheet_behavior"
-            app:behavior_peekHeight="@dimen/bottom_sheet_peek_height"/>
-
-</android.support.design.widget.CoordinatorLayout>
diff --git a/samples/SupportDesignDemos/res/layout/design_fab.xml b/samples/SupportDesignDemos/res/layout/design_fab.xml
deleted file mode 100644
index 0eedea3..0000000
--- a/samples/SupportDesignDemos/res/layout/design_fab.xml
+++ /dev/null
@@ -1,70 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
-             xmlns:app="http://schemas.android.com/apk/res-auto"
-             android:layout_width="match_parent"
-             android:layout_height="match_parent">
-
-    <android.support.v7.widget.Toolbar
-            android:id="@+id/toolbar"
-            android:layout_height="wrap_content"
-            android:layout_width="match_parent"
-            android:minHeight="?attr/actionBarSize"
-            android:background="?attr/colorPrimaryDark"
-            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
-            app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
-
-    <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:orientation="vertical"
-            android:gravity="center_vertical"
-            android:clipToPadding="true">
-
-        <TextView
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:textAppearance="@style/TextAppearance.AppCompat.Title"
-                android:text="@string/fab_size_normal"
-                android:layout_margin="16dp"/>
-
-        <android.support.design.widget.FloatingActionButton
-                android:layout_height="wrap_content"
-                android:layout_width="wrap_content"
-                android:layout_margin="16dp"
-                android:src="@drawable/ic_add"
-                android:clickable="true" />
-
-        <TextView
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_margin="16dp"
-                android:textAppearance="@style/TextAppearance.AppCompat.Title"
-                android:text="@string/fab_size_mini" />
-
-        <android.support.design.widget.FloatingActionButton
-                android:layout_height="wrap_content"
-                android:layout_width="wrap_content"
-                android:layout_margin="16dp"
-                android:src="@drawable/ic_add"
-                android:clickable="true"
-                app:fabSize="mini" />
-
-    </LinearLayout>
-
-</FrameLayout>
\ No newline at end of file
diff --git a/samples/SupportDesignDemos/res/layout/design_navigation.xml b/samples/SupportDesignDemos/res/layout/design_navigation.xml
deleted file mode 100644
index 1ed87ae..0000000
--- a/samples/SupportDesignDemos/res/layout/design_navigation.xml
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<android.support.v4.widget.DrawerLayout
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        xmlns:app="http://schemas.android.com/apk/res-auto"
-        android:id="@+id/drawer_layout"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:fitsSystemWindows="true">
-
-    <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:orientation="vertical">
-
-        <android.support.v7.widget.Toolbar
-                android:id="@+id/toolbar"
-                android:layout_height="wrap_content"
-                android:layout_width="match_parent"
-                android:minHeight="?attr/actionBarSize"
-                android:background="?attr/colorPrimary"
-                android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
-                app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
-
-        <TextView
-                android:id="@+id/message"
-                android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                android:freezesText="true"
-                android:gravity="center"
-                android:text="@string/navigation_1"
-                android:textAppearance="?android:attr/textAppearanceLarge"/>
-
-    </LinearLayout>
-
-    <android.support.design.widget.NavigationView
-            android:id="@+id/navigation"
-            android:layout_width="wrap_content"
-            android:layout_height="match_parent"
-            android:layout_gravity="start"
-            app:menu="@menu/navigation"/>
-
-</android.support.v4.widget.DrawerLayout>
diff --git a/samples/SupportDesignDemos/res/layout/design_navigation_header.xml b/samples/SupportDesignDemos/res/layout/design_navigation_header.xml
deleted file mode 100644
index a03f0bb..0000000
--- a/samples/SupportDesignDemos/res/layout/design_navigation_header.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-
-<TextView xmlns:android="http://schemas.android.com/apk/res/android"
-          android:layout_width="match_parent"
-          android:layout_height="wrap_content"
-          android:minHeight="180dp"
-          android:padding="16dp"
-          android:background="?attr/colorPrimary"
-          android:gravity="bottom|start"
-          android:text="@string/navigation_header"
-          android:textAppearance="?android:attr/textAppearanceLargeInverse"/>
diff --git a/samples/SupportDesignDemos/res/layout/design_navigation_without_drawer.xml b/samples/SupportDesignDemos/res/layout/design_navigation_without_drawer.xml
deleted file mode 100644
index 31cf5de..0000000
--- a/samples/SupportDesignDemos/res/layout/design_navigation_without_drawer.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-              xmlns:app="http://schemas.android.com/apk/res/com.example.android.support.design"
-              android:orientation="horizontal"
-              android:layout_width="match_parent"
-              android:layout_height="match_parent">
-
-    <android.support.design.widget.NavigationView
-            android:id="@+id/navigation"
-            android:layout_width="0dp"
-            android:layout_height="match_parent"
-            android:layout_weight="1"
-            app:menu="@menu/navigation"/>
-
-    <TextView
-            android:id="@+id/message"
-            android:layout_width="0dp"
-            android:layout_height="match_parent"
-            android:layout_weight="1"
-            android:freezesText="true"
-            android:gravity="center"
-            android:text="@string/navigation_1"
-            android:textAppearance="?android:attr/textAppearanceLarge"/>
-
-</LinearLayout>
diff --git a/samples/SupportDesignDemos/res/layout/design_snackbar.xml b/samples/SupportDesignDemos/res/layout/design_snackbar.xml
deleted file mode 100644
index ea5508a..0000000
--- a/samples/SupportDesignDemos/res/layout/design_snackbar.xml
+++ /dev/null
@@ -1,61 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-
-<android.support.design.widget.CoordinatorLayout
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        android:id="@+id/content_view"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent">
-
-    <LinearLayout android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  android:padding="16dp"
-                  android:orientation="vertical">
-
-        <Button
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:text="@string/snackbar_show_short"
-                android:onClick="showShort"/>
-
-        <Button
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:text="@string/snackbar_show_short_action"
-                android:onClick="showAction"/>
-
-        <Button
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:text="@string/snackbar_show_long"
-                android:onClick="showLong"/>
-
-        <Button
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:text="@string/snackbar_show_long_action"
-                android:onClick="showLongAction"/>
-
-        <Button
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:text="@string/snackbar_show_long_long_action"
-                android:onClick="showLongLongAction"/>
-
-    </LinearLayout>
-
-</android.support.design.widget.CoordinatorLayout>
\ No newline at end of file
diff --git a/samples/SupportDesignDemos/res/layout/design_snackbar_with_fab.xml b/samples/SupportDesignDemos/res/layout/design_snackbar_with_fab.xml
deleted file mode 100644
index 2f64d7b..0000000
--- a/samples/SupportDesignDemos/res/layout/design_snackbar_with_fab.xml
+++ /dev/null
@@ -1,69 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-
-<android.support.design.widget.CoordinatorLayout
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        android:id="@+id/content_view"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent">
-
-    <LinearLayout android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  android:padding="16dp"
-                  android:orientation="vertical">
-
-        <Button
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:text="@string/snackbar_show_short"
-                android:onClick="showShort"/>
-
-        <Button
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:text="@string/snackbar_show_short_action"
-                android:onClick="showAction"/>
-
-        <Button
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:text="@string/snackbar_show_long"
-                android:onClick="showLong"/>
-
-        <Button
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:text="@string/snackbar_show_long_action"
-                android:onClick="showLongAction"/>
-
-        <Button
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:text="@string/snackbar_show_long_long_action"
-                android:onClick="showLongLongAction"/>
-
-    </LinearLayout>
-
-    <android.support.design.widget.FloatingActionButton
-            android:layout_height="wrap_content"
-            android:layout_width="wrap_content"
-            android:layout_gravity="bottom|end"
-            android:layout_margin="16dp"
-            android:src="@drawable/ic_add"
-            android:clickable="true"/>
-
-</android.support.design.widget.CoordinatorLayout>
\ No newline at end of file
diff --git a/samples/SupportDesignDemos/res/layout/design_snackbar_without_col.xml b/samples/SupportDesignDemos/res/layout/design_snackbar_without_col.xml
deleted file mode 100644
index 055479a..0000000
--- a/samples/SupportDesignDemos/res/layout/design_snackbar_without_col.xml
+++ /dev/null
@@ -1,55 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ 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.
-  -->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-              android:id="@+id/content_view"
-              android:layout_width="match_parent"
-              android:layout_height="wrap_content"
-              android:padding="16dp"
-              android:orientation="vertical">
-
-    <Button
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:text="@string/snackbar_show_short"
-            android:onClick="showShort"/>
-
-    <Button
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:text="@string/snackbar_show_short_action"
-            android:onClick="showAction"/>
-
-    <Button
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:text="@string/snackbar_show_long"
-            android:onClick="showLong"/>
-
-    <Button
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:text="@string/snackbar_show_long_action"
-            android:onClick="showLongAction"/>
-
-    <Button
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:text="@string/snackbar_show_long_long_action"
-            android:onClick="showLongLongAction"/>
-
-</LinearLayout>
diff --git a/samples/SupportDesignDemos/res/layout/design_tab_custom.xml b/samples/SupportDesignDemos/res/layout/design_tab_custom.xml
deleted file mode 100644
index 77027ec..0000000
--- a/samples/SupportDesignDemos/res/layout/design_tab_custom.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2016 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="match_parent">
-
-    <View
-        android:layout_width="16dp"
-        android:layout_height="16dp"
-        android:layout_centerInParent="true"
-        android:background="@drawable/custom_tab_indicator" />
-
-</RelativeLayout>
\ No newline at end of file
diff --git a/samples/SupportDesignDemos/res/layout/design_tabs_custom.xml b/samples/SupportDesignDemos/res/layout/design_tabs_custom.xml
deleted file mode 100644
index e8e3ed9..0000000
--- a/samples/SupportDesignDemos/res/layout/design_tabs_custom.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2016 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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:app="http://schemas.android.com/apk/res-auto"
-              android:layout_width="match_parent"
-              android:layout_height="match_parent"
-              android:orientation="vertical">
-
-    <android.support.v7.widget.Toolbar
-            android:id="@+id/toolbar"
-            android:layout_height="?attr/actionBarSize"
-            android:layout_width="match_parent"
-            android:background="?attr/colorPrimary"
-            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
-            app:contentInsetStart="72dp"
-            app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
-
-    <android.support.design.widget.TabLayout
-            android:id="@+id/tabs"
-            android:layout_height="wrap_content"
-            android:layout_width="match_parent"
-            android:background="?attr/colorPrimary"
-            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" />
-
-</LinearLayout>
diff --git a/samples/SupportDesignDemos/res/layout/design_tabs_item.xml b/samples/SupportDesignDemos/res/layout/design_tabs_item.xml
deleted file mode 100644
index 560b165..0000000
--- a/samples/SupportDesignDemos/res/layout/design_tabs_item.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2016 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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:app="http://schemas.android.com/apk/res-auto"
-              android:layout_width="match_parent"
-              android:layout_height="match_parent"
-              android:orientation="vertical">
-
-    <android.support.v7.widget.Toolbar
-            android:id="@+id/toolbar"
-            android:layout_height="?attr/actionBarSize"
-            android:layout_width="match_parent"
-            android:background="?attr/colorPrimary"
-            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
-            app:contentInsetStart="72dp"
-            app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
-
-    <android.support.design.widget.TabLayout
-            android:id="@+id/tabs"
-            android:layout_height="wrap_content"
-            android:layout_width="match_parent"
-            android:background="?attr/colorPrimary"
-            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
-
-        <android.support.design.widget.TabItem
-                android:text="@string/tab_text"/>
-
-        <android.support.design.widget.TabItem
-                android:icon="@drawable/ic_android"/>
-
-    </android.support.design.widget.TabLayout>
-
-</LinearLayout>
diff --git a/samples/SupportDesignDemos/res/layout/design_tabs_viewpager.xml b/samples/SupportDesignDemos/res/layout/design_tabs_viewpager.xml
deleted file mode 100644
index 8d78ff9..0000000
--- a/samples/SupportDesignDemos/res/layout/design_tabs_viewpager.xml
+++ /dev/null
@@ -1,120 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-              xmlns:app="http://schemas.android.com/apk/res-auto"
-              android:layout_width="match_parent"
-              android:layout_height="match_parent"
-              android:orientation="vertical">
-
-    <android.support.v7.widget.Toolbar
-            android:id="@+id/toolbar"
-            android:layout_height="?attr/actionBarSize"
-            android:layout_width="match_parent"
-            android:background="?attr/colorPrimary"
-            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
-            app:contentInsetStart="72dp"
-            app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
-
-    <android.support.design.widget.TabLayout
-            android:id="@+id/tabs"
-            android:layout_height="wrap_content"
-            android:layout_width="match_parent"
-            android:background="?attr/colorPrimary"
-            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
-            app:tabMode="scrollable"
-            app:tabContentStart="72dp"/>
-
-    <android.support.v4.view.ViewPager
-            android:id="@+id/tabs_viewpager"
-            android:layout_height="0px"
-            android:layout_width="match_parent"
-            android:layout_weight="1"/>
-
-    <LinearLayout
-            android:id="@+id/buttons"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_margin="16dp">
-
-        <Button
-                android:id="@+id/btn_add_tab"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:text="@string/add_tab"
-                android:onClick="addTab"/>
-
-        <Button
-                android:id="@+id/btn_remove_tab"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:text="@string/remove_tab"
-                android:onClick="removeTab"/>
-
-        <Button
-                android:id="@+id/btn_select_first_tab"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:text="@string/select_first_tab"
-                android:onClick="selectFirstTab"/>
-
-    </LinearLayout>
-
-    <RadioGroup
-            android:id="@+id/radiogroup_tab_mode"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:orientation="horizontal"
-            android:gravity="center_horizontal"
-            android:padding="8dp">
-
-        <RadioButton
-                android:id="@+id/rb_tab_fixed"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:text="@string/tabs_fixed"/>
-
-        <RadioButton
-                android:id="@+id/rb_tab_scrollable"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:text="@string/tabs_scrollable"/>
-    </RadioGroup>
-
-    <RadioGroup
-            android:id="@+id/radiogroup_tab_gravity"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:orientation="horizontal"
-            android:gravity="center_horizontal"
-            android:padding="8dp">
-
-        <RadioButton
-                android:id="@+id/rb_tab_g_center"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:text="@string/tabs_gravity_center"/>
-
-        <RadioButton
-                android:id="@+id/rb_tab_g_fill"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:text="@string/tabs_gravity_fill"/>
-
-    </RadioGroup>
-
-</LinearLayout>
diff --git a/samples/SupportDesignDemos/res/layout/design_text_input.xml b/samples/SupportDesignDemos/res/layout/design_text_input.xml
deleted file mode 100644
index bd5f69b..0000000
--- a/samples/SupportDesignDemos/res/layout/design_text_input.xml
+++ /dev/null
@@ -1,88 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-              xmlns:app="http://schemas.android.com/apk/res-auto"
-              android:layout_width="match_parent"
-              android:layout_height="match_parent"
-              android:orientation="vertical"
-              android:padding="16dp">
-
-    <android.support.design.widget.TextInputLayout
-            android:id="@+id/input_username"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            app:errorEnabled="true">
-
-        <android.support.design.widget.TextInputEditText
-                android:id="@+id/edit_username"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:hint="@string/form_username"/>
-
-    </android.support.design.widget.TextInputLayout>
-
-    <LinearLayout android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  android:orientation="horizontal">
-
-        <Button
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:text="@string/show_error"
-                android:onClick="showError"/>
-
-        <Button
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:text="@string/clear_error"
-                android:onClick="clearError"/>
-
-    </LinearLayout>
-
-    <android.support.design.widget.TextInputLayout
-            android:id="@+id/input_email"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginTop="8dp"
-            app:errorEnabled="true">
-
-        <android.support.design.widget.TextInputEditText
-                android:id="@+id/edit_email"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:hint="@string/form_email"/>
-
-    </android.support.design.widget.TextInputLayout>
-
-    <android.support.design.widget.TextInputLayout
-            android:id="@+id/input_description"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginTop="8dp"
-            app:counterEnabled="true"
-            app:counterMaxLength="30">
-
-        <EditText
-                android:id="@+id/edit_description"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:hint="@string/form_description"/>
-
-    </android.support.design.widget.TextInputLayout>
-
-</LinearLayout>
\ No newline at end of file
diff --git a/samples/SupportDesignDemos/res/layout/include_appbar_recyclerview.xml b/samples/SupportDesignDemos/res/layout/include_appbar_recyclerview.xml
deleted file mode 100644
index ab255e4..0000000
--- a/samples/SupportDesignDemos/res/layout/include_appbar_recyclerview.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ 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.
-  -->
-<android.support.v7.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android"
-        xmlns:app="http://schemas.android.com/apk/res-auto"
-        android:id="@+id/appbar_recyclerview"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        app:layout_behavior="@string/appbar_scrolling_view_behavior" />
\ No newline at end of file
diff --git a/samples/SupportDesignDemos/res/layout/include_appbar_recyclerview_swiperefresh.xml b/samples/SupportDesignDemos/res/layout/include_appbar_recyclerview_swiperefresh.xml
deleted file mode 100644
index 6a8d448..0000000
--- a/samples/SupportDesignDemos/res/layout/include_appbar_recyclerview_swiperefresh.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-
-<android.support.v4.widget.SwipeRefreshLayout
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        xmlns:app="http://schemas.android.com/apk/res-auto"
-        android:id="@+id/swiperefresh"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        app:layout_behavior="@string/appbar_scrolling_view_behavior">
-
-    <android.support.v7.widget.RecyclerView
-            android:id="@+id/appbar_recyclerview"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"/>
-
-</android.support.v4.widget.SwipeRefreshLayout>
\ No newline at end of file
diff --git a/samples/SupportDesignDemos/res/layout/include_appbar_scrollview.xml b/samples/SupportDesignDemos/res/layout/include_appbar_scrollview.xml
deleted file mode 100644
index b10752a..0000000
--- a/samples/SupportDesignDemos/res/layout/include_appbar_scrollview.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
-        xmlns:app="http://schemas.android.com/apk/res-auto"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        app:layout_behavior="@string/appbar_scrolling_view_behavior">
-
-    <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="1000dp"
-            android:orientation="vertical">
-
-        <TextView
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:gravity="center_horizontal"
-                android:text="@string/scroll_top" />
-
-        <TextView
-                android:id="@+id/textview_dialogue"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:padding="16dp"/>
-
-        <TextView
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:gravity="center_horizontal"
-                android:text="@string/scroll_bottom" />
-
-    </LinearLayout>
-
-</android.support.v4.widget.NestedScrollView>
\ No newline at end of file
diff --git a/samples/SupportDesignDemos/res/layout/include_appbar_scrollview_with_image.xml b/samples/SupportDesignDemos/res/layout/include_appbar_scrollview_with_image.xml
deleted file mode 100644
index a5392b2..0000000
--- a/samples/SupportDesignDemos/res/layout/include_appbar_scrollview_with_image.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
-        xmlns:app="http://schemas.android.com/apk/res-auto"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        app:layout_behavior="@string/appbar_scrolling_view_behavior"
-        app:behavior_overlapTop="32dp">
-
-    <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="1000dp"
-            android:orientation="vertical">
-
-        <ImageView android:layout_width="72dp"
-                   android:layout_height="72dp"
-                   android:src="@drawable/app_sample_code"
-                   android:layout_marginLeft="16dp"/>
-
-        <TextView
-                android:id="@+id/textview_dialogue"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:padding="16dp"/>
-
-    </LinearLayout>
-
-</android.support.v4.widget.NestedScrollView>
\ No newline at end of file
diff --git a/samples/SupportDesignDemos/res/layout/include_bottom_sheet.xml b/samples/SupportDesignDemos/res/layout/include_bottom_sheet.xml
deleted file mode 100644
index ab00ece..0000000
--- a/samples/SupportDesignDemos/res/layout/include_bottom_sheet.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<merge xmlns:tools="http://schemas.android.com/tools"
-       xmlns:android="http://schemas.android.com/apk/res/android"
-       tools:showIn="@layout/design_bottom_sheet">
-
-    <TextView
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:text="@string/bottom_sheet"
-            android:paddingTop="8dp"
-            android:paddingLeft="16dp"
-            android:paddingRight="16dp"
-            android:paddingBottom="8dp"
-            style="@style/TextAppearance.AppCompat.Title"/>
-
-    <View
-            android:layout_width="match_parent"
-            android:layout_height="1dp"
-            android:background="@android:color/darker_gray"/>
-
-    <android.support.v4.widget.NestedScrollView
-            android:id="@+id/scroll"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent">
-
-        <TextView
-                android:id="@+id/dialogue"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:padding="16dp"
-                style="@style/TextAppearance.AppCompat.Body1"/>
-
-    </android.support.v4.widget.NestedScrollView>
-
-</merge>
diff --git a/samples/SupportDesignDemos/res/menu/navigation.xml b/samples/SupportDesignDemos/res/menu/navigation.xml
deleted file mode 100644
index 6425b18..0000000
--- a/samples/SupportDesignDemos/res/menu/navigation.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<menu xmlns:android="http://schemas.android.com/apk/res/android"
-      xmlns:app="http://schemas.android.com/apk/res-auto">
-
-    <!-- Main items -->
-    <group android:checkableBehavior="single">
-        <item
-                android:id="@+id/navigation_item_1"
-                android:checked="true"
-                android:icon="@drawable/ic_android"
-                android:title="@string/navigation_item_1"/>
-        <item
-                android:id="@+id/navigation_item_2"
-                android:icon="@drawable/ic_android"
-                android:title="@string/navigation_item_2"/>
-        <item
-                android:id="@+id/navigation_item_3"
-                android:icon="@drawable/ic_android"
-                android:title="@string/navigation_item_3"
-                app:actionLayout="@layout/action_layout"/>
-        <item
-                android:id="@+id/navigation_item_disabled"
-                android:icon="@drawable/ic_android"
-                android:title="@string/navigation_item_4"
-                android:enabled="false"/>
-        <item
-                android:id="@+id/navigation_invisible"
-                android:icon="@drawable/ic_android"
-                android:title="@string/navigation_invisible"
-                android:visible="false"/>
-    </group>
-
-    <item
-            android:id="@+id/navigation_subheader"
-            android:title="@string/navigation_subheader">
-        <menu>
-            <item
-                    android:id="@+id/navigation_sub_item_1"
-                    android:icon="@drawable/ic_android"
-                    android:title="@string/navigation_sub_item_1"/>
-            <item
-                    android:id="@+id/navigation_sub_item_2"
-                    android:icon="@drawable/ic_android"
-                    android:title="@string/navigation_sub_item_2"/>
-        </menu>
-    </item>
-
-    <group android:id="@+id/aligned_items">
-        <item
-                android:id="@+id/navigation_with_icon"
-                android:icon="@drawable/ic_android"
-                android:title="@string/navigation_item_with_icon"/>
-        <item
-                android:id="@+id/navigation_without_icon"
-                android:title="@string/navigation_item_without_icon"/>
-    </group>
-
-</menu>
diff --git a/samples/SupportDesignDemos/res/menu/sample_actions.xml b/samples/SupportDesignDemos/res/menu/sample_actions.xml
deleted file mode 100644
index 7a13649..0000000
--- a/samples/SupportDesignDemos/res/menu/sample_actions.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2015 Google Inc.
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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"
-      xmlns:app="http://schemas.android.com/apk/res-auto">
-    <item android:id="@+id/action_search"
-          android:title="@string/menu_search"
-          android:icon="@drawable/ic_search"
-          app:showAsAction="ifRoom"/>
-    <item android:id="@+id/action_settings"
-          android:title="@string/menu_settings"
-          app:showAsAction="never"/>
-</menu>
diff --git a/samples/SupportDesignDemos/res/values-v21/styles.xml b/samples/SupportDesignDemos/res/values-v21/styles.xml
deleted file mode 100644
index 298dcf3..0000000
--- a/samples/SupportDesignDemos/res/values-v21/styles.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-
-<resources>
-
-    <style name="Theme.Design.TransparentStatus">
-        <item name="android:statusBarColor">@android:color/transparent</item>
-        <item name="android:windowDrawsSystemBarBackgrounds">true</item>
-    </style>
-
-    <style name="Theme.Navigation" parent="Theme.Navigation.Base">
-        <item name="android:statusBarColor">@android:color/transparent</item>
-        <item name="android:windowDrawsSystemBarBackgrounds">true</item>
-    </style>
-
-</resources>
diff --git a/samples/SupportDesignDemos/res/values-w540dp/dimens.xml b/samples/SupportDesignDemos/res/values-w540dp/dimens.xml
deleted file mode 100644
index 26fecbf..0000000
--- a/samples/SupportDesignDemos/res/values-w540dp/dimens.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<resources>
-    <dimen name="bottom_sheet_horizontal_margin">64dp</dimen>
-</resources>
diff --git a/samples/SupportDesignDemos/res/values/dimens.xml b/samples/SupportDesignDemos/res/values/dimens.xml
deleted file mode 100644
index dc3a5f6..0000000
--- a/samples/SupportDesignDemos/res/values/dimens.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<resources>
-    <dimen name="bottom_sheet_horizontal_margin">0dp</dimen>
-    <dimen name="bottom_sheet_elevation">16dp</dimen>
-    <dimen name="bottom_sheet_peek_height">128dp</dimen>
-</resources>
diff --git a/samples/SupportDesignDemos/res/values/strings.xml b/samples/SupportDesignDemos/res/values/strings.xml
deleted file mode 100644
index df23798..0000000
--- a/samples/SupportDesignDemos/res/values/strings.xml
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-
-<resources>
-    <string name="activity_sample_code">Support Design Demos</string>
-
-    <string name="design_fab">Floating Action Button/Basic</string>
-    <string name="design_navigation">NavigationView/Usage</string>
-    <string name="design_navigation_without_drawer">NavigationView/Without drawer</string>
-    <string name="design_tabs_viewpager">TabLayout/Items from ViewPager</string>
-    <string name="design_tabs_preselected_viewpager">TabLayout/Items with preselection from ViewPager</string>
-    <string name="design_tabs_layout_items">TabLayout/Items from layout</string>
-    <string name="design_tabs_custom_items">TabLayout/Custom items</string>
-    <string name="design_text_input">Text Input</string>
-    <string name="design_bottomsheet_persistent">BottomSheet/Persistent</string>
-    <string name="design_bottomsheet_hideable">BottomSheet/Hideable</string>
-    <string name="design_bottomsheet_scroll">BottomSheet/With ScrollView in background</string>
-    <string name="design_bottomsheet_with_fragment">BottomSheet/With Fragment</string>
-    <string name="design_bottomsheet_modal">BottomSheet/Modal</string>
-    <string name="design_bottomsheet_modal_skip_collapsed">BottomSheet/Modal (Skip collapsed)</string>
-
-    <string name="fab_size_normal">Normal size</string>
-    <string name="fab_size_mini">Mini size</string>
-
-    <string name="navigation_open">Open</string>
-    <string name="navigation_close">Close</string>
-    <string name="navigation_item_with_icon">Item with icon</string>
-    <string name="navigation_item_without_icon">Item without icon</string>
-    <string name="navigation_message">Clicked: \"%s\"</string>
-    <string name="navigation_header">Header</string>
-    <string name="navigation_item_1">Item 1</string>
-    <string name="navigation_item_2">Item 2</string>
-    <string name="navigation_item_3">Item 3</string>
-    <string name="navigation_item_4">Item 4 (disabled)</string>
-    <string name="navigation_1">1</string>
-    <string name="navigation_invisible">Invisible</string>
-    <string name="navigation_subheader">Subheader</string>
-    <string name="navigation_sub_item_1">Subitem 1</string>
-    <string name="navigation_sub_item_2">Subitem 2</string>
-
-    <string name="tabs_fixed">Fixed</string>
-    <string name="tabs_scrollable">Scrollable</string>
-    <string name="tabs_gravity_center">Center</string>
-    <string name="tabs_gravity_fill">Fill</string>
-
-    <string name="add_tab">Add tab</string>
-    <string name="remove_tab">Remove tab</string>
-    <string name="select_first_tab">Select tab #0</string>
-
-    <string name="tab_text">Music</string>
-
-    <string name="form_username">Username</string>
-    <string name="form_email">Email address</string>
-    <string name="form_description">Description</string>
-    <string name="show_error">Show error</string>
-    <string name="clear_error">Clear error</string>
-
-    <string name="design_snackbar_basic">Snackbar/Usage</string>
-    <string name="design_snackbar_fab">Snackbar/Coordinated with FAB</string>
-    <string name="design_snackbar_without_col">Snackbar/Usage without CoordinatorLayout</string>
-    <string name="snackbar_show_short">Snackbar (short message)</string>
-    <string name="snackbar_show_long">Snackbar (long message)</string>
-    <string name="snackbar_show_short_action">Show (short message + action)</string>
-    <string name="snackbar_show_long_action">Show (long message + action)</string>
-    <string name="snackbar_show_long_long_action">Show (long message + long action)</string>
-
-    <string name="design_appbar_toolbar_scroll_tabs_scroll">AppBar/Toolbar Scroll + Tabs Scroll</string>
-    <string name="design_appbar_toolbar_scroll_tabs_scroll_snap">AppBar/Toolbar Scroll + Tabs Scroll + Snap</string>
-    <string name="design_appbar_toolbar_scroll_tabs_pin">AppBar/Toolbar Scroll + Tabs Pin</string>
-    <string name="design_appbar_toolbar_scroll_tabs_pin_with_swiperefresh">AppBar/Toolbar Scroll + Tabs Pin + Swipe Refresh</string>
-    <string name="design_appbar_collapsing_toolbar_pin">AppBar/Collapsing Toolbar (pinned)</string>
-    <string name="design_appbar_collapsing_toolbar_pin_fab">AppBar/Collapsing Toolbar (pinned with FAB)</string>
-    <string name="design_appbar_collapsing_toolbar_pin_nested">AppBar/Collapsing Toolbar (pinned + nested)</string>
-    <string name="design_appbar_collapsing_toolbar_scroll">AppBar/Collapsing Toolbar (scroll off)</string>
-    <string name="design_appbar_collapsing_toolbar_scroll_with_swiperefresh">AppBar/Collapsing Toolbar (scroll off) + Swipe Refresh</string>
-    <string name="design_appbar_collapsing_toolbar_with_image">AppBar/Collapsing Toolbar + Parallax Image</string>
-    <string name="design_appbar_collapsing_toolbar_with_image_insets">AppBar/Collapsing Toolbar + Parallax Image + Insets</string>
-    <string name="design_appbar_parallax_overlap">AppBar/Parallax Overlapping content</string>
-    <string name="scroll_top">Top</string>
-    <string name="scroll_bottom">Bottom</string>
-    <string name="menu_search">Search</string>
-    <string name="menu_settings">Settings</string>
-
-    <string name="bottom_sheet">Bottom sheet</string>
-    <string name="bottomsheet_persistent">Persistent</string>
-    <string name="bottomsheet_hideable">Hideable</string>
-    <string name="bottomsheet_scroll">With ScrollView</string>
-    <string name="bottomsheet_with_fragment">With Fragment</string>
-    <string name="bottomsheet_modal">Modal</string>
-    <string name="bottomsheet_hide">Hide</string>
-    <string name="bottomsheet_show">Show</string>
-    <string name="item_n">Item %d</string>
-
-</resources>
diff --git a/samples/SupportDesignDemos/res/values/styles.xml b/samples/SupportDesignDemos/res/values/styles.xml
deleted file mode 100644
index 432bc3e..0000000
--- a/samples/SupportDesignDemos/res/values/styles.xml
+++ /dev/null
@@ -1,74 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-
-<resources>
-
-    <style name="Theme.Design" parent="Theme.AppCompat.Light.NoActionBar">
-        <item name="colorPrimary">#607D8B</item>
-        <item name="colorPrimaryDark">#455A64</item>
-        <item name="colorAccent">#FFAB40</item>
-    </style>
-
-    <style name="Theme.Design.TransparentStatus">
-    </style>
-
-    <style name="Theme.FAB" parent="Theme.AppCompat.Light.NoActionBar">
-        <item name="colorPrimary">#ff00bcd4</item>
-        <item name="colorPrimaryDark">#00838f</item>
-        <item name="colorAccent">#ff0000</item>
-    </style>
-
-    <style name="Theme.Navigation.Base" parent="Theme.AppCompat.Light.NoActionBar">
-        <item name="colorPrimary">#607D8B</item>
-        <item name="colorPrimaryDark">#455A64</item>
-        <item name="colorAccent">#FFAB40</item>
-        <item name="drawerArrowStyle">@style/DrawerArrowStyle</item>
-    </style>
-
-    <style name="DrawerArrowStyle" parent="Widget.AppCompat.DrawerArrowToggle">
-        <item name="spinBars">false</item>
-    </style>
-
-    <style name="Theme.Navigation" parent="Theme.Navigation.Base"/>
-
-    <style name="Theme.BottomSheetModal" parent="Theme.Design">
-        <item name="bottomSheetDialogTheme">@style/Theme.BottomSheetModal.BottomSheetDialog</item>
-    </style>
-
-    <style name="Theme.BottomSheetModal.BottomSheetDialog" parent="Theme.Design.BottomSheetDialog">
-        <item name="android:colorBackground">#37474F</item>
-        <item name="bottomSheetStyle">@style/BottomSheetStyle</item>
-    </style>
-
-    <style name="BottomSheetStyle" parent="Widget.Design.BottomSheet.Modal">
-        <item name="android:layout_marginLeft">@dimen/bottom_sheet_horizontal_margin</item>
-        <item name="android:layout_marginRight">@dimen/bottom_sheet_horizontal_margin</item>
-    </style>
-
-    <style name="Theme.BottomSheetModalSkipCollapsed" parent="Theme.BottomSheetModal">
-        <item name="bottomSheetDialogTheme">@style/Theme.BottomSheetModal.BottomSheetDialogSkipCollapsed</item>
-    </style>
-
-    <style name="Theme.BottomSheetModal.BottomSheetDialogSkipCollapsed" parent="Theme.Design.BottomSheetDialog">
-        <item name="bottomSheetStyle">@style/BottomSheetStyleSkipCollapsed</item>
-    </style>
-
-    <style name="BottomSheetStyleSkipCollapsed" parent="BottomSheetStyle">
-        <item name="behavior_skipCollapsed">true</item>
-    </style>
-
-</resources>
\ No newline at end of file
diff --git a/samples/SupportDesignDemos/src/com/example/android/support/design/Cheeses.java b/samples/SupportDesignDemos/src/com/example/android/support/design/Cheeses.java
deleted file mode 100644
index 86228a2..0000000
--- a/samples/SupportDesignDemos/src/com/example/android/support/design/Cheeses.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * 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.support.design;
-
-public class Cheeses {
-
-    public static final String[] sCheeseStrings = {
-            "Abbaye de Belloc", "Abbaye du Mont des Cats", "Abertam", "Abondance", "Ackawi",
-            "Acorn", "Adelost", "Affidelice au Chablis", "Afuega'l Pitu", "Airag", "Airedale",
-            "Aisy Cendre", "Allgauer Emmentaler", "Alverca", "Ambert", "American Cheese",
-            "Ami du Chambertin", "Anejo Enchilado", "Anneau du Vic-Bilh", "Anthoriro", "Appenzell",
-            "Aragon", "Ardi Gasna", "Ardrahan", "Armenian String", "Aromes au Gene de Marc",
-            "Asadero", "Asiago", "Aubisque Pyrenees", "Autun", "Avaxtskyr", "Baby Swiss",
-            "Babybel", "Baguette Laonnaise", "Bakers", "Baladi", "Balaton", "Bandal", "Banon",
-            "Barry's Bay Cheddar", "Basing", "Basket Cheese", "Bath Cheese", "Bavarian Bergkase",
-            "Baylough", "Beaufort", "Beauvoorde", "Beenleigh Blue", "Beer Cheese", "Bel Paese",
-            "Bergader", "Bergere Bleue", "Berkswell", "Beyaz Peynir", "Bierkase", "Bishop Kennedy",
-            "Blarney", "Bleu d'Auvergne", "Bleu de Gex", "Bleu de Laqueuille",
-            "Bleu de Septmoncel", "Bleu Des Causses", "Blue", "Blue Castello", "Blue Rathgore",
-            "Blue Vein (Australian)", "Blue Vein Cheeses", "Bocconcini", "Bocconcini (Australian)",
-            "Boeren Leidenkaas", "Bonchester", "Bosworth", "Bougon", "Boule Du Roves",
-            "Boulette d'Avesnes", "Boursault", "Boursin", "Bouyssou", "Bra", "Braudostur",
-            "Breakfast Cheese", "Brebis du Lavort", "Brebis du Lochois", "Brebis du Puyfaucon",
-            "Bresse Bleu", "Brick", "Brie", "Brie de Meaux", "Brie de Melun", "Brillat-Savarin",
-            "Brin", "Brin d' Amour", "Brin d'Amour", "Brinza (Burduf Brinza)",
-            "Briquette de Brebis", "Briquette du Forez", "Broccio", "Broccio Demi-Affine",
-            "Brousse du Rove", "Bruder Basil", "Brusselae Kaas (Fromage de Bruxelles)", "Bryndza",
-            "Buchette d'Anjou", "Buffalo", "Burgos", "Butte", "Butterkase", "Button (Innes)",
-            "Buxton Blue", "Cabecou", "Caboc", "Cabrales", "Cachaille", "Caciocavallo", "Caciotta",
-            "Caerphilly", "Cairnsmore", "Calenzana", "Cambazola", "Camembert de Normandie",
-            "Canadian Cheddar", "Canestrato", "Cantal", "Caprice des Dieux", "Capricorn Goat",
-            "Capriole Banon", "Carre de l'Est", "Casciotta di Urbino", "Cashel Blue", "Castellano",
-            "Castelleno", "Castelmagno", "Castelo Branco", "Castigliano", "Cathelain",
-            "Celtic Promise", "Cendre d'Olivet", "Cerney", "Chabichou", "Chabichou du Poitou",
-            "Chabis de Gatine", "Chaource", "Charolais", "Chaumes", "Cheddar",
-            "Cheddar Clothbound", "Cheshire", "Chevres", "Chevrotin des Aravis", "Chontaleno",
-            "Civray", "Coeur de Camembert au Calvados", "Coeur de Chevre", "Colby", "Cold Pack",
-            "Comte", "Coolea", "Cooleney", "Coquetdale", "Corleggy", "Cornish Pepper",
-            "Cotherstone", "Cotija", "Cottage Cheese", "Cottage Cheese (Australian)",
-            "Cougar Gold", "Coulommiers", "Coverdale", "Crayeux de Roncq", "Cream Cheese",
-            "Cream Havarti", "Crema Agria", "Crema Mexicana", "Creme Fraiche", "Crescenza",
-            "Croghan", "Crottin de Chavignol", "Crottin du Chavignol", "Crowdie", "Crowley",
-            "Cuajada", "Curd", "Cure Nantais", "Curworthy", "Cwmtawe Pecorino",
-            "Cypress Grove Chevre", "Danablu (Danish Blue)", "Danbo", "Danish Fontina",
-            "Daralagjazsky", "Dauphin", "Delice des Fiouves", "Denhany Dorset Drum", "Derby",
-            "Dessertnyj Belyj", "Devon Blue", "Devon Garland", "Dolcelatte", "Doolin",
-            "Doppelrhamstufel", "Dorset Blue Vinney", "Double Gloucester", "Double Worcester",
-            "Dreux a la Feuille", "Dry Jack", "Duddleswell", "Dunbarra", "Dunlop", "Dunsyre Blue",
-            "Duroblando", "Durrus", "Dutch Mimolette (Commissiekaas)", "Edam", "Edelpilz",
-            "Emental Grand Cru", "Emlett", "Emmental", "Epoisses de Bourgogne", "Esbareich",
-            "Esrom", "Etorki", "Evansdale Farmhouse Brie", "Evora De L'Alentejo", "Exmoor Blue",
-            "Explorateur", "Feta", "Feta (Australian)", "Figue", "Filetta", "Fin-de-Siecle",
-            "Finlandia Swiss", "Finn", "Fiore Sardo", "Fleur du Maquis", "Flor de Guia",
-            "Flower Marie", "Folded", "Folded cheese with mint", "Fondant de Brebis",
-            "Fontainebleau", "Fontal", "Fontina Val d'Aosta", "Formaggio di capra", "Fougerus",
-            "Four Herb Gouda", "Fourme d' Ambert", "Fourme de Haute Loire", "Fourme de Montbrison",
-            "Fresh Jack", "Fresh Mozzarella", "Fresh Ricotta", "Fresh Truffles", "Fribourgeois",
-            "Friesekaas", "Friesian", "Friesla", "Frinault", "Fromage a Raclette", "Fromage Corse",
-            "Fromage de Montagne de Savoie", "Fromage Frais", "Fruit Cream Cheese",
-            "Frying Cheese", "Fynbo", "Gabriel", "Galette du Paludier", "Galette Lyonnaise",
-            "Galloway Goat's Milk Gems", "Gammelost", "Gaperon a l'Ail", "Garrotxa", "Gastanberra",
-            "Geitost", "Gippsland Blue", "Gjetost", "Gloucester", "Golden Cross", "Gorgonzola",
-            "Gornyaltajski", "Gospel Green", "Gouda", "Goutu", "Gowrie", "Grabetto", "Graddost",
-            "Grafton Village Cheddar", "Grana", "Grana Padano", "Grand Vatel",
-            "Grataron d' Areches", "Gratte-Paille", "Graviera", "Greuilh", "Greve",
-            "Gris de Lille", "Gruyere", "Gubbeen", "Guerbigny", "Halloumi",
-            "Halloumy (Australian)", "Haloumi-Style Cheese", "Harbourne Blue", "Havarti",
-            "Heidi Gruyere", "Hereford Hop", "Herrgardsost", "Herriot Farmhouse", "Herve",
-            "Hipi Iti", "Hubbardston Blue Cow", "Hushallsost", "Iberico", "Idaho Goatster",
-            "Idiazabal", "Il Boschetto al Tartufo", "Ile d'Yeu", "Isle of Mull", "Jarlsberg",
-            "Jermi Tortes", "Jibneh Arabieh", "Jindi Brie", "Jubilee Blue", "Juustoleipa",
-            "Kadchgall", "Kaseri", "Kashta", "Kefalotyri", "Kenafa", "Kernhem", "Kervella Affine",
-            "Kikorangi", "King Island Cape Wickham Brie", "King River Gold", "Klosterkaese",
-            "Knockalara", "Kugelkase", "L'Aveyronnais", "L'Ecir de l'Aubrac", "La Taupiniere",
-            "La Vache Qui Rit", "Laguiole", "Lairobell", "Lajta", "Lanark Blue", "Lancashire",
-            "Langres", "Lappi", "Laruns", "Lavistown", "Le Brin", "Le Fium Orbo", "Le Lacandou",
-            "Le Roule", "Leafield", "Lebbene", "Leerdammer", "Leicester", "Leyden", "Limburger",
-            "Lincolnshire Poacher", "Lingot Saint Bousquet d'Orb", "Liptauer", "Little Rydings",
-            "Livarot", "Llanboidy", "Llanglofan Farmhouse", "Loch Arthur Farmhouse",
-            "Loddiswell Avondale", "Longhorn", "Lou Palou", "Lou Pevre", "Lyonnais", "Maasdam",
-            "Macconais", "Mahoe Aged Gouda", "Mahon", "Malvern", "Mamirolle", "Manchego",
-            "Manouri", "Manur", "Marble Cheddar", "Marbled Cheeses", "Maredsous", "Margotin",
-            "Maribo", "Maroilles", "Mascares", "Mascarpone", "Mascarpone (Australian)",
-            "Mascarpone Torta", "Matocq", "Maytag Blue", "Meira", "Menallack Farmhouse",
-            "Menonita", "Meredith Blue", "Mesost", "Metton (Cancoillotte)", "Meyer Vintage Gouda",
-            "Mihalic Peynir", "Milleens", "Mimolette", "Mine-Gabhar", "Mini Baby Bells", "Mixte",
-            "Molbo", "Monastery Cheeses", "Mondseer", "Mont D'or Lyonnais", "Montasio",
-            "Monterey Jack", "Monterey Jack Dry", "Morbier", "Morbier Cru de Montagne",
-            "Mothais a la Feuille", "Mozzarella", "Mozzarella (Australian)",
-            "Mozzarella di Bufala", "Mozzarella Fresh, in water", "Mozzarella Rolls", "Munster",
-            "Murol", "Mycella", "Myzithra", "Naboulsi", "Nantais", "Neufchatel",
-            "Neufchatel (Australian)", "Niolo", "Nokkelost", "Northumberland", "Oaxaca",
-            "Olde York", "Olivet au Foin", "Olivet Bleu", "Olivet Cendre",
-            "Orkney Extra Mature Cheddar", "Orla", "Oschtjepka", "Ossau Fermier", "Ossau-Iraty",
-            "Oszczypek", "Oxford Blue", "P'tit Berrichon", "Palet de Babligny", "Paneer", "Panela",
-            "Pannerone", "Pant ys Gawn", "Parmesan (Parmigiano)", "Parmigiano Reggiano",
-            "Pas de l'Escalette", "Passendale", "Pasteurized Processed", "Pate de Fromage",
-            "Patefine Fort", "Pave d'Affinois", "Pave d'Auge", "Pave de Chirac", "Pave du Berry",
-            "Pecorino", "Pecorino in Walnut Leaves", "Pecorino Romano", "Peekskill Pyramid",
-            "Pelardon des Cevennes", "Pelardon des Corbieres", "Penamellera", "Penbryn",
-            "Pencarreg", "Perail de Brebis", "Petit Morin", "Petit Pardou", "Petit-Suisse",
-            "Picodon de Chevre", "Picos de Europa", "Piora", "Pithtviers au Foin",
-            "Plateau de Herve", "Plymouth Cheese", "Podhalanski", "Poivre d'Ane", "Polkolbin",
-            "Pont l'Eveque", "Port Nicholson", "Port-Salut", "Postel", "Pouligny-Saint-Pierre",
-            "Pourly", "Prastost", "Pressato", "Prince-Jean", "Processed Cheddar", "Provolone",
-            "Provolone (Australian)", "Pyengana Cheddar", "Pyramide", "Quark",
-            "Quark (Australian)", "Quartirolo Lombardo", "Quatre-Vents", "Quercy Petit",
-            "Queso Blanco", "Queso Blanco con Frutas --Pina y Mango", "Queso de Murcia",
-            "Queso del Montsec", "Queso del Tietar", "Queso Fresco", "Queso Fresco (Adobera)",
-            "Queso Iberico", "Queso Jalapeno", "Queso Majorero", "Queso Media Luna",
-            "Queso Para Frier", "Queso Quesadilla", "Rabacal", "Raclette", "Ragusano", "Raschera",
-            "Reblochon", "Red Leicester", "Regal de la Dombes", "Reggianito", "Remedou",
-            "Requeson", "Richelieu", "Ricotta", "Ricotta (Australian)", "Ricotta Salata", "Ridder",
-            "Rigotte", "Rocamadour", "Rollot", "Romano", "Romans Part Dieu", "Roncal", "Roquefort",
-            "Roule", "Rouleau De Beaulieu", "Royalp Tilsit", "Rubens", "Rustinu", "Saaland Pfarr",
-            "Saanenkaese", "Saga", "Sage Derby", "Sainte Maure", "Saint-Marcellin",
-            "Saint-Nectaire", "Saint-Paulin", "Salers", "Samso", "San Simon", "Sancerre",
-            "Sap Sago", "Sardo", "Sardo Egyptian", "Sbrinz", "Scamorza", "Schabzieger", "Schloss",
-            "Selles sur Cher", "Selva", "Serat", "Seriously Strong Cheddar", "Serra da Estrela",
-            "Sharpam", "Shelburne Cheddar", "Shropshire Blue", "Siraz", "Sirene", "Smoked Gouda",
-            "Somerset Brie", "Sonoma Jack", "Sottocenare al Tartufo", "Soumaintrain",
-            "Sourire Lozerien", "Spenwood", "Sraffordshire Organic", "St. Agur Blue Cheese",
-            "Stilton", "Stinking Bishop", "String", "Sussex Slipcote", "Sveciaost", "Swaledale",
-            "Sweet Style Swiss", "Swiss", "Syrian (Armenian String)", "Tala", "Taleggio", "Tamie",
-            "Tasmania Highland Chevre Log", "Taupiniere", "Teifi", "Telemea", "Testouri",
-            "Tete de Moine", "Tetilla", "Texas Goat Cheese", "Tibet", "Tillamook Cheddar",
-            "Tilsit", "Timboon Brie", "Toma", "Tomme Brulee", "Tomme d'Abondance",
-            "Tomme de Chevre", "Tomme de Romans", "Tomme de Savoie", "Tomme des Chouans", "Tommes",
-            "Torta del Casar", "Toscanello", "Touree de L'Aubier", "Tourmalet",
-            "Trappe (Veritable)", "Trois Cornes De Vendee", "Tronchon", "Trou du Cru", "Truffe",
-            "Tupi", "Turunmaa", "Tymsboro", "Tyn Grug", "Tyning", "Ubriaco", "Ulloa",
-            "Vacherin-Fribourgeois", "Valencay", "Vasterbottenost", "Venaco", "Vendomois",
-            "Vieux Corse", "Vignotte", "Vulscombe", "Waimata Farmhouse Blue",
-            "Washed Rind Cheese (Australian)", "Waterloo", "Weichkaese", "Wellington",
-            "Wensleydale", "White Stilton", "Whitestone Farmhouse", "Wigmore", "Woodside Cabecou",
-            "Xanadu", "Xynotyro", "Yarg Cornish", "Yarra Valley Pyramid", "Yorkshire Blue",
-            "Zamorano", "Zanetti Grana Padano", "Zanetti Parmigiano Reggiano"
-    };
-
-}
diff --git a/samples/SupportDesignDemos/src/com/example/android/support/design/Shakespeare.java b/samples/SupportDesignDemos/src/com/example/android/support/design/Shakespeare.java
deleted file mode 100644
index b4c7343..0000000
--- a/samples/SupportDesignDemos/src/com/example/android/support/design/Shakespeare.java
+++ /dev/null
@@ -1,237 +0,0 @@
-/*
- * 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.support.design;
-
-public final class Shakespeare {
-    /**
-     * Our data, part 1.
-     */
-    public static final String[] TITLES = {
-            "Henry IV (1)",
-            "Henry V",
-            "Henry VIII",
-            "Richard II",
-            "Richard III",
-            "Merchant of Venice",
-            "Othello",
-            "King Lear"
-    };
-
-    /**
-     * Our data, part 2.
-     */
-    public static final String[] DIALOGUE = {
-            "So shaken as we are, so wan with care," +
-            "Find we a time for frighted peace to pant," +
-            "And breathe short-winded accents of new broils" +
-            "To be commenced in strands afar remote." +
-            "No more the thirsty entrance of this soil" +
-            "Shall daub her lips with her own children's blood;" +
-            "Nor more shall trenching war channel her fields," +
-            "Nor bruise her flowerets with the armed hoofs" +
-            "Of hostile paces: those opposed eyes," +
-            "Which, like the meteors of a troubled heaven," +
-            "All of one nature, of one substance bred," +
-            "Did lately meet in the intestine shock" +
-            "And furious close of civil butchery" +
-            "Shall now, in mutual well-beseeming ranks," +
-            "March all one way and be no more opposed" +
-            "Against acquaintance, kindred and allies:" +
-            "The edge of war, like an ill-sheathed knife," +
-            "No more shall cut his master. Therefore, friends," +
-            "As far as to the sepulchre of Christ," +
-            "Whose soldier now, under whose blessed cross" +
-            "We are impressed and engaged to fight," +
-            "Forthwith a power of English shall we levy;" +
-            "Whose arms were moulded in their mothers' womb" +
-            "To chase these pagans in those holy fields" +
-            "Over whose acres walk'd those blessed feet" +
-            "Which fourteen hundred years ago were nail'd" +
-            "For our advantage on the bitter cross." +
-            "But this our purpose now is twelve month old," +
-            "And bootless 'tis to tell you we will go:" +
-            "Therefore we meet not now. Then let me hear" +
-            "Of you, my gentle cousin Westmoreland," +
-            "What yesternight our council did decree" +
-            "In forwarding this dear expedience.",
-
-            "Hear him but reason in divinity," +
-            "And all-admiring with an inward wish" +
-            "You would desire the king were made a prelate:" +
-            "Hear him debate of commonwealth affairs," +
-            "You would say it hath been all in all his study:" +
-            "List his discourse of war, and you shall hear" +
-            "A fearful battle render'd you in music:" +
-            "Turn him to any cause of policy," +
-            "The Gordian knot of it he will unloose," +
-            "Familiar as his garter: that, when he speaks," +
-            "The air, a charter'd libertine, is still," +
-            "And the mute wonder lurketh in men's ears," +
-            "To steal his sweet and honey'd sentences;" +
-            "So that the art and practic part of life" +
-            "Must be the mistress to this theoric:" +
-            "Which is a wonder how his grace should glean it," +
-            "Since his addiction was to courses vain," +
-            "His companies unletter'd, rude and shallow," +
-            "His hours fill'd up with riots, banquets, sports," +
-            "And never noted in him any study," +
-            "Any retirement, any sequestration" +
-            "From open haunts and popularity.",
-
-            "I come no more to make you laugh: things now," +
-            "That bear a weighty and a serious brow," +
-            "Sad, high, and working, full of state and woe," +
-            "Such noble scenes as draw the eye to flow," +
-            "We now present. Those that can pity, here" +
-            "May, if they think it well, let fall a tear;" +
-            "The subject will deserve it. Such as give" +
-            "Their money out of hope they may believe," +
-            "May here find truth too. Those that come to see" +
-            "Only a show or two, and so agree" +
-            "The play may pass, if they be still and willing," +
-            "I'll undertake may see away their shilling" +
-            "Richly in two short hours. Only they" +
-            "That come to hear a merry bawdy play," +
-            "A noise of targets, or to see a fellow" +
-            "In a long motley coat guarded with yellow," +
-            "Will be deceived; for, gentle hearers, know," +
-            "To rank our chosen truth with such a show" +
-            "As fool and fight is, beside forfeiting" +
-            "Our own brains, and the opinion that we bring," +
-            "To make that only true we now intend," +
-            "Will leave us never an understanding friend." +
-            "Therefore, for goodness' sake, and as you are known" +
-            "The first and happiest hearers of the town," +
-            "Be sad, as we would make ye: think ye see" +
-            "The very persons of our noble story" +
-            "As they were living; think you see them great," +
-            "And follow'd with the general throng and sweat" +
-            "Of thousand friends; then in a moment, see" +
-            "How soon this mightiness meets misery:" +
-            "And, if you can be merry then, I'll say" +
-            "A man may weep upon his wedding-day.",
-
-            "First, heaven be the record to my speech!" +
-            "In the devotion of a subject's love," +
-            "Tendering the precious safety of my prince," +
-            "And free from other misbegotten hate," +
-            "Come I appellant to this princely presence." +
-            "Now, Thomas Mowbray, do I turn to thee," +
-            "And mark my greeting well; for what I speak" +
-            "My body shall make good upon this earth," +
-            "Or my divine soul answer it in heaven." +
-            "Thou art a traitor and a miscreant," +
-            "Too good to be so and too bad to live," +
-            "Since the more fair and crystal is the sky," +
-            "The uglier seem the clouds that in it fly." +
-            "Once more, the more to aggravate the note," +
-            "With a foul traitor's name stuff I thy throat;" +
-            "And wish, so please my sovereign, ere I move," +
-            "What my tongue speaks my right drawn sword may prove.",
-
-            "Now is the winter of our discontent" +
-            "Made glorious summer by this sun of York;" +
-            "And all the clouds that lour'd upon our house" +
-            "In the deep bosom of the ocean buried." +
-            "Now are our brows bound with victorious wreaths;" +
-            "Our bruised arms hung up for monuments;" +
-            "Our stern alarums changed to merry meetings," +
-            "Our dreadful marches to delightful measures." +
-            "Grim-visaged war hath smooth'd his wrinkled front;" +
-            "And now, instead of mounting barded steeds" +
-            "To fright the souls of fearful adversaries," +
-            "He capers nimbly in a lady's chamber" +
-            "To the lascivious pleasing of a lute." +
-            "But I, that am not shaped for sportive tricks," +
-            "Nor made to court an amorous looking-glass;" +
-            "I, that am rudely stamp'd, and want love's majesty" +
-            "To strut before a wanton ambling nymph;" +
-            "I, that am curtail'd of this fair proportion," +
-            "Cheated of feature by dissembling nature," +
-            "Deformed, unfinish'd, sent before my time" +
-            "Into this breathing world, scarce half made up," +
-            "And that so lamely and unfashionable" +
-            "That dogs bark at me as I halt by them;" +
-            "Why, I, in this weak piping time of peace," +
-            "Have no delight to pass away the time," +
-            "Unless to spy my shadow in the sun" +
-            "And descant on mine own deformity:" +
-            "And therefore, since I cannot prove a lover," +
-            "To entertain these fair well-spoken days," +
-            "I am determined to prove a villain" +
-            "And hate the idle pleasures of these days." +
-            "Plots have I laid, inductions dangerous," +
-            "By drunken prophecies, libels and dreams," +
-            "To set my brother Clarence and the king" +
-            "In deadly hate the one against the other:" +
-            "And if King Edward be as true and just" +
-            "As I am subtle, false and treacherous," +
-            "This day should Clarence closely be mew'd up," +
-            "About a prophecy, which says that 'G'" +
-            "Of Edward's heirs the murderer shall be." +
-            "Dive, thoughts, down to my soul: here" +
-            "Clarence comes.",
-
-            "To bait fish withal: if it will feed nothing else," +
-            "it will feed my revenge. He hath disgraced me, and" +
-            "hindered me half a million; laughed at my losses," +
-            "mocked at my gains, scorned my nation, thwarted my" +
-            "bargains, cooled my friends, heated mine" +
-            "enemies; and what's his reason? I am a Jew. Hath" +
-            "not a Jew eyes? hath not a Jew hands, organs," +
-            "dimensions, senses, affections, passions? fed with" +
-            "the same food, hurt with the same weapons, subject" +
-            "to the same diseases, healed by the same means," +
-            "warmed and cooled by the same winter and summer, as" +
-            "a Christian is? If you prick us, do we not bleed?" +
-            "if you tickle us, do we not laugh? if you poison" +
-            "us, do we not die? and if you wrong us, shall we not" +
-            "revenge? If we are like you in the rest, we will" +
-            "resemble you in that. If a Jew wrong a Christian," +
-            "what is his humility? Revenge. If a Christian" +
-            "wrong a Jew, what should his sufferance be by" +
-            "Christian example? Why, revenge. The villany you" +
-            "teach me, I will execute, and it shall go hard but I" +
-            "will better the instruction.",
-
-            "Virtue! a fig! 'tis in ourselves that we are thus" +
-            "or thus. Our bodies are our gardens, to the which" +
-            "our wills are gardeners: so that if we will plant" +
-            "nettles, or sow lettuce, set hyssop and weed up" +
-            "thyme, supply it with one gender of herbs, or" +
-            "distract it with many, either to have it sterile" +
-            "with idleness, or manured with industry, why, the" +
-            "power and corrigible authority of this lies in our" +
-            "wills. If the balance of our lives had not one" +
-            "scale of reason to poise another of sensuality, the" +
-            "blood and baseness of our natures would conduct us" +
-            "to most preposterous conclusions: but we have" +
-            "reason to cool our raging motions, our carnal" +
-            "stings, our unbitted lusts, whereof I take this that" +
-            "you call love to be a sect or scion.",
-
-            "Blow, winds, and crack your cheeks! rage! blow!" +
-            "You cataracts and hurricanoes, spout" +
-            "Till you have drench'd our steeples, drown'd the cocks!" +
-            "You sulphurous and thought-executing fires," +
-            "Vaunt-couriers to oak-cleaving thunderbolts," +
-            "Singe my white head! And thou, all-shaking thunder," +
-            "Smite flat the thick rotundity o' the world!" +
-            "Crack nature's moulds, an germens spill at once," +
-            "That make ingrateful man!"
-    };
-}
diff --git a/samples/SupportDesignDemos/src/com/example/android/support/design/SupportDesignDemos.java b/samples/SupportDesignDemos/src/com/example/android/support/design/SupportDesignDemos.java
deleted file mode 100644
index 9c8a51b..0000000
--- a/samples/SupportDesignDemos/src/com/example/android/support/design/SupportDesignDemos.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- * 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.support.design;
-
-import android.app.ListActivity;
-import android.content.Intent;
-import android.content.pm.PackageManager;
-import android.content.pm.ResolveInfo;
-import android.os.Bundle;
-import android.view.View;
-import android.widget.ListView;
-import android.widget.SimpleAdapter;
-
-import java.text.Collator;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-public class SupportDesignDemos extends ListActivity {
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        Intent intent = getIntent();
-        String path = intent.getStringExtra("com.example.android.apis.Path");
-
-        if (path == null) {
-            path = "";
-        }
-
-        setListAdapter(new SimpleAdapter(this, getData(path),
-                android.R.layout.simple_list_item_1, new String[] { "title" },
-                new int[] { android.R.id.text1 }));
-        getListView().setTextFilterEnabled(true);
-    }
-
-    protected List<Map<String, Object>> getData(String prefix) {
-        List<Map<String, Object>> myData = new ArrayList<Map<String, Object>>();
-
-        Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
-        mainIntent.addCategory("com.example.android.support.design.SAMPLE_CODE");
-
-        PackageManager pm = getPackageManager();
-        List<ResolveInfo> list = pm.queryIntentActivities(mainIntent, 0);
-
-        if (null == list)
-            return myData;
-
-        String[] prefixPath;
-        String prefixWithSlash = prefix;
-
-        if (prefix.equals("")) {
-            prefixPath = null;
-        } else {
-            prefixPath = prefix.split("/");
-            prefixWithSlash = prefix + "/";
-        }
-
-        int len = list.size();
-
-        Map<String, Boolean> entries = new HashMap<String, Boolean>();
-
-        for (int i = 0; i < len; i++) {
-            ResolveInfo info = list.get(i);
-            CharSequence labelSeq = info.loadLabel(pm);
-            String label = labelSeq != null
-                    ? labelSeq.toString()
-                    : info.activityInfo.name;
-
-            if (prefixWithSlash.length() == 0 || label.startsWith(prefixWithSlash)) {
-
-                String[] labelPath = label.split("/");
-
-                String nextLabel = prefixPath == null ? labelPath[0] : labelPath[prefixPath.length];
-
-                if ((prefixPath != null ? prefixPath.length : 0) == labelPath.length - 1) {
-                    addItem(myData, nextLabel, activityIntent(
-                            info.activityInfo.applicationInfo.packageName,
-                            info.activityInfo.name));
-                } else {
-                    if (entries.get(nextLabel) == null) {
-                        addItem(myData, nextLabel, browseIntent(
-                                prefix.equals("") ? nextLabel : prefix + "/" + nextLabel));
-                        entries.put(nextLabel, true);
-                    }
-                }
-            }
-        }
-
-        Collections.sort(myData, sDisplayNameComparator);
-
-        return myData;
-    }
-
-    private final static Comparator<Map<String, Object>> sDisplayNameComparator =
-        new Comparator<Map<String, Object>>() {
-        private final Collator   collator = Collator.getInstance();
-
-        @Override
-        public int compare(Map<String, Object> map1, Map<String, Object> map2) {
-            return collator.compare(map1.get("title"), map2.get("title"));
-        }
-    };
-
-    protected Intent activityIntent(String pkg, String componentName) {
-        Intent result = new Intent();
-        result.setClassName(pkg, componentName);
-        return result;
-    }
-
-    protected Intent browseIntent(String path) {
-        Intent result = new Intent();
-        result.setClass(this, SupportDesignDemos.class);
-        result.putExtra("com.example.android.apis.Path", path);
-        return result;
-    }
-
-    protected void addItem(List<Map<String, Object>> data, String name, Intent intent) {
-        Map<String, Object> temp = new HashMap<String, Object>();
-        temp.put("title", name);
-        temp.put("intent", intent);
-        data.add(temp);
-    }
-
-    @Override
-    @SuppressWarnings("unchecked")
-    protected void onListItemClick(ListView l, View v, int position, long id) {
-        Map<String, Object> map = (Map<String, Object>)l.getItemAtPosition(position);
-
-        Intent intent = (Intent) map.get("intent");
-        startActivity(intent);
-    }
-}
diff --git a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/AppBarLayoutToolbarCollapseThenPin.java b/samples/SupportDesignDemos/src/com/example/android/support/design/widget/AppBarLayoutToolbarCollapseThenPin.java
deleted file mode 100644
index 2403852..0000000
--- a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/AppBarLayoutToolbarCollapseThenPin.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * 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.support.design.widget;
-
-import com.example.android.support.design.R;
-
-public class AppBarLayoutToolbarCollapseThenPin extends AppBarLayoutUsageBase {
-
-    @Override
-    protected int getLayoutId() {
-        return R.layout.design_appbar_toolbar_collapse_pin;
-    }
-}
diff --git a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/AppBarLayoutToolbarCollapseThenPinNested.java b/samples/SupportDesignDemos/src/com/example/android/support/design/widget/AppBarLayoutToolbarCollapseThenPinNested.java
deleted file mode 100644
index 957e248..0000000
--- a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/AppBarLayoutToolbarCollapseThenPinNested.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * 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.support.design.widget;
-
-import com.example.android.support.design.R;
-
-public class AppBarLayoutToolbarCollapseThenPinNested extends AppBarLayoutUsageBase {
-
-    @Override
-    protected int getLayoutId() {
-        return R.layout.design_appbar_toolbar_collapse_pin_nested;
-    }
-}
diff --git a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/AppBarLayoutToolbarCollapseThenPinWithFab.java b/samples/SupportDesignDemos/src/com/example/android/support/design/widget/AppBarLayoutToolbarCollapseThenPinWithFab.java
deleted file mode 100644
index 97a7a77..0000000
--- a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/AppBarLayoutToolbarCollapseThenPinWithFab.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * 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.support.design.widget;
-
-import com.example.android.support.design.R;
-
-public class AppBarLayoutToolbarCollapseThenPinWithFab extends AppBarLayoutUsageBase {
-
-    @Override
-    protected int getLayoutId() {
-        return R.layout.design_appbar_toolbar_collapse_pin_with_fab;
-    }
-}
diff --git a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/AppBarLayoutToolbarCollapseThenScroll.java b/samples/SupportDesignDemos/src/com/example/android/support/design/widget/AppBarLayoutToolbarCollapseThenScroll.java
deleted file mode 100644
index 2a4cd26..0000000
--- a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/AppBarLayoutToolbarCollapseThenScroll.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * 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.support.design.widget;
-
-import com.example.android.support.design.R;
-
-public class AppBarLayoutToolbarCollapseThenScroll extends AppBarLayoutUsageBase {
-
-    @Override
-    protected int getLayoutId() {
-        return R.layout.design_appbar_toolbar_collapse_scroll;
-    }
-}
diff --git a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/AppBarLayoutToolbarCollapseThenScrollWithSwipeRefresh.java b/samples/SupportDesignDemos/src/com/example/android/support/design/widget/AppBarLayoutToolbarCollapseThenScrollWithSwipeRefresh.java
deleted file mode 100644
index bed269b..0000000
--- a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/AppBarLayoutToolbarCollapseThenScrollWithSwipeRefresh.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * 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.support.design.widget;
-
-import com.example.android.support.design.R;
-
-public class AppBarLayoutToolbarCollapseThenScrollWithSwipeRefresh extends AppBarLayoutUsageBase {
-
-    @Override
-    protected int getLayoutId() {
-        return R.layout.design_appbar_toolbar_collapse_scroll_with_swiperefresh;
-    }
-}
diff --git a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/AppBarLayoutToolbarCollapseWithImage.java b/samples/SupportDesignDemos/src/com/example/android/support/design/widget/AppBarLayoutToolbarCollapseWithImage.java
deleted file mode 100644
index 8a11278..0000000
--- a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/AppBarLayoutToolbarCollapseWithImage.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * 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.support.design.widget;
-
-import com.example.android.support.design.R;
-
-public class AppBarLayoutToolbarCollapseWithImage extends AppBarLayoutUsageBase {
-
-    @Override
-    protected int getLayoutId() {
-        return R.layout.design_appbar_toolbar_collapse_with_image;
-    }
-}
diff --git a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/AppBarLayoutToolbarCollapseWithImageWithInsets.java b/samples/SupportDesignDemos/src/com/example/android/support/design/widget/AppBarLayoutToolbarCollapseWithImageWithInsets.java
deleted file mode 100644
index 5a16d60..0000000
--- a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/AppBarLayoutToolbarCollapseWithImageWithInsets.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * 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.support.design.widget;
-
-import com.example.android.support.design.R;
-
-public class AppBarLayoutToolbarCollapseWithImageWithInsets extends AppBarLayoutUsageBase {
-
-    @Override
-    protected int getLayoutId() {
-        return R.layout.design_appbar_toolbar_collapse_with_image_insets;
-    }
-}
diff --git a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/AppBarLayoutToolbarParallaxOverlapContent.java b/samples/SupportDesignDemos/src/com/example/android/support/design/widget/AppBarLayoutToolbarParallaxOverlapContent.java
deleted file mode 100644
index 8e45a36..0000000
--- a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/AppBarLayoutToolbarParallaxOverlapContent.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * 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.support.design.widget;
-
-import com.example.android.support.design.R;
-
-public class AppBarLayoutToolbarParallaxOverlapContent extends AppBarLayoutUsageBase {
-
-    @Override
-    protected int getLayoutId() {
-        return R.layout.design_appbar_toolbar_parallax_overlap;
-    }
-
-    @Override
-    protected boolean displayTitle() {
-        return false;
-    }
-}
diff --git a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/AppBarLayoutToolbarScrollTabsPin.java b/samples/SupportDesignDemos/src/com/example/android/support/design/widget/AppBarLayoutToolbarScrollTabsPin.java
deleted file mode 100644
index f153d8b..0000000
--- a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/AppBarLayoutToolbarScrollTabsPin.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * 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.support.design.widget;
-
-import com.example.android.support.design.R;
-
-public class AppBarLayoutToolbarScrollTabsPin extends AppBarLayoutUsageBase {
-
-    @Override
-    protected int getLayoutId() {
-        return R.layout.design_appbar_toolbar_scroll_tabs_pinned;
-    }
-}
diff --git a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/AppBarLayoutToolbarScrollTabsPinWithSwipeRefresh.java b/samples/SupportDesignDemos/src/com/example/android/support/design/widget/AppBarLayoutToolbarScrollTabsPinWithSwipeRefresh.java
deleted file mode 100644
index ddba4df..0000000
--- a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/AppBarLayoutToolbarScrollTabsPinWithSwipeRefresh.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * 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.support.design.widget;
-
-import com.example.android.support.design.R;
-
-public class AppBarLayoutToolbarScrollTabsPinWithSwipeRefresh extends AppBarLayoutUsageBase {
-
-    @Override
-    protected int getLayoutId() {
-        return R.layout.design_appbar_toolbar_scroll_tabs_pinned_with_swiperefres;
-    }
-}
diff --git a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/AppBarLayoutToolbarScrollTabsScroll.java b/samples/SupportDesignDemos/src/com/example/android/support/design/widget/AppBarLayoutToolbarScrollTabsScroll.java
deleted file mode 100644
index f48031f..0000000
--- a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/AppBarLayoutToolbarScrollTabsScroll.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * 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.support.design.widget;
-
-import com.example.android.support.design.R;
-
-public class AppBarLayoutToolbarScrollTabsScroll extends AppBarLayoutUsageBase {
-
-    @Override
-    protected int getLayoutId() {
-        return R.layout.design_appbar_toolbar_scroll_tabs_scroll;
-    }
-}
diff --git a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/AppBarLayoutToolbarScrollTabsScrollSnap.java b/samples/SupportDesignDemos/src/com/example/android/support/design/widget/AppBarLayoutToolbarScrollTabsScrollSnap.java
deleted file mode 100644
index 710a80a..0000000
--- a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/AppBarLayoutToolbarScrollTabsScrollSnap.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * 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.support.design.widget;
-
-import com.example.android.support.design.R;
-
-public class AppBarLayoutToolbarScrollTabsScrollSnap extends AppBarLayoutUsageBase {
-
-    @Override
-    protected int getLayoutId() {
-        return R.layout.design_appbar_toolbar_scroll_tabs_scroll_snap;
-    }
-}
diff --git a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/AppBarLayoutUsageBase.java b/samples/SupportDesignDemos/src/com/example/android/support/design/widget/AppBarLayoutUsageBase.java
deleted file mode 100644
index e616f23..0000000
--- a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/AppBarLayoutUsageBase.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * 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.support.design.widget;
-
-import com.example.android.support.design.Cheeses;
-import com.example.android.support.design.R;
-import com.example.android.support.design.Shakespeare;
-
-import android.os.Bundle;
-import android.os.Handler;
-import android.support.design.widget.CollapsingToolbarLayout;
-import android.support.design.widget.TabLayout;
-import android.support.v4.widget.SwipeRefreshLayout;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.v7.widget.RecyclerView;
-import android.support.v7.widget.Toolbar;
-import android.text.TextUtils;
-import android.view.Menu;
-import android.widget.TextView;
-
-import java.util.Random;
-
-abstract class AppBarLayoutUsageBase extends AppCompatActivity {
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(getLayoutId());
-
-        // Retrieve the Toolbar from our content view, and set it as the action bar
-        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
-        setSupportActionBar(toolbar);
-
-        CollapsingToolbarLayout appBarLayout = (CollapsingToolbarLayout)
-                findViewById(R.id.collapsing_app_bar);
-        if (appBarLayout != null && displayTitle()) {
-            appBarLayout.setTitle(getTitle());
-        }
-
-        TextView dialog = (TextView) findViewById(R.id.textview_dialogue);
-        if (dialog != null) {
-            dialog.setText(TextUtils.concat(Shakespeare.DIALOGUE));
-        }
-
-        RecyclerView recyclerView = (RecyclerView) findViewById(R.id.appbar_recyclerview);
-        if (recyclerView != null) {
-            setupRecyclerView(recyclerView);
-        }
-
-        TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
-        if (tabLayout != null) {
-            setupTabs(tabLayout);
-        }
-
-        final SwipeRefreshLayout refreshLayout = (SwipeRefreshLayout) findViewById(R.id.swiperefresh);
-        if (refreshLayout != null) {
-            refreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
-                private final Handler mHandler = new Handler();
-
-                @Override
-                public void onRefresh() {
-                    // Post a delayed runnable to reset the refreshing state in 2 seconds
-                    mHandler.postDelayed(new Runnable() {
-                        @Override
-                        public void run() {
-                            refreshLayout.setRefreshing(false);
-                        }
-                    }, 2000);
-                }
-            });
-        }
-    }
-
-    @Override
-    public boolean onCreateOptionsMenu(Menu menu) {
-        getMenuInflater().inflate(R.menu.sample_actions, menu);
-        return true;
-    }
-
-    private void addRandomTab(TabLayout tabLayout) {
-        Random r = new Random();
-        String cheese = Cheeses.sCheeseStrings[r.nextInt(Cheeses.sCheeseStrings.length)];
-        tabLayout.addTab(tabLayout.newTab().setText(cheese));
-    }
-
-    private void setupTabs(TabLayout tabLayout) {
-        for (int i = 0; i < 10; i++) {
-            addRandomTab(tabLayout);
-        }
-    }
-
-    private void setupRecyclerView(RecyclerView recyclerView) {
-        recyclerView.setLayoutManager(new LinearLayoutManager(recyclerView.getContext()));
-        recyclerView.setAdapter(new SimpleStringRecyclerViewAdapter(this, Cheeses.sCheeseStrings));
-    }
-
-    protected boolean displayTitle() {
-        return true;
-    }
-
-    protected abstract int getLayoutId();
-
-}
diff --git a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/BottomSheetHideable.java b/samples/SupportDesignDemos/src/com/example/android/support/design/widget/BottomSheetHideable.java
deleted file mode 100644
index b649463..0000000
--- a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/BottomSheetHideable.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * 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.support.design.widget;
-
-import com.example.android.support.design.R;
-
-import android.os.Bundle;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-import android.support.design.widget.BottomSheetBehavior;
-import android.view.View;
-import android.widget.Button;
-import android.widget.TextView;
-
-
-/**
- * This demonstrates basic usage of hideable {@link BottomSheetBehavior}.
- */
-public class BottomSheetHideable extends BottomSheetUsageBase {
-
-    private TextView mTextSlideOffset;
-
-    private Button mToggle;
-
-    @Override
-    protected int getLayoutId() {
-        return R.layout.design_bottom_sheet_hideable;
-    }
-
-    @Override
-    protected void onCreate(@Nullable Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        mTextSlideOffset = (TextView) findViewById(R.id.slide_offset);
-        mToggle = (Button) findViewById(R.id.toggle);
-        mToggle.setOnClickListener(mOnClickListener);
-        mBehavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() {
-            @Override
-            public void onStateChanged(@NonNull View bottomSheet,
-                    @BottomSheetBehavior.State int newState) {
-                switch (newState) {
-                    case BottomSheetBehavior.STATE_HIDDEN:
-                        mToggle.setText(R.string.bottomsheet_show);
-                        mToggle.setEnabled(true);
-                        break;
-                    case BottomSheetBehavior.STATE_EXPANDED:
-                    case BottomSheetBehavior.STATE_COLLAPSED:
-                        mToggle.setText(R.string.bottomsheet_hide);
-                        mToggle.setEnabled(true);
-                        break;
-                }
-            }
-
-            @Override
-            public void onSlide(@NonNull View bottomSheet, float slideOffset) {
-                mTextSlideOffset.setText(String.valueOf(slideOffset));
-            }
-        });
-    }
-
-    private View.OnClickListener mOnClickListener = new View.OnClickListener() {
-        @Override
-        public void onClick(View v) {
-            if (v.getId() == R.id.toggle && mBehavior != null) {
-                mToggle.setEnabled(false);
-                if (mBehavior.getState() == BottomSheetBehavior.STATE_HIDDEN) {
-                    mBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
-                } else {
-                    mBehavior.setState(BottomSheetBehavior.STATE_HIDDEN);
-                }
-            }
-        }
-    };
-
-}
diff --git a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/BottomSheetModal.java b/samples/SupportDesignDemos/src/com/example/android/support/design/widget/BottomSheetModal.java
deleted file mode 100644
index 262f390..0000000
--- a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/BottomSheetModal.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * 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.support.design.widget;
-
-import android.support.design.widget.BottomSheetDialogFragment;
-
-/**
- * This demonstrates basic usage of {@link BottomSheetDialogFragment}.
- */
-public class BottomSheetModal extends BottomSheetModalBase {
-}
diff --git a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/BottomSheetModalBase.java b/samples/SupportDesignDemos/src/com/example/android/support/design/widget/BottomSheetModalBase.java
deleted file mode 100644
index 84c260a..0000000
--- a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/BottomSheetModalBase.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.support.design.widget;
-
-import android.content.Context;
-import android.os.Bundle;
-import android.support.annotation.Nullable;
-import android.support.design.widget.BottomSheetDialogFragment;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.v7.widget.RecyclerView;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-
-import com.example.android.support.design.Cheeses;
-import com.example.android.support.design.R;
-
-abstract class BottomSheetModalBase extends AppCompatActivity {
-
-    private static final String FRAGMENT_MODAL = "modal";
-
-    @Override
-    protected void onCreate(@Nullable Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.design_bottom_sheet_modal);
-        findViewById(R.id.show).setOnClickListener(mOnClickListener);
-    }
-
-    private View.OnClickListener mOnClickListener = new View.OnClickListener() {
-        @Override
-        public void onClick(View v) {
-            switch (v.getId()) {
-                case R.id.show:
-                    new ModalFragment().show(getSupportFragmentManager(), FRAGMENT_MODAL);
-                    break;
-            }
-        }
-    };
-
-    /**
-     * This is the bottom sheet.
-     */
-    public static class ModalFragment extends BottomSheetDialogFragment {
-
-        @Nullable
-        @Override
-        public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
-                @Nullable Bundle savedInstanceState) {
-            return inflater.inflate(R.layout.design_bottom_sheet_recyclerview, container, false);
-        }
-
-        @Override
-        public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
-            // For the scrolling content, you can use RecyclerView, NestedScrollView or any other
-            // View that inherits NestedScrollingChild
-            RecyclerView recyclerView =
-                    (RecyclerView) view.findViewById(R.id.bottom_sheet_recyclerview);
-            Context context = recyclerView.getContext();
-            recyclerView.setLayoutManager(new LinearLayoutManager(context));
-            recyclerView.setAdapter(new SimpleStringRecyclerViewAdapter(context,
-                    Cheeses.sCheeseStrings));
-        }
-
-    }
-
-}
diff --git a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/BottomSheetModalSkipCollapsed.java b/samples/SupportDesignDemos/src/com/example/android/support/design/widget/BottomSheetModalSkipCollapsed.java
deleted file mode 100644
index 509dd7c..0000000
--- a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/BottomSheetModalSkipCollapsed.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.support.design.widget;
-
-import android.support.design.widget.BottomSheetDialogFragment;
-
-/**
- * This demonstrates basic usage of {@link BottomSheetDialogFragment}.
- *
- * <p>This version has behavior_skipCollapsed="true" in its theme.</p>
- */
-public class BottomSheetModalSkipCollapsed extends BottomSheetModalBase {
-}
diff --git a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/BottomSheetPersistent.java b/samples/SupportDesignDemos/src/com/example/android/support/design/widget/BottomSheetPersistent.java
deleted file mode 100644
index 82b6c7d..0000000
--- a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/BottomSheetPersistent.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * 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.support.design.widget;
-
-import com.example.android.support.design.R;
-
-import android.support.design.widget.BottomSheetBehavior;
-
-
-/**
- * This demonstrates basic usage of persistent {@link BottomSheetBehavior}.
- */
-public class BottomSheetPersistent extends BottomSheetUsageBase {
-
-    @Override
-    protected int getLayoutId() {
-        return R.layout.design_bottom_sheet_persistent;
-    }
-
-}
diff --git a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/BottomSheetScrollView.java b/samples/SupportDesignDemos/src/com/example/android/support/design/widget/BottomSheetScrollView.java
deleted file mode 100644
index 64eb5b5..0000000
--- a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/BottomSheetScrollView.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.support.design.widget;
-
-import com.example.android.support.design.R;
-import com.example.android.support.design.Shakespeare;
-
-import android.os.Bundle;
-import android.support.annotation.Nullable;
-import android.text.TextUtils;
-import android.widget.TextView;
-
-public class BottomSheetScrollView extends BottomSheetUsageBase {
-
-    @Override
-    protected int getLayoutId() {
-        return R.layout.design_bottom_sheet_scroll;
-    }
-
-    @Override
-    protected void onCreate(@Nullable Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        ((TextView) findViewById(R.id.dialogue_background))
-                .setText(TextUtils.concat(Shakespeare.DIALOGUE));
-    }
-
-}
diff --git a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/BottomSheetUsageBase.java b/samples/SupportDesignDemos/src/com/example/android/support/design/widget/BottomSheetUsageBase.java
deleted file mode 100644
index 3d1e352..0000000
--- a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/BottomSheetUsageBase.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * 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.support.design.widget;
-
-import com.example.android.support.design.R;
-import com.example.android.support.design.Shakespeare;
-
-import android.os.Bundle;
-import android.support.annotation.Nullable;
-import android.support.design.widget.BottomSheetBehavior;
-import android.support.v7.app.AppCompatActivity;
-import android.text.TextUtils;
-import android.widget.LinearLayout;
-import android.widget.TextView;
-
-/**
- * This demonstrates basic usage of {@link BottomSheetBehavior}.
- */
-abstract class BottomSheetUsageBase extends AppCompatActivity {
-
-    protected BottomSheetBehavior<LinearLayout> mBehavior;
-
-    @Override
-    protected void onCreate(@Nullable Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(getLayoutId());
-        ((TextView) findViewById(R.id.dialogue)).setText(TextUtils.concat(Shakespeare.DIALOGUE));
-        mBehavior = BottomSheetBehavior.from((LinearLayout) findViewById(R.id.bottom_sheet));
-    }
-
-    @Override
-    public void onBackPressed() {
-        if (mBehavior != null) {
-            int state = mBehavior.getState();
-            if (state != BottomSheetBehavior.STATE_COLLAPSED &&
-                    state != BottomSheetBehavior.STATE_HIDDEN) {
-                mBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
-                return;
-            }
-        }
-        super.onBackPressed();
-    }
-
-    protected abstract int getLayoutId();
-
-}
diff --git a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/BottomSheetWithFragment.java b/samples/SupportDesignDemos/src/com/example/android/support/design/widget/BottomSheetWithFragment.java
deleted file mode 100644
index 0b2c7a8..0000000
--- a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/BottomSheetWithFragment.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.support.design.widget;
-
-import com.example.android.support.design.R;
-
-import android.content.Context;
-import android.os.Bundle;
-import android.support.annotation.Nullable;
-import android.support.design.widget.BottomSheetBehavior;
-import android.support.v4.app.Fragment;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.v7.widget.RecyclerView;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.TextView;
-
-/**
- * This demonstrates basic usage of {@link BottomSheetBehavior} with Fragment.
- */
-public class BottomSheetWithFragment extends AppCompatActivity {
-
-    private BottomSheetBehavior mBottomSheetBehavior;
-
-    @Override
-    protected void onCreate(@Nullable Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.design_bottom_sheet_with_fragment);
-        setUpRecyclerView((RecyclerView) findViewById(R.id.list1));
-        mBottomSheetBehavior = BottomSheetBehavior.from(findViewById(R.id.bottom_sheet));
-    }
-
-    @Override
-    public void onBackPressed() {
-        if (mBottomSheetBehavior.getState() == BottomSheetBehavior.STATE_EXPANDED) {
-            mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
-        } else {
-            super.onBackPressed();
-        }
-    }
-
-    private static void setUpRecyclerView(RecyclerView recyclerView) {
-        Context context = recyclerView.getContext();
-        recyclerView.setLayoutManager(new LinearLayoutManager(context));
-        recyclerView.setAdapter(new DummyAdapter(context, 30));
-    }
-
-    public static class BottomSheetFragment extends Fragment {
-
-        @Nullable
-        @Override
-        public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
-                @Nullable Bundle savedInstanceState) {
-            return inflater.inflate(R.layout.design_bottom_sheet_fragment, container, false);
-        }
-
-        @Override
-        public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
-            setUpRecyclerView((RecyclerView) view.findViewById(R.id.list2));
-        }
-    }
-
-    public static class ViewHolder extends RecyclerView.ViewHolder {
-
-        public TextView text;
-
-        public ViewHolder(LayoutInflater inflater, ViewGroup parent) {
-            super(inflater.inflate(android.R.layout.simple_list_item_1, parent, false));
-            text = (TextView) itemView.findViewById(android.R.id.text1);
-        }
-    }
-
-    public static class DummyAdapter extends RecyclerView.Adapter<ViewHolder> {
-
-        private final Context mContext;
-
-        private final int mItemCount;
-
-        public DummyAdapter(Context context, int itemCount) {
-            mContext = context;
-            mItemCount = itemCount;
-        }
-
-        @Override
-        public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
-            return new ViewHolder(LayoutInflater.from(mContext), parent);
-        }
-
-        @Override
-        public void onBindViewHolder(ViewHolder holder, int position) {
-            holder.text.setText(mContext.getString(R.string.item_n, position + 1));
-        }
-
-        @Override
-        public int getItemCount() {
-            return mItemCount;
-        }
-    }
-
-}
diff --git a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/FloatingActionButtonUsage.java b/samples/SupportDesignDemos/src/com/example/android/support/design/widget/FloatingActionButtonUsage.java
deleted file mode 100644
index 9193037..0000000
--- a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/FloatingActionButtonUsage.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * 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.support.design.widget;
-
-import com.example.android.support.design.R;
-
-import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.Toolbar;
-
-/**
- * This demonstrates idiomatic usage of the Floating Action Button
- */
-public class FloatingActionButtonUsage extends AppCompatActivity {
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.design_fab);
-
-        // Retrieve the Toolbar from our content view, and set it as the action bar
-        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
-        setSupportActionBar(toolbar);
-    }
-
-}
diff --git a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/NavigationViewUsage.java b/samples/SupportDesignDemos/src/com/example/android/support/design/widget/NavigationViewUsage.java
deleted file mode 100644
index 9404cc4..0000000
--- a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/NavigationViewUsage.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * 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.support.design.widget;
-
-import com.example.android.support.design.R;
-
-import android.os.Bundle;
-import android.support.design.widget.NavigationView;
-import android.support.v4.view.GravityCompat;
-import android.support.v4.widget.DrawerLayout;
-import android.support.v7.widget.Toolbar;
-import android.util.TypedValue;
-import android.view.MenuItem;
-import android.view.View;
-
-/**
- * This demonstrates basic usage of NavigationView
- */
-public class NavigationViewUsage extends NavigationViewUsageBase {
-
-    private DrawerLayout mDrawerLayout;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
-
-        // Set the color of status bar
-        TypedValue value = new TypedValue();
-        getTheme().resolveAttribute(R.attr.colorPrimaryDark, value, true);
-        mDrawerLayout.setStatusBarBackgroundColor(value.data);
-
-        // Retrieve the Toolbar from our content view, and set it as the action bar
-        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
-        setSupportActionBar(toolbar);
-
-        // Toggle icon
-        toolbar.setNavigationIcon(R.drawable.ic_action_navigation_menu);
-        toolbar.setNavigationOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View view) {
-                mDrawerLayout.openDrawer(GravityCompat.START);
-            }
-        });
-    }
-
-    @Override
-    protected int getLayout() {
-        return R.layout.design_navigation;
-    }
-
-    @Override
-    public NavigationView.OnNavigationItemSelectedListener getNavigationItemSelectedListener() {
-        return new NavigationView.OnNavigationItemSelectedListener() {
-            @Override
-            public boolean onNavigationItemSelected(MenuItem item) {
-                if (handleNavigationItemSelected(item)) {
-                    mDrawerLayout.closeDrawers();
-                    return true;
-                }
-                return false;
-            }
-        };
-    }
-
-    @Override
-    public void onBackPressed() {
-        if (mDrawerLayout.isDrawerOpen(GravityCompat.START)) {
-            mDrawerLayout.closeDrawer(GravityCompat.START);
-        } else {
-            super.onBackPressed();
-        }
-    }
-
-}
diff --git a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/NavigationViewUsageBase.java b/samples/SupportDesignDemos/src/com/example/android/support/design/widget/NavigationViewUsageBase.java
deleted file mode 100644
index 49080c0..0000000
--- a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/NavigationViewUsageBase.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * 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.support.design.widget;
-
-import com.example.android.support.design.R;
-
-import android.os.Bundle;
-import android.support.annotation.LayoutRes;
-import android.support.design.widget.NavigationView;
-import android.support.v7.app.AppCompatActivity;
-import android.view.MenuItem;
-import android.widget.TextView;
-import android.widget.Toast;
-
-public abstract class NavigationViewUsageBase extends AppCompatActivity {
-
-    private TextView mTextMessage;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(getLayout());
-
-        mTextMessage = (TextView) findViewById(R.id.message);
-
-        // Menu
-        NavigationView navigation = (NavigationView) findViewById(R.id.navigation);
-        navigation.setNavigationItemSelectedListener(getNavigationItemSelectedListener());
-        navigation.inflateHeaderView(R.layout.design_navigation_header);
-    }
-
-    @LayoutRes
-    protected abstract int getLayout();
-
-    protected abstract NavigationView.OnNavigationItemSelectedListener getNavigationItemSelectedListener();
-
-    protected boolean handleNavigationItemSelected(MenuItem item) {
-        switch (item.getItemId()) {
-            case R.id.navigation_item_1:
-                mTextMessage.setText("1");
-                return true;
-            case R.id.navigation_item_2:
-                mTextMessage.setText("2");
-                return true;
-            case R.id.navigation_item_3:
-                mTextMessage.setText("3");
-                return true;
-            case R.id.navigation_sub_item_1:
-                showToast(R.string.navigation_sub_item_1);
-                return true;
-            case R.id.navigation_sub_item_2:
-                showToast(R.string.navigation_sub_item_2);
-                return true;
-            case R.id.navigation_with_icon:
-                showToast(R.string.navigation_item_with_icon);
-                return true;
-            case R.id.navigation_without_icon:
-                showToast(R.string.navigation_item_without_icon);
-                return true;
-            default:
-                return false;
-        }
-    }
-
-    private void showToast(int res) {
-        Toast.makeText(this, getString(R.string.navigation_message, getString(res)),
-                Toast.LENGTH_SHORT).show();
-    }
-
-}
diff --git a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/NavigationViewWithoutDrawer.java b/samples/SupportDesignDemos/src/com/example/android/support/design/widget/NavigationViewWithoutDrawer.java
deleted file mode 100644
index 28e4733..0000000
--- a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/NavigationViewWithoutDrawer.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * 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.support.design.widget;
-
-import com.example.android.support.design.R;
-
-import android.support.design.widget.NavigationView;
-import android.view.MenuItem;
-
-/**
- * This demonstrates basic usage of NavigationView
- */
-public class NavigationViewWithoutDrawer extends NavigationViewUsageBase {
-
-    @Override
-    protected int getLayout() {
-        return R.layout.design_navigation_without_drawer;
-    }
-
-    @Override
-    protected NavigationView.OnNavigationItemSelectedListener getNavigationItemSelectedListener() {
-        return new NavigationView.OnNavigationItemSelectedListener() {
-            @Override
-            public boolean onNavigationItemSelected(MenuItem item) {
-                return handleNavigationItemSelected(item);
-            }
-        };
-    }
-
-}
diff --git a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/SimpleStringRecyclerViewAdapter.java b/samples/SupportDesignDemos/src/com/example/android/support/design/widget/SimpleStringRecyclerViewAdapter.java
deleted file mode 100644
index 2f9b79f..0000000
--- a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/SimpleStringRecyclerViewAdapter.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * 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.support.design.widget;
-
-import com.example.android.support.design.R;
-
-import android.content.Context;
-import android.graphics.Color;
-import android.support.v7.widget.RecyclerView;
-import android.text.Layout;
-import android.util.TypedValue;
-import android.view.LayoutInflater;
-import android.view.ViewGroup;
-import android.widget.TextView;
-
-import java.util.ArrayList;
-import java.util.Collections;
-
-public class SimpleStringRecyclerViewAdapter
-        extends RecyclerView.Adapter<SimpleStringRecyclerViewAdapter.ViewHolder> {
-
-    private int mBackground;
-
-    private ArrayList<String> mValues;
-
-    public static class ViewHolder extends RecyclerView.ViewHolder {
-        public String mBoundString;
-        public TextView mTextView;
-
-        public ViewHolder(TextView v) {
-            super(v);
-            mTextView = v;
-        }
-
-        @Override
-        public String toString() {
-            return super.toString() + " '" + mTextView.getText();
-        }
-    }
-
-    public String getValueAt(int position) {
-        return mValues.get(position);
-    }
-
-    public SimpleStringRecyclerViewAdapter(Context context, String[] strings) {
-        TypedValue val = new TypedValue();
-        if (context.getTheme() != null) {
-            context.getTheme().resolveAttribute(R.attr.selectableItemBackground, val, true);
-        }
-        mBackground = val.resourceId;
-        mValues = new ArrayList<>();
-        Collections.addAll(mValues, strings);
-    }
-
-    @Override
-    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
-        TextView textView = (TextView) LayoutInflater.from(parent.getContext())
-                .inflate(android.R.layout.simple_list_item_1, parent, false);
-        textView.setBackgroundResource(mBackground);
-        return new ViewHolder(textView);
-    }
-
-    @Override
-    public void onBindViewHolder(ViewHolder holder, int position) {
-        holder.mBoundString = mValues.get(position);
-        holder.mTextView.setText(position + ": " + mValues.get(position));
-    }
-
-    @Override
-    public int getItemCount() {
-        return mValues.size();
-    }
-}
diff --git a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/SnackbarUsage.java b/samples/SupportDesignDemos/src/com/example/android/support/design/widget/SnackbarUsage.java
deleted file mode 100644
index c2ff6c9..0000000
--- a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/SnackbarUsage.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * 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.support.design.widget;
-
-import com.example.android.support.design.R;
-
-import android.os.Bundle;
-import android.support.design.widget.Snackbar;
-import android.support.v7.app.AppCompatActivity;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.Toast;
-
-/**
- * This demonstrates idiomatic usage of the Floating Action Button
- */
-public class SnackbarUsage extends AppCompatActivity {
-
-    private ViewGroup mContentView;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(getLayoutId());
-
-        mContentView = (ViewGroup) findViewById(R.id.content_view);
-    }
-
-    protected int getLayoutId() {
-        return R.layout.design_snackbar;
-    }
-
-    public void showShort(View view) {
-        Snackbar.make(mContentView, "Short snackbar message", Snackbar.LENGTH_SHORT).show();
-    }
-
-    public void showAction(View view) {
-        Snackbar.make(mContentView, "Short snackbar message", Snackbar.LENGTH_SHORT)
-                .setAction("Action", new View.OnClickListener() {
-                    @Override
-                    public void onClick(View view) {
-                        Toast.makeText(SnackbarUsage.this, "Snackbar Action pressed",
-                                Toast.LENGTH_SHORT).show();
-                    }
-                }).show();
-    }
-
-    public void showLong(View view) {
-        Snackbar.make(mContentView, "Long snackbar message which wraps onto another line and"
-                + "makes the Snackbar taller", Snackbar.LENGTH_SHORT).show();
-    }
-
-    public void showLongAction(View view) {
-        Snackbar.make(mContentView, "Long snackbar message which wraps onto another line and"
-                + "makes the Snackbar taller", Snackbar.LENGTH_SHORT)
-                .setAction("Action", new View.OnClickListener() {
-                    @Override
-                    public void onClick(View view) {
-                        Toast.makeText(SnackbarUsage.this, "Snackbar Action pressed",
-                                Toast.LENGTH_SHORT).show();
-                    }
-                }).show();
-    }
-
-    public void showLongLongAction(View view) {
-        Snackbar.make(mContentView, "Long snackbar message which wraps onto another line and"
-                + "makes the Snackbar taller", Snackbar.LENGTH_SHORT)
-                .setAction("Action which wraps", new View.OnClickListener() {
-                    @Override
-                    public void onClick(View view) {
-                        Toast.makeText(SnackbarUsage.this, "Snackbar Action pressed",
-                                Toast.LENGTH_SHORT).show();
-                    }
-                }).show();
-    }
-
-}
\ No newline at end of file
diff --git a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/SnackbarWithFloatingActionButton.java b/samples/SupportDesignDemos/src/com/example/android/support/design/widget/SnackbarWithFloatingActionButton.java
deleted file mode 100644
index 1b79543..0000000
--- a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/SnackbarWithFloatingActionButton.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * 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.support.design.widget;
-
-import com.example.android.support.design.R;
-
-import android.os.Bundle;
-import android.support.design.widget.Snackbar;
-import android.support.v7.app.AppCompatActivity;
-import android.view.View;
-import android.view.ViewGroup;
-
-/**
- * This demonstrates idiomatic usage of Snackbar with a Floating Action Button present
- */
-public class SnackbarWithFloatingActionButton extends SnackbarUsage {
-
-    @Override
-    protected int getLayoutId() {
-        return R.layout.design_snackbar_with_fab;
-    }
-
-}
\ No newline at end of file
diff --git a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/SnackbarWithoutCoordinatorLayout.java b/samples/SupportDesignDemos/src/com/example/android/support/design/widget/SnackbarWithoutCoordinatorLayout.java
deleted file mode 100644
index 71257b5..0000000
--- a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/SnackbarWithoutCoordinatorLayout.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * 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.support.design.widget;
-
-import com.example.android.support.design.R;
-
-/**
- * This demonstrates idiomatic usage of Snackbar without a CoordinatorLayout
- */
-public class SnackbarWithoutCoordinatorLayout extends SnackbarUsage {
-
-    @Override
-    protected int getLayoutId() {
-        return R.layout.design_snackbar_without_col;
-    }
-
-}
\ No newline at end of file
diff --git a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/TabLayoutCustomItemsUsage.java b/samples/SupportDesignDemos/src/com/example/android/support/design/widget/TabLayoutCustomItemsUsage.java
deleted file mode 100644
index 31239be..0000000
--- a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/TabLayoutCustomItemsUsage.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.support.design.widget;
-
-import android.os.Bundle;
-import android.support.design.widget.TabLayout;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.Toolbar;
-import com.example.android.support.design.R;
-
-/**
- * This demonstrates usage of TabLayout with custom items
- */
-public class TabLayoutCustomItemsUsage extends AppCompatActivity {
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.design_tabs_custom);
-
-        // Retrieve the Toolbar from our content view, and set it as the action bar
-        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
-        setSupportActionBar(toolbar);
-        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
-
-        // Create three tabs with custom views
-        TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
-        for (int i = 0; i < 3; i++) {
-            TabLayout.Tab tab = tabLayout.newTab();
-
-            tabLayout.addTab(tab);
-            tab.setCustomView(R.layout.design_tab_custom);
-        }
-    }
-}
diff --git a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/TabLayoutLayoutItemsUsage.java b/samples/SupportDesignDemos/src/com/example/android/support/design/widget/TabLayoutLayoutItemsUsage.java
deleted file mode 100644
index 7e51de3..0000000
--- a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/TabLayoutLayoutItemsUsage.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.support.design.widget;
-
-import com.example.android.support.design.Cheeses;
-import com.example.android.support.design.R;
-
-import android.os.Bundle;
-import android.support.design.widget.TabLayout;
-import android.support.v4.view.PagerAdapter;
-import android.support.v4.view.ViewPager;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.Toolbar;
-import android.view.Gravity;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.RadioButton;
-import android.widget.RadioGroup;
-import android.widget.TextView;
-
-import java.util.ArrayList;
-import java.util.Random;
-
-/**
- * This demonstrates idiomatic usage of TabLayout with items inflated from the layout
- */
-public class TabLayoutLayoutItemsUsage extends AppCompatActivity {
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.design_tabs_item);
-
-        // Retrieve the Toolbar from our content view, and set it as the action bar
-        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
-        setSupportActionBar(toolbar);
-        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
-    }
-
-}
diff --git a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/TabLayoutPreselectedUsage.java b/samples/SupportDesignDemos/src/com/example/android/support/design/widget/TabLayoutPreselectedUsage.java
deleted file mode 100644
index ea8b4d6..0000000
--- a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/TabLayoutPreselectedUsage.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.support.design.widget;
-
-import android.os.Bundle;
-import android.support.design.widget.TabLayout;
-import android.support.v4.view.PagerAdapter;
-import android.support.v4.view.ViewPager;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.Toolbar;
-import android.view.Gravity;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.RadioButton;
-import android.widget.RadioGroup;
-import android.widget.TextView;
-import com.example.android.support.design.Cheeses;
-import com.example.android.support.design.R;
-
-import java.util.ArrayList;
-import java.util.Random;
-
-/**
- * This demonstrates idiomatic usage of TabLayout with a ViewPager
- */
-public class TabLayoutPreselectedUsage extends AppCompatActivity {
-
-    private TabLayout mTabLayout;
-    private ViewPager mViewPager;
-    private CheesePagerAdapter mPagerAdapter;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.design_tabs_viewpager);
-
-        // Retrieve the Toolbar from our content view, and set it as the action bar
-        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
-        setSupportActionBar(toolbar);
-        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
-
-        mTabLayout = (TabLayout) findViewById(R.id.tabs);
-        mViewPager = (ViewPager) findViewById(R.id.tabs_viewpager);
-
-        findViewById(R.id.buttons).setVisibility(View.GONE);
-
-        mPagerAdapter = new CheesePagerAdapter();
-        for (int i = 0; i < 5; i++) {
-            mPagerAdapter.addTab(Cheeses.sCheeseStrings[i]);
-        }
-        mViewPager.setAdapter(mPagerAdapter);
-        mViewPager.setCurrentItem(2, false);
-
-        mTabLayout.setupWithViewPager(mViewPager);
-
-        setupRadioGroup();
-    }
-
-    private void setupRadioGroup() {
-        // Setup the initially checked item
-        switch (mTabLayout.getTabMode()) {
-            case TabLayout.MODE_SCROLLABLE:
-                ((RadioButton) findViewById(R.id.rb_tab_scrollable)).setChecked(true);
-                break;
-            case TabLayout.MODE_FIXED:
-                ((RadioButton) findViewById(R.id.rb_tab_fixed)).setChecked(true);
-                break;
-        }
-
-        RadioGroup rg = (RadioGroup) findViewById(R.id.radiogroup_tab_mode);
-        rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
-            @Override
-            public void onCheckedChanged(RadioGroup radioGroup, int id) {
-                switch (id) {
-                    case R.id.rb_tab_fixed:
-                        mTabLayout.setTabMode(TabLayout.MODE_FIXED);
-                        break;
-                    case R.id.rb_tab_scrollable:
-                        mTabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);
-                        break;
-                }
-            }
-        });
-
-        // Setup the initially checked item
-        switch (mTabLayout.getTabGravity()) {
-            case TabLayout.GRAVITY_CENTER:
-                ((RadioButton) findViewById(R.id.rb_tab_g_center)).setChecked(true);
-                break;
-            case TabLayout.GRAVITY_FILL:
-                ((RadioButton) findViewById(R.id.rb_tab_g_fill)).setChecked(true);
-                break;
-        }
-
-        rg = (RadioGroup) findViewById(R.id.radiogroup_tab_gravity);
-        rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
-            @Override
-            public void onCheckedChanged(RadioGroup radioGroup, int id) {
-                switch (id) {
-                    case R.id.rb_tab_g_center:
-                        mTabLayout.setTabGravity(TabLayout.GRAVITY_CENTER);
-                        break;
-                    case R.id.rb_tab_g_fill:
-                        mTabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
-                        break;
-                }
-            }
-        });
-    }
-
-    private static class CheesePagerAdapter extends PagerAdapter {
-        private final ArrayList<CharSequence> mCheeses = new ArrayList<>();
-
-        public void addTab(String title) {
-            mCheeses.add(title);
-            notifyDataSetChanged();
-        }
-
-        @Override
-        public int getCount() {
-            return mCheeses.size();
-        }
-
-        @Override
-        public int getItemPosition(Object object) {
-            final Item item = (Item) object;
-            final int index = mCheeses.indexOf(item.cheese);
-            return index >= 0 ? index : POSITION_NONE;
-        }
-
-        @Override
-        public Object instantiateItem(ViewGroup container, int position) {
-            final TextView tv = new TextView(container.getContext());
-            tv.setText(getPageTitle(position));
-            tv.setGravity(Gravity.CENTER);
-            tv.setTextAppearance(tv.getContext(), R.style.TextAppearance_AppCompat_Title);
-            container.addView(tv, ViewGroup.LayoutParams.MATCH_PARENT,
-                    ViewGroup.LayoutParams.MATCH_PARENT);
-
-            Item item = new Item();
-            item.cheese = mCheeses.get(position);
-            item.view = tv;
-            return item;
-        }
-
-        @Override
-        public boolean isViewFromObject(View view, Object object) {
-            final Item item = (Item) object;
-            return item.view == view;
-        }
-
-        @Override
-         public CharSequence getPageTitle(int position) {
-            return mCheeses.get(position);
-        }
-
-        @Override
-        public void destroyItem(ViewGroup container, int position, Object object) {
-            final Item item = (Item) object;
-            container.removeView(item.view);
-        }
-
-        private static class Item {
-            TextView view;
-            CharSequence cheese;
-        }
-    }
-
-}
diff --git a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/TabLayoutUsage.java b/samples/SupportDesignDemos/src/com/example/android/support/design/widget/TabLayoutUsage.java
deleted file mode 100644
index 26b6108..0000000
--- a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/TabLayoutUsage.java
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
- * 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.support.design.widget;
-
-import com.example.android.support.design.Cheeses;
-import com.example.android.support.design.R;
-
-import android.os.Bundle;
-import android.support.design.widget.TabLayout;
-import android.support.v4.view.PagerAdapter;
-import android.support.v4.view.ViewPager;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.Toolbar;
-import android.view.Gravity;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.RadioButton;
-import android.widget.RadioGroup;
-import android.widget.TextView;
-
-import java.util.ArrayList;
-import java.util.Random;
-
-/**
- * This demonstrates idiomatic usage of TabLayout with a ViewPager
- */
-public class TabLayoutUsage extends AppCompatActivity {
-
-    private TabLayout mTabLayout;
-    private ViewPager mViewPager;
-    private CheesePagerAdapter mPagerAdapter;
-
-    private final Random mRandom = new Random();
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.design_tabs_viewpager);
-
-        // Retrieve the Toolbar from our content view, and set it as the action bar
-        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
-        setSupportActionBar(toolbar);
-        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
-
-        mTabLayout = (TabLayout) findViewById(R.id.tabs);
-        mViewPager = (ViewPager) findViewById(R.id.tabs_viewpager);
-
-        mPagerAdapter = new CheesePagerAdapter();
-        mViewPager.setAdapter(mPagerAdapter);
-
-        mTabLayout.setupWithViewPager(mViewPager);
-
-        setupRadioGroup();
-    }
-
-    public void addTab(View view) {
-        String cheese = Cheeses.sCheeseStrings[mRandom.nextInt(Cheeses.sCheeseStrings.length)];
-        mPagerAdapter.addTab(cheese);
-    }
-
-    public void selectFirstTab(View view) {
-        if (mTabLayout.getTabCount() > 0) {
-            mViewPager.setCurrentItem(0);
-        }
-    }
-
-    public void removeTab(View view) {
-        mPagerAdapter.removeTab();
-    }
-
-    private void setupRadioGroup() {
-        // Setup the initially checked item
-        switch (mTabLayout.getTabMode()) {
-            case TabLayout.MODE_SCROLLABLE:
-                ((RadioButton) findViewById(R.id.rb_tab_scrollable)).setChecked(true);
-                break;
-            case TabLayout.MODE_FIXED:
-                ((RadioButton) findViewById(R.id.rb_tab_fixed)).setChecked(true);
-                break;
-        }
-
-        RadioGroup rg = (RadioGroup) findViewById(R.id.radiogroup_tab_mode);
-        rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
-            @Override
-            public void onCheckedChanged(RadioGroup radioGroup, int id) {
-                switch (id) {
-                    case R.id.rb_tab_fixed:
-                        mTabLayout.setTabMode(TabLayout.MODE_FIXED);
-                        break;
-                    case R.id.rb_tab_scrollable:
-                        mTabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);
-                        break;
-                }
-            }
-        });
-
-        // Setup the initially checked item
-        switch (mTabLayout.getTabGravity()) {
-            case TabLayout.GRAVITY_CENTER:
-                ((RadioButton) findViewById(R.id.rb_tab_g_center)).setChecked(true);
-                break;
-            case TabLayout.GRAVITY_FILL:
-                ((RadioButton) findViewById(R.id.rb_tab_g_fill)).setChecked(true);
-                break;
-        }
-
-        rg = (RadioGroup) findViewById(R.id.radiogroup_tab_gravity);
-        rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
-            @Override
-            public void onCheckedChanged(RadioGroup radioGroup, int id) {
-                switch (id) {
-                    case R.id.rb_tab_g_center:
-                        mTabLayout.setTabGravity(TabLayout.GRAVITY_CENTER);
-                        break;
-                    case R.id.rb_tab_g_fill:
-                        mTabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
-                        break;
-                }
-            }
-        });
-    }
-
-    private static class CheesePagerAdapter extends PagerAdapter {
-        private final ArrayList<CharSequence> mCheeses = new ArrayList<>();
-
-        public void addTab(String title) {
-            mCheeses.add(title);
-            notifyDataSetChanged();
-        }
-
-        public void removeTab() {
-            if (!mCheeses.isEmpty()) {
-                mCheeses.remove(mCheeses.size() - 1);
-                notifyDataSetChanged();
-            }
-        }
-
-        @Override
-        public int getCount() {
-            return mCheeses.size();
-        }
-
-        @Override
-        public int getItemPosition(Object object) {
-            final Item item = (Item) object;
-            final int index = mCheeses.indexOf(item.cheese);
-            return index >= 0 ? index : POSITION_NONE;
-        }
-
-        @Override
-        public Object instantiateItem(ViewGroup container, int position) {
-            final TextView tv = new TextView(container.getContext());
-            tv.setText(getPageTitle(position));
-            tv.setGravity(Gravity.CENTER);
-            tv.setTextAppearance(tv.getContext(), R.style.TextAppearance_AppCompat_Title);
-            container.addView(tv, ViewGroup.LayoutParams.MATCH_PARENT,
-                    ViewGroup.LayoutParams.MATCH_PARENT);
-
-            Item item = new Item();
-            item.cheese = mCheeses.get(position);
-            item.view = tv;
-            return item;
-        }
-
-        @Override
-        public boolean isViewFromObject(View view, Object object) {
-            final Item item = (Item) object;
-            return item.view == view;
-        }
-
-        @Override
-         public CharSequence getPageTitle(int position) {
-            return mCheeses.get(position);
-        }
-
-        @Override
-        public void destroyItem(ViewGroup container, int position, Object object) {
-            final Item item = (Item) object;
-            container.removeView(item.view);
-        }
-
-        private static class Item {
-            TextView view;
-            CharSequence cheese;
-        }
-    }
-
-}
diff --git a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/TextInputLayoutUsage.java b/samples/SupportDesignDemos/src/com/example/android/support/design/widget/TextInputLayoutUsage.java
deleted file mode 100644
index 63ac031..0000000
--- a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/TextInputLayoutUsage.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * 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.support.design.widget;
-
-import com.example.android.support.design.R;
-
-import android.os.Bundle;
-import android.support.design.widget.TextInputLayout;
-import android.support.v7.app.AppCompatActivity;
-import android.view.View;
-
-/**
- * This demonstrates idiomatic usage of {@code TextInputLayout}
- */
-public class TextInputLayoutUsage extends AppCompatActivity {
-
-    private TextInputLayout mUsernameInputLayout;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.design_text_input);
-
-        mUsernameInputLayout = (TextInputLayout) findViewById(R.id.input_username);
-    }
-
-    public void showError(View view) {
-        mUsernameInputLayout.setError("Some unknown error has occurred");
-    }
-
-    public void clearError(View view) {
-        mUsernameInputLayout.setError(null);
-    }
-
-}
diff --git a/samples/SupportLeanbackDemos/Android.mk b/samples/SupportLeanbackDemos/Android.mk
deleted file mode 100644
index ce45607..0000000
--- a/samples/SupportLeanbackDemos/Android.mk
+++ /dev/null
@@ -1,38 +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.
-
-LOCAL_PATH:= $(call my-dir)
-
-# Build the samples.
-# We need to add some special AAPT flags to generate R classes
-# for resources that are included from the libraries.
-include $(CLEAR_VARS)
-LOCAL_PACKAGE_NAME := SupportLeanbackDemos
-LOCAL_MODULE_TAGS := samples tests
-LOCAL_SDK_VERSION := current
-LOCAL_MIN_SDK_VERSION := 17
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-LOCAL_STATIC_JAVA_LIBRARIES := \
-        android-support-v4 \
-        android-support-v7-recyclerview \
-        android-support-v17-leanback
-LOCAL_RESOURCE_DIR = \
-        $(LOCAL_PATH)/res \
-        frameworks/support/v17/leanback/res \
-        frameworks/support/v7/recyclerview/res
-LOCAL_AAPT_FLAGS := \
-        --auto-add-overlay \
-        --extra-packages android.support.v17.leanback \
-        --extra-packages android.support.v7.recyclerview
-include $(BUILD_PACKAGE)
diff --git a/samples/SupportLeanbackDemos/AndroidManifest.xml b/samples/SupportLeanbackDemos/AndroidManifest.xml
deleted file mode 100644
index 48d638d..0000000
--- a/samples/SupportLeanbackDemos/AndroidManifest.xml
+++ /dev/null
@@ -1,135 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.example.android.leanback"
-    android:versionCode="1"
-    android:versionName="1.0">
-
-    <uses-sdk android:minSdkVersion="17" android:targetSdkVersion="23" />
-    <uses-permission android:name="android.permission.RECORD_AUDIO" />
-
-    <application
-        android:label="@string/app_name"
-        android:icon="@drawable/ic_launcher"
-        android:banner="@drawable/ic_launcher"
-        android:supportsRtl="true"
-        android:theme="@style/Theme.Example.Leanback">
-
-        <activity android:name="MainActivity"
-            android:label="@string/app_name">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name="BrowseActivity"
-            android:theme="@style/Theme.Example.Leanback.Browse"
-            android:exported="true" />
-
-        <activity android:name="BrowseSupportActivity"
-            android:theme="@style/Theme.Example.Leanback.Browse"
-            android:exported="true" />
-
-        <activity android:name="BrowseAnimationActivity"
-            android:exported="true" >
-        </activity>
-
-        <activity android:name="DetailsActivity"
-            android:theme="@style/Theme.Example.Leanback.Details"
-            android:exported="true" />
-
-        <activity android:name="DetailsSupportActivity"
-            android:theme="@style/Theme.Example.Leanback.Details"
-            android:exported="true" />
-
-        <activity android:name="SearchDetailsActivity"
-            android:theme="@style/Theme.Example.Leanback.SearchDetails"
-            android:exported="true" />
-
-        <activity android:name="SearchDetailsSupportActivity"
-            android:theme="@style/Theme.Example.Leanback.SearchDetails"
-            android:exported="true" />
-
-        <activity android:name="RowsActivity"
-            android:theme="@style/Theme.Example.Leanback.Rows"
-            android:exported="true" />
-
-        <activity android:name="RowsSupportActivity"
-            android:theme="@style/Theme.Example.Leanback.Rows"
-            android:exported="true" />
-
-        <activity android:name="PlaybackOverlayActivity"
-            android:configChanges=
-                "screenSize|smallestScreenSize|screenLayout|orientation"
-            android:resizeableActivity="true"
-            android:supportsPictureInPicture="true"
-            android:launchMode="singleTask"
-            android:exported="true" />
-
-        <activity android:name="PlaybackOverlaySupportActivity"
-            android:configChanges=
-                "screenSize|smallestScreenSize|screenLayout|orientation"
-            android:resizeableActivity="true"
-            android:supportsPictureInPicture="true"
-            android:launchMode="singleTask"
-            android:exported="true" />
-
-        <activity android:name="VerticalGridActivity"
-            android:theme="@style/Theme.Example.Leanback.VerticalGrid"
-            android:exported="true" />
-
-        <activity android:name="VerticalGridSupportActivity"
-            android:theme="@style/Theme.Example.Leanback.VerticalGrid"
-            android:exported="true" />
-
-        <activity android:name="SearchActivity"
-            android:exported="true" />
-
-        <activity android:name="SearchSupportActivity"
-            android:exported="true" />
-
-        <activity android:name="BrowseErrorActivity"
-            android:theme="@style/Theme.Example.Leanback.Browse"
-            android:exported="true" />
-
-        <activity android:name="BrowseErrorSupportActivity"
-            android:theme="@style/Theme.Example.Leanback.Browse"
-            android:exported="true" />
-
-        <activity android:name="HorizontalGridTestActivity"
-            android:exported="true" />
-
-        <activity android:name="GuidedStepActivity"
-            android:theme="@style/Theme.Example.Leanback.GuidedStep"
-            android:windowSoftInputMode="adjustResize"
-            android:exported="true" />
-
-        <activity android:name="GuidedStepSupportActivity"
-            android:theme="@style/Theme.Example.Leanback.GuidedStep"
-            android:windowSoftInputMode="adjustResize"
-            android:exported="true" />
-
-        <activity android:name="GuidedStepHalfScreenActivity"
-            android:theme="@style/Theme.Example.Leanback.GuidedStep.Half"
-            android:windowSoftInputMode="adjustResize"
-            android:exported="true" />
-
-        <activity android:name="GuidedStepSupportHalfScreenActivity"
-            android:theme="@style/Theme.Example.Leanback.GuidedStep.Half"
-            android:windowSoftInputMode="adjustResize"
-            android:exported="true" />
-
-        <activity android:name="DetailsPresenterSelectionActivity"
-            android:theme="@style/Theme.Example.Leanback.GuidedStep"
-            android:exported="true" />
-
-        <activity android:name=".OnboardingActivity"
-                  android:theme="@style/Theme.Example.Leanback.Onboarding"
-                  android:exported="true" />
-
-        <activity android:name=".OnboardingSupportActivity"
-                  android:theme="@style/Theme.Example.Leanback.Onboarding"
-                  android:exported="true" />
-
-    </application>
-</manifest>
diff --git a/samples/SupportLeanbackDemos/generatev4.py b/samples/SupportLeanbackDemos/generatev4.py
deleted file mode 100755
index 7c9f0fe..0000000
--- a/samples/SupportLeanbackDemos/generatev4.py
+++ /dev/null
@@ -1,366 +0,0 @@
-#!/usr/bin/python
-
-# 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.
-
-import os
-import sys
-import getopt
-
-def write_java_head(tofile, name):
-    tofile.write("/* This file is auto-generated from {}.java.  DO NOT MODIFY. */\n\n".format(name))
-
-def replace_xml_head(line, name):
-    return line.replace('<?xml version="1.0" encoding="utf-8"?>', '<?xml version="1.0" encoding="utf-8"?>\n<!-- This file is auto-generated from {}.xml.  DO NOT MODIFY. -->\n'.format(name))
-
-file = open('src/com/example/android/leanback/GuidedStepActivity.java', 'r')
-outfile = open('src/com/example/android/leanback/GuidedStepSupportActivity.java', 'w')
-write_java_head(outfile, "GuidedStepActivity")
-for line in file:
-    line = line.replace('android.app.Fragment', 'android.support.v4.app.Fragment')
-    line = line.replace('android.app.Activity', 'android.support.v4.app.FragmentActivity')
-    line = line.replace('GuidedStepFragment', 'GuidedStepSupportFragment')
-    line = line.replace('GuidedStepActivity', 'GuidedStepSupportActivity')
-    line = line.replace('extends Activity', 'extends FragmentActivity')
-    outfile.write(line)
-file.close()
-outfile.close()
-
-file = open('src/com/example/android/leanback/GuidedStepHalfScreenActivity.java', 'r')
-outfile = open('src/com/example/android/leanback/GuidedStepSupportHalfScreenActivity.java', 'w')
-write_java_head(outfile, "GuidedStepHalfScreenActivity")
-for line in file:
-    line = line.replace('android.app.Fragment', 'android.support.v4.app.Fragment')
-    line = line.replace('android.app.Activity', 'android.support.v4.app.FragmentActivity')
-    line = line.replace('GuidedStepFragment', 'GuidedStepSupportFragment')
-    line = line.replace('GuidedStepActivity', 'GuidedStepSupportActivity')
-    line = line.replace('GuidedStepHalfScreenActivity', 'GuidedStepSupportHalfScreenActivity')
-    line = line.replace('extends Activity', 'extends FragmentActivity')
-    outfile.write(line)
-file.close()
-outfile.close()
-
-file = open('src/com/example/android/leanback/BrowseFragment.java', 'r')
-outfile = open('src/com/example/android/leanback/BrowseSupportFragment.java', 'w')
-write_java_head(outfile, "BrowseFragment")
-for line in file:
-    line = line.replace('android.app.Fragment', 'android.support.v4.app.Fragment')
-    line = line.replace('android.app.Activity', 'android.support.v4.app.FragmentActivity')
-    line = line.replace('BrowseFragment', 'BrowseSupportFragment')
-    line = line.replace('GuidedStepFragment', 'GuidedStepSupportFragment')
-    line = line.replace('GuidedStepActivity', 'GuidedStepSupportActivity')
-    line = line.replace('getActivity().getFragmentManager()', 'getActivity().getSupportFragmentManager()')
-    line = line.replace('BrowseActivity', 'BrowseSupportActivity')
-    line = line.replace('DetailsActivity', 'DetailsSupportActivity')
-    line = line.replace('SearchActivity', 'SearchSupportActivity')
-    line = line.replace('RowsActivity', 'RowsSupportActivity')
-    line = line.replace('RowsFragment', 'RowsSupportFragment')
-    line = line.replace('GuidedStepHalfScreenActivity', 'GuidedStepSupportHalfScreenActivity')
-    outfile.write(line)
-file.close()
-outfile.close()
-
-file = open('src/com/example/android/leanback/BrowseActivity.java', 'r')
-outfile = open('src/com/example/android/leanback/BrowseSupportActivity.java', 'w')
-write_java_head(outfile, "BrowseActivity")
-for line in file:
-    line = line.replace('BrowseActivity', 'BrowseSupportActivity')
-    line = line.replace('android.app.Activity', 'android.support.v4.app.FragmentActivity')
-    line = line.replace('extends Activity', 'extends FragmentActivity')
-    line = line.replace('R.layout.browse', 'R.layout.browse_support')
-    outfile.write(line)
-file.close()
-outfile.close()
-
-file = open('res/layout/browse.xml', 'r')
-outfile = open('res/layout/browse_support.xml', 'w')
-for line in file:
-    line = replace_xml_head(line, "browse")
-    line = line.replace('com.example.android.leanback.BrowseFragment', 'com.example.android.leanback.BrowseSupportFragment')
-    outfile.write(line)
-file.close()
-outfile.close()
-
-
-file = open('src/com/example/android/leanback/DetailsFragment.java', 'r')
-outfile = open('src/com/example/android/leanback/DetailsSupportFragment.java', 'w')
-write_java_head(outfile, "DetailsFragment")
-for line in file:
-    line = line.replace('android.app.Fragment', 'android.support.v4.app.Fragment')
-    line = line.replace('android.app.Activity', 'android.support.v4.app.FragmentActivity')
-    line = line.replace('DetailsFragment', 'DetailsSupportFragment')
-    line = line.replace('DetailsActivity', 'DetailsSupportActivity')
-    line = line.replace('PlaybackOverlayActivity', 'PlaybackOverlaySupportActivity')
-    line = line.replace('SearchActivity', 'SearchSupportActivity')
-    outfile.write(line)
-file.close()
-outfile.close()
-
-file = open('src/com/example/android/leanback/NewDetailsFragment.java', 'r')
-outfile = open('src/com/example/android/leanback/NewDetailsSupportFragment.java', 'w')
-write_java_head(outfile, "NewDetailsFragment")
-for line in file:
-    line = line.replace('android.app.Fragment', 'android.support.v4.app.Fragment')
-    line = line.replace('android.app.Activity', 'android.support.v4.app.FragmentActivity')
-    line = line.replace('DetailsFragment', 'DetailsSupportFragment')
-    line = line.replace('DetailsActivity', 'DetailsSupportActivity')
-    line = line.replace('PlaybackOverlayActivity', 'PlaybackOverlaySupportActivity')
-    line = line.replace('SearchActivity', 'SearchSupportActivity')
-    outfile.write(line)
-file.close()
-outfile.close()
-
-file = open('src/com/example/android/leanback/DetailsActivity.java', 'r')
-outfile = open('src/com/example/android/leanback/DetailsSupportActivity.java', 'w')
-write_java_head(outfile, "DetailsActivity")
-for line in file:
-    line = line.replace('DetailsActivity', 'DetailsSupportActivity')
-    line = line.replace('android.app.Activity', 'android.support.v4.app.FragmentActivity')
-    line = line.replace('extends Activity', 'extends FragmentActivity')
-    line = line.replace('R.layout.details', 'R.layout.details_support')
-    line = line.replace('R.layout.legacy_details', 'R.layout.legacy_details_support')
-    line = line.replace('getFragmentManager()', 'getSupportFragmentManager()')
-    line = line.replace('DetailsFragment', 'DetailsSupportFragment')
-    line = line.replace('NewDetailsFragment', 'NewDetailsSupportFragment')
-    outfile.write(line)
-file.close()
-outfile.close()
-
-file = open('res/layout/details.xml', 'r')
-outfile = open('res/layout/details_support.xml', 'w')
-for line in file:
-    line = replace_xml_head(line, "details")
-    line = line.replace('com.example.android.leanback.NewDetailsFragment', 'com.example.android.leanback.NewDetailsSupportFragment')
-    outfile.write(line)
-file.close()
-outfile.close()
-
-
-file = open('res/layout/legacy_details.xml', 'r')
-outfile = open('res/layout/legacy_details_support.xml', 'w')
-for line in file:
-    line = replace_xml_head(line, "legacy_details")
-    line = line.replace('com.example.android.leanback.DetailsFragment', 'com.example.android.leanback.DetailsSupportFragment')
-    outfile.write(line)
-file.close()
-outfile.close()
-
-
-file = open('src/com/example/android/leanback/SearchDetailsActivity.java', 'r')
-outfile = open('src/com/example/android/leanback/SearchDetailsSupportActivity.java', 'w')
-write_java_head(outfile, "SearchDetailsActivity")
-for line in file:
-    line = line.replace('DetailsActivity', 'DetailsSupportActivity')
-    outfile.write(line)
-file.close()
-outfile.close()
-
-
-file = open('src/com/example/android/leanback/SearchFragment.java', 'r')
-outfile = open('src/com/example/android/leanback/SearchSupportFragment.java', 'w')
-write_java_head(outfile, "SearchFragment")
-for line in file:
-    line = line.replace('SearchFragment', 'SearchSupportFragment')
-    line = line.replace('DetailsActivity', 'DetailsSupportActivity')
-    outfile.write(line)
-file.close()
-outfile.close()
-
-file = open('src/com/example/android/leanback/SearchActivity.java', 'r')
-outfile = open('src/com/example/android/leanback/SearchSupportActivity.java', 'w')
-write_java_head(outfile, "SearchActivity")
-for line in file:
-    line = line.replace('SearchActivity', 'SearchSupportActivity')
-    line = line.replace('extends Activity', 'extends FragmentActivity')
-    line = line.replace('R.layout.search', 'R.layout.search_support')
-    line = line.replace('android.app.Activity', 'android.support.v4.app.FragmentActivity')
-    line = line.replace('getFragmentManager()', 'getSupportFragmentManager()')
-    line = line.replace('SearchFragment', 'SearchSupportFragment')
-    outfile.write(line)
-file.close()
-outfile.close()
-
-file = open('res/layout/search.xml', 'r')
-outfile = open('res/layout/search_support.xml', 'w')
-for line in file:
-    line = replace_xml_head(line, "search")
-    line = line.replace('com.example.android.leanback.SearchFragment', 'com.example.android.leanback.SearchSupportFragment')
-    outfile.write(line)
-file.close()
-outfile.close()
-
-file = open('src/com/example/android/leanback/VerticalGridFragment.java', 'r')
-outfile = open('src/com/example/android/leanback/VerticalGridSupportFragment.java', 'w')
-outfile.write("/* This file is auto-generated from VerticalGridFragment.  DO NOT MODIFY. */\n\n")
-for line in file:
-    line = line.replace('VerticalGridFragment', 'VerticalGridSupportFragment')
-    line = line.replace('DetailsActivity', 'DetailsSupportActivity')
-    line = line.replace('SearchActivity', 'SearchSupportActivity')
-    outfile.write(line)
-file.close()
-outfile.close()
-
-file = open('src/com/example/android/leanback/VerticalGridActivity.java', 'r')
-outfile = open('src/com/example/android/leanback/VerticalGridSupportActivity.java', 'w')
-write_java_head(outfile, "VerticalGridActivity")
-for line in file:
-    line = line.replace('VerticalGridActivity', 'VerticalGridSupportActivity')
-    line = line.replace('extends Activity', 'extends FragmentActivity')
-    line = line.replace('R.layout.vertical_grid', 'R.layout.vertical_grid_support')
-    line = line.replace('android.app.Activity', 'android.support.v4.app.FragmentActivity')
-    line = line.replace('getFragmentManager()', 'getSupportFragmentManager()')
-    line = line.replace('VerticalGridFragment', 'VerticalGridSupportFragment')
-    outfile.write(line)
-file.close()
-outfile.close()
-
-file = open('res/layout/vertical_grid.xml', 'r')
-outfile = open('res/layout/vertical_grid_support.xml', 'w')
-for line in file:
-    line = replace_xml_head(line, "vertical_grid")
-    line = line.replace('com.example.android.leanback.VerticalGridFragment', 'com.example.android.leanback.VerticalGridSupportFragment')
-    outfile.write(line)
-file.close()
-outfile.close()
-
-
-file = open('src/com/example/android/leanback/ErrorFragment.java', 'r')
-outfile = open('src/com/example/android/leanback/ErrorSupportFragment.java', 'w')
-write_java_head(outfile, "ErrorFragment")
-for line in file:
-    line = line.replace('ErrorFragment', 'ErrorSupportFragment')
-    outfile.write(line)
-file.close()
-outfile.close()
-
-file = open('src/com/example/android/leanback/BrowseErrorActivity.java', 'r')
-outfile = open('src/com/example/android/leanback/BrowseErrorSupportActivity.java', 'w')
-write_java_head(outfile, "BrowseErrorActivity")
-for line in file:
-    line = line.replace('BrowseErrorActivity', 'BrowseErrorSupportActivity')
-    line = line.replace('extends Activity', 'extends FragmentActivity')
-    line = line.replace('R.layout.browse', 'R.layout.browse_support')
-    line = line.replace('android.app.Activity', 'android.support.v4.app.FragmentActivity')
-    line = line.replace('getFragmentManager()', 'getSupportFragmentManager()')
-    line = line.replace('ErrorFragment', 'ErrorSupportFragment')
-    line = line.replace('SpinnerFragment', 'SpinnerSupportFragment')
-    line = line.replace('android.app.Fragment', 'android.support.v4.app.Fragment')
-    outfile.write(line)
-file.close()
-outfile.close()
-
-file = open('src/com/example/android/leanback/RowsFragment.java', 'r')
-outfile = open('src/com/example/android/leanback/RowsSupportFragment.java', 'w')
-write_java_head(outfile, "RowsFragment")
-for line in file:
-    line = line.replace('RowsFragment', 'RowsSupportFragment')
-    line = line.replace('DetailsActivity', 'DetailsSupportActivity')
-    outfile.write(line)
-file.close()
-outfile.close()
-
-file = open('src/com/example/android/leanback/RowsActivity.java', 'r')
-outfile = open('src/com/example/android/leanback/RowsSupportActivity.java', 'w')
-write_java_head(outfile, "RowsActivity")
-for line in file:
-    line = line.replace('RowsActivity', 'RowsSupportActivity')
-    line = line.replace('extends Activity', 'extends FragmentActivity')
-    line = line.replace('R.layout.rows', 'R.layout.rows_support')
-    line = line.replace('android.app.Activity', 'android.support.v4.app.FragmentActivity')
-    line = line.replace('RowsFragment', 'RowsSupportFragment')
-    line = line.replace('getFragmentManager()', 'getSupportFragmentManager()')
-    line = line.replace('SearchActivity', 'SearchSupportActivity')
-    outfile.write(line)
-file.close()
-outfile.close()
-
-file = open('res/layout/rows.xml', 'r')
-outfile = open('res/layout/rows_support.xml', 'w')
-for line in file:
-    line = replace_xml_head(line, "rows")
-    line = line.replace('com.example.android.leanback.RowsFragment', 'com.example.android.leanback.RowsSupportFragment')
-    outfile.write(line)
-file.close()
-outfile.close()
-
-
-file = open('src/com/example/android/leanback/PlaybackOverlayFragment.java', 'r')
-outfile = open('src/com/example/android/leanback/PlaybackOverlaySupportFragment.java', 'w')
-write_java_head(outfile, "PlaybackOverlayFragment")
-for line in file:
-    line = line.replace('PlaybackOverlayFragment', 'PlaybackOverlaySupportFragment')
-    line = line.replace('PlaybackControlHelper', 'PlaybackControlSupportHelper')
-    line = line.replace('PlaybackOverlayActivity', 'PlaybackOverlaySupportActivity')
-    outfile.write(line)
-file.close()
-outfile.close()
-
-file = open('src/com/example/android/leanback/PlaybackControlHelper.java', 'r')
-outfile = open('src/com/example/android/leanback/PlaybackControlSupportHelper.java', 'w')
-write_java_head(outfile, "PlaybackControlHelper")
-for line in file:
-    line = line.replace('PlaybackControlHelper', 'PlaybackControlSupportHelper')
-    line = line.replace('PlaybackControlGlue', 'PlaybackControlSupportGlue')
-    line = line.replace('PlaybackOverlayFragment', 'PlaybackOverlaySupportFragment')
-    outfile.write(line)
-file.close()
-outfile.close()
-
-file = open('src/com/example/android/leanback/PlaybackOverlayActivity.java', 'r')
-outfile = open('src/com/example/android/leanback/PlaybackOverlaySupportActivity.java', 'w')
-write_java_head(outfile, "PlaybackOverlayActivity")
-for line in file:
-    line = line.replace('PlaybackOverlayActivity', 'PlaybackOverlaySupportActivity')
-    line = line.replace('extends Activity', 'extends FragmentActivity')
-    line = line.replace('R.layout.playback_controls', 'R.layout.playback_controls_support')
-    line = line.replace('android.app.Activity', 'android.support.v4.app.FragmentActivity')
-    outfile.write(line)
-file.close()
-outfile.close()
-
-file = open('res/layout/playback_controls.xml', 'r')
-outfile = open('res/layout/playback_controls_support.xml', 'w')
-for line in file:
-    line = replace_xml_head(line, "playback_controls")
-    line = line.replace('com.example.android.leanback.PlaybackOverlayFragment', 'com.example.android.leanback.PlaybackOverlaySupportFragment')
-    outfile.write(line)
-file.close()
-outfile.close()
-
-file = open('src/com/example/android/leanback/OnboardingActivity.java', 'r')
-outfile = open('src/com/example/android/leanback/OnboardingSupportActivity.java', 'w')
-write_java_head(outfile, "OnboardingActivity")
-for line in file:
-    line = line.replace('android.app.Fragment', 'android.support.v4.app.Fragment')
-    line = line.replace('android.app.Activity', 'android.support.v4.app.FragmentActivity')
-    line = line.replace('OnboardingActivity', 'OnboardingSupportActivity')
-    line = line.replace('OnboardingDemoFragment', 'OnboardingDemoSupportFragment')
-    line = line.replace('extends Activity', 'extends FragmentActivity')
-    line = line.replace('getFragmentManager()', 'getSupportFragmentManager()')
-    outfile.write(line)
-file.close()
-outfile.close()
-
-file = open('src/com/example/android/leanback/OnboardingDemoFragment.java', 'r')
-outfile = open('src/com/example/android/leanback/OnboardingDemoSupportFragment.java', 'w')
-write_java_head(outfile, "OnboardingDemoFragment")
-for line in file:
-    line = line.replace('android.app.Fragment', 'android.support.v4.app.Fragment')
-    line = line.replace('import android.app.Activity', 'import android.support.v4.app.FragmentActivity')
-    line = line.replace('OnboardingDemoFragment', 'OnboardingDemoSupportFragment')
-    line = line.replace('OnboardingFragment', 'OnboardingSupportFragment')
-    line = line.replace('OnboardingActivity', 'OnboardingSupportActivity')
-    outfile.write(line)
-file.close()
-outfile.close()
diff --git a/samples/SupportLeanbackDemos/res/drawable-hdpi/ic_launcher.png b/samples/SupportLeanbackDemos/res/drawable-hdpi/ic_launcher.png
deleted file mode 100644
index 96a442e..0000000
--- a/samples/SupportLeanbackDemos/res/drawable-hdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable-hdpi/ic_main_icon.png b/samples/SupportLeanbackDemos/res/drawable-hdpi/ic_main_icon.png
deleted file mode 100644
index 6f0c962..0000000
--- a/samples/SupportLeanbackDemos/res/drawable-hdpi/ic_main_icon.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable-ldpi/ic_launcher.png b/samples/SupportLeanbackDemos/res/drawable-ldpi/ic_launcher.png
deleted file mode 100644
index 9923872..0000000
--- a/samples/SupportLeanbackDemos/res/drawable-ldpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable-mdpi/ic_launcher.png b/samples/SupportLeanbackDemos/res/drawable-mdpi/ic_launcher.png
deleted file mode 100644
index 359047d..0000000
--- a/samples/SupportLeanbackDemos/res/drawable-mdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable-mdpi/ic_main_icon.png b/samples/SupportLeanbackDemos/res/drawable-mdpi/ic_main_icon.png
deleted file mode 100644
index e9effc8..0000000
--- a/samples/SupportLeanbackDemos/res/drawable-mdpi/ic_main_icon.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable-xhdpi/bg.png b/samples/SupportLeanbackDemos/res/drawable-xhdpi/bg.png
deleted file mode 100644
index 476c698..0000000
--- a/samples/SupportLeanbackDemos/res/drawable-xhdpi/bg.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable-xhdpi/ic_launcher.png b/samples/SupportLeanbackDemos/res/drawable-xhdpi/ic_launcher.png
deleted file mode 100644
index 71c6d76..0000000
--- a/samples/SupportLeanbackDemos/res/drawable-xhdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable-xhdpi/ic_main_icon.png b/samples/SupportLeanbackDemos/res/drawable-xhdpi/ic_main_icon.png
deleted file mode 100644
index 2e56516..0000000
--- a/samples/SupportLeanbackDemos/res/drawable-xhdpi/ic_main_icon.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_bg.png b/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_bg.png
deleted file mode 100644
index c3668ea..0000000
--- a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_bg.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_1.png b/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_1.png
deleted file mode 100644
index 93a2212..0000000
--- a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_1.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_10.png b/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_10.png
deleted file mode 100644
index 6ae91d9..0000000
--- a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_10.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_11.png b/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_11.png
deleted file mode 100644
index 556a247..0000000
--- a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_11.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_12.png b/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_12.png
deleted file mode 100644
index 80f8e85..0000000
--- a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_12.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_13.png b/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_13.png
deleted file mode 100644
index 1e080a1..0000000
--- a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_13.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_14.png b/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_14.png
deleted file mode 100644
index b854bbd..0000000
--- a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_14.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_15.png b/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_15.png
deleted file mode 100644
index f08383d..0000000
--- a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_15.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_16.png b/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_16.png
deleted file mode 100644
index ed54ef0..0000000
--- a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_16.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_17.png b/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_17.png
deleted file mode 100644
index e5c197d..0000000
--- a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_17.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_18.png b/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_18.png
deleted file mode 100644
index 100dd81..0000000
--- a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_18.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_19.png b/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_19.png
deleted file mode 100644
index cf8909b..0000000
--- a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_19.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_2.png b/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_2.png
deleted file mode 100644
index 386720f..0000000
--- a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_2.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_20.png b/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_20.png
deleted file mode 100644
index 613157b..0000000
--- a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_20.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_21.png b/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_21.png
deleted file mode 100644
index 9bab3a8..0000000
--- a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_21.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_22.png b/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_22.png
deleted file mode 100644
index 956adf4..0000000
--- a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_22.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_23.png b/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_23.png
deleted file mode 100644
index ac703d3..0000000
--- a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_23.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_24.png b/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_24.png
deleted file mode 100644
index 2522c66..0000000
--- a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_24.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_25.png b/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_25.png
deleted file mode 100644
index f8d21d2..0000000
--- a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_25.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_26.png b/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_26.png
deleted file mode 100644
index 92d9583..0000000
--- a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_26.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_27.png b/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_27.png
deleted file mode 100644
index 9ccc088..0000000
--- a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_27.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_28.png b/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_28.png
deleted file mode 100644
index 673d449..0000000
--- a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_28.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_29.png b/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_29.png
deleted file mode 100644
index 3d3301f..0000000
--- a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_29.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_3.png b/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_3.png
deleted file mode 100644
index f51f6b4..0000000
--- a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_3.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_30.png b/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_30.png
deleted file mode 100644
index f43893d3..0000000
--- a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_30.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_31.png b/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_31.png
deleted file mode 100644
index a3afd81..0000000
--- a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_31.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_32.png b/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_32.png
deleted file mode 100644
index 70a24db..0000000
--- a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_32.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_33.png b/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_33.png
deleted file mode 100644
index 447e5bb..0000000
--- a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_33.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_34.png b/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_34.png
deleted file mode 100644
index e3dc093..0000000
--- a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_34.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_35.png b/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_35.png
deleted file mode 100644
index 4d7f43a..0000000
--- a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_35.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_36.png b/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_36.png
deleted file mode 100644
index c2e4a62..0000000
--- a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_36.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_37.png b/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_37.png
deleted file mode 100644
index 1690677..0000000
--- a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_37.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_38.png b/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_38.png
deleted file mode 100644
index e40c9da..0000000
--- a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_38.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_39.png b/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_39.png
deleted file mode 100644
index c399e7f..0000000
--- a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_39.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_4.png b/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_4.png
deleted file mode 100644
index 70fdb5a..0000000
--- a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_4.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_40.png b/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_40.png
deleted file mode 100644
index 9361a14..0000000
--- a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_40.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_41.png b/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_41.png
deleted file mode 100644
index 6828440..0000000
--- a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_41.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_42.png b/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_42.png
deleted file mode 100644
index 6bee090..0000000
--- a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_42.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_43.png b/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_43.png
deleted file mode 100644
index 6a76da1..0000000
--- a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_43.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_44.png b/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_44.png
deleted file mode 100644
index ac86242..0000000
--- a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_44.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_5.png b/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_5.png
deleted file mode 100644
index 08bc451..0000000
--- a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_5.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_6.png b/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_6.png
deleted file mode 100644
index 6939974..0000000
--- a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_6.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_7.png b/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_7.png
deleted file mode 100644
index 01637e4..0000000
--- a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_7.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_8.png b/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_8.png
deleted file mode 100644
index bedf8fb..0000000
--- a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_8.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_9.png b/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_9.png
deleted file mode 100644
index 33cada1..0000000
--- a/samples/SupportLeanbackDemos/res/drawable-xhdpi/tv_content_9.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable/details_img.png b/samples/SupportLeanbackDemos/res/drawable/details_img.png
deleted file mode 100644
index 7ea688b..0000000
--- a/samples/SupportLeanbackDemos/res/drawable/details_img.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable/details_img_16x9.png b/samples/SupportLeanbackDemos/res/drawable/details_img_16x9.png
deleted file mode 100644
index daa505d..0000000
--- a/samples/SupportLeanbackDemos/res/drawable/details_img_16x9.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable/gallery_photo_1.jpg b/samples/SupportLeanbackDemos/res/drawable/gallery_photo_1.jpg
deleted file mode 100644
index a2581fe..0000000
--- a/samples/SupportLeanbackDemos/res/drawable/gallery_photo_1.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable/gallery_photo_2.jpg b/samples/SupportLeanbackDemos/res/drawable/gallery_photo_2.jpg
deleted file mode 100644
index 82ba3a8..0000000
--- a/samples/SupportLeanbackDemos/res/drawable/gallery_photo_2.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable/gallery_photo_3.jpg b/samples/SupportLeanbackDemos/res/drawable/gallery_photo_3.jpg
deleted file mode 100644
index 2a83021..0000000
--- a/samples/SupportLeanbackDemos/res/drawable/gallery_photo_3.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable/gallery_photo_4.jpg b/samples/SupportLeanbackDemos/res/drawable/gallery_photo_4.jpg
deleted file mode 100644
index 70a1c55..0000000
--- a/samples/SupportLeanbackDemos/res/drawable/gallery_photo_4.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable/gallery_photo_5.jpg b/samples/SupportLeanbackDemos/res/drawable/gallery_photo_5.jpg
deleted file mode 100644
index dc3f677..0000000
--- a/samples/SupportLeanbackDemos/res/drawable/gallery_photo_5.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable/gallery_photo_6.jpg b/samples/SupportLeanbackDemos/res/drawable/gallery_photo_6.jpg
deleted file mode 100644
index 2e113a0..0000000
--- a/samples/SupportLeanbackDemos/res/drawable/gallery_photo_6.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable/gallery_photo_7.jpg b/samples/SupportLeanbackDemos/res/drawable/gallery_photo_7.jpg
deleted file mode 100644
index bc30297..0000000
--- a/samples/SupportLeanbackDemos/res/drawable/gallery_photo_7.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable/gallery_photo_8.jpg b/samples/SupportLeanbackDemos/res/drawable/gallery_photo_8.jpg
deleted file mode 100644
index dc3aa85..0000000
--- a/samples/SupportLeanbackDemos/res/drawable/gallery_photo_8.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable/ic_action_a.png b/samples/SupportLeanbackDemos/res/drawable/ic_action_a.png
deleted file mode 100644
index 3d555ef..0000000
--- a/samples/SupportLeanbackDemos/res/drawable/ic_action_a.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable/ic_guidedstep_option_a.png b/samples/SupportLeanbackDemos/res/drawable/ic_guidedstep_option_a.png
deleted file mode 100644
index b1afd78..0000000
--- a/samples/SupportLeanbackDemos/res/drawable/ic_guidedstep_option_a.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable/ic_guidedstep_option_b.png b/samples/SupportLeanbackDemos/res/drawable/ic_guidedstep_option_b.png
deleted file mode 100644
index 3349108..0000000
--- a/samples/SupportLeanbackDemos/res/drawable/ic_guidedstep_option_b.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable/ic_guidedstep_option_c.png b/samples/SupportLeanbackDemos/res/drawable/ic_guidedstep_option_c.png
deleted file mode 100644
index d92c927..0000000
--- a/samples/SupportLeanbackDemos/res/drawable/ic_guidedstep_option_c.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable/ic_title.png b/samples/SupportLeanbackDemos/res/drawable/ic_title.png
deleted file mode 100644
index 1c62b2e..0000000
--- a/samples/SupportLeanbackDemos/res/drawable/ic_title.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackDemos/res/drawable/text_bg.xml b/samples/SupportLeanbackDemos/res/drawable/text_bg.xml
deleted file mode 100644
index a26937d..0000000
--- a/samples/SupportLeanbackDemos/res/drawable/text_bg.xml
+++ /dev/null
@@ -1,32 +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.
--->
-
-<shape xmlns:android="http://schemas.android.com/apk/res/android"
-    android:shape="rectangle">
-    <gradient
-        android:startColor="#FFFF0000"
-        android:endColor="#FFFF00FF"
-        android:angle="45" />
-    <padding
-        android:left="7dp"
-        android:top="7dp"
-        android:right="7dp"
-        android:bottom="7dp" />
-    <size
-        android:height="160dp"
-        android:width="100dp" />
-</shape>
diff --git a/samples/SupportLeanbackDemos/res/drawable/tv_content.xml b/samples/SupportLeanbackDemos/res/drawable/tv_content.xml
deleted file mode 100644
index 5007e87..0000000
--- a/samples/SupportLeanbackDemos/res/drawable/tv_content.xml
+++ /dev/null
@@ -1,64 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2016 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
-    android:oneshot="true">
-    <item android:drawable="@drawable/tv_content_1" android:duration="33" />
-    <item android:drawable="@drawable/tv_content_2" android:duration="33" />
-    <item android:drawable="@drawable/tv_content_3" android:duration="33" />
-    <item android:drawable="@drawable/tv_content_4" android:duration="33" />
-    <item android:drawable="@drawable/tv_content_5" android:duration="33" />
-    <item android:drawable="@drawable/tv_content_6" android:duration="33" />
-    <item android:drawable="@drawable/tv_content_7" android:duration="33" />
-    <item android:drawable="@drawable/tv_content_8" android:duration="33" />
-    <item android:drawable="@drawable/tv_content_9" android:duration="33" />
-    <item android:drawable="@drawable/tv_content_10" android:duration="33" />
-    <item android:drawable="@drawable/tv_content_11" android:duration="33" />
-    <item android:drawable="@drawable/tv_content_12" android:duration="33" />
-    <item android:drawable="@drawable/tv_content_13" android:duration="33" />
-    <item android:drawable="@drawable/tv_content_14" android:duration="33" />
-    <item android:drawable="@drawable/tv_content_15" android:duration="33" />
-    <item android:drawable="@drawable/tv_content_16" android:duration="33" />
-    <item android:drawable="@drawable/tv_content_17" android:duration="33" />
-    <item android:drawable="@drawable/tv_content_18" android:duration="33" />
-    <item android:drawable="@drawable/tv_content_19" android:duration="33" />
-    <item android:drawable="@drawable/tv_content_20" android:duration="33" />
-    <item android:drawable="@drawable/tv_content_21" android:duration="33" />
-    <item android:drawable="@drawable/tv_content_22" android:duration="33" />
-    <item android:drawable="@drawable/tv_content_23" android:duration="33" />
-    <item android:drawable="@drawable/tv_content_24" android:duration="33" />
-    <item android:drawable="@drawable/tv_content_25" android:duration="33" />
-    <item android:drawable="@drawable/tv_content_26" android:duration="33" />
-    <item android:drawable="@drawable/tv_content_27" android:duration="33" />
-    <item android:drawable="@drawable/tv_content_28" android:duration="33" />
-    <item android:drawable="@drawable/tv_content_29" android:duration="33" />
-    <item android:drawable="@drawable/tv_content_30" android:duration="33" />
-    <item android:drawable="@drawable/tv_content_31" android:duration="33" />
-    <item android:drawable="@drawable/tv_content_32" android:duration="33" />
-    <item android:drawable="@drawable/tv_content_33" android:duration="33" />
-    <item android:drawable="@drawable/tv_content_34" android:duration="33" />
-    <item android:drawable="@drawable/tv_content_35" android:duration="33" />
-    <item android:drawable="@drawable/tv_content_36" android:duration="33" />
-    <item android:drawable="@drawable/tv_content_37" android:duration="33" />
-    <item android:drawable="@drawable/tv_content_38" android:duration="33" />
-    <item android:drawable="@drawable/tv_content_39" android:duration="33" />
-    <item android:drawable="@drawable/tv_content_40" android:duration="33" />
-    <item android:drawable="@drawable/tv_content_41" android:duration="33" />
-    <item android:drawable="@drawable/tv_content_42" android:duration="33" />
-    <item android:drawable="@drawable/tv_content_43" android:duration="33" />
-    <item android:drawable="@drawable/tv_content_44" android:duration="33" />
-</animation-list>
diff --git a/samples/SupportLeanbackDemos/res/layout/browse.xml b/samples/SupportLeanbackDemos/res/layout/browse.xml
deleted file mode 100644
index ca19691..0000000
--- a/samples/SupportLeanbackDemos/res/layout/browse.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.
--->
-
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/main_frame"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent">
-
-	<fragment
-	    android:name="com.example.android.leanback.BrowseFragment"
-	    android:id="@+id/main_browse_fragment"
-	    android:layout_width="match_parent"
-	    android:layout_height="match_parent"
-	/>
-
-  <!-- container for hosting GuidedStepFragment -->
-  <FrameLayout android:id="@+id/lb_guidedstep_host"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent" />
-
-</FrameLayout>
diff --git a/samples/SupportLeanbackDemos/res/layout/browse_animation.xml b/samples/SupportLeanbackDemos/res/layout/browse_animation.xml
deleted file mode 100644
index 7b00345..0000000
--- a/samples/SupportLeanbackDemos/res/layout/browse_animation.xml
+++ /dev/null
@@ -1,23 +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.
--->
-
-<fragment xmlns:android="http://schemas.android.com/apk/res/android"
-    android:name="com.example.android.leanback.BrowseAnimationFragment"
-    android:id="@+id/main_browse_fragment"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-/>
diff --git a/samples/SupportLeanbackDemos/res/layout/browse_support.xml b/samples/SupportLeanbackDemos/res/layout/browse_support.xml
deleted file mode 100644
index 23058ad..0000000
--- a/samples/SupportLeanbackDemos/res/layout/browse_support.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- This file is auto-generated from browse.xml.  DO NOT MODIFY. -->
-
-<!--
-     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.
--->
-
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/main_frame"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent">
-
-	<fragment
-	    android:name="com.example.android.leanback.BrowseSupportFragment"
-	    android:id="@+id/main_browse_fragment"
-	    android:layout_width="match_parent"
-	    android:layout_height="match_parent"
-	/>
-
-  <!-- container for hosting GuidedStepFragment -->
-  <FrameLayout android:id="@+id/lb_guidedstep_host"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent" />
-
-</FrameLayout>
diff --git a/samples/SupportLeanbackDemos/res/layout/details.xml b/samples/SupportLeanbackDemos/res/layout/details.xml
deleted file mode 100644
index 3159f54..0000000
--- a/samples/SupportLeanbackDemos/res/layout/details.xml
+++ /dev/null
@@ -1,23 +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.
--->
-
-<fragment xmlns:android="http://schemas.android.com/apk/res/android"
-    android:name="com.example.android.leanback.NewDetailsFragment"
-    android:id="@+id/details_fragment"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-/>
diff --git a/samples/SupportLeanbackDemos/res/layout/details_support.xml b/samples/SupportLeanbackDemos/res/layout/details_support.xml
deleted file mode 100644
index 103dc25..0000000
--- a/samples/SupportLeanbackDemos/res/layout/details_support.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- This file is auto-generated from details.xml.  DO NOT MODIFY. -->
-
-<!--
-     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.
--->
-
-<fragment xmlns:android="http://schemas.android.com/apk/res/android"
-    android:name="com.example.android.leanback.NewDetailsSupportFragment"
-    android:id="@+id/details_fragment"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-/>
diff --git a/samples/SupportLeanbackDemos/res/layout/guided_step_activity.xml b/samples/SupportLeanbackDemos/res/layout/guided_step_activity.xml
deleted file mode 100644
index a1de213..0000000
--- a/samples/SupportLeanbackDemos/res/layout/guided_step_activity.xml
+++ /dev/null
@@ -1,22 +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.
--->
-
-<!-- container for hosting GuidedStepFragment -->
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
-  android:id="@+id/lb_guidedstep_host"
-  android:layout_width="match_parent"
-  android:layout_height="match_parent" />
diff --git a/samples/SupportLeanbackDemos/res/layout/guidedstep_second_guidance.xml b/samples/SupportLeanbackDemos/res/layout/guidedstep_second_guidance.xml
deleted file mode 100644
index 09aaef1..0000000
--- a/samples/SupportLeanbackDemos/res/layout/guidedstep_second_guidance.xml
+++ /dev/null
@@ -1,47 +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.
--->
-<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" >
-
-    <RelativeLayout
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        style="?attr/guidanceContainerStyle" >
-
-        <ImageView
-            android:id="@+id/guidance_icon"
-            style="@style/Widget.Example.Leanback.SecondStepGuidanceIconStyle"
-            android:layout_width="188dp"
-            tools:ignore="ContentDescription" />
-
-        <TextView
-            android:id="@+id/guidance_title"
-            style="?attr/guidanceTitleStyle" />
-
-        <TextView
-            android:id="@+id/guidance_breadcrumb"
-            style="?attr/guidanceBreadcrumbStyle" />
-
-        <TextView
-            android:id="@+id/guidance_description"
-            style="?attr/guidanceDescriptionStyle" />
-
-    </RelativeLayout>
-
-</FrameLayout>
diff --git a/samples/SupportLeanbackDemos/res/layout/horizontal_grid.xml b/samples/SupportLeanbackDemos/res/layout/horizontal_grid.xml
deleted file mode 100644
index 7faea03..0000000
--- a/samples/SupportLeanbackDemos/res/layout/horizontal_grid.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<RelativeLayout 
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:lb="http://schemas.android.com/apk/res-auto"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    >
-  <android.support.v17.leanback.widget.HorizontalGridView
-      android:id="@+id/gridview"
-      android:layout_width="match_parent"
-      android:layout_height="match_parent"
-      android:clipToPadding="false"
-      android:focusable="true"
-      android:focusableInTouchMode="true"
-      android:background="#00ffff"
-      lb:horizontalMargin="12dip"
-      lb:verticalMargin="24dip"
-      lb:numberOfRows="3"
-      lb:rowHeight="150dip"
-      android:paddingBottom="12dip"
-      android:paddingLeft="12dip"
-      android:paddingRight="12dip"
-      android:paddingTop="12dip" />
-</RelativeLayout>
diff --git a/samples/SupportLeanbackDemos/res/layout/legacy_details.xml b/samples/SupportLeanbackDemos/res/layout/legacy_details.xml
deleted file mode 100644
index 4af4e6a..0000000
--- a/samples/SupportLeanbackDemos/res/layout/legacy_details.xml
+++ /dev/null
@@ -1,23 +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.
--->
-
-<fragment xmlns:android="http://schemas.android.com/apk/res/android"
-    android:name="com.example.android.leanback.DetailsFragment"
-    android:id="@+id/details_fragment"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-/>
diff --git a/samples/SupportLeanbackDemos/res/layout/legacy_details_support.xml b/samples/SupportLeanbackDemos/res/layout/legacy_details_support.xml
deleted file mode 100644
index 8146f9b..0000000
--- a/samples/SupportLeanbackDemos/res/layout/legacy_details_support.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- This file is auto-generated from legacy_details.xml.  DO NOT MODIFY. -->
-
-<!--
-     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.
--->
-
-<fragment xmlns:android="http://schemas.android.com/apk/res/android"
-    android:name="com.example.android.leanback.DetailsSupportFragment"
-    android:id="@+id/details_fragment"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-/>
diff --git a/samples/SupportLeanbackDemos/res/layout/onboarding.xml b/samples/SupportLeanbackDemos/res/layout/onboarding.xml
deleted file mode 100644
index 3645422..0000000
--- a/samples/SupportLeanbackDemos/res/layout/onboarding.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2016 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent">
-
-    <fragment
-        android:name="com.example.android.leanback.OnboardingDemoFragment"
-		android:id="@+id/main_onboarding_fragment"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent" />
-
-</FrameLayout>
diff --git a/samples/SupportLeanbackDemos/res/layout/onboarding_content.xml b/samples/SupportLeanbackDemos/res/layout/onboarding_content.xml
deleted file mode 100644
index 7a3edf9..0000000
--- a/samples/SupportLeanbackDemos/res/layout/onboarding_content.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2016 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent">
-    <ImageView
-        android:id="@+id/background_image"
-        android:layout_width="215dp"
-        android:layout_height="128dp"
-        android:layout_gravity="center"
-        android:scaleType="fitCenter"
-        android:contentDescription="@null" />
-    <ImageView
-        android:id="@+id/animation_image"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:layout_gravity="center"
-        android:scaleType="center"
-        android:contentDescription="@null" />
-</FrameLayout>
diff --git a/samples/SupportLeanbackDemos/res/layout/onboarding_image.xml b/samples/SupportLeanbackDemos/res/layout/onboarding_image.xml
deleted file mode 100644
index 2962b01..0000000
--- a/samples/SupportLeanbackDemos/res/layout/onboarding_image.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2016 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/image"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:scaleType="fitCenter"
-    android:src="@drawable/bg"
-    android:contentDescription="@null" />
diff --git a/samples/SupportLeanbackDemos/res/layout/page_fragment.xml b/samples/SupportLeanbackDemos/res/layout/page_fragment.xml
deleted file mode 100644
index 9273f6f..0000000
--- a/samples/SupportLeanbackDemos/res/layout/page_fragment.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
-        android:id="@+id/container_list"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent">
-
-    <LinearLayout
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:orientation="vertical"
-        android:layout_alignParentRight="true"
-        android:layout_marginRight="128dp"
-        android:layout_centerVertical="true">
-
-        <EditText
-            android:id="@+id/tv1"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:text="Header 1"
-            android:layout_margin="16dp"
-            android:focusable="true"
-            android:textAppearance="@android:style/TextAppearance.DeviceDefault.Large" />
-
-        <EditText
-            android:id="@+id/tv2"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:text="Header 2"
-            android:layout_margin="16dp"
-            android:focusable="true"
-            android:textAppearance="@android:style/TextAppearance.DeviceDefault.Medium" />
-
-        <EditText
-            android:id="@+id/tv3"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:text="Header 3"
-            android:layout_margin="16dp"
-            android:focusable="true"
-            android:textAppearance="@android:style/TextAppearance.DeviceDefault.Small" />
-
-    </LinearLayout>
-</RelativeLayout>
\ No newline at end of file
diff --git a/samples/SupportLeanbackDemos/res/layout/playback_controls.xml b/samples/SupportLeanbackDemos/res/layout/playback_controls.xml
deleted file mode 100644
index 0c9f43c..0000000
--- a/samples/SupportLeanbackDemos/res/layout/playback_controls.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.
--->
-
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent" >
-
-    <ImageView
-        android:id="@+id/media_content"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:src="@drawable/bg" />
-
-    <fragment
-        android:id="@+id/playback_controls_fragment"
-        android:name="com.example.android.leanback.PlaybackOverlayFragment"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent" />
-
-</FrameLayout>
\ No newline at end of file
diff --git a/samples/SupportLeanbackDemos/res/layout/playback_controls_support.xml b/samples/SupportLeanbackDemos/res/layout/playback_controls_support.xml
deleted file mode 100644
index 4eb293f..0000000
--- a/samples/SupportLeanbackDemos/res/layout/playback_controls_support.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- This file is auto-generated from playback_controls.xml.  DO NOT MODIFY. -->
-
-<!--
-     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.
--->
-
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent" >
-
-    <ImageView
-        android:id="@+id/media_content"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:src="@drawable/bg" />
-
-    <fragment
-        android:id="@+id/playback_controls_fragment"
-        android:name="com.example.android.leanback.PlaybackOverlaySupportFragment"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent" />
-
-</FrameLayout>
\ No newline at end of file
diff --git a/samples/SupportLeanbackDemos/res/layout/rows.xml b/samples/SupportLeanbackDemos/res/layout/rows.xml
deleted file mode 100644
index 664e41b..0000000
--- a/samples/SupportLeanbackDemos/res/layout/rows.xml
+++ /dev/null
@@ -1,36 +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.
--->
-
-<android.support.v17.leanback.widget.BrowseFrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/rows_frame"
-    android:orientation="vertical"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent">
-
-  <fragment
-      android:name="com.example.android.leanback.RowsFragment"
-      android:id="@+id/main_rows_fragment"
-      android:layout_width="match_parent"
-      android:layout_height="match_parent"
-  />
-
-    <android.support.v17.leanback.widget.TitleView
-        android:id="@+id/title"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content" />
-
-</android.support.v17.leanback.widget.BrowseFrameLayout>
diff --git a/samples/SupportLeanbackDemos/res/layout/rows_support.xml b/samples/SupportLeanbackDemos/res/layout/rows_support.xml
deleted file mode 100644
index 2668297..0000000
--- a/samples/SupportLeanbackDemos/res/layout/rows_support.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- This file is auto-generated from rows.xml.  DO NOT MODIFY. -->
-
-<!--
-     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.
--->
-
-<android.support.v17.leanback.widget.BrowseFrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/rows_frame"
-    android:orientation="vertical"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent">
-
-  <fragment
-      android:name="com.example.android.leanback.RowsSupportFragment"
-      android:id="@+id/main_rows_fragment"
-      android:layout_width="match_parent"
-      android:layout_height="match_parent"
-  />
-
-    <android.support.v17.leanback.widget.TitleView
-        android:id="@+id/title"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content" />
-
-</android.support.v17.leanback.widget.BrowseFrameLayout>
diff --git a/samples/SupportLeanbackDemos/res/layout/search.xml b/samples/SupportLeanbackDemos/res/layout/search.xml
deleted file mode 100644
index b65600c..0000000
--- a/samples/SupportLeanbackDemos/res/layout/search.xml
+++ /dev/null
@@ -1,23 +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.
--->
-
-<fragment xmlns:android="http://schemas.android.com/apk/res/android"
-          android:name="com.example.android.leanback.SearchFragment"
-          android:id="@+id/search_fragment"
-          android:layout_width="match_parent"
-          android:layout_height="match_parent"
-        />
\ No newline at end of file
diff --git a/samples/SupportLeanbackDemos/res/layout/search_support.xml b/samples/SupportLeanbackDemos/res/layout/search_support.xml
deleted file mode 100644
index 1d113cb..0000000
--- a/samples/SupportLeanbackDemos/res/layout/search_support.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- This file is auto-generated from search.xml.  DO NOT MODIFY. -->
-
-<!--
-     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.
--->
-
-<fragment xmlns:android="http://schemas.android.com/apk/res/android"
-          android:name="com.example.android.leanback.SearchSupportFragment"
-          android:id="@+id/search_fragment"
-          android:layout_width="match_parent"
-          android:layout_height="match_parent"
-        />
\ No newline at end of file
diff --git a/samples/SupportLeanbackDemos/res/layout/vertical_grid.xml b/samples/SupportLeanbackDemos/res/layout/vertical_grid.xml
deleted file mode 100644
index 1007042..0000000
--- a/samples/SupportLeanbackDemos/res/layout/vertical_grid.xml
+++ /dev/null
@@ -1,23 +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.
--->
-
-<fragment xmlns:android="http://schemas.android.com/apk/res/android"
-    android:name="com.example.android.leanback.VerticalGridFragment"
-    android:id="@+id/vertical_grid_fragment"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-/>
diff --git a/samples/SupportLeanbackDemos/res/layout/vertical_grid_support.xml b/samples/SupportLeanbackDemos/res/layout/vertical_grid_support.xml
deleted file mode 100644
index 3975ecc..0000000
--- a/samples/SupportLeanbackDemos/res/layout/vertical_grid_support.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- This file is auto-generated from vertical_grid.xml.  DO NOT MODIFY. -->
-
-<!--
-     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.
--->
-
-<fragment xmlns:android="http://schemas.android.com/apk/res/android"
-    android:name="com.example.android.leanback.VerticalGridSupportFragment"
-    android:id="@+id/vertical_grid_fragment"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-/>
diff --git a/samples/SupportLeanbackDemos/res/values/arrays.xml b/samples/SupportLeanbackDemos/res/values/arrays.xml
deleted file mode 100644
index 307f49d..0000000
--- a/samples/SupportLeanbackDemos/res/values/arrays.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2016 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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>
-
-    <!-- Titles in the onboarding page. -->
-    <string-array name="onboarding_page_titles">
-        <item>Onboarding</item>
-        <item>Easy to implement</item>
-        <item>Customize your contents</item>
-    </string-array>
-
-    <!-- Descriptions in the onboarding page. -->
-    <string-array name="onboarding_page_descriptions">
-        <item>Announce your new features.</item>
-        <item>Just override OnboardingFragment and provide the messages and images.</item>
-        <item>Customize your own logo image, splash animation and the contents animations.</item>
-    </string-array>
-</resources>
diff --git a/samples/SupportLeanbackDemos/res/values/colors.xml b/samples/SupportLeanbackDemos/res/values/colors.xml
deleted file mode 100644
index 1fdeb87..0000000
--- a/samples/SupportLeanbackDemos/res/values/colors.xml
+++ /dev/null
@@ -1,20 +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>
-    <color name="icon_background">#4A4F51</color>
-    <color name="icon_alt_background">#2A2F51</color>
-    <color name="page_indicator_dot">#80FFFFFF</color>
-</resources>
diff --git a/samples/SupportLeanbackDemos/res/values/strings.xml b/samples/SupportLeanbackDemos/res/values/strings.xml
deleted file mode 100644
index 0a3ead4..0000000
--- a/samples/SupportLeanbackDemos/res/values/strings.xml
+++ /dev/null
@@ -1,82 +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">MainActivity</string>
-    <string name="main_breadcrumb">Demo</string>
-    <string name="main_title">Activities</string>
-    <string name="browse">Browse</string>
-    <string name="browse_description">BrowseFragment test</string>
-    <string name="browse_support">Browse(support version)</string>
-    <string name="browse_support_description">BrowseSupportFragment test</string>
-    <string name="search">Search</string>
-    <string name="search_description">SearchFragment test</string>
-    <string name="search_support">Search(support version)</string>
-    <string name="search_support_description">SearchSupportFragment test</string>
-    <string name="details">Details</string>
-    <string name="details_description">DetailsFragment test</string>
-    <string name="details_support">Details(support version)</string>
-    <string name="details_support_description">DetailsSupportFragment test</string>
-    <string name="search_details">Search Details</string>
-    <string name="search_details_description">Search style DetailsFragment test</string>
-    <string name="search_details_support">Search Details(support version)</string>
-    <string name="search_details_support_description">Search style DetailsSupportFragment test</string>
-    <string name="playback">Playback</string>
-    <string name="playback_description">PlaybackOverlayFragment test</string>
-    <string name="playback_support">Playback(support version)</string>
-    <string name="playback_support_description">PlaybackOverlaySupportFragment test</string>
-    <string name="hgrid">Horizontal Grid</string>
-    <string name="hgrid_description">HorizontalGridView test</string>
-    <string name="vgrid">Vertical Grid</string>
-    <string name="vgrid_description">VerticalGridFragment test</string>
-    <string name="vgrid_support">Vertical Grid(support version)</string>
-    <string name="vgrid_support_description">VerticalGridSupportFragment test</string>
-    <string name="guidedstep">Guided Step</string>
-    <string name="guidedstephalfscreen">Guided Step Half Screen</string>
-    <string name="guidedstep_description">GuidedStepFragment test</string>
-    <string name="guidedstepsupport">Guided Step(support version)</string>
-    <string name="guidedstepsupporthalfscreen">Guided Step Half Screen(support version)</string>
-    <string name="guidedstepsupport_description">GuidedStepSupportFragment test</string>
-    <string name="browseerror">Browse Error</string>
-    <string name="browseerror_description">BrowseError test</string>
-    <string name="browseerror_support">Browse ErrorFragment(support version)</string>
-    <string name="browseerror_support_description">Browse ErrorSupportFragment test</string>
-    <string name="detail_presenter_options">Choose Presenter for Details</string>
-    <string name="detail_presenter_options_description">Choose Presenter for Details</string>
-    <string name="legacydetails_off">Use New DetailsPresenter</string>
-    <string name="legacydetails_on">Use Legacy DetailsPresenter</string>
-    <string name="onboarding">Onboarding</string>
-    <string name="onboarding_description">Show onboarding activity.</string>
-    <string name="onboarding_support">Onboarding(support version)</string>
-
-    <!-- Strings related to guided sequence activity -->
-    <string name="guidedstep_first_title">First</string>
-    <string name="guidedstep_first_description">First step of guided sequence</string>
-    <string name="guidedstep_first_breadcrumb">Guided Steps</string>
-    <string name="guidedstep_second_title">Second</string>
-    <string name="guidedstep_second_description">Showcasing editable actions and dropdown</string>
-    <string name="guidedstep_second_breadcrumb">Guided Steps</string>
-    <string name="guidedstep_newpayment_title">New payment</string>
-    <string name="guidedstep_newpayment_description">Showcasing editable actions</string>
-    <string name="guidedstep_newpayment_breadcrumb">Guided Steps</string>
-    <string name="guidedstep_third_title">Third</string>
-    <string name="guidedstep_third_description">Showcasing different action configurations</string>
-    <string name="guidedstep_third_breadcrumb">Guided Steps</string>
-    <string name="guidedstep_fourth_title">Fourth</string>
-    <string name="guidedstep_fourth_description">Fourth step of guided sequence</string>
-    <string name="guidedstep_fourth_breadcrumb">Guided Steps</string>
-</resources>
diff --git a/samples/SupportLeanbackDemos/res/values/styles.xml b/samples/SupportLeanbackDemos/res/values/styles.xml
deleted file mode 100644
index af8c5ae..0000000
--- a/samples/SupportLeanbackDemos/res/values/styles.xml
+++ /dev/null
@@ -1,58 +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 xmlns:android="http://schemas.android.com/apk/res/android">
-    <style name="Widget.Example.Leanback.Title.Text" parent="Widget.Leanback.Title.Text" >
-    </style>
-    <style name="Widget.Example.Leanback.Rows.VerticalGridView" parent="Widget.Leanback.Rows.VerticalGridView">
-        <item name="android:paddingTop">96dp</item>
-    </style>
-    <style name="Widget.Example.Leanback.GuidanceIconStyle" parent="Widget.Leanback.GuidanceIconStyle">
-        <item name="android:background">@color/icon_background</item>
-    </style>
-    <style name="Widget.Example.Leanback.FirstStepGuidanceIconStyle" parent="Widget.Leanback.GuidanceIconStyle">
-        <item name="android:background">@color/icon_alt_background</item>
-    </style>
-    <style name="Widget.Example.Leanback.SecondStepGuidanceIconStyle" parent="Widget.Leanback.GuidanceIconStyle">
-        <item name="android:padding">24dp</item>
-    </style>
-
-    <style name="MyImageCardViewStyle" parent="Widget.Leanback.ImageCardViewStyle">
-        <item name="lbImageCardViewType">Title|Content|IconOnRight</item>
-    </style>
-
-    <style name="MyImageCardViewTitleStyleText" parent="TextAppearance.Leanback.ImageCardView.Title">
-        <item name="android:textColor">@android:color/holo_blue_bright</item>
-    </style>
-
-    <style name="MyImageCardViewTitleStyle" parent="Widget.Leanback.ImageCardView.TitleStyle">
-        <item name="android:textAppearance">@style/MyImageCardViewTitleStyleText</item>
-    </style>
-
-    <style name="MyImageCardViewTheme" parent="Theme.Leanback">
-        <item name="imageCardViewStyle">@style/MyImageCardViewStyle</item>
-        <item name="imageCardViewTitleStyle">@style/MyImageCardViewTitleStyle</item>
-    </style>
-
-    <style name="Widget.Example.Leanback.OnboardingLogoStyle" parent="Widget.Leanback.OnboardingLogoStyle">
-        <item name="android:layout_width">192dp</item>
-        <item name="android:layout_height">192dp</item>
-    </style>
-
-    <style name="Widget.Example.Leanback.OnboardingPageIndicatorStyle" parent="Widget.Leanback.OnboardingPageIndicatorStyle">
-        <item name="dotBgColor">@color/page_indicator_dot</item>
-    </style>
-</resources>
\ No newline at end of file
diff --git a/samples/SupportLeanbackDemos/res/values/themes.xml b/samples/SupportLeanbackDemos/res/values/themes.xml
deleted file mode 100644
index db9f4c4..0000000
--- a/samples/SupportLeanbackDemos/res/values/themes.xml
+++ /dev/null
@@ -1,44 +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>
-    <style name="Theme.Example.Leanback" parent="Theme.Leanback">
-    </style>
-    <style name="Theme.Example.Leanback.Browse" parent="Theme.Leanback.Browse">
-    </style>
-    <style name="Theme.Example.Leanback.SearchDetails" parent="Theme.Leanback.Details.NoSharedElementTransition">
-    </style>
-    <style name="Theme.Example.Leanback.Details" parent="Theme.Leanback.Details">
-    </style>
-    <style name="Theme.Example.Leanback.VerticalGrid" parent="Theme.Leanback.VerticalGrid">
-    </style>
-    <style name="Theme.Example.Leanback.Rows" parent="Theme.Leanback">
-        <item name="browseTitleTextStyle">@style/Widget.Example.Leanback.Title.Text</item>
-        <item name="rowsVerticalGridStyle">@style/Widget.Example.Leanback.Rows.VerticalGridView</item>
-    </style>
-    <style name="Theme.Example.Leanback.GuidedStep" parent="Theme.Leanback.GuidedStep">
-        <item name="guidanceIconStyle">@style/Widget.Example.Leanback.GuidanceIconStyle</item>
-    </style>
-    <style name="Theme.Example.Leanback.GuidedStep.First">
-        <item name="guidanceIconStyle">@style/Widget.Example.Leanback.FirstStepGuidanceIconStyle</item>
-    </style>
-    <style name="Theme.Example.Leanback.GuidedStep.Half" parent="Theme.Leanback.GuidedStep.Half">
-    </style>
-    <style name="Theme.Example.Leanback.Onboarding" parent="Theme.Leanback.Onboarding">
-        <item name="onboardingLogoStyle">@style/Widget.Example.Leanback.OnboardingLogoStyle</item>
-        <item name="onboardingPageIndicatorStyle">@style/Widget.Example.Leanback.OnboardingPageIndicatorStyle</item>
-    </style>
-</resources>
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/BackgroundHelper.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/BackgroundHelper.java
deleted file mode 100644
index 99943df..0000000
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/BackgroundHelper.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * 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.leanback;
-
-import android.app.Activity;
-import android.graphics.Bitmap;
-import android.graphics.drawable.BitmapDrawable;
-import android.graphics.drawable.Drawable;
-import android.os.AsyncTask;
-import android.os.Handler;
-import android.support.v17.leanback.app.BackgroundManager;
-import android.support.v4.content.ContextCompat;
-import android.util.Log;
-
-public class BackgroundHelper {
-
-    private static final String TAG = "BackgroundHelper";
-    private static final boolean DEBUG = false;
-    private static final boolean ENABLED = true;
-
-    // Background delay serves to avoid kicking off expensive bitmap loading
-    // in case multiple backgrounds are set in quick succession.
-    private static final int SET_BACKGROUND_DELAY_MS = 100;
-
-    static class Request {
-        Object mImageToken;
-        Activity mActivity;
-        Bitmap mResult;
-
-        Request(Activity activity, Object imageToken) {
-            mActivity = activity;
-            mImageToken = imageToken;
-        }
-    }
-
-    public BackgroundHelper() {
-        if (DEBUG && !ENABLED) Log.v(TAG, "BackgroundHelper: disabled");
-    }
-
-    class LoadBackgroundRunnable implements Runnable {
-        Request mRequest;
-
-        LoadBackgroundRunnable(Activity activity, Object imageToken) {
-            mRequest = new Request(activity, imageToken);
-        }
-
-        @Override
-        public void run() {
-            if (mTask != null) {
-                if (DEBUG) Log.v(TAG, "Cancelling task");
-                mTask.cancel(true);
-            }
-            if (DEBUG) Log.v(TAG, "Executing task");
-            mTask = new LoadBitmapTask();
-            mTask.execute(mRequest);
-            mRunnable = null;
-        }
-    };
-
-    class LoadBitmapTask extends AsyncTask<Request, Object, Request> {
-        @Override
-        protected Request doInBackground(Request... params) {
-            boolean cancelled = isCancelled();
-            if (DEBUG) Log.v(TAG, "doInBackground cancelled " + cancelled);
-            Request request = params[0];
-            if (!cancelled) {
-                request.mResult = loadBitmap(request.mActivity, request.mImageToken);
-            }
-            return request;
-        }
-
-        @Override
-        protected void onPostExecute(Request request) {
-            if (DEBUG) Log.v(TAG, "onPostExecute");
-            applyBackground(request.mActivity, request.mResult);
-            if (mTask == this) {
-                mTask = null;
-            }
-        }
-
-        @Override
-        protected void onCancelled(Request request) {
-            if (DEBUG) Log.v(TAG, "onCancelled");
-        }
-
-        private Bitmap loadBitmap(Activity activity, Object imageToken) {
-            if (imageToken instanceof Integer) {
-                final int resourceId = (Integer) imageToken;
-                if (DEBUG) Log.v(TAG, "load resourceId " + resourceId);
-                Drawable drawable = ContextCompat.getDrawable(activity, resourceId);
-                if (drawable instanceof BitmapDrawable) {
-                    return ((BitmapDrawable) drawable).getBitmap();
-                }
-            }
-            return null;
-        }
-
-        private void applyBackground(Activity activity, Bitmap bitmap) {
-            BackgroundManager backgroundManager = BackgroundManager.getInstance(activity);
-            if (backgroundManager == null || !backgroundManager.isAttached()) {
-                return;
-            }
-            backgroundManager.setBitmap(bitmap);
-        }
-    }
-
-    private LoadBackgroundRunnable mRunnable;
-    private LoadBitmapTask mTask;
-
-    // Allocate a dedicated handler because there may be no view available
-    // when setBackground is invoked.
-    private Handler mHandler = new Handler();
-
-    public void setBackground(Activity activity, Object imageToken) {
-        if (!ENABLED) {
-            return;
-        }
-        if (mRunnable != null) {
-            mHandler.removeCallbacks(mRunnable);
-        }
-        mRunnable = new LoadBackgroundRunnable(activity, imageToken);
-        mHandler.postDelayed(mRunnable, SET_BACKGROUND_DELAY_MS);
-    }
-
-    static public void attach(Activity activity) {
-        if (!ENABLED) {
-            return;
-        }
-        if (DEBUG) Log.v(TAG, "attach to activity " + activity);
-        BackgroundManager.getInstance(activity).attach(activity.getWindow());
-    }
-
-    static public void release(Activity activity) {
-        if (!ENABLED) {
-            return;
-        }
-        if (DEBUG) Log.v(TAG, "release from activity " + activity);
-        BackgroundManager.getInstance(activity).release();
-    }
-}
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/BrowseActivity.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/BrowseActivity.java
deleted file mode 100644
index 38f2fb8..0000000
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/BrowseActivity.java
+++ /dev/null
@@ -1,38 +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.leanback;
-
-import android.app.Activity;
-import android.os.Bundle;
-
-public class BrowseActivity extends Activity {
-    /** Called when the activity is first created. */
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.browse);
-    }
-
-    @Override
-    public void onAttachedToWindow() {
-        super.onAttachedToWindow();
-        BackgroundHelper.attach(this);
-    }
-
-    @Override
-    public void onStop() {
-        BackgroundHelper.release(this);
-        super.onStop();
-    }
-}
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/BrowseAnimationActivity.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/BrowseAnimationActivity.java
deleted file mode 100644
index 42ce8a6..0000000
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/BrowseAnimationActivity.java
+++ /dev/null
@@ -1,28 +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.leanback;
-
-import android.app.Activity;
-import android.os.Bundle;
-
-public class BrowseAnimationActivity extends Activity
-{
-    /** Called when the activity is first created. */
-    @Override
-    public void onCreate(Bundle savedInstanceState)
-    {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.browse_animation);
-    }
-}
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/BrowseAnimationFragment.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/BrowseAnimationFragment.java
deleted file mode 100644
index 6892c2c..0000000
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/BrowseAnimationFragment.java
+++ /dev/null
@@ -1,311 +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.leanback;
-
-import android.content.Intent;
-import android.os.Bundle;
-import android.support.v17.leanback.widget.ArrayObjectAdapter;
-import android.support.v17.leanback.widget.HeaderItem;
-import android.support.v17.leanback.widget.ListRow;
-import android.support.v17.leanback.widget.ListRowPresenter;
-import android.support.v17.leanback.widget.OnItemViewClickedListener;
-import android.support.v17.leanback.widget.Presenter;
-import android.support.v17.leanback.widget.Row;
-import android.support.v17.leanback.widget.RowPresenter;
-import android.util.Log;
-import android.view.View;
-import android.os.Handler;
-
-import java.util.Random;
-
-public class BrowseAnimationFragment extends
-        android.support.v17.leanback.app.BrowseFragment {
-    private static final String TAG = "leanback.BrowseAnimationFragment";
-
-    private static final int NUM_ROWS = 10;
-    private ArrayObjectAdapter mRowsAdapter;
-    private static Random sRand = new Random();
-
-    static class Item {
-        final String mText;
-        final OnItemViewClickedListener mAction;
-
-        Item(String text, OnItemViewClickedListener action) {
-            mText = text;
-            mAction = action;
-        }
-
-        @Override
-        public String toString() {
-            return mText;
-        }
-    }
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        Log.i(TAG, "onCreate");
-        super.onCreate(savedInstanceState);
-
-        setBadgeDrawable(
-                getActivity().getResources().getDrawable(R.drawable.ic_title));
-        setTitle("Leanback Sample App");
-        setHeadersState(HEADERS_ENABLED);
-
-        setOnSearchClickedListener(new View.OnClickListener() {
-                @Override
-            public void onClick(View view) {
-                Intent intent = new Intent(getActivity(), SearchActivity.class);
-                startActivity(intent);
-            }
-        });
-
-        setupRows();
-        setOnItemViewClickedListener(new ItemViewClickedListener());
-    }
-
-    private void setupRows() {
-        ListRowPresenter lrp = new ListRowPresenter();
-        mRowsAdapter = new ArrayObjectAdapter(lrp);
-        for (int i = 0; i < NUM_ROWS; ++i) {
-            mRowsAdapter.add(
-                    createRandomRow(new HeaderItem(i, "Row " + i)));
-        }
-        setAdapter(mRowsAdapter);
-    }
-
-    Item createRandomItem() {
-        switch (sRand.nextInt(15)) {
-        default:
-        case 0:
-            return new Item("Remove Item before", new OnItemViewClickedListener() {
-                    @Override
-                public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
-                        RowPresenter.ViewHolder rowViewHolder, Row row) {
-                    ArrayObjectAdapter adapter = ((ArrayObjectAdapter) ((ListRow) row)
-                            .getAdapter());
-                    int index = adapter.indexOf(item);
-                    if (index >= 0) {
-                        if (index > 0)
-                            index--;
-                        adapter.removeItems(index, 1);
-                    }
-                }
-            });
-        case 1:
-            return new Item("Remove Item after", new OnItemViewClickedListener() {
-                    @Override
-                public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
-                        RowPresenter.ViewHolder rowViewHolder, Row row) {
-                    ArrayObjectAdapter adapter = ((ArrayObjectAdapter) ((ListRow) row)
-                            .getAdapter());
-                    int index = adapter.indexOf(item);
-                    if (index >= 0) {
-                        if (index < adapter.size() - 1)
-                            index++;
-                        adapter.removeItems(index, 1);
-                    }
-                }
-            });
-        case 2:
-            return new Item("Remove Item", new OnItemViewClickedListener() {
-                    @Override
-                public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
-                        RowPresenter.ViewHolder rowViewHolder, Row row) {
-                    ArrayObjectAdapter adapter = ((ArrayObjectAdapter) ((ListRow) row)
-                            .getAdapter());
-                    int index = adapter.indexOf(item);
-                    if (index >= 0) {
-                        adapter.removeItems(index, 1);
-                    }
-                }
-            });
-        case 3:
-            return new Item("Remove all Items", new OnItemViewClickedListener() {
-                    @Override
-                public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
-                        RowPresenter.ViewHolder rowViewHolder, Row row) {
-                    ArrayObjectAdapter adapter = ((ArrayObjectAdapter) ((ListRow) row)
-                            .getAdapter());
-                    adapter.clear();
-                }
-            });
-        case 4:
-            return new Item("add item before", new OnItemViewClickedListener() {
-                    @Override
-                public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
-                        RowPresenter.ViewHolder rowViewHolder, Row row) {
-                    ArrayObjectAdapter adapter = ((ArrayObjectAdapter) ((ListRow) row)
-                            .getAdapter());
-                    int index = adapter.indexOf(item);
-                    if (index >= 0) {
-                        adapter.add(index, createRandomItem());
-                    }
-                }
-            });
-        case 5:
-            return new Item("add item after", new OnItemViewClickedListener() {
-                    @Override
-                public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
-                        RowPresenter.ViewHolder rowViewHolder, Row row) {
-                    ArrayObjectAdapter adapter = ((ArrayObjectAdapter) ((ListRow) row)
-                            .getAdapter());
-                    int index = adapter.indexOf(item);
-                    if (index >= 0) {
-                        adapter.add(index + 1, createRandomItem());
-                    }
-                }
-            });
-        case 6:
-            return new Item("add random items before",
-                    new OnItemViewClickedListener() {
-                            @Override
-                        public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
-                                RowPresenter.ViewHolder rowViewHolder, Row row) {
-                            ArrayObjectAdapter adapter = ((ArrayObjectAdapter) ((ListRow) row)
-                                    .getAdapter());
-                            int index = adapter.indexOf(item);
-                            if (index >= 0) {
-                                int count = sRand.nextInt(4) + 1;
-                                for (int i = 0; i < count; i++) {
-                                    adapter.add(index + i, createRandomItem());
-                                }
-                            }
-                        }
-                    });
-        case 7:
-            return new Item("add random items after",
-                    new OnItemViewClickedListener() {
-                            @Override
-                        public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
-                                RowPresenter.ViewHolder rowViewHolder, Row row) {
-                            ArrayObjectAdapter adapter = ((ArrayObjectAdapter) ((ListRow) row)
-                                    .getAdapter());
-                            int index = adapter.indexOf(item);
-                            if (index >= 0) {
-                                int count = sRand.nextInt(4) + 1;
-                                for (int i = 0; i < count; i++) {
-                                    adapter.add(index + 1 + i,
-                                            createRandomItem());
-                                }
-                            }
-                        }
-                    });
-        case 8:
-            return new Item("add row before", new OnItemViewClickedListener() {
-                    @Override
-                public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
-                        RowPresenter.ViewHolder rowViewHolder, Row row) {
-                    int index = mRowsAdapter.indexOf(row);
-                    if (index >= 0) {
-                        int headerId = sRand.nextInt();
-                        mRowsAdapter.add(index, createRandomRow(new HeaderItem(
-                                headerId, "Row " + headerId)));
-                    }
-                }
-            });
-        case 9:
-            return new Item("add row after", new OnItemViewClickedListener() {
-                    @Override
-                public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
-                        RowPresenter.ViewHolder rowViewHolder, Row row) {
-                    int index = mRowsAdapter.indexOf(row);
-                    if (index >= 0) {
-                        int headerId = sRand.nextInt();
-                        mRowsAdapter.add(
-                                index + 1, createRandomRow(new HeaderItem(
-                                        headerId, "Row " + headerId)));
-                    }
-                }
-            });
-        case 10:
-            return new Item("delete row", new OnItemViewClickedListener() {
-                    @Override
-                public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
-                        RowPresenter.ViewHolder rowViewHolder, Row row) {
-                    mRowsAdapter.remove(row);
-                }
-            });
-        case 11:
-            return new Item("delete row before", new OnItemViewClickedListener() {
-                    @Override
-                public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
-                        RowPresenter.ViewHolder rowViewHolder, Row row) {
-                    int index = mRowsAdapter.indexOf(row);
-                    if (index > 0) {
-                        mRowsAdapter.removeItems(index - 1, 1);
-                    }
-                }
-            });
-        case 12:
-            return new Item("delete row after", new OnItemViewClickedListener() {
-                    @Override
-                public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
-                        RowPresenter.ViewHolder rowViewHolder, Row row) {
-                    int index = mRowsAdapter.indexOf(row);
-                    if (index < mRowsAdapter.size() - 1) {
-                        mRowsAdapter.removeItems(index + 1, 1);
-                    }
-                }
-            });
-        case 13:
-            return new Item("Replace Item before", new OnItemViewClickedListener() {
-                    @Override
-                public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
-                        RowPresenter.ViewHolder rowViewHolder, Row row) {
-                    ArrayObjectAdapter adapter = ((ArrayObjectAdapter) ((ListRow) row)
-                            .getAdapter());
-                    int index = adapter.indexOf(item);
-                    if (index >= 0) {
-                        if (index > 0)
-                            index--;
-                        adapter.replace(index, createRandomItem());
-                    }
-                }
-            });
-        case 14:
-            return new Item("Remove all then re-add", new OnItemViewClickedListener() {
-                    @Override
-                public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
-                        RowPresenter.ViewHolder rowViewHolder, Row row) {
-                    final ArrayObjectAdapter adapter = ((ArrayObjectAdapter) ((ListRow) row)
-                            .getAdapter());
-                   adapter.clear();
-                   new Handler().postDelayed(new Runnable() {
-                       @Override
-                       public void run() {
-                           adapter.add(0, createRandomItem());
-                       }
-                   }, 1000);
-                }
-            });
-        }
-    }
-
-    ListRow createRandomRow(HeaderItem header) {
-        ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter(
-                new StringPresenter());
-        for (int i = 0; i < 8; i++) {
-            listRowAdapter.add(createRandomItem());
-        }
-        return new ListRow(header, listRowAdapter);
-    }
-
-    private final class ItemViewClickedListener implements OnItemViewClickedListener {
-        @Override
-        public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
-                RowPresenter.ViewHolder rowViewHolder, Row row) {
-            ((Item) item).mAction.onItemClicked(itemViewHolder, item, rowViewHolder, row);
-        }
-    }
-}
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/BrowseErrorActivity.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/BrowseErrorActivity.java
deleted file mode 100644
index 43f726e..0000000
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/BrowseErrorActivity.java
+++ /dev/null
@@ -1,86 +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.leanback;
-
-import android.app.Activity;
-import android.app.Fragment;
-import android.os.Bundle;
-import android.os.Handler;
-import android.view.Gravity;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.FrameLayout;
-import android.widget.ProgressBar;
-
-public class BrowseErrorActivity extends Activity
-{
-    private ErrorFragment mErrorFragment;
-    private SpinnerFragment mSpinnerFragment;
-
-    /** Called when the activity is first created. */
-    @Override
-    public void onCreate(Bundle savedInstanceState)
-    {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.browse);
-
-        testError();
-    }
-
-    @Override
-    public void onAttachedToWindow() {
-        super.onAttachedToWindow();
-        BackgroundHelper.attach(this);
-    }
-
-    @Override
-    public void onStop() {
-        BackgroundHelper.release(this);
-        super.onStop();
-    }
-
-    private void testError() {
-        mErrorFragment = new ErrorFragment();
-        getFragmentManager().beginTransaction().add(R.id.main_frame, mErrorFragment).commit();
-
-        mSpinnerFragment = new SpinnerFragment();
-        getFragmentManager().beginTransaction().add(R.id.main_frame, mSpinnerFragment).commit();
-
-        Handler handler = new Handler();
-        handler.postDelayed(new Runnable() {
-            @Override
-            public void run() {
-                if (getFragmentManager().isDestroyed()) {
-                    return;
-                }
-                getFragmentManager().beginTransaction().remove(mSpinnerFragment).commit();
-                mErrorFragment.setErrorContent(getResources());
-            }
-        }, 3000);
-    }
-
-    static public class SpinnerFragment extends Fragment {
-        @Override
-        public View onCreateView(LayoutInflater inflater, ViewGroup container,
-                    Bundle savedInstanceState) {
-            ProgressBar progressBar = new ProgressBar(container.getContext());
-            if (container instanceof FrameLayout) {
-                FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(100, 100, Gravity.CENTER);
-                progressBar.setLayoutParams(layoutParams);
-            }
-            return progressBar;
-        }
-    }
-}
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/BrowseErrorSupportActivity.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/BrowseErrorSupportActivity.java
deleted file mode 100644
index f1e7b1e..0000000
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/BrowseErrorSupportActivity.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/* This file is auto-generated from BrowseErrorActivity.java.  DO NOT MODIFY. */
-
-/*
- * 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.leanback;
-
-import android.support.v4.app.FragmentActivity;
-import android.support.v4.app.Fragment;
-import android.os.Bundle;
-import android.os.Handler;
-import android.view.Gravity;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.FrameLayout;
-import android.widget.ProgressBar;
-
-public class BrowseErrorSupportActivity extends FragmentActivity
-{
-    private ErrorSupportFragment mErrorSupportFragment;
-    private SpinnerSupportFragment mSpinnerSupportFragment;
-
-    /** Called when the activity is first created. */
-    @Override
-    public void onCreate(Bundle savedInstanceState)
-    {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.browse_support);
-
-        testError();
-    }
-
-    @Override
-    public void onAttachedToWindow() {
-        super.onAttachedToWindow();
-        BackgroundHelper.attach(this);
-    }
-
-    @Override
-    public void onStop() {
-        BackgroundHelper.release(this);
-        super.onStop();
-    }
-
-    private void testError() {
-        mErrorSupportFragment = new ErrorSupportFragment();
-        getSupportFragmentManager().beginTransaction().add(R.id.main_frame, mErrorSupportFragment).commit();
-
-        mSpinnerSupportFragment = new SpinnerSupportFragment();
-        getSupportFragmentManager().beginTransaction().add(R.id.main_frame, mSpinnerSupportFragment).commit();
-
-        Handler handler = new Handler();
-        handler.postDelayed(new Runnable() {
-            @Override
-            public void run() {
-                if (getSupportFragmentManager().isDestroyed()) {
-                    return;
-                }
-                getSupportFragmentManager().beginTransaction().remove(mSpinnerSupportFragment).commit();
-                mErrorSupportFragment.setErrorContent(getResources());
-            }
-        }, 3000);
-    }
-
-    static public class SpinnerSupportFragment extends Fragment {
-        @Override
-        public View onCreateView(LayoutInflater inflater, ViewGroup container,
-                    Bundle savedInstanceState) {
-            ProgressBar progressBar = new ProgressBar(container.getContext());
-            if (container instanceof FrameLayout) {
-                FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(100, 100, Gravity.CENTER);
-                progressBar.setLayoutParams(layoutParams);
-            }
-            return progressBar;
-        }
-    }
-}
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/BrowseFragment.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/BrowseFragment.java
deleted file mode 100644
index 802c4d3..0000000
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/BrowseFragment.java
+++ /dev/null
@@ -1,395 +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.leanback;
-
-import android.app.Fragment;
-import android.content.Intent;
-import android.os.Bundle;
-import android.os.Handler;
-import android.support.v17.leanback.app.GuidedStepFragment;
-import android.support.v17.leanback.app.RowsFragment;
-import android.support.v17.leanback.widget.ArrayObjectAdapter;
-import android.support.v17.leanback.widget.DividerRow;
-import android.support.v17.leanback.widget.HeaderItem;
-import android.support.v17.leanback.widget.ImageCardView;
-import android.support.v17.leanback.widget.ListRow;
-import android.support.v17.leanback.widget.ListRowPresenter;
-import android.support.v17.leanback.widget.OnItemViewClickedListener;
-import android.support.v17.leanback.widget.OnItemViewSelectedListener;
-import android.support.v17.leanback.widget.PageRow;
-import android.support.v17.leanback.widget.Presenter;
-import android.support.v17.leanback.widget.Row;
-import android.support.v17.leanback.widget.RowPresenter;
-import android.support.v17.leanback.widget.SectionRow;
-import android.support.v4.app.ActivityOptionsCompat;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-
-public class BrowseFragment extends android.support.v17.leanback.app.BrowseFragment {
-    private static final String TAG = "leanback.BrowseFragment";
-
-    private static final boolean TEST_ENTRANCE_TRANSITION = true;
-    private static final int NUM_ROWS = 8;
-    private static final long HEADER_ID1 = 1001;
-    private static final long HEADER_ID2 = 1002;
-    private static final long HEADER_ID3 = 1003;
-
-    private ArrayObjectAdapter mRowsAdapter;
-    private BackgroundHelper mBackgroundHelper = new BackgroundHelper();
-
-    // For good performance, it's important to use a single instance of
-    // a card presenter for all rows using that presenter.
-    final CardPresenter mCardPresenter = new CardPresenter();
-    final CardPresenter mCardPresenter2 = new CardPresenter(R.style.MyImageCardViewTheme);
-
-    public BrowseFragment() {
-        getMainFragmentRegistry().registerFragment(PageRow.class, new PageRowFragmentFactory());
-    }
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        Log.i(TAG, "onCreate");
-        super.onCreate(savedInstanceState);
-
-        setBadgeDrawable(getActivity().getResources().getDrawable(R.drawable.ic_title));
-        setTitle("Leanback Sample App");
-        setHeadersState(HEADERS_ENABLED);
-        setupRows();
-        setOnSearchClickedListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View view) {
-                Intent intent = new Intent(getActivity(), SearchActivity.class);
-                startActivity(intent);
-            }
-        });
-
-        setOnItemViewClickedListener(new ItemViewClickedListener());
-        setOnItemViewSelectedListener(new OnItemViewSelectedListener() {
-            @Override
-            public void onItemSelected(Presenter.ViewHolder itemViewHolder, Object item,
-                    RowPresenter.ViewHolder rowViewHolder, Row row) {
-                Log.i(TAG, "onItemSelected: " + item + " row " + row);
-
-                if (isShowingHeaders()) {
-                    mBackgroundHelper.setBackground(getActivity(), null);
-                } else if (item instanceof PhotoItem) {
-                    mBackgroundHelper.setBackground(
-                            getActivity(), ((PhotoItem) item).getImageResourceId());
-                }
-            }
-        });
-        if (TEST_ENTRANCE_TRANSITION) {
-            // don't run entrance transition if fragment is restored.
-            if (savedInstanceState == null) {
-                prepareEntranceTransition();
-            }
-        }
-
-        // simulates in a real world use case  data being loaded two seconds later
-        new Handler().postDelayed(new Runnable() {
-            public void run() {
-                loadData();
-                startEntranceTransition();
-            }
-        }, 2000);
-    }
-
-    @Override
-    public View onCreateView(
-            LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
-        return super.onCreateView(inflater, container, savedInstanceState);
-    }
-
-    private void setupRows() {
-        ListRowPresenter listRowPresenter = new ListRowPresenter();
-        listRowPresenter.setNumRows(2);
-        mRowsAdapter = new ArrayObjectAdapter(listRowPresenter);
-        setAdapter(mRowsAdapter);
-    }
-
-    private void loadData() {
-        int i = 0;
-
-        mRowsAdapter.add(new PageRow(new HeaderItem(HEADER_ID1, "Page Row 0")));
-        mRowsAdapter.add(new DividerRow());
-
-        mRowsAdapter.add(new SectionRow(new HeaderItem("section 0")));
-        for (; i < NUM_ROWS; ++i) {
-            mRowsAdapter.add(new ListRow(new HeaderItem(i, "Row " + i), createListRowAdapter(i)));
-        }
-
-        mRowsAdapter.add(new DividerRow());
-        mRowsAdapter.add(new PageRow(new HeaderItem(HEADER_ID2, "Page Row 1")));
-
-        mRowsAdapter.add(new PageRow(new HeaderItem(HEADER_ID3, "Page Row 2")));
-    }
-
-    private ArrayObjectAdapter createListRowAdapter(int i) {
-        ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter((i & 1) == 0 ?
-                mCardPresenter : mCardPresenter2);
-        listRowAdapter.add(new PhotoItem(
-                "Hello world",
-                R.drawable.gallery_photo_1));
-        listRowAdapter.add(new PhotoItem(
-                "This is a test",
-                "Only a test",
-                R.drawable.gallery_photo_2));
-        listRowAdapter.add(new PhotoItem(
-                "Android TV",
-                "by Google",
-                R.drawable.gallery_photo_3));
-        listRowAdapter.add(new PhotoItem(
-                "Leanback",
-                R.drawable.gallery_photo_4));
-        listRowAdapter.add(new PhotoItem(
-                "GuidedStep (Slide left/right)",
-                R.drawable.gallery_photo_5));
-        listRowAdapter.add(new PhotoItem(
-                "GuidedStep (Slide bottom up)",
-                "Open GuidedStepFragment",
-                R.drawable.gallery_photo_6));
-        listRowAdapter.add(new PhotoItem(
-                "Android TV",
-                "open RowsActivity",
-                R.drawable.gallery_photo_7));
-        listRowAdapter.add(new PhotoItem(
-                "Leanback",
-                "open BrowseActivity",
-                R.drawable.gallery_photo_8));
-        listRowAdapter.add(new PhotoItem(
-                "Hello world",
-                R.drawable.gallery_photo_1));
-        listRowAdapter.add(new PhotoItem(
-                "This is a test",
-                "Only a test",
-                R.drawable.gallery_photo_2));
-        listRowAdapter.add(new PhotoItem(
-                "Android TV",
-                "by Google",
-                R.drawable.gallery_photo_3));
-        listRowAdapter.add(new PhotoItem(
-                "Leanback",
-                R.drawable.gallery_photo_4));
-        return listRowAdapter;
-    }
-
-    private final class ItemViewClickedListener implements OnItemViewClickedListener {
-        @Override
-        public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
-                RowPresenter.ViewHolder rowViewHolder, Row row) {
-
-            Intent intent;
-            Bundle bundle;
-            if (((PhotoItem) item).getImageResourceId() == R.drawable.gallery_photo_6) {
-                GuidedStepFragment.add(getFragmentManager(),
-                        new GuidedStepHalfScreenActivity.FirstStepFragment(),
-                        R.id.lb_guidedstep_host);
-                return;
-            } else if (((PhotoItem) item).getImageResourceId() == R.drawable.gallery_photo_5) {
-                GuidedStepFragment.add(getFragmentManager(),
-                        new GuidedStepActivity.FirstStepFragment(), R.id.lb_guidedstep_host);
-                return;
-            } else if (((PhotoItem) item).getImageResourceId() == R.drawable.gallery_photo_8) {
-                intent = new Intent(getActivity(), BrowseActivity.class);
-                bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(getActivity())
-                        .toBundle();
-            } else if (((PhotoItem) item).getImageResourceId() == R.drawable.gallery_photo_7) {
-                intent = new Intent(getActivity(), RowsActivity.class);
-                bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(getActivity())
-                        .toBundle();
-            } else {
-                intent = new Intent(getActivity(), DetailsActivity.class);
-                intent.putExtra(DetailsActivity.EXTRA_ITEM, (PhotoItem) item);
-                bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(
-                        getActivity(),
-                        ((ImageCardView) itemViewHolder.view).getMainImageView(),
-                        DetailsActivity.SHARED_ELEMENT_NAME).toBundle();
-            }
-            getActivity().startActivity(intent, bundle);
-        }
-    }
-
-    public static class PageRowFragmentFactory extends FragmentFactory {
-
-        @Override
-        public Fragment createFragment(Object rowObj) {
-            Row row = (Row) rowObj;
-            if (row.getHeaderItem().getId() == HEADER_ID1) {
-                return new SampleRowsFragment();
-            } else if (row.getHeaderItem().getId() == HEADER_ID2) {
-                return new SampleRowsFragment();
-            } else if (row.getHeaderItem().getId() == HEADER_ID3) {
-                return new SampleFragment();
-            }
-
-            return null;
-        }
-    }
-
-    public static class SampleRowsFragment extends RowsFragment {
-        final CardPresenter mCardPresenter = new CardPresenter();
-        final CardPresenter mCardPresenter2 = new CardPresenter(R.style.MyImageCardViewTheme);
-
-        void loadFragmentData() {
-            ArrayObjectAdapter adapter = (ArrayObjectAdapter) getAdapter();
-            for (int i = 0; i < 4; i++) {
-                ListRow row = new ListRow(new HeaderItem("Row " + i), createListRowAdapter(i));
-                adapter.add(row);
-            }
-            if (getMainFragmentAdapter() != null) {
-                getMainFragmentAdapter().getFragmentHost()
-                        .notifyDataReady(getMainFragmentAdapter());
-            }
-        }
-
-        public SampleRowsFragment() {
-            ArrayObjectAdapter adapter = new ArrayObjectAdapter(new ListRowPresenter());
-            setAdapter(adapter);
-            // simulates late data loading:
-            new Handler().postDelayed(new Runnable() {
-                public void run() {
-                    loadFragmentData();
-                }
-            }, 500);
-
-            setOnItemViewClickedListener(new OnItemViewClickedListener() {
-                @Override
-                public void onItemClicked(
-                        Presenter.ViewHolder itemViewHolder,
-                        Object item,
-                        RowPresenter.ViewHolder rowViewHolder,
-                        Row row) {
-                    Intent intent;
-                    Bundle bundle;
-                    if (((PhotoItem) item).getImageResourceId() == R.drawable.gallery_photo_6) {
-                        GuidedStepFragment.add(getActivity().getFragmentManager(),
-                                new GuidedStepHalfScreenActivity.FirstStepFragment(),
-                                R.id.lb_guidedstep_host);
-                        return;
-                    } else if (((PhotoItem) item).getImageResourceId() == R.drawable.gallery_photo_5) {
-                        GuidedStepFragment.add(getActivity().getFragmentManager(),
-                                new GuidedStepActivity.FirstStepFragment(), R.id.lb_guidedstep_host);
-                        return;
-                    } else if (((PhotoItem) item).getImageResourceId() == R.drawable.gallery_photo_8) {
-                        intent = new Intent(getActivity(), BrowseActivity.class);
-                        bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(getActivity())
-                                .toBundle();
-                    } else if (((PhotoItem) item).getImageResourceId() == R.drawable.gallery_photo_7) {
-                        intent = new Intent(getActivity(), RowsActivity.class);
-                        bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(getActivity())
-                                .toBundle();
-                    } else {
-                        intent = new Intent(getActivity(), DetailsActivity.class);
-                        intent.putExtra(DetailsActivity.EXTRA_ITEM, (PhotoItem) item);
-                        bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(
-                                getActivity(),
-                                ((ImageCardView) itemViewHolder.view).getMainImageView(),
-                                DetailsActivity.SHARED_ELEMENT_NAME).toBundle();
-                    }
-                    getActivity().startActivity(intent, bundle);
-                }
-            });
-        }
-
-        private ArrayObjectAdapter createListRowAdapter(int i) {
-            ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter((i & 1) == 0 ?
-                    mCardPresenter : mCardPresenter2);
-            listRowAdapter.add(new PhotoItem(
-                    "Hello world",
-                    R.drawable.gallery_photo_1));
-            listRowAdapter.add(new PhotoItem(
-                    "This is a test",
-                    "Only a test",
-                    R.drawable.gallery_photo_2));
-            listRowAdapter.add(new PhotoItem(
-                    "Android TV",
-                    "by Google",
-                    R.drawable.gallery_photo_3));
-            listRowAdapter.add(new PhotoItem(
-                    "Leanback",
-                    R.drawable.gallery_photo_4));
-            listRowAdapter.add(new PhotoItem(
-                    "GuidedStep (Slide left/right)",
-                    R.drawable.gallery_photo_5));
-            listRowAdapter.add(new PhotoItem(
-                    "GuidedStep (Slide bottom up)",
-                    "Open GuidedStepFragment",
-                    R.drawable.gallery_photo_6));
-            listRowAdapter.add(new PhotoItem(
-                    "Android TV",
-                    "open RowsActivity",
-                    R.drawable.gallery_photo_7));
-            listRowAdapter.add(new PhotoItem(
-                    "Leanback",
-                    "open BrowseActivity",
-                    R.drawable.gallery_photo_8));
-            return listRowAdapter;
-        }
-    }
-
-    public static class PageFragmentAdapterImpl extends MainFragmentAdapter<SampleFragment> {
-
-        public PageFragmentAdapterImpl(SampleFragment fragment) {
-            super(fragment);
-            setScalingEnabled(true);
-        }
-
-        @Override
-        public void setEntranceTransitionState(boolean state) {
-            getFragment().setEntranceTransitionState(state);
-        }
-    }
-
-    public static class SampleFragment extends Fragment implements MainFragmentAdapterProvider {
-
-        final PageFragmentAdapterImpl mMainFragmentAdapter = new PageFragmentAdapterImpl(this);
-
-        public void setEntranceTransitionState(boolean state) {
-            final View view = getView();
-            int visibility = state ? View.VISIBLE : View.INVISIBLE;
-            view.findViewById(R.id.tv1).setVisibility(visibility);
-            view.findViewById(R.id.tv2).setVisibility(visibility);
-            view.findViewById(R.id.tv3).setVisibility(visibility);
-        }
-
-        @Override
-        public View onCreateView(
-                final LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
-            View view = inflater.inflate(R.layout.page_fragment, container, false);
-            view.findViewById(R.id.tv1).setOnClickListener(new View.OnClickListener() {
-                @Override
-                public void onClick(View view) {
-                    Intent intent = new Intent(inflater.getContext(), GuidedStepActivity.class);
-                    startActivity(intent);
-                }
-            });
-
-            return view;
-        }
-
-        @Override
-        public void onViewCreated(View view, Bundle savedInstanceState) {
-            // static layout has view and data ready immediately
-            mMainFragmentAdapter.getFragmentHost().notifyViewCreated(mMainFragmentAdapter);
-            mMainFragmentAdapter.getFragmentHost().notifyDataReady(mMainFragmentAdapter);
-        }
-
-        @Override
-        public MainFragmentAdapter getMainFragmentAdapter() {
-            return mMainFragmentAdapter;
-        }
-    }
-}
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/BrowseSupportActivity.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/BrowseSupportActivity.java
deleted file mode 100644
index 0bafcc2..0000000
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/BrowseSupportActivity.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/* This file is auto-generated from BrowseActivity.java.  DO NOT MODIFY. */
-
-/*
- * 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.leanback;
-
-import android.support.v4.app.FragmentActivity;
-import android.os.Bundle;
-
-public class BrowseSupportActivity extends FragmentActivity {
-    /** Called when the activity is first created. */
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.browse_support);
-    }
-
-    @Override
-    public void onAttachedToWindow() {
-        super.onAttachedToWindow();
-        BackgroundHelper.attach(this);
-    }
-
-    @Override
-    public void onStop() {
-        BackgroundHelper.release(this);
-        super.onStop();
-    }
-}
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/BrowseSupportFragment.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/BrowseSupportFragment.java
deleted file mode 100644
index 48c1462..0000000
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/BrowseSupportFragment.java
+++ /dev/null
@@ -1,397 +0,0 @@
-/* This file is auto-generated from BrowseFragment.java.  DO NOT MODIFY. */
-
-/*
- * 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.leanback;
-
-import android.support.v4.app.Fragment;
-import android.content.Intent;
-import android.os.Bundle;
-import android.os.Handler;
-import android.support.v17.leanback.app.GuidedStepSupportFragment;
-import android.support.v17.leanback.app.RowsSupportFragment;
-import android.support.v17.leanback.widget.ArrayObjectAdapter;
-import android.support.v17.leanback.widget.DividerRow;
-import android.support.v17.leanback.widget.HeaderItem;
-import android.support.v17.leanback.widget.ImageCardView;
-import android.support.v17.leanback.widget.ListRow;
-import android.support.v17.leanback.widget.ListRowPresenter;
-import android.support.v17.leanback.widget.OnItemViewClickedListener;
-import android.support.v17.leanback.widget.OnItemViewSelectedListener;
-import android.support.v17.leanback.widget.PageRow;
-import android.support.v17.leanback.widget.Presenter;
-import android.support.v17.leanback.widget.Row;
-import android.support.v17.leanback.widget.RowPresenter;
-import android.support.v17.leanback.widget.SectionRow;
-import android.support.v4.app.ActivityOptionsCompat;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-
-public class BrowseSupportFragment extends android.support.v17.leanback.app.BrowseSupportFragment {
-    private static final String TAG = "leanback.BrowseSupportFragment";
-
-    private static final boolean TEST_ENTRANCE_TRANSITION = true;
-    private static final int NUM_ROWS = 8;
-    private static final long HEADER_ID1 = 1001;
-    private static final long HEADER_ID2 = 1002;
-    private static final long HEADER_ID3 = 1003;
-
-    private ArrayObjectAdapter mRowsAdapter;
-    private BackgroundHelper mBackgroundHelper = new BackgroundHelper();
-
-    // For good performance, it's important to use a single instance of
-    // a card presenter for all rows using that presenter.
-    final CardPresenter mCardPresenter = new CardPresenter();
-    final CardPresenter mCardPresenter2 = new CardPresenter(R.style.MyImageCardViewTheme);
-
-    public BrowseSupportFragment() {
-        getMainFragmentRegistry().registerFragment(PageRow.class, new PageRowFragmentFactory());
-    }
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        Log.i(TAG, "onCreate");
-        super.onCreate(savedInstanceState);
-
-        setBadgeDrawable(getActivity().getResources().getDrawable(R.drawable.ic_title));
-        setTitle("Leanback Sample App");
-        setHeadersState(HEADERS_ENABLED);
-        setupRows();
-        setOnSearchClickedListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View view) {
-                Intent intent = new Intent(getActivity(), SearchSupportActivity.class);
-                startActivity(intent);
-            }
-        });
-
-        setOnItemViewClickedListener(new ItemViewClickedListener());
-        setOnItemViewSelectedListener(new OnItemViewSelectedListener() {
-            @Override
-            public void onItemSelected(Presenter.ViewHolder itemViewHolder, Object item,
-                    RowPresenter.ViewHolder rowViewHolder, Row row) {
-                Log.i(TAG, "onItemSelected: " + item + " row " + row);
-
-                if (isShowingHeaders()) {
-                    mBackgroundHelper.setBackground(getActivity(), null);
-                } else if (item instanceof PhotoItem) {
-                    mBackgroundHelper.setBackground(
-                            getActivity(), ((PhotoItem) item).getImageResourceId());
-                }
-            }
-        });
-        if (TEST_ENTRANCE_TRANSITION) {
-            // don't run entrance transition if fragment is restored.
-            if (savedInstanceState == null) {
-                prepareEntranceTransition();
-            }
-        }
-
-        // simulates in a real world use case  data being loaded two seconds later
-        new Handler().postDelayed(new Runnable() {
-            public void run() {
-                loadData();
-                startEntranceTransition();
-            }
-        }, 2000);
-    }
-
-    @Override
-    public View onCreateView(
-            LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
-        return super.onCreateView(inflater, container, savedInstanceState);
-    }
-
-    private void setupRows() {
-        ListRowPresenter listRowPresenter = new ListRowPresenter();
-        listRowPresenter.setNumRows(2);
-        mRowsAdapter = new ArrayObjectAdapter(listRowPresenter);
-        setAdapter(mRowsAdapter);
-    }
-
-    private void loadData() {
-        int i = 0;
-
-        mRowsAdapter.add(new PageRow(new HeaderItem(HEADER_ID1, "Page Row 0")));
-        mRowsAdapter.add(new DividerRow());
-
-        mRowsAdapter.add(new SectionRow(new HeaderItem("section 0")));
-        for (; i < NUM_ROWS; ++i) {
-            mRowsAdapter.add(new ListRow(new HeaderItem(i, "Row " + i), createListRowAdapter(i)));
-        }
-
-        mRowsAdapter.add(new DividerRow());
-        mRowsAdapter.add(new PageRow(new HeaderItem(HEADER_ID2, "Page Row 1")));
-
-        mRowsAdapter.add(new PageRow(new HeaderItem(HEADER_ID3, "Page Row 2")));
-    }
-
-    private ArrayObjectAdapter createListRowAdapter(int i) {
-        ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter((i & 1) == 0 ?
-                mCardPresenter : mCardPresenter2);
-        listRowAdapter.add(new PhotoItem(
-                "Hello world",
-                R.drawable.gallery_photo_1));
-        listRowAdapter.add(new PhotoItem(
-                "This is a test",
-                "Only a test",
-                R.drawable.gallery_photo_2));
-        listRowAdapter.add(new PhotoItem(
-                "Android TV",
-                "by Google",
-                R.drawable.gallery_photo_3));
-        listRowAdapter.add(new PhotoItem(
-                "Leanback",
-                R.drawable.gallery_photo_4));
-        listRowAdapter.add(new PhotoItem(
-                "GuidedStep (Slide left/right)",
-                R.drawable.gallery_photo_5));
-        listRowAdapter.add(new PhotoItem(
-                "GuidedStep (Slide bottom up)",
-                "Open GuidedStepSupportFragment",
-                R.drawable.gallery_photo_6));
-        listRowAdapter.add(new PhotoItem(
-                "Android TV",
-                "open RowsSupportActivity",
-                R.drawable.gallery_photo_7));
-        listRowAdapter.add(new PhotoItem(
-                "Leanback",
-                "open BrowseSupportActivity",
-                R.drawable.gallery_photo_8));
-        listRowAdapter.add(new PhotoItem(
-                "Hello world",
-                R.drawable.gallery_photo_1));
-        listRowAdapter.add(new PhotoItem(
-                "This is a test",
-                "Only a test",
-                R.drawable.gallery_photo_2));
-        listRowAdapter.add(new PhotoItem(
-                "Android TV",
-                "by Google",
-                R.drawable.gallery_photo_3));
-        listRowAdapter.add(new PhotoItem(
-                "Leanback",
-                R.drawable.gallery_photo_4));
-        return listRowAdapter;
-    }
-
-    private final class ItemViewClickedListener implements OnItemViewClickedListener {
-        @Override
-        public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
-                RowPresenter.ViewHolder rowViewHolder, Row row) {
-
-            Intent intent;
-            Bundle bundle;
-            if (((PhotoItem) item).getImageResourceId() == R.drawable.gallery_photo_6) {
-                GuidedStepSupportFragment.add(getFragmentManager(),
-                        new GuidedStepSupportHalfScreenActivity.FirstStepFragment(),
-                        R.id.lb_guidedstep_host);
-                return;
-            } else if (((PhotoItem) item).getImageResourceId() == R.drawable.gallery_photo_5) {
-                GuidedStepSupportFragment.add(getFragmentManager(),
-                        new GuidedStepSupportActivity.FirstStepFragment(), R.id.lb_guidedstep_host);
-                return;
-            } else if (((PhotoItem) item).getImageResourceId() == R.drawable.gallery_photo_8) {
-                intent = new Intent(getActivity(), BrowseSupportActivity.class);
-                bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(getActivity())
-                        .toBundle();
-            } else if (((PhotoItem) item).getImageResourceId() == R.drawable.gallery_photo_7) {
-                intent = new Intent(getActivity(), RowsSupportActivity.class);
-                bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(getActivity())
-                        .toBundle();
-            } else {
-                intent = new Intent(getActivity(), DetailsSupportActivity.class);
-                intent.putExtra(DetailsSupportActivity.EXTRA_ITEM, (PhotoItem) item);
-                bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(
-                        getActivity(),
-                        ((ImageCardView) itemViewHolder.view).getMainImageView(),
-                        DetailsSupportActivity.SHARED_ELEMENT_NAME).toBundle();
-            }
-            getActivity().startActivity(intent, bundle);
-        }
-    }
-
-    public static class PageRowFragmentFactory extends FragmentFactory {
-
-        @Override
-        public Fragment createFragment(Object rowObj) {
-            Row row = (Row) rowObj;
-            if (row.getHeaderItem().getId() == HEADER_ID1) {
-                return new SampleRowsSupportFragment();
-            } else if (row.getHeaderItem().getId() == HEADER_ID2) {
-                return new SampleRowsSupportFragment();
-            } else if (row.getHeaderItem().getId() == HEADER_ID3) {
-                return new SampleFragment();
-            }
-
-            return null;
-        }
-    }
-
-    public static class SampleRowsSupportFragment extends RowsSupportFragment {
-        final CardPresenter mCardPresenter = new CardPresenter();
-        final CardPresenter mCardPresenter2 = new CardPresenter(R.style.MyImageCardViewTheme);
-
-        void loadFragmentData() {
-            ArrayObjectAdapter adapter = (ArrayObjectAdapter) getAdapter();
-            for (int i = 0; i < 4; i++) {
-                ListRow row = new ListRow(new HeaderItem("Row " + i), createListRowAdapter(i));
-                adapter.add(row);
-            }
-            if (getMainFragmentAdapter() != null) {
-                getMainFragmentAdapter().getFragmentHost()
-                        .notifyDataReady(getMainFragmentAdapter());
-            }
-        }
-
-        public SampleRowsSupportFragment() {
-            ArrayObjectAdapter adapter = new ArrayObjectAdapter(new ListRowPresenter());
-            setAdapter(adapter);
-            // simulates late data loading:
-            new Handler().postDelayed(new Runnable() {
-                public void run() {
-                    loadFragmentData();
-                }
-            }, 500);
-
-            setOnItemViewClickedListener(new OnItemViewClickedListener() {
-                @Override
-                public void onItemClicked(
-                        Presenter.ViewHolder itemViewHolder,
-                        Object item,
-                        RowPresenter.ViewHolder rowViewHolder,
-                        Row row) {
-                    Intent intent;
-                    Bundle bundle;
-                    if (((PhotoItem) item).getImageResourceId() == R.drawable.gallery_photo_6) {
-                        GuidedStepSupportFragment.add(getActivity().getSupportFragmentManager(),
-                                new GuidedStepSupportHalfScreenActivity.FirstStepFragment(),
-                                R.id.lb_guidedstep_host);
-                        return;
-                    } else if (((PhotoItem) item).getImageResourceId() == R.drawable.gallery_photo_5) {
-                        GuidedStepSupportFragment.add(getActivity().getSupportFragmentManager(),
-                                new GuidedStepSupportActivity.FirstStepFragment(), R.id.lb_guidedstep_host);
-                        return;
-                    } else if (((PhotoItem) item).getImageResourceId() == R.drawable.gallery_photo_8) {
-                        intent = new Intent(getActivity(), BrowseSupportActivity.class);
-                        bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(getActivity())
-                                .toBundle();
-                    } else if (((PhotoItem) item).getImageResourceId() == R.drawable.gallery_photo_7) {
-                        intent = new Intent(getActivity(), RowsSupportActivity.class);
-                        bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(getActivity())
-                                .toBundle();
-                    } else {
-                        intent = new Intent(getActivity(), DetailsSupportActivity.class);
-                        intent.putExtra(DetailsSupportActivity.EXTRA_ITEM, (PhotoItem) item);
-                        bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(
-                                getActivity(),
-                                ((ImageCardView) itemViewHolder.view).getMainImageView(),
-                                DetailsSupportActivity.SHARED_ELEMENT_NAME).toBundle();
-                    }
-                    getActivity().startActivity(intent, bundle);
-                }
-            });
-        }
-
-        private ArrayObjectAdapter createListRowAdapter(int i) {
-            ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter((i & 1) == 0 ?
-                    mCardPresenter : mCardPresenter2);
-            listRowAdapter.add(new PhotoItem(
-                    "Hello world",
-                    R.drawable.gallery_photo_1));
-            listRowAdapter.add(new PhotoItem(
-                    "This is a test",
-                    "Only a test",
-                    R.drawable.gallery_photo_2));
-            listRowAdapter.add(new PhotoItem(
-                    "Android TV",
-                    "by Google",
-                    R.drawable.gallery_photo_3));
-            listRowAdapter.add(new PhotoItem(
-                    "Leanback",
-                    R.drawable.gallery_photo_4));
-            listRowAdapter.add(new PhotoItem(
-                    "GuidedStep (Slide left/right)",
-                    R.drawable.gallery_photo_5));
-            listRowAdapter.add(new PhotoItem(
-                    "GuidedStep (Slide bottom up)",
-                    "Open GuidedStepSupportFragment",
-                    R.drawable.gallery_photo_6));
-            listRowAdapter.add(new PhotoItem(
-                    "Android TV",
-                    "open RowsSupportActivity",
-                    R.drawable.gallery_photo_7));
-            listRowAdapter.add(new PhotoItem(
-                    "Leanback",
-                    "open BrowseSupportActivity",
-                    R.drawable.gallery_photo_8));
-            return listRowAdapter;
-        }
-    }
-
-    public static class PageFragmentAdapterImpl extends MainFragmentAdapter<SampleFragment> {
-
-        public PageFragmentAdapterImpl(SampleFragment fragment) {
-            super(fragment);
-            setScalingEnabled(true);
-        }
-
-        @Override
-        public void setEntranceTransitionState(boolean state) {
-            getFragment().setEntranceTransitionState(state);
-        }
-    }
-
-    public static class SampleFragment extends Fragment implements MainFragmentAdapterProvider {
-
-        final PageFragmentAdapterImpl mMainFragmentAdapter = new PageFragmentAdapterImpl(this);
-
-        public void setEntranceTransitionState(boolean state) {
-            final View view = getView();
-            int visibility = state ? View.VISIBLE : View.INVISIBLE;
-            view.findViewById(R.id.tv1).setVisibility(visibility);
-            view.findViewById(R.id.tv2).setVisibility(visibility);
-            view.findViewById(R.id.tv3).setVisibility(visibility);
-        }
-
-        @Override
-        public View onCreateView(
-                final LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
-            View view = inflater.inflate(R.layout.page_fragment, container, false);
-            view.findViewById(R.id.tv1).setOnClickListener(new View.OnClickListener() {
-                @Override
-                public void onClick(View view) {
-                    Intent intent = new Intent(inflater.getContext(), GuidedStepSupportActivity.class);
-                    startActivity(intent);
-                }
-            });
-
-            return view;
-        }
-
-        @Override
-        public void onViewCreated(View view, Bundle savedInstanceState) {
-            // static layout has view and data ready immediately
-            mMainFragmentAdapter.getFragmentHost().notifyViewCreated(mMainFragmentAdapter);
-            mMainFragmentAdapter.getFragmentHost().notifyDataReady(mMainFragmentAdapter);
-        }
-
-        @Override
-        public MainFragmentAdapter getMainFragmentAdapter() {
-            return mMainFragmentAdapter;
-        }
-    }
-}
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/CardPresenter.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/CardPresenter.java
deleted file mode 100644
index 924975d..0000000
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/CardPresenter.java
+++ /dev/null
@@ -1,120 +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.leanback;
-
-import android.content.Context;
-import android.graphics.drawable.Drawable;
-import com.example.android.leanback.R;
-import android.support.v17.leanback.widget.ImageCardView;
-import android.support.v17.leanback.widget.Presenter;
-import android.text.TextUtils;
-import android.util.Log;
-import android.view.ViewGroup;
-import android.view.ContextThemeWrapper;
-import android.view.View.MeasureSpec;
-import android.view.ViewGroup.LayoutParams;
-import android.widget.TextView;
-
-import java.util.Random;
-
-public class CardPresenter extends Presenter {
-    private static final String TAG = "CardPresenter";
-
-    private static final int IMAGE_HEIGHT_DP = 120;
-
-    private static Random sRand = new Random();
-    private int mRowHeight = 0;
-    private int mExpandedRowHeight = 0;
-
-    private int mCardThemeResId;
-    private Context mContextThemeWrapper;
-
-    public CardPresenter(int cardThemeResId) {
-        mCardThemeResId = cardThemeResId;
-    }
-
-    public CardPresenter() {
-        mCardThemeResId = 0;
-    }
-
-    private void setupRowHeights(Context context) {
-        if (mRowHeight == 0) {
-            float density = context.getResources().getDisplayMetrics().density;
-            int height = (int) (IMAGE_HEIGHT_DP * density + 0.5f);
-
-            ImageCardView v = new ImageCardView(context);
-            v.setMainImageDimensions(LayoutParams.WRAP_CONTENT, height);
-            v.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
-            mRowHeight = v.getMeasuredHeight();
-            v.setActivated(true);
-            v.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
-            mExpandedRowHeight = v.getMeasuredHeight();
-        }
-    }
-
-    public int getRowHeight(Context context) {
-        setupRowHeights(context);
-        return mRowHeight;
-    }
-
-    public int getExpandedRowHeight(Context context) {
-        setupRowHeights(context);
-        return mExpandedRowHeight;
-    }
-
-    @Override
-    public ViewHolder onCreateViewHolder(ViewGroup parent) {
-        Log.d(TAG, "onCreateViewHolder");
-        Context context = parent.getContext();
-        if (mCardThemeResId != 0) {
-            if (mContextThemeWrapper == null) {
-                mContextThemeWrapper = new ContextThemeWrapper(context, mCardThemeResId);
-            }
-            context = mContextThemeWrapper;
-        }
-        ImageCardView v = new ImageCardView(context);
-        v.setFocusable(true);
-        v.setFocusableInTouchMode(true);
-        // Randomly makes image view crop as a square or just stretch to original
-        // aspect ratio.
-        if (sRand.nextBoolean()) {
-            v.setMainImageAdjustViewBounds(false);
-            v.setMainImageDimensions(getRowHeight(parent.getContext()),
-                    getRowHeight(parent.getContext()));
-        } else {
-            v.setMainImageAdjustViewBounds(true);
-            v.setMainImageDimensions(LayoutParams.WRAP_CONTENT,
-                    getRowHeight(parent.getContext()));
-        }
-        return new ViewHolder(v);
-    }
-
-    @Override
-    public void onBindViewHolder(ViewHolder viewHolder, Object item) {
-        Log.d(TAG, "onBindViewHolder for " + item.toString());
-        PhotoItem photoItem = (PhotoItem) item;
-        Drawable drawable =  viewHolder.view.getContext().getResources()
-                .getDrawable(photoItem.getImageResourceId());
-        ((ImageCardView) viewHolder.view).setMainImage(drawable);
-        ((ImageCardView) viewHolder.view).setTitleText(photoItem.getTitle());
-        if (!TextUtils.isEmpty(photoItem.getContent())) {
-            ((ImageCardView) viewHolder.view).setContentText(photoItem.getContent());
-        }
-    }
-
-    @Override
-    public void onUnbindViewHolder(ViewHolder viewHolder) {
-        Log.d(TAG, "onUnbindViewHolder");
-    }
-}
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/DetailsActivity.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/DetailsActivity.java
deleted file mode 100644
index 1ec1041..0000000
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/DetailsActivity.java
+++ /dev/null
@@ -1,59 +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.leanback;
-
-import android.app.Activity;
-import android.os.Bundle;
-
-public class DetailsActivity extends Activity
-{
-    public static final String EXTRA_ITEM = "item";
-    public static final String SHARED_ELEMENT_NAME = "hero";
-
-    private boolean useLegacyFragment() {
-        return (DetailsPresenterSelectionActivity.USE_LEGACY_PRESENTER
-                && !(this instanceof SearchDetailsActivity));
-    }
-
-    /** Called when the activity is first created. */
-    @Override
-    public void onCreate(Bundle savedInstanceState)
-    {
-        super.onCreate(savedInstanceState);
-        setContentView(useLegacyFragment() ? R.layout.legacy_details : R.layout.details);
-        if (savedInstanceState == null) {
-            // Only pass object to fragment when activity is first time created,
-            // later object is modified and persisted with fragment state.
-            if (useLegacyFragment()) {
-                ((DetailsFragment)getFragmentManager().findFragmentById(R.id.details_fragment))
-                    .setItem((PhotoItem) getIntent().getParcelableExtra(EXTRA_ITEM));
-            } else {
-                ((NewDetailsFragment)getFragmentManager().findFragmentById(R.id.details_fragment))
-                    .setItem((PhotoItem) getIntent().getParcelableExtra(EXTRA_ITEM));
-            }
-        }
-    }
-
-    @Override
-    public void onAttachedToWindow() {
-        super.onAttachedToWindow();
-        BackgroundHelper.attach(this);
-    }
-
-    @Override
-    public void onStop() {
-        BackgroundHelper.release(this);
-        super.onStop();
-    }
-}
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/DetailsDescriptionPresenter.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/DetailsDescriptionPresenter.java
deleted file mode 100644
index 6d376f0..0000000
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/DetailsDescriptionPresenter.java
+++ /dev/null
@@ -1,32 +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.leanback;
-
-import android.support.v17.leanback.widget.AbstractDetailsDescriptionPresenter;
-import android.support.v17.leanback.widget.DetailsOverviewRow;
-
-public class DetailsDescriptionPresenter extends AbstractDetailsDescriptionPresenter {
-
-    @Override
-    protected void onBindDescription(ViewHolder vh, Object item) {
-        vh.getTitle().setText(item.toString());
-        vh.getSubtitle().setText("2013 - 2014   Drama   TV-14");
-        vh.getBody().setText("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.");
-    }
-}
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/DetailsFragment.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/DetailsFragment.java
deleted file mode 100644
index 9238562..0000000
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/DetailsFragment.java
+++ /dev/null
@@ -1,216 +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.leanback;
-
-import android.content.Intent;
-import android.content.res.Resources;
-import android.os.Bundle;
-import android.os.Handler;
-import android.support.v4.app.ActivityOptionsCompat;
-import android.support.v17.leanback.widget.Action;
-import android.support.v17.leanback.widget.ArrayObjectAdapter;
-import android.support.v17.leanback.widget.ClassPresenterSelector;
-import android.support.v17.leanback.widget.DetailsOverviewRow;
-import android.support.v17.leanback.widget.DetailsOverviewRowPresenter;
-import android.support.v17.leanback.widget.HeaderItem;
-import android.support.v17.leanback.widget.ImageCardView;
-import android.support.v17.leanback.widget.ListRow;
-import android.support.v17.leanback.widget.ListRowPresenter;
-import android.support.v17.leanback.widget.OnActionClickedListener;
-import android.support.v17.leanback.widget.OnItemViewClickedListener;
-import android.support.v17.leanback.widget.OnItemViewSelectedListener;
-import android.support.v17.leanback.widget.Presenter;
-import android.support.v17.leanback.widget.Row;
-import android.support.v17.leanback.widget.RowPresenter;
-import android.support.v17.leanback.widget.SparseArrayObjectAdapter;
-import android.util.Log;
-import android.view.View;
-import android.widget.Toast;
-
-public class DetailsFragment extends android.support.v17.leanback.app.DetailsFragment {
-    private static final String TAG = "leanback.DetailsFragment";
-    private static final String ITEM = "item";
-
-    private static final int NUM_ROWS = 3;
-    private ArrayObjectAdapter mRowsAdapter;
-    private PhotoItem mPhotoItem;
-    final CardPresenter cardPresenter = new CardPresenter();
-    private BackgroundHelper mBackgroundHelper = new BackgroundHelper();
-
-    private static final int ACTION_PLAY = 1;
-    private static final int ACTION_RENT = 2;
-    private static final int ACTION_BUY = 3;
-
-    private static final boolean TEST_SHARED_ELEMENT_TRANSITION = true;
-    private static final boolean TEST_ENTRANCE_TRANSITION = true;
-
-    private static final long TIME_TO_LOAD_OVERVIEW_ROW_MS = 1000;
-    private static final long TIME_TO_LOAD_RELATED_ROWS_MS = 2000;
-
-    private Action mActionPlay;
-    private Action mActionRent;
-    private Action mActionBuy;
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        Log.i(TAG, "onCreate");
-        super.onCreate(savedInstanceState);
-
-        setBadgeDrawable(getActivity().getResources().getDrawable(R.drawable.ic_title));
-        setTitle("Leanback Sample App");
-        setOnSearchClickedListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View view) {
-                Intent intent = new Intent(getActivity(), SearchActivity.class);
-                startActivity(intent);
-            }
-        });
-
-        mActionPlay = new Action(ACTION_PLAY, "Play");
-        mActionRent = new Action(ACTION_RENT, "Rent", "$3.99",
-                getResources().getDrawable(R.drawable.ic_action_a));
-        mActionBuy = new Action(ACTION_BUY, "Buy $9.99");
-
-        ClassPresenterSelector ps = new ClassPresenterSelector();
-        DetailsOverviewRowPresenter dorPresenter =
-                new DetailsOverviewRowPresenter(new DetailsDescriptionPresenter());
-        dorPresenter.setOnActionClickedListener(new OnActionClickedListener() {
-            @Override
-            public void onActionClicked(Action action) {
-                Toast.makeText(getActivity(), action.toString(), Toast.LENGTH_SHORT).show();
-                DetailsOverviewRow dor = (DetailsOverviewRow) mRowsAdapter.get(0);
-                if (action.getId() == ACTION_BUY) {
-                    // on the UI thread, we can modify actions adapter directly
-                    SparseArrayObjectAdapter actions = (SparseArrayObjectAdapter)
-                            dor.getActionsAdapter();
-                    actions.set(ACTION_PLAY, mActionPlay);
-                    actions.clear(ACTION_RENT);
-                    actions.clear(ACTION_BUY);
-                    dor.setItem(mPhotoItem.getTitle() + "(Owned)");
-                    dor.setImageDrawable(getResources().getDrawable(R.drawable.details_img_16x9));
-                } else if (action.getId() == ACTION_RENT) {
-                    // on the UI thread, we can modify actions adapter directly
-                    SparseArrayObjectAdapter actions = (SparseArrayObjectAdapter)
-                            dor.getActionsAdapter();
-                    actions.set(ACTION_PLAY, mActionPlay);
-                    actions.clear(ACTION_RENT);
-                    dor.setItem(mPhotoItem.getTitle() + "(Rented)");
-                } else if (action.getId() == ACTION_PLAY) {
-                    Intent intent = new Intent(getActivity(), PlaybackOverlayActivity.class);
-                    getActivity().startActivity(intent);
-                }
-            }
-        });
-
-        ps.addClassPresenter(DetailsOverviewRow.class, dorPresenter);
-        ps.addClassPresenter(ListRow.class, new ListRowPresenter());
-
-        mRowsAdapter = new ArrayObjectAdapter(ps);
-
-        PhotoItem item = (PhotoItem) (savedInstanceState != null ?
-                savedInstanceState.getParcelable(ITEM) : null);
-        if (item != null) {
-            setItem(item);
-        }
-
-        setOnItemViewClickedListener(new OnItemViewClickedListener() {
-            @Override
-            public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
-                    RowPresenter.ViewHolder rowViewHolder, Row row) {
-                Log.i(TAG, "onItemClicked: " + item + " row " + row);
-                if (item instanceof PhotoItem){
-                    Intent intent = new Intent(getActivity(), DetailsActivity.class);
-                    intent.putExtra(DetailsActivity.EXTRA_ITEM, (PhotoItem) item);
-
-                    Bundle bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(
-                            getActivity(),
-                            ((ImageCardView)itemViewHolder.view).getMainImageView(),
-                            DetailsActivity.SHARED_ELEMENT_NAME).toBundle();
-                    getActivity().startActivity(intent, bundle);
-                }
-            }
-        });
-        setOnItemViewSelectedListener(new OnItemViewSelectedListener() {
-            @Override
-            public void onItemSelected(Presenter.ViewHolder itemViewHolder, Object item,
-                    RowPresenter.ViewHolder rowViewHolder, Row row) {
-                Log.i(TAG, "onItemSelected: " + item + " row " + row);
-            }
-        });
-
-        if (TEST_SHARED_ELEMENT_TRANSITION) {
-            dorPresenter.setSharedElementEnterTransition(getActivity(),
-                    DetailsActivity.SHARED_ELEMENT_NAME);
-        }
-        if (TEST_ENTRANCE_TRANSITION) {
-            // don't run entrance transition if Activity is restored.
-            if (savedInstanceState == null) {
-                prepareEntranceTransition();
-            }
-        }
-    }
-
-    @Override
-    public void onSaveInstanceState(Bundle outState) {
-        super.onSaveInstanceState(outState);
-        outState.putParcelable(ITEM, mPhotoItem);
-    }
-
-    public void setItem(PhotoItem photoItem) {
-        mPhotoItem = photoItem;
-
-        mRowsAdapter.clear();
-        new Handler().postDelayed(new Runnable() {
-            public void run() {
-                Resources res = getActivity().getResources();
-                DetailsOverviewRow dor = new DetailsOverviewRow(mPhotoItem.getTitle());
-                dor.setImageDrawable(res.getDrawable(mPhotoItem.getImageResourceId()));
-                SparseArrayObjectAdapter adapter = new SparseArrayObjectAdapter();
-                adapter.set(ACTION_RENT, mActionRent);
-                adapter.set(ACTION_BUY, mActionBuy);
-                dor.setActionsAdapter(adapter);
-                mRowsAdapter.add(0, dor);
-                setSelectedPosition(0, false);
-            }
-        }, TIME_TO_LOAD_OVERVIEW_ROW_MS);
-
-        new Handler().postDelayed(new Runnable() {
-            public void run() {
-                for (int i = 0; i < NUM_ROWS; ++i) {
-                    ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter(cardPresenter);
-                    listRowAdapter.add(new PhotoItem("Hello world", R.drawable.gallery_photo_1));
-                    listRowAdapter.add(new PhotoItem("This is a test", R.drawable.gallery_photo_2));
-                    listRowAdapter.add(new PhotoItem("Android TV", R.drawable.gallery_photo_3));
-                    listRowAdapter.add(new PhotoItem("Leanback", R.drawable.gallery_photo_4));
-                    HeaderItem header = new HeaderItem(i, "Row " + i);
-                    mRowsAdapter.add(new ListRow(header, listRowAdapter));
-                }
-                if (TEST_ENTRANCE_TRANSITION) {
-                    startEntranceTransition();
-                }
-            }
-        }, TIME_TO_LOAD_RELATED_ROWS_MS);
-        setAdapter(mRowsAdapter);
-    }
-
-    @Override
-    public void onStart() {
-        super.onStart();
-        if (mPhotoItem != null) {
-            mBackgroundHelper.setBackground(
-                    getActivity(), mPhotoItem.getImageResourceId());
-        }
-    }
-
-}
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/DetailsPresenterSelectionActivity.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/DetailsPresenterSelectionActivity.java
deleted file mode 100644
index 9fe7fd3..0000000
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/DetailsPresenterSelectionActivity.java
+++ /dev/null
@@ -1,126 +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.leanback;
-
-import android.app.Activity;
-import android.app.FragmentManager;
-import android.content.Context;
-import android.content.Intent;
-import android.graphics.drawable.Drawable;
-import android.os.Bundle;
-import android.support.v17.leanback.app.GuidedStepFragment;
-import android.support.v17.leanback.widget.GuidedAction;
-import android.support.v17.leanback.widget.GuidanceStylist;
-import android.support.v17.leanback.widget.GuidanceStylist.Guidance;
-
-import java.util.List;
-import java.util.ArrayList;
-
-/**
- * Activity that showcases different aspects of GuidedStepFragments.
- */
-public class DetailsPresenterSelectionActivity extends Activity {
-
-    private static final int OPTION_CHECK_SET_ID = 10;
-
-    private static final long ACTION_ID_SWITCH_LEGACY_ON = 10000;
-    private static final long ACTION_ID_SWITCH_LEGACY_OFF = 10001;
-
-    public static boolean USE_LEGACY_PRESENTER = false;
-
-    private static final String[] OPTION_NAMES = { "Use new details presenter", "Use legacy details presenter" };
-    private static final String[] OPTION_DESCRIPTIONS = { "Use new details presenter",
-            "Use legacy details presenter"};
-    private static final long[] OPTION_IDS = {ACTION_ID_SWITCH_LEGACY_OFF, ACTION_ID_SWITCH_LEGACY_ON};
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        GuidedStepFragment.addAsRoot(this, new SetupFragment(), android.R.id.content);
-    }
-
-    private static void addAction(List<GuidedAction> actions, long id, String title, String desc) {
-        actions.add(new GuidedAction.Builder()
-                .id(id)
-                .title(title)
-                .description(desc)
-                .build());
-    }
-
-    private static void addCheckedAction(List<GuidedAction> actions, Context context,
-            long id, String title, String desc, boolean checked) {
-        actions.add(new GuidedAction.Builder()
-                .title(title)
-                .description(desc)
-                .id(id)
-                .checkSetId(OPTION_CHECK_SET_ID)
-                .checked(checked)
-                .build());
-    }
-
-    private static class SetupFragment extends GuidedStepFragment {
-
-        @Override
-        public Guidance onCreateGuidance(Bundle savedInstanceState) {
-            String title = getString(R.string.guidedstep_second_title);
-            String breadcrumb = getString(R.string.guidedstep_second_breadcrumb);
-            String description = getString(R.string.guidedstep_second_description);
-            Drawable icon = getActivity().getDrawable(R.drawable.ic_main_icon);
-            return new Guidance(title, description, breadcrumb, icon);
-        }
-
-        @Override
-        public GuidanceStylist onCreateGuidanceStylist() {
-            return new GuidanceStylist() {
-                @Override
-                public int onProvideLayoutId() {
-                    return R.layout.guidedstep_second_guidance;
-                }
-            };
-        }
-
-        @Override
-        public void onCreateActions(List<GuidedAction> actions, Bundle savedInstanceState) {
-            for (int i = 0; i < OPTION_NAMES.length; i++) {
-                boolean checked = false;
-                if (OPTION_IDS[i] == ACTION_ID_SWITCH_LEGACY_ON) {
-                    if (USE_LEGACY_PRESENTER) {
-                        checked = true;
-                    }
-                } else if (OPTION_IDS[i] == ACTION_ID_SWITCH_LEGACY_OFF) {
-                    if (!USE_LEGACY_PRESENTER) {
-                        checked = true;
-                    }
-                }
-                addCheckedAction(actions, getActivity(), OPTION_IDS[i], OPTION_NAMES[i],
-                        OPTION_DESCRIPTIONS[i], checked);
-            }
-        }
-
-        @Override
-        public void onGuidedActionClicked(GuidedAction action) {
-            if (action.getId() == ACTION_ID_SWITCH_LEGACY_ON) {
-                USE_LEGACY_PRESENTER = action.isChecked();
-            } else if (action.getId() == ACTION_ID_SWITCH_LEGACY_OFF) {
-                USE_LEGACY_PRESENTER = !action.isChecked();
-            }
-            getActivity().finish();
-        }
-
-    }
-
-}
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/DetailsSupportActivity.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/DetailsSupportActivity.java
deleted file mode 100644
index 40c2109..0000000
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/DetailsSupportActivity.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/* This file is auto-generated from DetailsActivity.java.  DO NOT MODIFY. */
-
-/*
- * 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.leanback;
-
-import android.support.v4.app.FragmentActivity;
-import android.os.Bundle;
-
-public class DetailsSupportActivity extends FragmentActivity
-{
-    public static final String EXTRA_ITEM = "item";
-    public static final String SHARED_ELEMENT_NAME = "hero";
-
-    private boolean useLegacyFragment() {
-        return (DetailsPresenterSelectionActivity.USE_LEGACY_PRESENTER
-                && !(this instanceof SearchDetailsSupportActivity));
-    }
-
-    /** Called when the activity is first created. */
-    @Override
-    public void onCreate(Bundle savedInstanceState)
-    {
-        super.onCreate(savedInstanceState);
-        setContentView(useLegacyFragment() ? R.layout.legacy_details_support : R.layout.details_support);
-        if (savedInstanceState == null) {
-            // Only pass object to fragment when activity is first time created,
-            // later object is modified and persisted with fragment state.
-            if (useLegacyFragment()) {
-                ((DetailsSupportFragment)getSupportFragmentManager().findFragmentById(R.id.details_fragment))
-                    .setItem((PhotoItem) getIntent().getParcelableExtra(EXTRA_ITEM));
-            } else {
-                ((NewDetailsSupportFragment)getSupportFragmentManager().findFragmentById(R.id.details_fragment))
-                    .setItem((PhotoItem) getIntent().getParcelableExtra(EXTRA_ITEM));
-            }
-        }
-    }
-
-    @Override
-    public void onAttachedToWindow() {
-        super.onAttachedToWindow();
-        BackgroundHelper.attach(this);
-    }
-
-    @Override
-    public void onStop() {
-        BackgroundHelper.release(this);
-        super.onStop();
-    }
-}
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/DetailsSupportFragment.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/DetailsSupportFragment.java
deleted file mode 100644
index 143a37d..0000000
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/DetailsSupportFragment.java
+++ /dev/null
@@ -1,218 +0,0 @@
-/* This file is auto-generated from DetailsFragment.java.  DO NOT MODIFY. */
-
-/*
- * 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.leanback;
-
-import android.content.Intent;
-import android.content.res.Resources;
-import android.os.Bundle;
-import android.os.Handler;
-import android.support.v4.app.ActivityOptionsCompat;
-import android.support.v17.leanback.widget.Action;
-import android.support.v17.leanback.widget.ArrayObjectAdapter;
-import android.support.v17.leanback.widget.ClassPresenterSelector;
-import android.support.v17.leanback.widget.DetailsOverviewRow;
-import android.support.v17.leanback.widget.DetailsOverviewRowPresenter;
-import android.support.v17.leanback.widget.HeaderItem;
-import android.support.v17.leanback.widget.ImageCardView;
-import android.support.v17.leanback.widget.ListRow;
-import android.support.v17.leanback.widget.ListRowPresenter;
-import android.support.v17.leanback.widget.OnActionClickedListener;
-import android.support.v17.leanback.widget.OnItemViewClickedListener;
-import android.support.v17.leanback.widget.OnItemViewSelectedListener;
-import android.support.v17.leanback.widget.Presenter;
-import android.support.v17.leanback.widget.Row;
-import android.support.v17.leanback.widget.RowPresenter;
-import android.support.v17.leanback.widget.SparseArrayObjectAdapter;
-import android.util.Log;
-import android.view.View;
-import android.widget.Toast;
-
-public class DetailsSupportFragment extends android.support.v17.leanback.app.DetailsSupportFragment {
-    private static final String TAG = "leanback.DetailsSupportFragment";
-    private static final String ITEM = "item";
-
-    private static final int NUM_ROWS = 3;
-    private ArrayObjectAdapter mRowsAdapter;
-    private PhotoItem mPhotoItem;
-    final CardPresenter cardPresenter = new CardPresenter();
-    private BackgroundHelper mBackgroundHelper = new BackgroundHelper();
-
-    private static final int ACTION_PLAY = 1;
-    private static final int ACTION_RENT = 2;
-    private static final int ACTION_BUY = 3;
-
-    private static final boolean TEST_SHARED_ELEMENT_TRANSITION = true;
-    private static final boolean TEST_ENTRANCE_TRANSITION = true;
-
-    private static final long TIME_TO_LOAD_OVERVIEW_ROW_MS = 1000;
-    private static final long TIME_TO_LOAD_RELATED_ROWS_MS = 2000;
-
-    private Action mActionPlay;
-    private Action mActionRent;
-    private Action mActionBuy;
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        Log.i(TAG, "onCreate");
-        super.onCreate(savedInstanceState);
-
-        setBadgeDrawable(getActivity().getResources().getDrawable(R.drawable.ic_title));
-        setTitle("Leanback Sample App");
-        setOnSearchClickedListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View view) {
-                Intent intent = new Intent(getActivity(), SearchSupportActivity.class);
-                startActivity(intent);
-            }
-        });
-
-        mActionPlay = new Action(ACTION_PLAY, "Play");
-        mActionRent = new Action(ACTION_RENT, "Rent", "$3.99",
-                getResources().getDrawable(R.drawable.ic_action_a));
-        mActionBuy = new Action(ACTION_BUY, "Buy $9.99");
-
-        ClassPresenterSelector ps = new ClassPresenterSelector();
-        DetailsOverviewRowPresenter dorPresenter =
-                new DetailsOverviewRowPresenter(new DetailsDescriptionPresenter());
-        dorPresenter.setOnActionClickedListener(new OnActionClickedListener() {
-            @Override
-            public void onActionClicked(Action action) {
-                Toast.makeText(getActivity(), action.toString(), Toast.LENGTH_SHORT).show();
-                DetailsOverviewRow dor = (DetailsOverviewRow) mRowsAdapter.get(0);
-                if (action.getId() == ACTION_BUY) {
-                    // on the UI thread, we can modify actions adapter directly
-                    SparseArrayObjectAdapter actions = (SparseArrayObjectAdapter)
-                            dor.getActionsAdapter();
-                    actions.set(ACTION_PLAY, mActionPlay);
-                    actions.clear(ACTION_RENT);
-                    actions.clear(ACTION_BUY);
-                    dor.setItem(mPhotoItem.getTitle() + "(Owned)");
-                    dor.setImageDrawable(getResources().getDrawable(R.drawable.details_img_16x9));
-                } else if (action.getId() == ACTION_RENT) {
-                    // on the UI thread, we can modify actions adapter directly
-                    SparseArrayObjectAdapter actions = (SparseArrayObjectAdapter)
-                            dor.getActionsAdapter();
-                    actions.set(ACTION_PLAY, mActionPlay);
-                    actions.clear(ACTION_RENT);
-                    dor.setItem(mPhotoItem.getTitle() + "(Rented)");
-                } else if (action.getId() == ACTION_PLAY) {
-                    Intent intent = new Intent(getActivity(), PlaybackOverlaySupportActivity.class);
-                    getActivity().startActivity(intent);
-                }
-            }
-        });
-
-        ps.addClassPresenter(DetailsOverviewRow.class, dorPresenter);
-        ps.addClassPresenter(ListRow.class, new ListRowPresenter());
-
-        mRowsAdapter = new ArrayObjectAdapter(ps);
-
-        PhotoItem item = (PhotoItem) (savedInstanceState != null ?
-                savedInstanceState.getParcelable(ITEM) : null);
-        if (item != null) {
-            setItem(item);
-        }
-
-        setOnItemViewClickedListener(new OnItemViewClickedListener() {
-            @Override
-            public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
-                    RowPresenter.ViewHolder rowViewHolder, Row row) {
-                Log.i(TAG, "onItemClicked: " + item + " row " + row);
-                if (item instanceof PhotoItem){
-                    Intent intent = new Intent(getActivity(), DetailsSupportActivity.class);
-                    intent.putExtra(DetailsSupportActivity.EXTRA_ITEM, (PhotoItem) item);
-
-                    Bundle bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(
-                            getActivity(),
-                            ((ImageCardView)itemViewHolder.view).getMainImageView(),
-                            DetailsSupportActivity.SHARED_ELEMENT_NAME).toBundle();
-                    getActivity().startActivity(intent, bundle);
-                }
-            }
-        });
-        setOnItemViewSelectedListener(new OnItemViewSelectedListener() {
-            @Override
-            public void onItemSelected(Presenter.ViewHolder itemViewHolder, Object item,
-                    RowPresenter.ViewHolder rowViewHolder, Row row) {
-                Log.i(TAG, "onItemSelected: " + item + " row " + row);
-            }
-        });
-
-        if (TEST_SHARED_ELEMENT_TRANSITION) {
-            dorPresenter.setSharedElementEnterTransition(getActivity(),
-                    DetailsSupportActivity.SHARED_ELEMENT_NAME);
-        }
-        if (TEST_ENTRANCE_TRANSITION) {
-            // don't run entrance transition if Activity is restored.
-            if (savedInstanceState == null) {
-                prepareEntranceTransition();
-            }
-        }
-    }
-
-    @Override
-    public void onSaveInstanceState(Bundle outState) {
-        super.onSaveInstanceState(outState);
-        outState.putParcelable(ITEM, mPhotoItem);
-    }
-
-    public void setItem(PhotoItem photoItem) {
-        mPhotoItem = photoItem;
-
-        mRowsAdapter.clear();
-        new Handler().postDelayed(new Runnable() {
-            public void run() {
-                Resources res = getActivity().getResources();
-                DetailsOverviewRow dor = new DetailsOverviewRow(mPhotoItem.getTitle());
-                dor.setImageDrawable(res.getDrawable(mPhotoItem.getImageResourceId()));
-                SparseArrayObjectAdapter adapter = new SparseArrayObjectAdapter();
-                adapter.set(ACTION_RENT, mActionRent);
-                adapter.set(ACTION_BUY, mActionBuy);
-                dor.setActionsAdapter(adapter);
-                mRowsAdapter.add(0, dor);
-                setSelectedPosition(0, false);
-            }
-        }, TIME_TO_LOAD_OVERVIEW_ROW_MS);
-
-        new Handler().postDelayed(new Runnable() {
-            public void run() {
-                for (int i = 0; i < NUM_ROWS; ++i) {
-                    ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter(cardPresenter);
-                    listRowAdapter.add(new PhotoItem("Hello world", R.drawable.gallery_photo_1));
-                    listRowAdapter.add(new PhotoItem("This is a test", R.drawable.gallery_photo_2));
-                    listRowAdapter.add(new PhotoItem("Android TV", R.drawable.gallery_photo_3));
-                    listRowAdapter.add(new PhotoItem("Leanback", R.drawable.gallery_photo_4));
-                    HeaderItem header = new HeaderItem(i, "Row " + i);
-                    mRowsAdapter.add(new ListRow(header, listRowAdapter));
-                }
-                if (TEST_ENTRANCE_TRANSITION) {
-                    startEntranceTransition();
-                }
-            }
-        }, TIME_TO_LOAD_RELATED_ROWS_MS);
-        setAdapter(mRowsAdapter);
-    }
-
-    @Override
-    public void onStart() {
-        super.onStart();
-        if (mPhotoItem != null) {
-            mBackgroundHelper.setBackground(
-                    getActivity(), mPhotoItem.getImageResourceId());
-        }
-    }
-
-}
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/ErrorFragment.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/ErrorFragment.java
deleted file mode 100644
index 7a88c91..0000000
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/ErrorFragment.java
+++ /dev/null
@@ -1,54 +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.leanback;
-
-import android.content.Intent;
-import android.content.res.Resources;
-import android.os.Bundle;
-import android.support.v17.leanback.widget.ArrayObjectAdapter;
-import android.support.v17.leanback.widget.HeaderItem;
-import android.support.v17.leanback.widget.ListRow;
-import android.support.v17.leanback.widget.ListRowPresenter;
-import android.support.v17.leanback.widget.Row;
-import android.support.v17.leanback.widget.SearchOrbView;
-import android.util.Log;
-import android.view.View;
-
-public class ErrorFragment extends android.support.v17.leanback.app.ErrorFragment {
-    private static final String TAG = "leanback.ErrorFragment";
-    private static final boolean TRANSLUCENT = true;
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        Log.i(TAG, "onCreate");
-        super.onCreate(savedInstanceState);
-
-        setTitle("Leanback Sample App");
-    }
-
-    void setErrorContent(Resources resources) {
-        setImageDrawable(resources.getDrawable(R.drawable.lb_ic_sad_cloud));
-        setMessage("An error occurred.");
-        setDefaultBackground(TRANSLUCENT);
-
-        setButtonText("Dismiss");
-        setButtonClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View arg0) {
-                Log.i(TAG, "button clicked");
-                getFragmentManager().beginTransaction().remove(ErrorFragment.this).commit();
-            }
-        });
-    }
-}
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/ErrorSupportFragment.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/ErrorSupportFragment.java
deleted file mode 100644
index ea3e17c..0000000
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/ErrorSupportFragment.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/* This file is auto-generated from ErrorFragment.java.  DO NOT MODIFY. */
-
-/*
- * 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.leanback;
-
-import android.content.Intent;
-import android.content.res.Resources;
-import android.os.Bundle;
-import android.support.v17.leanback.widget.ArrayObjectAdapter;
-import android.support.v17.leanback.widget.HeaderItem;
-import android.support.v17.leanback.widget.ListRow;
-import android.support.v17.leanback.widget.ListRowPresenter;
-import android.support.v17.leanback.widget.Row;
-import android.support.v17.leanback.widget.SearchOrbView;
-import android.util.Log;
-import android.view.View;
-
-public class ErrorSupportFragment extends android.support.v17.leanback.app.ErrorSupportFragment {
-    private static final String TAG = "leanback.ErrorSupportFragment";
-    private static final boolean TRANSLUCENT = true;
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        Log.i(TAG, "onCreate");
-        super.onCreate(savedInstanceState);
-
-        setTitle("Leanback Sample App");
-    }
-
-    void setErrorContent(Resources resources) {
-        setImageDrawable(resources.getDrawable(R.drawable.lb_ic_sad_cloud));
-        setMessage("An error occurred.");
-        setDefaultBackground(TRANSLUCENT);
-
-        setButtonText("Dismiss");
-        setButtonClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View arg0) {
-                Log.i(TAG, "button clicked");
-                getFragmentManager().beginTransaction().remove(ErrorSupportFragment.this).commit();
-            }
-        });
-    }
-}
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/GuidedStepActivity.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/GuidedStepActivity.java
deleted file mode 100644
index 15af18f..0000000
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/GuidedStepActivity.java
+++ /dev/null
@@ -1,560 +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.leanback;
-
-import android.app.Activity;
-import android.app.FragmentManager;
-import android.content.Context;
-import android.content.Intent;
-import android.content.res.Configuration;
-import android.graphics.drawable.Drawable;
-import android.os.Bundle;
-import android.support.v17.leanback.app.GuidedStepFragment;
-import android.support.v17.leanback.widget.GuidanceStylist;
-import android.support.v17.leanback.widget.GuidanceStylist.Guidance;
-import android.support.v17.leanback.widget.GuidedAction;
-import android.support.v17.leanback.widget.GuidedActionsStylist;
-import android.support.v17.leanback.widget.GuidedActionsStylist.ViewHolder;
-import android.support.v17.leanback.widget.GuidedDatePickerAction;
-import android.text.InputType;
-import android.text.TextUtils;
-import android.util.Log;
-import android.view.ViewGroup;
-import android.view.ViewTreeObserver.OnGlobalLayoutListener;
-import android.view.inputmethod.EditorInfo;
-
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.List;
-
-/**
- * Activity that showcases different aspects of GuidedStepFragments.
- */
-public class GuidedStepActivity extends Activity {
-
-    private static final int BACK = 2;
-
-    private static final int FIRST_NAME = 3;
-    private static final int LAST_NAME = 4;
-    private static final int PASSWORD = 5;
-    private static final int PAYMENT = 6;
-    private static final int NEW_PAYMENT = 7;
-    private static final int PAYMENT_EXPIRE = 8;
-
-    private static final long RADIO_ID_BASE = 0;
-    private static final long CHECKBOX_ID_BASE = 100;
-
-    private static final long DEFAULT_OPTION = RADIO_ID_BASE;
-
-    private static final String[] OPTION_NAMES = { "Option A", "Option B", "Option C" };
-    private static final String[] OPTION_DESCRIPTIONS = { "Here's one thing you can do",
-            "Here's another thing you can do", "Here's one more thing you can do" };
-
-    private static final String TAG = GuidedStepActivity.class.getSimpleName();
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        Log.v(TAG, "onCreate");
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.guided_step_activity);
-        if (savedInstanceState == null) {
-            GuidedStepFragment.addAsRoot(this, new FirstStepFragment(), R.id.lb_guidedstep_host);
-        }
-    }
-
-    @Override
-    public void onConfigurationChanged(Configuration newConfig) {
-        Log.v(TAG, "onConfigurationChanged");
-        super.onConfigurationChanged(newConfig);
-    }
-
-    @Override
-    protected void onSaveInstanceState(Bundle outState) {
-        Log.v(TAG, "onSaveInstanceState");
-        super.onSaveInstanceState(outState);
-    }
-
-    @Override
-    protected void onRestoreInstanceState(Bundle savedInstanceState) {
-        Log.v(TAG, "onRestoreInstanceState");
-        super.onRestoreInstanceState(savedInstanceState);
-    }
-
-    private static void addAction(List<GuidedAction> actions, long id, String title, String desc) {
-        actions.add(new GuidedAction.Builder()
-                .id(id)
-                .title(title)
-                .description(desc)
-                .build());
-    }
-
-    private static void addAction(List<GuidedAction> actions, long id, String title, String desc,
-            List<GuidedAction> subActions) {
-        actions.add(new GuidedAction.Builder()
-                .id(id)
-                .title(title)
-                .description(desc)
-                .subActions(subActions)
-                .build());
-    }
-
-    private static void addEditableAction(Context context, List<GuidedAction> actions,
-            long id, String title, String desc) {
-        actions.add(new GuidedAction.Builder(context)
-                .id(id)
-                .title(title)
-                .description(desc)
-                .editable(true)
-                .icon(R.drawable.lb_ic_search_mic)
-                .build());
-    }
-
-    private static void addEditableAction(List<GuidedAction> actions, long id, String title,
-            String editTitle, String desc) {
-        actions.add(new GuidedAction.Builder()
-                .id(id)
-                .title(title)
-                .editTitle(editTitle)
-                .description(desc)
-                .editable(true)
-                .build());
-    }
-
-    private static void addEditableAction(List<GuidedAction> actions, long id, String title,
-            String editTitle, int editInputType, String desc, String editDesc) {
-        actions.add(new GuidedAction.Builder()
-                .id(id)
-                .title(title)
-                .editTitle(editTitle)
-                .editInputType(editInputType)
-                .description(desc)
-                .editDescription(editDesc)
-                .editable(true)
-                .build());
-    }
-
-    private static void addDatePickerAction(List<GuidedAction> actions, long id, String title) {
-        actions.add(new GuidedDatePickerAction.Builder(null)
-                .id(id)
-                .title(title)
-                .datePickerFormat("MY")
-                .build());
-    }
-
-    private static void addEditableDescriptionAction(List<GuidedAction> actions, long id,
-            String title, String desc, String editDescription, int descriptionEditInputType) {
-        actions.add(new GuidedAction.Builder()
-                .id(id)
-                .title(title)
-                .description(desc)
-                .editDescription(editDescription)
-                .descriptionEditInputType(descriptionEditInputType)
-                .descriptionEditable(true)
-                .build());
-    }
-
-    private static void addCheckedAction(List<GuidedAction> actions, long id, Context context,
-            String title, String desc, int checkSetId) {
-        actions.add(new GuidedAction.Builder()
-                .id(id)
-                .title(title)
-                .description(desc)
-                .checkSetId(checkSetId)
-                .build());
-    }
-
-    public static class FirstStepFragment extends GuidedStepFragment {
-
-        @Override
-        public int onProvideTheme() {
-            return R.style.Theme_Example_Leanback_GuidedStep_First;
-        }
-
-        @Override
-        public Guidance onCreateGuidance(Bundle savedInstanceState) {
-            String title = getString(R.string.guidedstep_first_title);
-            String breadcrumb = getString(R.string.guidedstep_first_breadcrumb);
-            String description = getString(R.string.guidedstep_first_description);
-            Drawable icon = getActivity().getResources().getDrawable(R.drawable.ic_main_icon);
-            return new Guidance(title, description, breadcrumb, icon);
-        }
-
-        @Override
-        public void onCreateActions(List<GuidedAction> actions, Bundle savedInstanceState) {
-            Context context = getActivity();
-            actions.add(new GuidedAction.Builder(context)
-                    .clickAction(GuidedAction.ACTION_ID_CONTINUE)
-                    .description("Let's do it")
-                    .build());
-            actions.add(new GuidedAction.Builder(context)
-                    .clickAction(GuidedAction.ACTION_ID_CANCEL)
-                    .description("Never mind")
-                    .build());
-        }
-
-        @Override
-        public void onGuidedActionClicked(GuidedAction action) {
-            FragmentManager fm = getFragmentManager();
-            if (action.getId() == GuidedAction.ACTION_ID_CONTINUE) {
-                GuidedStepFragment.add(fm, new SecondStepFragment(), R.id.lb_guidedstep_host);
-            } else if (action.getId() == GuidedAction.ACTION_ID_CANCEL){
-                finishGuidedStepFragments();
-            }
-        }
-    }
-
-    static ArrayList<String> sCards = new ArrayList<String>();
-    static int sSelectedCard = -1;
-    static {
-        sCards.add("Visa-1234");
-        sCards.add("Master-4321");
-    }
-
-    public static class NewPaymentStepFragment extends GuidedStepFragment {
-
-        @Override
-        public Guidance onCreateGuidance(Bundle savedInstanceState) {
-            String title = getString(R.string.guidedstep_newpayment_title);
-            String breadcrumb = getString(R.string.guidedstep_newpayment_breadcrumb);
-            String description = getString(R.string.guidedstep_newpayment_description);
-            Drawable icon = getActivity().getResources().getDrawable(R.drawable.ic_main_icon);
-            return new Guidance(title, description, breadcrumb, icon);
-        }
-
-        @Override
-        public void onCreateActions(List<GuidedAction> actions, Bundle savedInstanceState) {
-            addEditableAction(actions, NEW_PAYMENT, "Input credit card number", "",
-                    InputType.TYPE_CLASS_NUMBER,
-                    "Input credit card number", "Input credit card number");
-            addDatePickerAction(actions, PAYMENT_EXPIRE, "Exp:");
-        }
-
-        @Override
-        public void onCreateButtonActions(List<GuidedAction> actions, Bundle savedInstanceState) {
-            Context context = getActivity();
-            actions.add(new GuidedAction.Builder(context).clickAction(GuidedAction.ACTION_ID_OK)
-                    .build());
-            actions.get(actions.size() - 1).setEnabled(false);
-        }
-
-        @Override
-        public void onGuidedActionClicked(GuidedAction action) {
-            if (action.getId() == GuidedAction.ACTION_ID_OK) {
-                CharSequence desc = findActionById(NEW_PAYMENT).getDescription();
-                String cardNumber = desc.subSequence(desc.length() - 4, desc.length()).toString();
-                String card;
-                if ((Integer.parseInt(cardNumber) & 1) == 0) {
-                    card = "Visa "+cardNumber;
-                } else {
-                    card = "Master "+cardNumber;
-                }
-                sSelectedCard = sCards.size();
-                sCards.add(card);
-                popBackStackToGuidedStepFragment(NewPaymentStepFragment.class,
-                        FragmentManager.POP_BACK_STACK_INCLUSIVE);
-            }
-        }
-
-        @Override
-        public long onGuidedActionEditedAndProceed(GuidedAction action) {
-            if (action.getId() == NEW_PAYMENT) {
-                CharSequence editTitle = action.getEditTitle();
-                if (isCardNumberValid(editTitle)) {
-                    editTitle = editTitle.subSequence(editTitle.length() - 4, editTitle.length());
-                    action.setDescription("Visa XXXX-XXXX-XXXX-" + editTitle);
-                    updateOkButton(isExpDateValid(findActionById(PAYMENT_EXPIRE)));
-                    return GuidedAction.ACTION_ID_NEXT;
-                } else if (editTitle.length() == 0) {
-                    action.setDescription("Input credit card number");
-                    updateOkButton(false);
-                    return GuidedAction.ACTION_ID_CURRENT;
-                } else {
-                    action.setDescription("Error credit card number");
-                    updateOkButton(false);
-                    return GuidedAction.ACTION_ID_CURRENT;
-                }
-            } else if (action.getId() == PAYMENT_EXPIRE) {
-                updateOkButton(isExpDateValid(action) &&
-                        isCardNumberValid(findActionById(NEW_PAYMENT).getEditTitle()));
-            }
-            return GuidedAction.ACTION_ID_NEXT;
-        }
-
-        boolean isCardNumberValid(CharSequence number) {
-            return TextUtils.isDigitsOnly(number) && number.length() == 16;
-        }
-
-        boolean isExpDateValid(GuidedAction action) {
-            long date = ((GuidedDatePickerAction) action).getDate();
-            Calendar c = Calendar.getInstance();
-            c.setTimeInMillis(date);
-            return Calendar.getInstance().before(c);
-        }
-
-        void updateOkButton(boolean enabled) {
-            findButtonActionById(GuidedAction.ACTION_ID_OK).setEnabled(enabled);
-            notifyButtonActionChanged(findButtonActionPositionById(GuidedAction.ACTION_ID_OK));
-        }
-    }
-
-    public static class SecondStepFragment extends GuidedStepFragment {
-
-        public GuidedActionsStylist onCreateActionsStylist() {
-            return new GuidedActionsStylist() {
-                protected void setupImeOptions(GuidedActionsStylist.ViewHolder vh,
-                        GuidedAction action) {
-                    if (action.getId() == PASSWORD) {
-                        vh.getEditableDescriptionView().setImeActionLabel("Confirm!",
-                                EditorInfo.IME_ACTION_DONE);
-                    } else {
-                        super.setupImeOptions(vh, action);
-                    }
-                }
-            };
-        }
-
-        @Override
-        public Guidance onCreateGuidance(Bundle savedInstanceState) {
-            String title = getString(R.string.guidedstep_second_title);
-            String breadcrumb = getString(R.string.guidedstep_second_breadcrumb);
-            String description = getString(R.string.guidedstep_second_description);
-            Drawable icon = getActivity().getResources().getDrawable(R.drawable.ic_main_icon);
-            return new Guidance(title, description, breadcrumb, icon);
-        }
-
-        @Override
-        public void onCreateActions(List<GuidedAction> actions, Bundle savedInstanceState) {
-            addEditableAction(getContext(), actions, FIRST_NAME, "Pat", "Your first name");
-            addEditableAction(getContext(), actions, LAST_NAME, "Smith", "Your last name");
-            List<GuidedAction> subActions = new ArrayList<GuidedAction>();
-            addAction(actions, PAYMENT, "Select Payment", "", subActions);
-            addEditableDescriptionAction(actions, PASSWORD, "Password", "", "",
-                    InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
-        }
-
-        @Override
-        public void onCreateButtonActions(List<GuidedAction> actions, Bundle savedInstanceState) {
-            actions.add(new GuidedAction.Builder(getActivity())
-                    .clickAction(GuidedAction.ACTION_ID_CONTINUE)
-                    .description("Continue")
-                    .build());
-        }
-
-        @Override
-        public void onGuidedActionClicked(GuidedAction action) {
-            if (action.getId() == GuidedAction.ACTION_ID_CONTINUE) {
-                FragmentManager fm = getFragmentManager();
-                GuidedStepFragment.add(fm, new ThirdStepFragment(), R.id.lb_guidedstep_host);
-            }
-        }
-
-        @Override
-        public long onGuidedActionEditedAndProceed(GuidedAction action) {
-            if (action.getId() == PASSWORD) {
-                CharSequence password = action.getEditDescription();
-                if (password.length() > 0) {
-                    if (isPaymentValid()) {
-                        updateContinue(true);
-                        return GuidedAction.ACTION_ID_NEXT;
-                    } else {
-                        updateContinue(false);
-                        return GuidedAction.ACTION_ID_CURRENT;
-                    }
-                } else {
-                    updateContinue(false);
-                    return GuidedAction.ACTION_ID_CURRENT;
-                }
-            }
-            return GuidedAction.ACTION_ID_NEXT;
-        }
-
-        @Override
-        public boolean onSubGuidedActionClicked(GuidedAction action) {
-            if (action.isChecked()) {
-                String payment = action.getTitle().toString();
-                for (int i = 0; i < sCards.size(); i++) {
-                    if (payment.equals(sCards.get(i))) {
-                        sSelectedCard = i;
-                        findActionById(PAYMENT).setDescription(payment);
-                        notifyActionChanged(findActionPositionById(PAYMENT));
-                        updateContinue(isPasswordValid());
-                        break;
-                    }
-                }
-                return true;
-            } else {
-                FragmentManager fm = getFragmentManager();
-                GuidedStepFragment.add(fm, new NewPaymentStepFragment(), R.id.lb_guidedstep_host);
-                return false;
-            }
-        }
-
-        @Override
-        public void onResume() {
-            super.onResume();
-            // when resumed, update sub actions list and selected index from data model.
-            GuidedAction payments = findActionById(PAYMENT);
-            payments.getSubActions().clear();
-            for (int i = 0; i < sCards.size(); i++) {
-                addCheckedAction(payments.getSubActions(), -1, getActivity(), sCards.get(i), "",
-                        GuidedAction.DEFAULT_CHECK_SET_ID);
-                if (i == sSelectedCard) {
-                    payments.getSubActions().get(i).setChecked(true);
-                }
-            }
-            addAction(payments.getSubActions(), NEW_PAYMENT, "Add New Card", "");
-            if (sSelectedCard != -1) {
-                payments.setDescription(sCards.get(sSelectedCard));
-            }
-            notifyActionChanged(findActionPositionById(PAYMENT));
-            updateContinue(isPasswordValid() && isPaymentValid());
-        }
-
-        boolean isPaymentValid() {
-            CharSequence paymentType = findActionById(PAYMENT).getDescription();
-            return (paymentType.length() >= 4 &&
-                    paymentType.subSequence(0, 4).toString().equals("Visa")) ||
-                    (paymentType.length() >= 6 &&
-                    paymentType.subSequence(0, 6).toString().equals("Master"));
-        }
-
-        boolean isPasswordValid() {
-            return findActionById(PASSWORD).getEditDescription().length() > 0;
-        }
-
-        void updateContinue(boolean enabled) {
-            findButtonActionById(GuidedAction.ACTION_ID_CONTINUE).setEnabled(enabled);
-            notifyButtonActionChanged(findButtonActionPositionById(
-                    GuidedAction.ACTION_ID_CONTINUE));
-        }
-    }
-
-    public static class ThirdStepFragment extends GuidedStepFragment {
-
-        private long mSelectedOption = DEFAULT_OPTION;
-
-        @Override
-        public Guidance onCreateGuidance(Bundle savedInstanceState) {
-            String title = getString(R.string.guidedstep_third_title);
-            String breadcrumb = getString(R.string.guidedstep_third_breadcrumb);
-            String description = getString(R.string.guidedstep_third_description);
-            Drawable icon = getActivity().getResources().getDrawable(R.drawable.ic_main_icon);
-            return new Guidance(title, description, breadcrumb, icon);
-        }
-
-        @Override
-        public GuidanceStylist onCreateGuidanceStylist() {
-            return new GuidanceStylist() {
-                @Override
-                public int onProvideLayoutId() {
-                    return R.layout.guidedstep_second_guidance;
-                }
-            };
-        }
-
-        @Override
-        public void onCreateActions(List<GuidedAction> actions, Bundle savedInstanceState) {
-            String desc = "The description can be quite long as well.  " +
-                    "Just be sure to set multilineDescription to true in the GuidedAction.";
-            actions.add(new GuidedAction.Builder()
-                    .title("Note that Guided Actions can have titles that are quite long.")
-                    .description(desc)
-                    .multilineDescription(true)
-                    .infoOnly(true)
-                    .enabled(true)
-                    .focusable(false)
-                    .build());
-            for (int i = 0; i < OPTION_NAMES.length; i++) {
-                addCheckedAction(actions, RADIO_ID_BASE + i, getActivity(), OPTION_NAMES[i],
-                        OPTION_DESCRIPTIONS[i], GuidedAction.DEFAULT_CHECK_SET_ID);
-                if (i == DEFAULT_OPTION) {
-                    actions.get(actions.size() -1).setChecked(true);
-                }
-            }
-            for (int i = 0; i < OPTION_NAMES.length; i++) {
-                addCheckedAction(actions, CHECKBOX_ID_BASE + i, getActivity(), OPTION_NAMES[i],
-                        OPTION_DESCRIPTIONS[i], GuidedAction.CHECKBOX_CHECK_SET_ID);
-            }
-        }
-
-        @Override
-        public void onCreateButtonActions(List<GuidedAction> actions, Bundle savedInstanceState) {
-            actions.add(new GuidedAction.Builder(getActivity())
-                    .clickAction(GuidedAction.ACTION_ID_CONTINUE)
-                    .build());
-        }
-
-        @Override
-        public void onGuidedActionClicked(GuidedAction action) {
-            if (action.getId() == GuidedAction.ACTION_ID_CONTINUE) {
-                FragmentManager fm = getFragmentManager();
-                FourthStepFragment f = new FourthStepFragment();
-                Bundle arguments = new Bundle();
-                arguments.putLong(FourthStepFragment.EXTRA_OPTION, mSelectedOption);
-                f.setArguments(arguments);
-                GuidedStepFragment.add(fm, f, R.id.lb_guidedstep_host);
-            } else if (action.getCheckSetId() == GuidedAction.DEFAULT_CHECK_SET_ID) {
-                mSelectedOption = action.getId();
-            }
-        }
-
-    }
-
-    public static class FourthStepFragment extends GuidedStepFragment {
-        public static final String EXTRA_OPTION = "extra_option";
-
-        public FourthStepFragment() {
-        }
-
-        public long getOption() {
-            Bundle b = getArguments();
-            if (b == null) return 0;
-            return b.getLong(EXTRA_OPTION, 0);
-        }
-
-        @Override
-        public Guidance onCreateGuidance(Bundle savedInstanceState) {
-            String title = getString(R.string.guidedstep_fourth_title);
-            String breadcrumb = getString(R.string.guidedstep_fourth_breadcrumb);
-            String description = "You chose: " + OPTION_NAMES[(int) getOption()];
-            Drawable icon = getActivity().getResources().getDrawable(R.drawable.ic_main_icon);
-            return new Guidance(title, description, breadcrumb, icon);
-        }
-
-        @Override
-        public void onCreateActions(List<GuidedAction> actions, Bundle savedInstanceState) {
-            actions.add(new GuidedAction.Builder(getActivity())
-                    .clickAction(GuidedAction.ACTION_ID_FINISH)
-                    .description("All Done...")
-                    .build());
-            addAction(actions, BACK, "Start Over", "Let's try this again...");
-        }
-
-        @Override
-        public void onGuidedActionClicked(GuidedAction action) {
-            if (action.getId() == GuidedAction.ACTION_ID_FINISH) {
-                finishGuidedStepFragments();
-            } else if (action.getId() == BACK) {
-                // pop 4, 3, 2
-                popBackStackToGuidedStepFragment(SecondStepFragment.class,
-                        FragmentManager.POP_BACK_STACK_INCLUSIVE);
-            }
-        }
-
-    }
-
-}
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/GuidedStepHalfScreenActivity.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/GuidedStepHalfScreenActivity.java
deleted file mode 100644
index 4e8b33f..0000000
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/GuidedStepHalfScreenActivity.java
+++ /dev/null
@@ -1,141 +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.leanback;
-
-import android.app.Activity;
-import android.app.FragmentManager;
-import android.content.Context;
-import android.graphics.drawable.Drawable;
-import android.os.Bundle;
-import android.support.v17.leanback.app.GuidedStepFragment;
-import android.support.v17.leanback.widget.GuidanceStylist;
-import android.support.v17.leanback.widget.GuidanceStylist.Guidance;
-import android.support.v17.leanback.widget.GuidedAction;
-import android.util.Log;
-
-import java.util.List;
-
-/**
- * Activity that showcases different aspects of GuidedStepFragments in half
- * screen mode. This is achieved by setting the theme for this activity
- * to {@code Theme.Example.Leanback.GuidedStep.Half}.
- */
-public class GuidedStepHalfScreenActivity extends Activity {
-    private static final String TAG = "leanback.GuidedStepSupportHalfScreenActivity";
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        Log.v(TAG, "onCreate");
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.guided_step_activity);
-        GuidedStepFragment.addAsRoot(this, new FirstStepFragment(), R.id.lb_guidedstep_host);
-    }
-
-    public static class FirstStepFragment extends GuidedStepFragment {
-
-       @Override
-        public Guidance onCreateGuidance(Bundle savedInstanceState) {
-            String title = getString(R.string.guidedstep_first_title);
-            String breadcrumb = getString(R.string.guidedstep_first_breadcrumb);
-            String description = getString(R.string.guidedstep_first_description);
-            Drawable icon = getActivity().getResources().getDrawable(R.drawable.ic_main_icon);
-            return new Guidance(title, description, breadcrumb, icon);
-        }
-
-        @Override
-        public void onCreateActions(List<GuidedAction> actions, Bundle savedInstanceState) {
-            Context context = getActivity();
-            actions.add(new GuidedAction.Builder(context)
-                    .clickAction(GuidedAction.ACTION_ID_CONTINUE)
-                    .description("Just do it")
-                    .build());
-            actions.add(new GuidedAction.Builder(context)
-                    .clickAction(GuidedAction.ACTION_ID_CANCEL)
-                    .description("Never mind")
-                    .build());
-        }
-
-        public FirstStepFragment() {
-            setEntranceTransitionType(GuidedStepFragment.SLIDE_FROM_BOTTOM);
-        }
-
-        /**
-         * This fragment could be used by an activity using theme
-         * {@code Theme.Leanback.GuidedStep.Half} or something else (BrowseActivity).
-         * In order to provide a consistent half screen experience under
-         * both scenarios, we override onProvideTheme method.
-         */
-        @Override
-        public int onProvideTheme() {
-            return R.style.Theme_Example_Leanback_GuidedStep_Half;
-        }
-
-        @Override
-        public void onGuidedActionClicked(GuidedAction action) {
-            FragmentManager fm = getFragmentManager();
-            if (action.getId() == GuidedAction.ACTION_ID_CONTINUE) {
-                GuidedStepFragment.add(fm, new SecondStepFragment(), R.id.lb_guidedstep_host);
-            } else if (action.getId() == GuidedAction.ACTION_ID_CANCEL){
-                finishGuidedStepFragments();
-            }
-        }
-    }
-
-    public static class SecondStepFragment extends GuidedStepFragment {
-
-        @Override
-        public int onProvideTheme() {
-            return R.style.Theme_Example_Leanback_GuidedStep_Half;
-        }
-
-        @Override
-        public Guidance onCreateGuidance(Bundle savedInstanceState) {
-            String title = getString(R.string.guidedstep_second_title);
-            String breadcrumb = getString(R.string.guidedstep_second_breadcrumb);
-            String description = getString(R.string.guidedstep_second_description);
-            Drawable icon = getActivity().getResources().getDrawable(R.drawable.ic_main_icon);
-            return new Guidance(title, description, breadcrumb, icon);
-        }
-
-        @Override
-        public void onCreateActions(List<GuidedAction> actions, Bundle savedInstanceState) {
-            Context context = getActivity();
-            actions.add(new GuidedAction.Builder(context)
-                    .clickAction(GuidedAction.ACTION_ID_FINISH)
-                    .description("Done")
-                    .build());
-            actions.add(new GuidedAction.Builder(context)
-                    .clickAction(GuidedAction.ACTION_ID_CANCEL)
-                    .description("Never mind")
-                    .build());
-        }
-
-        @Override
-        public void onCreateButtonActions(List<GuidedAction> actions, Bundle savedInstanceState) {
-            actions.add(new GuidedAction.Builder(getActivity())
-                    .clickAction(GuidedAction.ACTION_ID_CANCEL)
-                    .description("Cancel")
-                    .build());
-        }
-
-        @Override
-        public void onGuidedActionClicked(GuidedAction action) {
-            FragmentManager fm = getFragmentManager();
-            fm.popBackStack();
-        }
-    }
-}
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/GuidedStepSupportActivity.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/GuidedStepSupportActivity.java
deleted file mode 100644
index 6aaaa69..0000000
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/GuidedStepSupportActivity.java
+++ /dev/null
@@ -1,562 +0,0 @@
-/* This file is auto-generated from GuidedStepActivity.java.  DO NOT MODIFY. */
-
-/*
- * 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.leanback;
-
-import android.support.v4.app.FragmentActivity;
-import android.support.v4.app.FragmentManager;
-import android.content.Context;
-import android.content.Intent;
-import android.content.res.Configuration;
-import android.graphics.drawable.Drawable;
-import android.os.Bundle;
-import android.support.v17.leanback.app.GuidedStepSupportFragment;
-import android.support.v17.leanback.widget.GuidanceStylist;
-import android.support.v17.leanback.widget.GuidanceStylist.Guidance;
-import android.support.v17.leanback.widget.GuidedAction;
-import android.support.v17.leanback.widget.GuidedActionsStylist;
-import android.support.v17.leanback.widget.GuidedActionsStylist.ViewHolder;
-import android.support.v17.leanback.widget.GuidedDatePickerAction;
-import android.text.InputType;
-import android.text.TextUtils;
-import android.util.Log;
-import android.view.ViewGroup;
-import android.view.ViewTreeObserver.OnGlobalLayoutListener;
-import android.view.inputmethod.EditorInfo;
-
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.List;
-
-/**
- * Activity that showcases different aspects of GuidedStepSupportFragments.
- */
-public class GuidedStepSupportActivity extends FragmentActivity {
-
-    private static final int BACK = 2;
-
-    private static final int FIRST_NAME = 3;
-    private static final int LAST_NAME = 4;
-    private static final int PASSWORD = 5;
-    private static final int PAYMENT = 6;
-    private static final int NEW_PAYMENT = 7;
-    private static final int PAYMENT_EXPIRE = 8;
-
-    private static final long RADIO_ID_BASE = 0;
-    private static final long CHECKBOX_ID_BASE = 100;
-
-    private static final long DEFAULT_OPTION = RADIO_ID_BASE;
-
-    private static final String[] OPTION_NAMES = { "Option A", "Option B", "Option C" };
-    private static final String[] OPTION_DESCRIPTIONS = { "Here's one thing you can do",
-            "Here's another thing you can do", "Here's one more thing you can do" };
-
-    private static final String TAG = GuidedStepSupportActivity.class.getSimpleName();
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        Log.v(TAG, "onCreate");
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.guided_step_activity);
-        if (savedInstanceState == null) {
-            GuidedStepSupportFragment.addAsRoot(this, new FirstStepFragment(), R.id.lb_guidedstep_host);
-        }
-    }
-
-    @Override
-    public void onConfigurationChanged(Configuration newConfig) {
-        Log.v(TAG, "onConfigurationChanged");
-        super.onConfigurationChanged(newConfig);
-    }
-
-    @Override
-    protected void onSaveInstanceState(Bundle outState) {
-        Log.v(TAG, "onSaveInstanceState");
-        super.onSaveInstanceState(outState);
-    }
-
-    @Override
-    protected void onRestoreInstanceState(Bundle savedInstanceState) {
-        Log.v(TAG, "onRestoreInstanceState");
-        super.onRestoreInstanceState(savedInstanceState);
-    }
-
-    private static void addAction(List<GuidedAction> actions, long id, String title, String desc) {
-        actions.add(new GuidedAction.Builder()
-                .id(id)
-                .title(title)
-                .description(desc)
-                .build());
-    }
-
-    private static void addAction(List<GuidedAction> actions, long id, String title, String desc,
-            List<GuidedAction> subActions) {
-        actions.add(new GuidedAction.Builder()
-                .id(id)
-                .title(title)
-                .description(desc)
-                .subActions(subActions)
-                .build());
-    }
-
-    private static void addEditableAction(Context context, List<GuidedAction> actions,
-            long id, String title, String desc) {
-        actions.add(new GuidedAction.Builder(context)
-                .id(id)
-                .title(title)
-                .description(desc)
-                .editable(true)
-                .icon(R.drawable.lb_ic_search_mic)
-                .build());
-    }
-
-    private static void addEditableAction(List<GuidedAction> actions, long id, String title,
-            String editTitle, String desc) {
-        actions.add(new GuidedAction.Builder()
-                .id(id)
-                .title(title)
-                .editTitle(editTitle)
-                .description(desc)
-                .editable(true)
-                .build());
-    }
-
-    private static void addEditableAction(List<GuidedAction> actions, long id, String title,
-            String editTitle, int editInputType, String desc, String editDesc) {
-        actions.add(new GuidedAction.Builder()
-                .id(id)
-                .title(title)
-                .editTitle(editTitle)
-                .editInputType(editInputType)
-                .description(desc)
-                .editDescription(editDesc)
-                .editable(true)
-                .build());
-    }
-
-    private static void addDatePickerAction(List<GuidedAction> actions, long id, String title) {
-        actions.add(new GuidedDatePickerAction.Builder(null)
-                .id(id)
-                .title(title)
-                .datePickerFormat("MY")
-                .build());
-    }
-
-    private static void addEditableDescriptionAction(List<GuidedAction> actions, long id,
-            String title, String desc, String editDescription, int descriptionEditInputType) {
-        actions.add(new GuidedAction.Builder()
-                .id(id)
-                .title(title)
-                .description(desc)
-                .editDescription(editDescription)
-                .descriptionEditInputType(descriptionEditInputType)
-                .descriptionEditable(true)
-                .build());
-    }
-
-    private static void addCheckedAction(List<GuidedAction> actions, long id, Context context,
-            String title, String desc, int checkSetId) {
-        actions.add(new GuidedAction.Builder()
-                .id(id)
-                .title(title)
-                .description(desc)
-                .checkSetId(checkSetId)
-                .build());
-    }
-
-    public static class FirstStepFragment extends GuidedStepSupportFragment {
-
-        @Override
-        public int onProvideTheme() {
-            return R.style.Theme_Example_Leanback_GuidedStep_First;
-        }
-
-        @Override
-        public Guidance onCreateGuidance(Bundle savedInstanceState) {
-            String title = getString(R.string.guidedstep_first_title);
-            String breadcrumb = getString(R.string.guidedstep_first_breadcrumb);
-            String description = getString(R.string.guidedstep_first_description);
-            Drawable icon = getActivity().getResources().getDrawable(R.drawable.ic_main_icon);
-            return new Guidance(title, description, breadcrumb, icon);
-        }
-
-        @Override
-        public void onCreateActions(List<GuidedAction> actions, Bundle savedInstanceState) {
-            Context context = getActivity();
-            actions.add(new GuidedAction.Builder(context)
-                    .clickAction(GuidedAction.ACTION_ID_CONTINUE)
-                    .description("Let's do it")
-                    .build());
-            actions.add(new GuidedAction.Builder(context)
-                    .clickAction(GuidedAction.ACTION_ID_CANCEL)
-                    .description("Never mind")
-                    .build());
-        }
-
-        @Override
-        public void onGuidedActionClicked(GuidedAction action) {
-            FragmentManager fm = getFragmentManager();
-            if (action.getId() == GuidedAction.ACTION_ID_CONTINUE) {
-                GuidedStepSupportFragment.add(fm, new SecondStepFragment(), R.id.lb_guidedstep_host);
-            } else if (action.getId() == GuidedAction.ACTION_ID_CANCEL){
-                finishGuidedStepSupportFragments();
-            }
-        }
-    }
-
-    static ArrayList<String> sCards = new ArrayList<String>();
-    static int sSelectedCard = -1;
-    static {
-        sCards.add("Visa-1234");
-        sCards.add("Master-4321");
-    }
-
-    public static class NewPaymentStepFragment extends GuidedStepSupportFragment {
-
-        @Override
-        public Guidance onCreateGuidance(Bundle savedInstanceState) {
-            String title = getString(R.string.guidedstep_newpayment_title);
-            String breadcrumb = getString(R.string.guidedstep_newpayment_breadcrumb);
-            String description = getString(R.string.guidedstep_newpayment_description);
-            Drawable icon = getActivity().getResources().getDrawable(R.drawable.ic_main_icon);
-            return new Guidance(title, description, breadcrumb, icon);
-        }
-
-        @Override
-        public void onCreateActions(List<GuidedAction> actions, Bundle savedInstanceState) {
-            addEditableAction(actions, NEW_PAYMENT, "Input credit card number", "",
-                    InputType.TYPE_CLASS_NUMBER,
-                    "Input credit card number", "Input credit card number");
-            addDatePickerAction(actions, PAYMENT_EXPIRE, "Exp:");
-        }
-
-        @Override
-        public void onCreateButtonActions(List<GuidedAction> actions, Bundle savedInstanceState) {
-            Context context = getActivity();
-            actions.add(new GuidedAction.Builder(context).clickAction(GuidedAction.ACTION_ID_OK)
-                    .build());
-            actions.get(actions.size() - 1).setEnabled(false);
-        }
-
-        @Override
-        public void onGuidedActionClicked(GuidedAction action) {
-            if (action.getId() == GuidedAction.ACTION_ID_OK) {
-                CharSequence desc = findActionById(NEW_PAYMENT).getDescription();
-                String cardNumber = desc.subSequence(desc.length() - 4, desc.length()).toString();
-                String card;
-                if ((Integer.parseInt(cardNumber) & 1) == 0) {
-                    card = "Visa "+cardNumber;
-                } else {
-                    card = "Master "+cardNumber;
-                }
-                sSelectedCard = sCards.size();
-                sCards.add(card);
-                popBackStackToGuidedStepSupportFragment(NewPaymentStepFragment.class,
-                        FragmentManager.POP_BACK_STACK_INCLUSIVE);
-            }
-        }
-
-        @Override
-        public long onGuidedActionEditedAndProceed(GuidedAction action) {
-            if (action.getId() == NEW_PAYMENT) {
-                CharSequence editTitle = action.getEditTitle();
-                if (isCardNumberValid(editTitle)) {
-                    editTitle = editTitle.subSequence(editTitle.length() - 4, editTitle.length());
-                    action.setDescription("Visa XXXX-XXXX-XXXX-" + editTitle);
-                    updateOkButton(isExpDateValid(findActionById(PAYMENT_EXPIRE)));
-                    return GuidedAction.ACTION_ID_NEXT;
-                } else if (editTitle.length() == 0) {
-                    action.setDescription("Input credit card number");
-                    updateOkButton(false);
-                    return GuidedAction.ACTION_ID_CURRENT;
-                } else {
-                    action.setDescription("Error credit card number");
-                    updateOkButton(false);
-                    return GuidedAction.ACTION_ID_CURRENT;
-                }
-            } else if (action.getId() == PAYMENT_EXPIRE) {
-                updateOkButton(isExpDateValid(action) &&
-                        isCardNumberValid(findActionById(NEW_PAYMENT).getEditTitle()));
-            }
-            return GuidedAction.ACTION_ID_NEXT;
-        }
-
-        boolean isCardNumberValid(CharSequence number) {
-            return TextUtils.isDigitsOnly(number) && number.length() == 16;
-        }
-
-        boolean isExpDateValid(GuidedAction action) {
-            long date = ((GuidedDatePickerAction) action).getDate();
-            Calendar c = Calendar.getInstance();
-            c.setTimeInMillis(date);
-            return Calendar.getInstance().before(c);
-        }
-
-        void updateOkButton(boolean enabled) {
-            findButtonActionById(GuidedAction.ACTION_ID_OK).setEnabled(enabled);
-            notifyButtonActionChanged(findButtonActionPositionById(GuidedAction.ACTION_ID_OK));
-        }
-    }
-
-    public static class SecondStepFragment extends GuidedStepSupportFragment {
-
-        public GuidedActionsStylist onCreateActionsStylist() {
-            return new GuidedActionsStylist() {
-                protected void setupImeOptions(GuidedActionsStylist.ViewHolder vh,
-                        GuidedAction action) {
-                    if (action.getId() == PASSWORD) {
-                        vh.getEditableDescriptionView().setImeActionLabel("Confirm!",
-                                EditorInfo.IME_ACTION_DONE);
-                    } else {
-                        super.setupImeOptions(vh, action);
-                    }
-                }
-            };
-        }
-
-        @Override
-        public Guidance onCreateGuidance(Bundle savedInstanceState) {
-            String title = getString(R.string.guidedstep_second_title);
-            String breadcrumb = getString(R.string.guidedstep_second_breadcrumb);
-            String description = getString(R.string.guidedstep_second_description);
-            Drawable icon = getActivity().getResources().getDrawable(R.drawable.ic_main_icon);
-            return new Guidance(title, description, breadcrumb, icon);
-        }
-
-        @Override
-        public void onCreateActions(List<GuidedAction> actions, Bundle savedInstanceState) {
-            addEditableAction(getContext(), actions, FIRST_NAME, "Pat", "Your first name");
-            addEditableAction(getContext(), actions, LAST_NAME, "Smith", "Your last name");
-            List<GuidedAction> subActions = new ArrayList<GuidedAction>();
-            addAction(actions, PAYMENT, "Select Payment", "", subActions);
-            addEditableDescriptionAction(actions, PASSWORD, "Password", "", "",
-                    InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
-        }
-
-        @Override
-        public void onCreateButtonActions(List<GuidedAction> actions, Bundle savedInstanceState) {
-            actions.add(new GuidedAction.Builder(getActivity())
-                    .clickAction(GuidedAction.ACTION_ID_CONTINUE)
-                    .description("Continue")
-                    .build());
-        }
-
-        @Override
-        public void onGuidedActionClicked(GuidedAction action) {
-            if (action.getId() == GuidedAction.ACTION_ID_CONTINUE) {
-                FragmentManager fm = getFragmentManager();
-                GuidedStepSupportFragment.add(fm, new ThirdStepFragment(), R.id.lb_guidedstep_host);
-            }
-        }
-
-        @Override
-        public long onGuidedActionEditedAndProceed(GuidedAction action) {
-            if (action.getId() == PASSWORD) {
-                CharSequence password = action.getEditDescription();
-                if (password.length() > 0) {
-                    if (isPaymentValid()) {
-                        updateContinue(true);
-                        return GuidedAction.ACTION_ID_NEXT;
-                    } else {
-                        updateContinue(false);
-                        return GuidedAction.ACTION_ID_CURRENT;
-                    }
-                } else {
-                    updateContinue(false);
-                    return GuidedAction.ACTION_ID_CURRENT;
-                }
-            }
-            return GuidedAction.ACTION_ID_NEXT;
-        }
-
-        @Override
-        public boolean onSubGuidedActionClicked(GuidedAction action) {
-            if (action.isChecked()) {
-                String payment = action.getTitle().toString();
-                for (int i = 0; i < sCards.size(); i++) {
-                    if (payment.equals(sCards.get(i))) {
-                        sSelectedCard = i;
-                        findActionById(PAYMENT).setDescription(payment);
-                        notifyActionChanged(findActionPositionById(PAYMENT));
-                        updateContinue(isPasswordValid());
-                        break;
-                    }
-                }
-                return true;
-            } else {
-                FragmentManager fm = getFragmentManager();
-                GuidedStepSupportFragment.add(fm, new NewPaymentStepFragment(), R.id.lb_guidedstep_host);
-                return false;
-            }
-        }
-
-        @Override
-        public void onResume() {
-            super.onResume();
-            // when resumed, update sub actions list and selected index from data model.
-            GuidedAction payments = findActionById(PAYMENT);
-            payments.getSubActions().clear();
-            for (int i = 0; i < sCards.size(); i++) {
-                addCheckedAction(payments.getSubActions(), -1, getActivity(), sCards.get(i), "",
-                        GuidedAction.DEFAULT_CHECK_SET_ID);
-                if (i == sSelectedCard) {
-                    payments.getSubActions().get(i).setChecked(true);
-                }
-            }
-            addAction(payments.getSubActions(), NEW_PAYMENT, "Add New Card", "");
-            if (sSelectedCard != -1) {
-                payments.setDescription(sCards.get(sSelectedCard));
-            }
-            notifyActionChanged(findActionPositionById(PAYMENT));
-            updateContinue(isPasswordValid() && isPaymentValid());
-        }
-
-        boolean isPaymentValid() {
-            CharSequence paymentType = findActionById(PAYMENT).getDescription();
-            return (paymentType.length() >= 4 &&
-                    paymentType.subSequence(0, 4).toString().equals("Visa")) ||
-                    (paymentType.length() >= 6 &&
-                    paymentType.subSequence(0, 6).toString().equals("Master"));
-        }
-
-        boolean isPasswordValid() {
-            return findActionById(PASSWORD).getEditDescription().length() > 0;
-        }
-
-        void updateContinue(boolean enabled) {
-            findButtonActionById(GuidedAction.ACTION_ID_CONTINUE).setEnabled(enabled);
-            notifyButtonActionChanged(findButtonActionPositionById(
-                    GuidedAction.ACTION_ID_CONTINUE));
-        }
-    }
-
-    public static class ThirdStepFragment extends GuidedStepSupportFragment {
-
-        private long mSelectedOption = DEFAULT_OPTION;
-
-        @Override
-        public Guidance onCreateGuidance(Bundle savedInstanceState) {
-            String title = getString(R.string.guidedstep_third_title);
-            String breadcrumb = getString(R.string.guidedstep_third_breadcrumb);
-            String description = getString(R.string.guidedstep_third_description);
-            Drawable icon = getActivity().getResources().getDrawable(R.drawable.ic_main_icon);
-            return new Guidance(title, description, breadcrumb, icon);
-        }
-
-        @Override
-        public GuidanceStylist onCreateGuidanceStylist() {
-            return new GuidanceStylist() {
-                @Override
-                public int onProvideLayoutId() {
-                    return R.layout.guidedstep_second_guidance;
-                }
-            };
-        }
-
-        @Override
-        public void onCreateActions(List<GuidedAction> actions, Bundle savedInstanceState) {
-            String desc = "The description can be quite long as well.  " +
-                    "Just be sure to set multilineDescription to true in the GuidedAction.";
-            actions.add(new GuidedAction.Builder()
-                    .title("Note that Guided Actions can have titles that are quite long.")
-                    .description(desc)
-                    .multilineDescription(true)
-                    .infoOnly(true)
-                    .enabled(true)
-                    .focusable(false)
-                    .build());
-            for (int i = 0; i < OPTION_NAMES.length; i++) {
-                addCheckedAction(actions, RADIO_ID_BASE + i, getActivity(), OPTION_NAMES[i],
-                        OPTION_DESCRIPTIONS[i], GuidedAction.DEFAULT_CHECK_SET_ID);
-                if (i == DEFAULT_OPTION) {
-                    actions.get(actions.size() -1).setChecked(true);
-                }
-            }
-            for (int i = 0; i < OPTION_NAMES.length; i++) {
-                addCheckedAction(actions, CHECKBOX_ID_BASE + i, getActivity(), OPTION_NAMES[i],
-                        OPTION_DESCRIPTIONS[i], GuidedAction.CHECKBOX_CHECK_SET_ID);
-            }
-        }
-
-        @Override
-        public void onCreateButtonActions(List<GuidedAction> actions, Bundle savedInstanceState) {
-            actions.add(new GuidedAction.Builder(getActivity())
-                    .clickAction(GuidedAction.ACTION_ID_CONTINUE)
-                    .build());
-        }
-
-        @Override
-        public void onGuidedActionClicked(GuidedAction action) {
-            if (action.getId() == GuidedAction.ACTION_ID_CONTINUE) {
-                FragmentManager fm = getFragmentManager();
-                FourthStepFragment f = new FourthStepFragment();
-                Bundle arguments = new Bundle();
-                arguments.putLong(FourthStepFragment.EXTRA_OPTION, mSelectedOption);
-                f.setArguments(arguments);
-                GuidedStepSupportFragment.add(fm, f, R.id.lb_guidedstep_host);
-            } else if (action.getCheckSetId() == GuidedAction.DEFAULT_CHECK_SET_ID) {
-                mSelectedOption = action.getId();
-            }
-        }
-
-    }
-
-    public static class FourthStepFragment extends GuidedStepSupportFragment {
-        public static final String EXTRA_OPTION = "extra_option";
-
-        public FourthStepFragment() {
-        }
-
-        public long getOption() {
-            Bundle b = getArguments();
-            if (b == null) return 0;
-            return b.getLong(EXTRA_OPTION, 0);
-        }
-
-        @Override
-        public Guidance onCreateGuidance(Bundle savedInstanceState) {
-            String title = getString(R.string.guidedstep_fourth_title);
-            String breadcrumb = getString(R.string.guidedstep_fourth_breadcrumb);
-            String description = "You chose: " + OPTION_NAMES[(int) getOption()];
-            Drawable icon = getActivity().getResources().getDrawable(R.drawable.ic_main_icon);
-            return new Guidance(title, description, breadcrumb, icon);
-        }
-
-        @Override
-        public void onCreateActions(List<GuidedAction> actions, Bundle savedInstanceState) {
-            actions.add(new GuidedAction.Builder(getActivity())
-                    .clickAction(GuidedAction.ACTION_ID_FINISH)
-                    .description("All Done...")
-                    .build());
-            addAction(actions, BACK, "Start Over", "Let's try this again...");
-        }
-
-        @Override
-        public void onGuidedActionClicked(GuidedAction action) {
-            if (action.getId() == GuidedAction.ACTION_ID_FINISH) {
-                finishGuidedStepSupportFragments();
-            } else if (action.getId() == BACK) {
-                // pop 4, 3, 2
-                popBackStackToGuidedStepSupportFragment(SecondStepFragment.class,
-                        FragmentManager.POP_BACK_STACK_INCLUSIVE);
-            }
-        }
-
-    }
-
-}
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/GuidedStepSupportHalfScreenActivity.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/GuidedStepSupportHalfScreenActivity.java
deleted file mode 100644
index 388a559..0000000
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/GuidedStepSupportHalfScreenActivity.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/* This file is auto-generated from GuidedStepHalfScreenActivity.java.  DO NOT MODIFY. */
-
-/*
- * 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.leanback;
-
-import android.support.v4.app.FragmentActivity;
-import android.support.v4.app.FragmentManager;
-import android.content.Context;
-import android.graphics.drawable.Drawable;
-import android.os.Bundle;
-import android.support.v17.leanback.app.GuidedStepSupportFragment;
-import android.support.v17.leanback.widget.GuidanceStylist;
-import android.support.v17.leanback.widget.GuidanceStylist.Guidance;
-import android.support.v17.leanback.widget.GuidedAction;
-import android.util.Log;
-
-import java.util.List;
-
-/**
- * Activity that showcases different aspects of GuidedStepSupportFragments in half
- * screen mode. This is achieved by setting the theme for this activity
- * to {@code Theme.Example.Leanback.GuidedStep.Half}.
- */
-public class GuidedStepSupportHalfScreenActivity extends FragmentActivity {
-    private static final String TAG = "leanback.GuidedStepSupportHalfScreenActivity";
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        Log.v(TAG, "onCreate");
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.guided_step_activity);
-        GuidedStepSupportFragment.addAsRoot(this, new FirstStepFragment(), R.id.lb_guidedstep_host);
-    }
-
-    public static class FirstStepFragment extends GuidedStepSupportFragment {
-
-       @Override
-        public Guidance onCreateGuidance(Bundle savedInstanceState) {
-            String title = getString(R.string.guidedstep_first_title);
-            String breadcrumb = getString(R.string.guidedstep_first_breadcrumb);
-            String description = getString(R.string.guidedstep_first_description);
-            Drawable icon = getActivity().getResources().getDrawable(R.drawable.ic_main_icon);
-            return new Guidance(title, description, breadcrumb, icon);
-        }
-
-        @Override
-        public void onCreateActions(List<GuidedAction> actions, Bundle savedInstanceState) {
-            Context context = getActivity();
-            actions.add(new GuidedAction.Builder(context)
-                    .clickAction(GuidedAction.ACTION_ID_CONTINUE)
-                    .description("Just do it")
-                    .build());
-            actions.add(new GuidedAction.Builder(context)
-                    .clickAction(GuidedAction.ACTION_ID_CANCEL)
-                    .description("Never mind")
-                    .build());
-        }
-
-        public FirstStepFragment() {
-            setEntranceTransitionType(GuidedStepSupportFragment.SLIDE_FROM_BOTTOM);
-        }
-
-        /**
-         * This fragment could be used by an activity using theme
-         * {@code Theme.Leanback.GuidedStep.Half} or something else (BrowseActivity).
-         * In order to provide a consistent half screen experience under
-         * both scenarios, we override onProvideTheme method.
-         */
-        @Override
-        public int onProvideTheme() {
-            return R.style.Theme_Example_Leanback_GuidedStep_Half;
-        }
-
-        @Override
-        public void onGuidedActionClicked(GuidedAction action) {
-            FragmentManager fm = getFragmentManager();
-            if (action.getId() == GuidedAction.ACTION_ID_CONTINUE) {
-                GuidedStepSupportFragment.add(fm, new SecondStepFragment(), R.id.lb_guidedstep_host);
-            } else if (action.getId() == GuidedAction.ACTION_ID_CANCEL){
-                finishGuidedStepSupportFragments();
-            }
-        }
-    }
-
-    public static class SecondStepFragment extends GuidedStepSupportFragment {
-
-        @Override
-        public int onProvideTheme() {
-            return R.style.Theme_Example_Leanback_GuidedStep_Half;
-        }
-
-        @Override
-        public Guidance onCreateGuidance(Bundle savedInstanceState) {
-            String title = getString(R.string.guidedstep_second_title);
-            String breadcrumb = getString(R.string.guidedstep_second_breadcrumb);
-            String description = getString(R.string.guidedstep_second_description);
-            Drawable icon = getActivity().getResources().getDrawable(R.drawable.ic_main_icon);
-            return new Guidance(title, description, breadcrumb, icon);
-        }
-
-        @Override
-        public void onCreateActions(List<GuidedAction> actions, Bundle savedInstanceState) {
-            Context context = getActivity();
-            actions.add(new GuidedAction.Builder(context)
-                    .clickAction(GuidedAction.ACTION_ID_FINISH)
-                    .description("Done")
-                    .build());
-            actions.add(new GuidedAction.Builder(context)
-                    .clickAction(GuidedAction.ACTION_ID_CANCEL)
-                    .description("Never mind")
-                    .build());
-        }
-
-        @Override
-        public void onCreateButtonActions(List<GuidedAction> actions, Bundle savedInstanceState) {
-            actions.add(new GuidedAction.Builder(getActivity())
-                    .clickAction(GuidedAction.ACTION_ID_CANCEL)
-                    .description("Cancel")
-                    .build());
-        }
-
-        @Override
-        public void onGuidedActionClicked(GuidedAction action) {
-            FragmentManager fm = getFragmentManager();
-            fm.popBackStack();
-        }
-    }
-}
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/HorizontalGridTestActivity.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/HorizontalGridTestActivity.java
deleted file mode 100644
index 59155af..0000000
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/HorizontalGridTestActivity.java
+++ /dev/null
@@ -1,172 +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.leanback;
-
-import android.support.v7.widget.RecyclerView;
-import android.support.v17.leanback.widget.HorizontalGridView;
-import android.support.v17.leanback.widget.OnChildSelectedListener;
-import android.app.Activity;
-import android.content.Context;
-import android.content.Intent;
-import android.graphics.BitmapFactory;
-import android.graphics.Color;
-import android.graphics.drawable.ColorDrawable;
-import android.graphics.drawable.Drawable;
-import android.net.Uri;
-import android.os.Bundle;
-import android.util.Log;
-import android.util.SparseArray;
-import android.view.MotionEvent;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.view.View.OnFocusChangeListener;
-import android.view.ViewGroup;
-import android.widget.ImageView;
-import android.widget.TextView;
-
-import java.io.File;
-
-public class HorizontalGridTestActivity extends Activity {
-    private static final String TAG = "HorizontalGridTestActivity";
-    private static final boolean DEBUG = true;
-    private static final String SELECT_ACTION = "android.test.leanback.widget.SELECT";
-    private static final int NUM_ITEMS = 100;
-    private static final boolean STAGGERED = true;
-
-    private HorizontalGridView mHorizontalGridView;
-    private int mScrollState = RecyclerView.SCROLL_STATE_IDLE;
-
-    private RecyclerView.OnScrollListener mScrollListener = new RecyclerView.OnScrollListener() {
-        @Override
-        public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
-            if (DEBUG) {
-                final String[] stateNames = { "IDLE", "DRAGGING", "SETTLING" };
-                Log.v(TAG, "onScrollStateChanged "
-                        + (newState < stateNames.length ? stateNames[newState] : newState));
-            }
-            mScrollState = newState;
-        }
-    };
-
-    private View createView() {
-        View view = getLayoutInflater().inflate(R.layout.horizontal_grid, null, false);
-        mHorizontalGridView = (HorizontalGridView) view.findViewById(R.id.gridview);
-
-        mHorizontalGridView.setWindowAlignment(HorizontalGridView.WINDOW_ALIGN_BOTH_EDGE);
-        mHorizontalGridView.setWindowAlignmentOffsetPercent(35);
-        mHorizontalGridView.setOnChildSelectedListener(new OnChildSelectedListener() {
-            @Override
-            public void onChildSelected(ViewGroup parent, View view, int position, long id) {
-                if (DEBUG) Log.d(TAG, "onChildSelected position=" + position +  " id="+id);
-            }
-        });
-        return view;
-    }
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        if (DEBUG) Log.v(TAG, "onCreate");
-
-        RecyclerView.Adapter adapter = new MyAdapter();
-
-        View view = createView();
-
-        mHorizontalGridView.setAdapter(new MyAdapter());
-        setContentView(view);
-
-        mHorizontalGridView.setOnScrollListener(mScrollListener);
-    }
-
-    @Override
-    protected void onNewIntent(Intent intent) {
-        if (DEBUG) Log.v(TAG, "onNewIntent " + intent);
-        if (intent.getAction().equals(SELECT_ACTION)) {
-            int position = intent.getIntExtra("SELECT_POSITION", -1);
-            if (position >= 0) {
-                mHorizontalGridView.setSelectedPosition(position);
-            }
-        }
-        super.onNewIntent(intent);
-    }
-
-    private OnFocusChangeListener mItemFocusChangeListener = new OnFocusChangeListener() {
-
-        @Override
-        public void onFocusChange(View v, boolean hasFocus) {
-            if (hasFocus) {
-                v.setBackgroundColor(Color.YELLOW);
-            } else {
-                v.setBackgroundColor(Color.LTGRAY);
-            }
-        }
-    };
-
-    private OnClickListener mItemClickListener = new OnClickListener() {
-        @Override
-        public void onClick(View v) {
-            mHorizontalGridView.getAdapter().notifyDataSetChanged();
-        }
-    };
-
-    class MyAdapter extends RecyclerView.Adapter {
-
-        private int[] mItemLengths;
-
-        MyAdapter() {
-            mItemLengths = new int[NUM_ITEMS];
-            for (int i = 0; i < mItemLengths.length; i++) {
-                mItemLengths[i] = STAGGERED ? (int)(Math.random() * 180) + 180 : 240;
-            }
-        }
-
-        @Override
-        public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
-            if (DEBUG) Log.v(TAG, "createViewHolder " + viewType);
-            TextView textView = new TextView(parent.getContext());
-            textView.setTextColor(Color.BLACK);
-            textView.setFocusable(true);
-            textView.setFocusableInTouchMode(true);
-            textView.setOnFocusChangeListener(mItemFocusChangeListener);
-            textView.setOnClickListener(mItemClickListener);
-            return new ViewHolder(textView);
-        }
-
-        @Override
-        public void onBindViewHolder(RecyclerView.ViewHolder baseHolder, int position) {
-            if (DEBUG) Log.v(TAG, "bindViewHolder " + position + " " + baseHolder);
-            ViewHolder holder = (ViewHolder) baseHolder;
-            ((TextView) holder.itemView).setText("Item "+position);
-            holder.itemView.setBackgroundColor(Color.LTGRAY);
-            holder.itemView.setLayoutParams(new ViewGroup.MarginLayoutParams(mItemLengths[position],
-                    80));
-        }
-
-        @Override
-        public int getItemCount() {
-            return mItemLengths.length;
-        }
-    }
-
-    static class ViewHolder extends RecyclerView.ViewHolder {
-
-        public ViewHolder(View v) {
-            super(v);
-        }
-    }
-}
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/MainActivity.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/MainActivity.java
deleted file mode 100644
index 298ef70..0000000
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/MainActivity.java
+++ /dev/null
@@ -1,134 +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.leanback;
-
-import android.app.Activity;
-import android.content.Intent;
-import android.graphics.drawable.Drawable;
-import android.os.Bundle;
-import android.support.v17.leanback.app.GuidedStepFragment;
-import android.support.v17.leanback.widget.GuidanceStylist.Guidance;
-import android.support.v17.leanback.widget.GuidedAction;
-import android.support.v4.app.ActivityOptionsCompat;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Activity that allows navigation among the demo activities.
- */
-public class MainActivity extends Activity {
-
-    private GuidedStepFragment mGuidedStepFragment;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        mGuidedStepFragment = new StepFragment();
-        GuidedStepFragment.addAsRoot(this, mGuidedStepFragment, android.R.id.content);
-    }
-
-    public static class StepFragment extends GuidedStepFragment {
-
-        @Override
-        public Guidance onCreateGuidance(Bundle savedInstanceState) {
-            String title = getString(R.string.main_title);
-            String breadcrumb = getString(R.string.main_breadcrumb);
-            String description = "";
-            Drawable icon = getActivity().getResources().getDrawable(R.drawable.ic_main_icon);
-            return new Guidance(title, description, breadcrumb, icon);
-        }
-
-        @Override
-        public void onCreateActions(List<GuidedAction> actions, Bundle savedInstanceState) {
-            addAction(actions, BrowseActivity.class, R.string.browse, R.string.browse_description);
-            addAction(actions, BrowseSupportActivity.class, R.string.browse_support,
-                    R.string.browse_support_description);
-            addAction(actions, SearchActivity.class, R.string.search, R.string.search_description);
-            addAction(actions, SearchSupportActivity.class, R.string.search_support, R.string.search_support_description);
-            addAction(actions, DetailsActivity.class, R.string.details, R.string.details_description);
-            actions.get(actions.size()-1).getIntent().putExtra(DetailsActivity.EXTRA_ITEM,
-                    new PhotoItem("Hello world", R.drawable.gallery_photo_1));
-            addAction(actions, DetailsSupportActivity.class, R.string.details_support, R.string.details_support_description);
-            actions.get(actions.size()-1).getIntent().putExtra(DetailsSupportActivity.EXTRA_ITEM,
-                    new PhotoItem("Hello world", R.drawable.gallery_photo_1));
-            addAction(actions, SearchDetailsActivity.class, R.string.search_details,
-                    R.string.search_details_description);
-            actions.get(actions.size()-1).getIntent().putExtra(SearchDetailsActivity.EXTRA_ITEM,
-                    new PhotoItem("Hello world", R.drawable.gallery_photo_1));
-            addAction(actions, SearchDetailsSupportActivity.class, R.string.search_details_support,
-                    R.string.search_details_support_description);
-            actions.get(actions.size()-1).getIntent().putExtra(SearchDetailsSupportActivity.EXTRA_ITEM,
-                    new PhotoItem("Hello world", R.drawable.gallery_photo_1));
-            addAction(actions, VerticalGridActivity.class, R.string.vgrid,
-                    R.string.vgrid_description);
-            addAction(actions, VerticalGridSupportActivity.class, R.string.vgrid_support,
-                    R.string.vgrid_support_description);
-            addAction(actions, GuidedStepActivity.class, R.string.guidedstep,
-                    R.string.guidedstep_description);
-            addAction(actions, GuidedStepSupportActivity.class, R.string.guidedstepsupport,
-                    R.string.guidedstepsupport_description);
-            addAction(actions, GuidedStepHalfScreenActivity.class, R.string.guidedstephalfscreen,
-                    R.string.guidedstep_description);
-            addAction(actions, GuidedStepSupportHalfScreenActivity.class,
-                R.string.guidedstepsupporthalfscreen,
-                R.string.guidedstep_description);
-            addAction(actions, BrowseErrorActivity.class, R.string.browseerror,
-                    R.string.browseerror_description);
-            addAction(actions, BrowseErrorSupportActivity.class, R.string.browseerror_support,
-                    R.string.browseerror_support_description);
-            addAction(actions, PlaybackOverlayActivity.class, R.string.playback,
-                    R.string.playback_description);
-            addAction(actions, PlaybackOverlaySupportActivity.class, R.string.playback_support,
-                    R.string.playback_support_description);
-            addAction(actions, HorizontalGridTestActivity.class, R.string.hgrid,
-                    R.string.hgrid_description);
-            addAction(actions, DetailsPresenterSelectionActivity.class,
-                    R.string.detail_presenter_options,
-                    R.string.detail_presenter_options_description);
-            addAction(actions, OnboardingActivity.class,
-                    R.string.onboarding,
-                    R.string.onboarding_description);
-            addAction(actions, OnboardingSupportActivity.class,
-                    R.string.onboarding_support,
-                    R.string.onboarding_description);
-        }
-
-        private void addAction(List<GuidedAction> actions, Class cls, int titleRes, int descRes) {
-            actions.add(new GuidedAction.Builder()
-                    .intent(new Intent(getActivity(), cls))
-                    .title(getString(titleRes))
-                    .description(getString(descRes))
-                    .build());
-        }
-
-        @Override
-        public void onGuidedActionClicked(GuidedAction action) {
-            Intent intent = action.getIntent();
-            if (intent != null) {
-                Bundle bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(getActivity())
-                        .toBundle();
-                startActivity(intent, bundle);
-            }
-        }
-
-    }
-}
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/NewDetailsFragment.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/NewDetailsFragment.java
deleted file mode 100644
index 4d04502..0000000
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/NewDetailsFragment.java
+++ /dev/null
@@ -1,253 +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.leanback;
-
-import android.app.Activity;
-import android.content.Intent;
-import android.content.res.Resources;
-import android.os.Bundle;
-import android.os.Handler;
-import android.support.v4.app.ActivityOptionsCompat;
-import android.support.v17.leanback.widget.Action;
-import android.support.v17.leanback.widget.ArrayObjectAdapter;
-import android.support.v17.leanback.widget.ClassPresenterSelector;
-import android.support.v17.leanback.widget.DetailsOverviewRow;
-import android.support.v17.leanback.widget.FullWidthDetailsOverviewRowPresenter;
-import android.support.v17.leanback.widget.FullWidthDetailsOverviewSharedElementHelper;
-import android.support.v17.leanback.widget.HeaderItem;
-import android.support.v17.leanback.widget.ImageCardView;
-import android.support.v17.leanback.widget.ListRow;
-import android.support.v17.leanback.widget.ListRowPresenter;
-import android.support.v17.leanback.widget.OnActionClickedListener;
-import android.support.v17.leanback.widget.OnItemViewClickedListener;
-import android.support.v17.leanback.widget.OnItemViewSelectedListener;
-import android.support.v17.leanback.widget.Presenter;
-import android.support.v17.leanback.widget.Row;
-import android.support.v17.leanback.widget.RowPresenter;
-import android.support.v17.leanback.widget.SparseArrayObjectAdapter;
-import android.util.Log;
-import android.view.View;
-import android.widget.Toast;
-
-public class NewDetailsFragment extends android.support.v17.leanback.app.DetailsFragment {
-    private static final String TAG = "leanback.DetailsFragment";
-    private static final String ITEM = "item";
-
-    private static final int NUM_ROWS = 3;
-    private ArrayObjectAdapter mRowsAdapter;
-    private PhotoItem mPhotoItem;
-    final CardPresenter cardPresenter = new CardPresenter();
-    private BackgroundHelper mBackgroundHelper = new BackgroundHelper();
-
-    private static final int ACTION_PLAY = 1;
-    private static final int ACTION_RENT = 2;
-    private static final int ACTION_BUY = 3;
-
-    private boolean TEST_OVERVIEW_ROW_ON_SECOND;
-    private boolean TEST_SHARED_ELEMENT_TRANSITION;
-    private boolean TEST_ENTRANCE_TRANSITION;
-
-    private static final long TIME_TO_LOAD_OVERVIEW_ROW_MS = 1000;
-    private static final long TIME_TO_LOAD_RELATED_ROWS_MS = 2000;
-
-    private Action mActionPlay;
-    private Action mActionRent;
-    private Action mActionBuy;
-
-    private FullWidthDetailsOverviewSharedElementHelper mHelper;
-
-    private void initializeTest() {
-        TEST_SHARED_ELEMENT_TRANSITION = null != getActivity().getWindow().getSharedElementEnterTransition();
-        TEST_OVERVIEW_ROW_ON_SECOND = !TEST_SHARED_ELEMENT_TRANSITION;
-        TEST_ENTRANCE_TRANSITION = true;
-    }
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        Log.i(TAG, "onCreate");
-        super.onCreate(savedInstanceState);
-        initializeTest();
-
-        setBadgeDrawable(getActivity().getResources().getDrawable(R.drawable.ic_title));
-        setTitle("Leanback Sample App");
-        setOnSearchClickedListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View view) {
-                Intent intent = new Intent(getActivity(), SearchActivity.class);
-                startActivity(intent);
-            }
-        });
-
-        mActionPlay = new Action(ACTION_PLAY, "Play");
-        mActionRent = new Action(ACTION_RENT, "Rent", "$3.99",
-                getResources().getDrawable(R.drawable.ic_action_a));
-        mActionBuy = new Action(ACTION_BUY, "Buy $9.99");
-
-        ClassPresenterSelector ps = new ClassPresenterSelector();
-        FullWidthDetailsOverviewRowPresenter dorPresenter =
-                new FullWidthDetailsOverviewRowPresenter(new DetailsDescriptionPresenter());
-        dorPresenter.setOnActionClickedListener(new OnActionClickedListener() {
-            @Override
-            public void onActionClicked(Action action) {
-                Toast.makeText(getActivity(), action.toString(), Toast.LENGTH_SHORT).show();
-                int indexOfOverviewRow = TEST_OVERVIEW_ROW_ON_SECOND ? 1 : 0;
-                DetailsOverviewRow dor = (DetailsOverviewRow) mRowsAdapter.get(indexOfOverviewRow);
-                if (action.getId() == ACTION_BUY) {
-                    // on the UI thread, we can modify actions adapter directly
-                    SparseArrayObjectAdapter actions = (SparseArrayObjectAdapter)
-                            dor.getActionsAdapter();
-                    actions.set(ACTION_PLAY, mActionPlay);
-                    actions.clear(ACTION_RENT);
-                    actions.clear(ACTION_BUY);
-                    dor.setItem(mPhotoItem.getTitle() + "(Owned)");
-                    dor.setImageDrawable(getResources().getDrawable(R.drawable.details_img_16x9));
-                } else if (action.getId() == ACTION_RENT) {
-                    // on the UI thread, we can modify actions adapter directly
-                    SparseArrayObjectAdapter actions = (SparseArrayObjectAdapter)
-                            dor.getActionsAdapter();
-                    actions.set(ACTION_PLAY, mActionPlay);
-                    actions.clear(ACTION_RENT);
-                    dor.setItem(mPhotoItem.getTitle() + "(Rented)");
-                } else if (action.getId() == ACTION_PLAY) {
-                    Intent intent = new Intent(getActivity(), PlaybackOverlayActivity.class);
-                    getActivity().startActivity(intent);
-                }
-            }
-        });
-        if (TEST_OVERVIEW_ROW_ON_SECOND) {
-            dorPresenter.setInitialState(FullWidthDetailsOverviewRowPresenter.STATE_SMALL);
-        }
-
-        ps.addClassPresenter(DetailsOverviewRow.class, dorPresenter);
-        ps.addClassPresenter(ListRow.class, new ListRowPresenter());
-
-        mRowsAdapter = new ArrayObjectAdapter(ps);
-
-        PhotoItem item = (PhotoItem) (savedInstanceState != null ?
-                savedInstanceState.getParcelable(ITEM) : null);
-        if (item != null) {
-            setItem(item);
-        }
-
-        setOnItemViewClickedListener(new OnItemViewClickedListener() {
-            @Override
-            public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
-                    RowPresenter.ViewHolder rowViewHolder, Row row) {
-                Log.i(TAG, "onItemClicked: " + item + " row " + row);
-                if (item instanceof PhotoItem){
-                    Intent intent = new Intent(getActivity(), DetailsActivity.class);
-                    intent.putExtra(DetailsActivity.EXTRA_ITEM, (PhotoItem) item);
-
-                    Bundle bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(
-                            getActivity(),
-                            ((ImageCardView)itemViewHolder.view).getMainImageView(),
-                            DetailsActivity.SHARED_ELEMENT_NAME).toBundle();
-                    getActivity().startActivity(intent, bundle);
-                }
-            }
-        });
-        setOnItemViewSelectedListener(new OnItemViewSelectedListener() {
-            @Override
-            public void onItemSelected(Presenter.ViewHolder itemViewHolder, Object item,
-                    RowPresenter.ViewHolder rowViewHolder, Row row) {
-                Log.i(TAG, "onItemSelected: " + item + " row " + row);
-            }
-        });
-
-        if (TEST_SHARED_ELEMENT_TRANSITION) {
-            mHelper = new FullWidthDetailsOverviewSharedElementHelper();
-            mHelper.setSharedElementEnterTransition(getActivity(),
-                    DetailsActivity.SHARED_ELEMENT_NAME);
-            dorPresenter.setListener(mHelper);
-            dorPresenter.setParticipatingEntranceTransition(false);
-        } else {
-            dorPresenter.setParticipatingEntranceTransition(true);
-        }
-        if (TEST_ENTRANCE_TRANSITION) {
-            // don't run entrance transition if Activity is restored.
-            if (savedInstanceState == null) {
-                prepareEntranceTransition();
-            }
-        }
-    }
-
-    @Override
-    public void onSaveInstanceState(Bundle outState) {
-        super.onSaveInstanceState(outState);
-        outState.putParcelable(ITEM, mPhotoItem);
-    }
-
-    public void setItem(PhotoItem photoItem) {
-        mPhotoItem = photoItem;
-
-        mRowsAdapter.clear();
-        new Handler().postDelayed(new Runnable() {
-            public void run() {
-                if (TEST_OVERVIEW_ROW_ON_SECOND) {
-                    ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter(cardPresenter);
-                    listRowAdapter.add(new PhotoItem("Hello world", R.drawable.gallery_photo_1));
-                    listRowAdapter.add(new PhotoItem("This is a test", R.drawable.gallery_photo_2));
-                    listRowAdapter.add(new PhotoItem("Android TV", R.drawable.gallery_photo_3));
-                    listRowAdapter.add(new PhotoItem("Leanback", R.drawable.gallery_photo_4));
-                    HeaderItem header = new HeaderItem(0, "Search Result");
-                    mRowsAdapter.add(0, new ListRow(header, listRowAdapter));
-                }
-
-                Resources res = getActivity().getResources();
-                DetailsOverviewRow dor = new DetailsOverviewRow(mPhotoItem.getTitle());
-                dor.setImageDrawable(res.getDrawable(mPhotoItem.getImageResourceId()));
-                SparseArrayObjectAdapter adapter = new SparseArrayObjectAdapter();
-                adapter.set(ACTION_RENT, mActionRent);
-                adapter.set(ACTION_BUY, mActionBuy);
-                dor.setActionsAdapter(adapter);
-                int indexOfOverviewRow = TEST_OVERVIEW_ROW_ON_SECOND ? 1 : 0;
-                mRowsAdapter.add(indexOfOverviewRow, dor);
-                setSelectedPosition(0, true);
-                if (TEST_SHARED_ELEMENT_TRANSITION) {
-                    if (mHelper != null && !mHelper.getAutoStartSharedElementTransition()) {
-                        mHelper.startPostponedEnterTransition();
-                    }
-                }
-            }
-        }, TIME_TO_LOAD_OVERVIEW_ROW_MS);
-
-        new Handler().postDelayed(new Runnable() {
-            public void run() {
-                for (int i = 0; i < NUM_ROWS; ++i) {
-                    ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter(cardPresenter);
-                    listRowAdapter.add(new PhotoItem("Hello world", R.drawable.gallery_photo_1));
-                    listRowAdapter.add(new PhotoItem("This is a test", R.drawable.gallery_photo_2));
-                    listRowAdapter.add(new PhotoItem("Android TV", R.drawable.gallery_photo_3));
-                    listRowAdapter.add(new PhotoItem("Leanback", R.drawable.gallery_photo_4));
-                    HeaderItem header = new HeaderItem(i, "Row " + i);
-                    mRowsAdapter.add(new ListRow(header, listRowAdapter));
-                }
-                if (TEST_ENTRANCE_TRANSITION) {
-                    startEntranceTransition();
-                }
-            }
-        }, TIME_TO_LOAD_RELATED_ROWS_MS);
-        setAdapter(mRowsAdapter);
-    }
-
-    @Override
-    public void onStart() {
-        super.onStart();
-        if (mPhotoItem != null) {
-            mBackgroundHelper.setBackground(
-                    getActivity(), mPhotoItem.getImageResourceId());
-        }
-    }
-
-}
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/NewDetailsSupportFragment.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/NewDetailsSupportFragment.java
deleted file mode 100644
index 8a43d8b..0000000
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/NewDetailsSupportFragment.java
+++ /dev/null
@@ -1,255 +0,0 @@
-/* This file is auto-generated from NewDetailsFragment.java.  DO NOT MODIFY. */
-
-/*
- * 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.leanback;
-
-import android.support.v4.app.FragmentActivity;
-import android.content.Intent;
-import android.content.res.Resources;
-import android.os.Bundle;
-import android.os.Handler;
-import android.support.v4.app.ActivityOptionsCompat;
-import android.support.v17.leanback.widget.Action;
-import android.support.v17.leanback.widget.ArrayObjectAdapter;
-import android.support.v17.leanback.widget.ClassPresenterSelector;
-import android.support.v17.leanback.widget.DetailsOverviewRow;
-import android.support.v17.leanback.widget.FullWidthDetailsOverviewRowPresenter;
-import android.support.v17.leanback.widget.FullWidthDetailsOverviewSharedElementHelper;
-import android.support.v17.leanback.widget.HeaderItem;
-import android.support.v17.leanback.widget.ImageCardView;
-import android.support.v17.leanback.widget.ListRow;
-import android.support.v17.leanback.widget.ListRowPresenter;
-import android.support.v17.leanback.widget.OnActionClickedListener;
-import android.support.v17.leanback.widget.OnItemViewClickedListener;
-import android.support.v17.leanback.widget.OnItemViewSelectedListener;
-import android.support.v17.leanback.widget.Presenter;
-import android.support.v17.leanback.widget.Row;
-import android.support.v17.leanback.widget.RowPresenter;
-import android.support.v17.leanback.widget.SparseArrayObjectAdapter;
-import android.util.Log;
-import android.view.View;
-import android.widget.Toast;
-
-public class NewDetailsSupportFragment extends android.support.v17.leanback.app.DetailsSupportFragment {
-    private static final String TAG = "leanback.DetailsSupportFragment";
-    private static final String ITEM = "item";
-
-    private static final int NUM_ROWS = 3;
-    private ArrayObjectAdapter mRowsAdapter;
-    private PhotoItem mPhotoItem;
-    final CardPresenter cardPresenter = new CardPresenter();
-    private BackgroundHelper mBackgroundHelper = new BackgroundHelper();
-
-    private static final int ACTION_PLAY = 1;
-    private static final int ACTION_RENT = 2;
-    private static final int ACTION_BUY = 3;
-
-    private boolean TEST_OVERVIEW_ROW_ON_SECOND;
-    private boolean TEST_SHARED_ELEMENT_TRANSITION;
-    private boolean TEST_ENTRANCE_TRANSITION;
-
-    private static final long TIME_TO_LOAD_OVERVIEW_ROW_MS = 1000;
-    private static final long TIME_TO_LOAD_RELATED_ROWS_MS = 2000;
-
-    private Action mActionPlay;
-    private Action mActionRent;
-    private Action mActionBuy;
-
-    private FullWidthDetailsOverviewSharedElementHelper mHelper;
-
-    private void initializeTest() {
-        TEST_SHARED_ELEMENT_TRANSITION = null != getActivity().getWindow().getSharedElementEnterTransition();
-        TEST_OVERVIEW_ROW_ON_SECOND = !TEST_SHARED_ELEMENT_TRANSITION;
-        TEST_ENTRANCE_TRANSITION = true;
-    }
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        Log.i(TAG, "onCreate");
-        super.onCreate(savedInstanceState);
-        initializeTest();
-
-        setBadgeDrawable(getActivity().getResources().getDrawable(R.drawable.ic_title));
-        setTitle("Leanback Sample App");
-        setOnSearchClickedListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View view) {
-                Intent intent = new Intent(getActivity(), SearchSupportActivity.class);
-                startActivity(intent);
-            }
-        });
-
-        mActionPlay = new Action(ACTION_PLAY, "Play");
-        mActionRent = new Action(ACTION_RENT, "Rent", "$3.99",
-                getResources().getDrawable(R.drawable.ic_action_a));
-        mActionBuy = new Action(ACTION_BUY, "Buy $9.99");
-
-        ClassPresenterSelector ps = new ClassPresenterSelector();
-        FullWidthDetailsOverviewRowPresenter dorPresenter =
-                new FullWidthDetailsOverviewRowPresenter(new DetailsDescriptionPresenter());
-        dorPresenter.setOnActionClickedListener(new OnActionClickedListener() {
-            @Override
-            public void onActionClicked(Action action) {
-                Toast.makeText(getActivity(), action.toString(), Toast.LENGTH_SHORT).show();
-                int indexOfOverviewRow = TEST_OVERVIEW_ROW_ON_SECOND ? 1 : 0;
-                DetailsOverviewRow dor = (DetailsOverviewRow) mRowsAdapter.get(indexOfOverviewRow);
-                if (action.getId() == ACTION_BUY) {
-                    // on the UI thread, we can modify actions adapter directly
-                    SparseArrayObjectAdapter actions = (SparseArrayObjectAdapter)
-                            dor.getActionsAdapter();
-                    actions.set(ACTION_PLAY, mActionPlay);
-                    actions.clear(ACTION_RENT);
-                    actions.clear(ACTION_BUY);
-                    dor.setItem(mPhotoItem.getTitle() + "(Owned)");
-                    dor.setImageDrawable(getResources().getDrawable(R.drawable.details_img_16x9));
-                } else if (action.getId() == ACTION_RENT) {
-                    // on the UI thread, we can modify actions adapter directly
-                    SparseArrayObjectAdapter actions = (SparseArrayObjectAdapter)
-                            dor.getActionsAdapter();
-                    actions.set(ACTION_PLAY, mActionPlay);
-                    actions.clear(ACTION_RENT);
-                    dor.setItem(mPhotoItem.getTitle() + "(Rented)");
-                } else if (action.getId() == ACTION_PLAY) {
-                    Intent intent = new Intent(getActivity(), PlaybackOverlaySupportActivity.class);
-                    getActivity().startActivity(intent);
-                }
-            }
-        });
-        if (TEST_OVERVIEW_ROW_ON_SECOND) {
-            dorPresenter.setInitialState(FullWidthDetailsOverviewRowPresenter.STATE_SMALL);
-        }
-
-        ps.addClassPresenter(DetailsOverviewRow.class, dorPresenter);
-        ps.addClassPresenter(ListRow.class, new ListRowPresenter());
-
-        mRowsAdapter = new ArrayObjectAdapter(ps);
-
-        PhotoItem item = (PhotoItem) (savedInstanceState != null ?
-                savedInstanceState.getParcelable(ITEM) : null);
-        if (item != null) {
-            setItem(item);
-        }
-
-        setOnItemViewClickedListener(new OnItemViewClickedListener() {
-            @Override
-            public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
-                    RowPresenter.ViewHolder rowViewHolder, Row row) {
-                Log.i(TAG, "onItemClicked: " + item + " row " + row);
-                if (item instanceof PhotoItem){
-                    Intent intent = new Intent(getActivity(), DetailsSupportActivity.class);
-                    intent.putExtra(DetailsSupportActivity.EXTRA_ITEM, (PhotoItem) item);
-
-                    Bundle bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(
-                            getActivity(),
-                            ((ImageCardView)itemViewHolder.view).getMainImageView(),
-                            DetailsSupportActivity.SHARED_ELEMENT_NAME).toBundle();
-                    getActivity().startActivity(intent, bundle);
-                }
-            }
-        });
-        setOnItemViewSelectedListener(new OnItemViewSelectedListener() {
-            @Override
-            public void onItemSelected(Presenter.ViewHolder itemViewHolder, Object item,
-                    RowPresenter.ViewHolder rowViewHolder, Row row) {
-                Log.i(TAG, "onItemSelected: " + item + " row " + row);
-            }
-        });
-
-        if (TEST_SHARED_ELEMENT_TRANSITION) {
-            mHelper = new FullWidthDetailsOverviewSharedElementHelper();
-            mHelper.setSharedElementEnterTransition(getActivity(),
-                    DetailsSupportActivity.SHARED_ELEMENT_NAME);
-            dorPresenter.setListener(mHelper);
-            dorPresenter.setParticipatingEntranceTransition(false);
-        } else {
-            dorPresenter.setParticipatingEntranceTransition(true);
-        }
-        if (TEST_ENTRANCE_TRANSITION) {
-            // don't run entrance transition if Activity is restored.
-            if (savedInstanceState == null) {
-                prepareEntranceTransition();
-            }
-        }
-    }
-
-    @Override
-    public void onSaveInstanceState(Bundle outState) {
-        super.onSaveInstanceState(outState);
-        outState.putParcelable(ITEM, mPhotoItem);
-    }
-
-    public void setItem(PhotoItem photoItem) {
-        mPhotoItem = photoItem;
-
-        mRowsAdapter.clear();
-        new Handler().postDelayed(new Runnable() {
-            public void run() {
-                if (TEST_OVERVIEW_ROW_ON_SECOND) {
-                    ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter(cardPresenter);
-                    listRowAdapter.add(new PhotoItem("Hello world", R.drawable.gallery_photo_1));
-                    listRowAdapter.add(new PhotoItem("This is a test", R.drawable.gallery_photo_2));
-                    listRowAdapter.add(new PhotoItem("Android TV", R.drawable.gallery_photo_3));
-                    listRowAdapter.add(new PhotoItem("Leanback", R.drawable.gallery_photo_4));
-                    HeaderItem header = new HeaderItem(0, "Search Result");
-                    mRowsAdapter.add(0, new ListRow(header, listRowAdapter));
-                }
-
-                Resources res = getActivity().getResources();
-                DetailsOverviewRow dor = new DetailsOverviewRow(mPhotoItem.getTitle());
-                dor.setImageDrawable(res.getDrawable(mPhotoItem.getImageResourceId()));
-                SparseArrayObjectAdapter adapter = new SparseArrayObjectAdapter();
-                adapter.set(ACTION_RENT, mActionRent);
-                adapter.set(ACTION_BUY, mActionBuy);
-                dor.setActionsAdapter(adapter);
-                int indexOfOverviewRow = TEST_OVERVIEW_ROW_ON_SECOND ? 1 : 0;
-                mRowsAdapter.add(indexOfOverviewRow, dor);
-                setSelectedPosition(0, true);
-                if (TEST_SHARED_ELEMENT_TRANSITION) {
-                    if (mHelper != null && !mHelper.getAutoStartSharedElementTransition()) {
-                        mHelper.startPostponedEnterTransition();
-                    }
-                }
-            }
-        }, TIME_TO_LOAD_OVERVIEW_ROW_MS);
-
-        new Handler().postDelayed(new Runnable() {
-            public void run() {
-                for (int i = 0; i < NUM_ROWS; ++i) {
-                    ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter(cardPresenter);
-                    listRowAdapter.add(new PhotoItem("Hello world", R.drawable.gallery_photo_1));
-                    listRowAdapter.add(new PhotoItem("This is a test", R.drawable.gallery_photo_2));
-                    listRowAdapter.add(new PhotoItem("Android TV", R.drawable.gallery_photo_3));
-                    listRowAdapter.add(new PhotoItem("Leanback", R.drawable.gallery_photo_4));
-                    HeaderItem header = new HeaderItem(i, "Row " + i);
-                    mRowsAdapter.add(new ListRow(header, listRowAdapter));
-                }
-                if (TEST_ENTRANCE_TRANSITION) {
-                    startEntranceTransition();
-                }
-            }
-        }, TIME_TO_LOAD_RELATED_ROWS_MS);
-        setAdapter(mRowsAdapter);
-    }
-
-    @Override
-    public void onStart() {
-        super.onStart();
-        if (mPhotoItem != null) {
-            mBackgroundHelper.setBackground(
-                    getActivity(), mPhotoItem.getImageResourceId());
-        }
-    }
-
-}
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/OnboardingActivity.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/OnboardingActivity.java
deleted file mode 100644
index 2fe9bb9..0000000
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/OnboardingActivity.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT 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.leanback;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.view.ViewTreeObserver;
-
-public class OnboardingActivity extends Activity {
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.onboarding);
-    }
-}
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/OnboardingDemoFragment.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/OnboardingDemoFragment.java
deleted file mode 100644
index 5868c26..0000000
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/OnboardingDemoFragment.java
+++ /dev/null
@@ -1,155 +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.leanback;
-
-import android.animation.Animator;
-import android.animation.AnimatorListenerAdapter;
-import android.animation.AnimatorSet;
-import android.animation.ObjectAnimator;
-import android.graphics.drawable.AnimationDrawable;
-import android.support.v17.leanback.app.OnboardingFragment;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.ImageView;
-
-import java.util.ArrayList;
-
-public class OnboardingDemoFragment extends OnboardingFragment {
-    private static final long ANIMATION_DURATION = 1000;
-
-    private static final int[] CONTENT_BACKGROUNDS = {
-            R.drawable.tv_bg,
-            R.drawable.gallery_photo_6,
-            R.drawable.gallery_photo_8
-    };
-
-    private static final int[] CONTENT_ANIMATIONS = {
-            R.drawable.tv_content,
-            android.R.drawable.stat_sys_download,
-            android.R.drawable.ic_popup_sync
-    };
-
-    private String[] mTitles;
-    private String[] mDescriptions;
-
-    private View mBackgroundView;
-    private View mContentView;
-    private ImageView mContentBackgroundView;
-    private ImageView mContentAnimationView;
-
-    private Animator mContentAnimator;
-
-    @Override
-    public void onAttach(android.app.Activity activity) {
-        super.onAttach(activity);
-        mTitles = getResources().getStringArray(R.array.onboarding_page_titles);
-        mDescriptions = getResources().getStringArray(R.array.onboarding_page_descriptions);
-        setLogoResourceId(R.drawable.ic_launcher);
-    }
-
-    @Override
-    protected int getPageCount() {
-        return mTitles.length;
-    }
-
-    @Override
-    protected CharSequence getPageTitle(int i) {
-        return mTitles[i];
-    }
-
-    @Override
-    protected CharSequence getPageDescription(int i) {
-        return mDescriptions[i];
-    }
-
-    @Override
-    protected View onCreateBackgroundView(LayoutInflater layoutInflater, ViewGroup viewGroup) {
-        mBackgroundView = layoutInflater.inflate(R.layout.onboarding_image, viewGroup, false);
-        return mBackgroundView;
-    }
-
-    @Override
-    protected View onCreateContentView(LayoutInflater layoutInflater, ViewGroup viewGroup) {
-        mContentView = layoutInflater.inflate(R.layout.onboarding_content, viewGroup, false);
-        mContentBackgroundView = (ImageView) mContentView.findViewById(R.id.background_image);
-        mContentAnimationView = (ImageView) mContentView.findViewById(R.id.animation_image);
-        return mContentView;
-    }
-
-    @Override
-    protected View onCreateForegroundView(LayoutInflater layoutInflater, ViewGroup viewGroup) {
-        return null;
-    }
-
-    @Override
-    protected Animator onCreateEnterAnimation() {
-        ArrayList<Animator> animators = new ArrayList<>();
-        animators.add(createFadeInAnimator(mBackgroundView));
-        mContentBackgroundView.setImageResource(CONTENT_BACKGROUNDS[0]);
-        mContentAnimationView.setImageResource(CONTENT_ANIMATIONS[0]);
-        mContentAnimator = createFadeInAnimator(mContentView);
-        animators.add(mContentAnimator);
-        AnimatorSet set = new AnimatorSet();
-        set.playTogether(animators);
-        set.addListener(new AnimatorListenerAdapter() {
-            @Override
-            public void onAnimationEnd(Animator animation) {
-                ((AnimationDrawable) mContentAnimationView.getDrawable()).start();
-            }
-        });
-        return set;
-    }
-
-    @Override
-    protected void onPageChanged(final int newPage, int previousPage) {
-        if (mContentAnimator != null) {
-            mContentAnimator.cancel();
-        }
-        ((AnimationDrawable) mContentAnimationView.getDrawable()).stop();
-        ArrayList<Animator> animators = new ArrayList<>();
-        Animator fadeOut = createFadeOutAnimator(mContentView);
-        fadeOut.addListener(new AnimatorListenerAdapter() {
-            @Override
-            public void onAnimationEnd(Animator animation) {
-                mContentBackgroundView.setImageResource(CONTENT_BACKGROUNDS[newPage]);
-                mContentAnimationView.setImageResource(CONTENT_ANIMATIONS[newPage]);
-            }
-        });
-        Animator fadeIn = createFadeInAnimator(mContentView);
-        fadeIn.addListener(new AnimatorListenerAdapter() {
-            @Override
-            public void onAnimationEnd(Animator animation) {
-                ((AnimationDrawable) mContentAnimationView.getDrawable()).start();
-            }
-        });
-        AnimatorSet set = new AnimatorSet();
-        set.playSequentially(fadeOut, fadeIn);
-        set.start();
-        mContentAnimator = set;
-    }
-
-    private Animator createFadeInAnimator(View view) {
-        return ObjectAnimator.ofFloat(view, View.ALPHA, 0.0f, 1.0f).setDuration(ANIMATION_DURATION);
-    }
-
-    private Animator createFadeOutAnimator(View view) {
-        return ObjectAnimator.ofFloat(view, View.ALPHA, 1.0f, 0.0f).setDuration(ANIMATION_DURATION);
-    }
-
-    @Override
-    protected void onFinishFragment() {
-        getActivity().finish();
-    }
-}
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/OnboardingDemoSupportFragment.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/OnboardingDemoSupportFragment.java
deleted file mode 100644
index 32f38f3..0000000
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/OnboardingDemoSupportFragment.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/* This file is auto-generated from OnboardingDemoFragment.java.  DO NOT MODIFY. */
-
-/*
- * 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.leanback;
-
-import android.animation.Animator;
-import android.animation.AnimatorListenerAdapter;
-import android.animation.AnimatorSet;
-import android.animation.ObjectAnimator;
-import android.graphics.drawable.AnimationDrawable;
-import android.support.v17.leanback.app.OnboardingSupportFragment;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.ImageView;
-
-import java.util.ArrayList;
-
-public class OnboardingDemoSupportFragment extends OnboardingSupportFragment {
-    private static final long ANIMATION_DURATION = 1000;
-
-    private static final int[] CONTENT_BACKGROUNDS = {
-            R.drawable.tv_bg,
-            R.drawable.gallery_photo_6,
-            R.drawable.gallery_photo_8
-    };
-
-    private static final int[] CONTENT_ANIMATIONS = {
-            R.drawable.tv_content,
-            android.R.drawable.stat_sys_download,
-            android.R.drawable.ic_popup_sync
-    };
-
-    private String[] mTitles;
-    private String[] mDescriptions;
-
-    private View mBackgroundView;
-    private View mContentView;
-    private ImageView mContentBackgroundView;
-    private ImageView mContentAnimationView;
-
-    private Animator mContentAnimator;
-
-    @Override
-    public void onAttach(android.app.Activity activity) {
-        super.onAttach(activity);
-        mTitles = getResources().getStringArray(R.array.onboarding_page_titles);
-        mDescriptions = getResources().getStringArray(R.array.onboarding_page_descriptions);
-        setLogoResourceId(R.drawable.ic_launcher);
-    }
-
-    @Override
-    protected int getPageCount() {
-        return mTitles.length;
-    }
-
-    @Override
-    protected CharSequence getPageTitle(int i) {
-        return mTitles[i];
-    }
-
-    @Override
-    protected CharSequence getPageDescription(int i) {
-        return mDescriptions[i];
-    }
-
-    @Override
-    protected View onCreateBackgroundView(LayoutInflater layoutInflater, ViewGroup viewGroup) {
-        mBackgroundView = layoutInflater.inflate(R.layout.onboarding_image, viewGroup, false);
-        return mBackgroundView;
-    }
-
-    @Override
-    protected View onCreateContentView(LayoutInflater layoutInflater, ViewGroup viewGroup) {
-        mContentView = layoutInflater.inflate(R.layout.onboarding_content, viewGroup, false);
-        mContentBackgroundView = (ImageView) mContentView.findViewById(R.id.background_image);
-        mContentAnimationView = (ImageView) mContentView.findViewById(R.id.animation_image);
-        return mContentView;
-    }
-
-    @Override
-    protected View onCreateForegroundView(LayoutInflater layoutInflater, ViewGroup viewGroup) {
-        return null;
-    }
-
-    @Override
-    protected Animator onCreateEnterAnimation() {
-        ArrayList<Animator> animators = new ArrayList<>();
-        animators.add(createFadeInAnimator(mBackgroundView));
-        mContentBackgroundView.setImageResource(CONTENT_BACKGROUNDS[0]);
-        mContentAnimationView.setImageResource(CONTENT_ANIMATIONS[0]);
-        mContentAnimator = createFadeInAnimator(mContentView);
-        animators.add(mContentAnimator);
-        AnimatorSet set = new AnimatorSet();
-        set.playTogether(animators);
-        set.addListener(new AnimatorListenerAdapter() {
-            @Override
-            public void onAnimationEnd(Animator animation) {
-                ((AnimationDrawable) mContentAnimationView.getDrawable()).start();
-            }
-        });
-        return set;
-    }
-
-    @Override
-    protected void onPageChanged(final int newPage, int previousPage) {
-        if (mContentAnimator != null) {
-            mContentAnimator.cancel();
-        }
-        ((AnimationDrawable) mContentAnimationView.getDrawable()).stop();
-        ArrayList<Animator> animators = new ArrayList<>();
-        Animator fadeOut = createFadeOutAnimator(mContentView);
-        fadeOut.addListener(new AnimatorListenerAdapter() {
-            @Override
-            public void onAnimationEnd(Animator animation) {
-                mContentBackgroundView.setImageResource(CONTENT_BACKGROUNDS[newPage]);
-                mContentAnimationView.setImageResource(CONTENT_ANIMATIONS[newPage]);
-            }
-        });
-        Animator fadeIn = createFadeInAnimator(mContentView);
-        fadeIn.addListener(new AnimatorListenerAdapter() {
-            @Override
-            public void onAnimationEnd(Animator animation) {
-                ((AnimationDrawable) mContentAnimationView.getDrawable()).start();
-            }
-        });
-        AnimatorSet set = new AnimatorSet();
-        set.playSequentially(fadeOut, fadeIn);
-        set.start();
-        mContentAnimator = set;
-    }
-
-    private Animator createFadeInAnimator(View view) {
-        return ObjectAnimator.ofFloat(view, View.ALPHA, 0.0f, 1.0f).setDuration(ANIMATION_DURATION);
-    }
-
-    private Animator createFadeOutAnimator(View view) {
-        return ObjectAnimator.ofFloat(view, View.ALPHA, 1.0f, 0.0f).setDuration(ANIMATION_DURATION);
-    }
-
-    @Override
-    protected void onFinishFragment() {
-        getActivity().finish();
-    }
-}
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/OnboardingSupportActivity.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/OnboardingSupportActivity.java
deleted file mode 100644
index e23a7e6..0000000
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/OnboardingSupportActivity.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/* This file is auto-generated from OnboardingActivity.java.  DO NOT MODIFY. */
-
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT 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.leanback;
-
-import android.support.v4.app.FragmentActivity;
-import android.os.Bundle;
-import android.view.ViewTreeObserver;
-
-public class OnboardingSupportActivity extends FragmentActivity {
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.onboarding);
-    }
-}
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/PhotoItem.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/PhotoItem.java
deleted file mode 100644
index adde7d3..0000000
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/PhotoItem.java
+++ /dev/null
@@ -1,80 +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.leanback;
-
-import android.os.Parcel;
-import android.os.Parcelable;
-
-public class PhotoItem implements Parcelable {
-
-    private String mTitle;
-    private String mContent;
-    private int mImageResourceId;
-
-    public PhotoItem(String title, int imageResourceId) {
-        this(title, null, imageResourceId);
-    }
-
-    public PhotoItem(String title, String content, int imageResourceId) {
-        mTitle = title;
-        mContent = content;
-        mImageResourceId = imageResourceId;
-    }
-
-    public int getImageResourceId() {
-        return mImageResourceId;
-    }
-
-    public String getTitle() {
-        return mTitle;
-    }
-
-    public String getContent() {
-        return mContent;
-    }
-
-    @Override
-    public String toString() {
-        return mTitle;
-    }
-
-    @Override
-    public int describeContents() {
-        return 0;
-    }
-
-    @Override
-    public void writeToParcel(Parcel dest, int flags) {
-        dest.writeString(mTitle);
-        dest.writeInt(mImageResourceId);
-    }
-
-    public static final Parcelable.Creator<PhotoItem> CREATOR
-            = new Parcelable.Creator<PhotoItem>() {
-        @Override
-        public PhotoItem createFromParcel(Parcel in) {
-            return new PhotoItem(in);
-        }
-
-        @Override
-        public PhotoItem[] newArray(int size) {
-            return new PhotoItem[size];
-        }
-    };
-
-    private PhotoItem(Parcel in) {
-        mTitle = in.readString();
-        mImageResourceId = in.readInt();
-    }
-}
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/PlaybackControlHelper.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/PlaybackControlHelper.java
deleted file mode 100644
index e282f83..0000000
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/PlaybackControlHelper.java
+++ /dev/null
@@ -1,283 +0,0 @@
-/*
- * 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.leanback;
-
-import android.content.Context;
-import android.graphics.drawable.Drawable;
-import android.os.Handler;
-import android.support.v17.leanback.app.PlaybackControlGlue;
-import android.support.v17.leanback.widget.Action;
-import android.support.v17.leanback.widget.ArrayObjectAdapter;
-import android.support.v17.leanback.widget.ControlButtonPresenterSelector;
-import android.support.v17.leanback.widget.PlaybackControlsRow;
-import android.support.v17.leanback.widget.PlaybackControlsRowPresenter;
-import android.support.v17.leanback.widget.PresenterSelector;
-import android.support.v17.leanback.widget.SparseArrayObjectAdapter;
-import android.view.KeyEvent;
-import android.view.View;
-import android.widget.Toast;
-
-abstract class PlaybackControlHelper extends PlaybackControlGlue {
-    /**
-     * Change the location of the thumbs up/down controls
-     */
-    private static final boolean THUMBS_PRIMARY = true;
-
-    private static final String FAUX_TITLE = "A short song of silence";
-    private static final String FAUX_SUBTITLE = "2014";
-    private static final int FAUX_DURATION = 33 * 1000;
-
-    // These should match the playback service FF behavior
-    private static int[] sFastForwardSpeeds = { 2, 3, 4, 5 };
-
-    private boolean mIsPlaying;
-    private int mSpeed = PlaybackControlGlue.PLAYBACK_SPEED_PAUSED;
-    private long mStartTime;
-    private long mStartPosition = 0;
-
-    private PlaybackControlsRow.RepeatAction mRepeatAction;
-    private PlaybackControlsRow.ThumbsUpAction mThumbsUpAction;
-    private PlaybackControlsRow.ThumbsDownAction mThumbsDownAction;
-    private PlaybackControlsRow.PictureInPictureAction mPipAction;
-
-    private Handler mHandler = new Handler();
-    private final Runnable mUpdateProgressRunnable = new Runnable() {
-        @Override
-        public void run() {
-            updateProgress();
-            mHandler.postDelayed(this, getUpdatePeriod());
-        }
-    };
-
-    public PlaybackControlHelper(Context context, PlaybackOverlayFragment fragment) {
-        super(context, fragment, sFastForwardSpeeds);
-        mThumbsUpAction = new PlaybackControlsRow.ThumbsUpAction(context);
-        mThumbsUpAction.setIndex(PlaybackControlsRow.ThumbsUpAction.OUTLINE);
-        mThumbsDownAction = new PlaybackControlsRow.ThumbsDownAction(context);
-        mThumbsDownAction.setIndex(PlaybackControlsRow.ThumbsDownAction.OUTLINE);
-        mRepeatAction = new PlaybackControlsRow.RepeatAction(context);
-        mPipAction = new PlaybackControlsRow.PictureInPictureAction(context);
-    }
-
-    @Override
-    public PlaybackControlsRowPresenter createControlsRowAndPresenter() {
-        PlaybackControlsRowPresenter presenter = super.createControlsRowAndPresenter();
-
-        ArrayObjectAdapter adapter = new ArrayObjectAdapter(new ControlButtonPresenterSelector());
-        getControlsRow().setSecondaryActionsAdapter(adapter);
-        if (!THUMBS_PRIMARY) {
-            adapter.add(mThumbsDownAction);
-        }
-        if (android.os.Build.VERSION.SDK_INT > 23) {
-            adapter.add(mPipAction);
-        }
-        adapter.add(mRepeatAction);
-        if (!THUMBS_PRIMARY) {
-            adapter.add(mThumbsUpAction);
-        }
-
-        return presenter;
-    }
-
-    @Override
-    protected SparseArrayObjectAdapter createPrimaryActionsAdapter(
-            PresenterSelector presenterSelector) {
-        SparseArrayObjectAdapter adapter = new SparseArrayObjectAdapter(presenterSelector);
-        if (THUMBS_PRIMARY) {
-            adapter.set(PlaybackControlGlue.ACTION_CUSTOM_LEFT_FIRST, mThumbsUpAction);
-            adapter.set(PlaybackControlGlue.ACTION_CUSTOM_RIGHT_FIRST, mThumbsDownAction);
-        }
-        return adapter;
-    }
-
-    @Override
-    public void onActionClicked(Action action) {
-        if (shouldDispatchAction(action)) {
-            dispatchAction(action);
-            return;
-        }
-        super.onActionClicked(action);
-    }
-
-    @Override
-    public boolean onKey(View view, int keyCode, KeyEvent keyEvent) {
-        if (keyEvent.getAction() == KeyEvent.ACTION_DOWN) {
-            Action action = getControlsRow().getActionForKeyCode(keyEvent.getKeyCode());
-            if (shouldDispatchAction(action)) {
-                dispatchAction(action);
-                return true;
-            }
-        }
-        return super.onKey(view, keyCode, keyEvent);
-    }
-
-    private boolean shouldDispatchAction(Action action) {
-        return action == mRepeatAction || action == mThumbsUpAction || action == mThumbsDownAction;
-    }
-
-    private void dispatchAction(Action action) {
-        Toast.makeText(getContext(), action.toString(), Toast.LENGTH_SHORT).show();
-        PlaybackControlsRow.MultiAction multiAction = (PlaybackControlsRow.MultiAction) action;
-        multiAction.nextIndex();
-        notifyActionChanged(multiAction);
-    }
-
-    private void notifyActionChanged(PlaybackControlsRow.MultiAction action) {
-        int index;
-        index = getPrimaryActionsAdapter().indexOf(action);
-        if (index >= 0) {
-            getPrimaryActionsAdapter().notifyArrayItemRangeChanged(index, 1);
-        } else {
-            index = getSecondaryActionsAdapter().indexOf(action);
-            if (index >= 0) {
-                getSecondaryActionsAdapter().notifyArrayItemRangeChanged(index, 1);
-            }
-        }
-    }
-
-    private SparseArrayObjectAdapter getPrimaryActionsAdapter() {
-        return (SparseArrayObjectAdapter) getControlsRow().getPrimaryActionsAdapter();
-    }
-
-    private ArrayObjectAdapter getSecondaryActionsAdapter() {
-        return (ArrayObjectAdapter) getControlsRow().getSecondaryActionsAdapter();
-    }
-
-    @Override
-    public boolean hasValidMedia() {
-        return true;
-    }
-
-    @Override
-    public boolean isMediaPlaying() {
-        return mIsPlaying;
-    }
-
-    @Override
-    public CharSequence getMediaTitle() {
-        return FAUX_TITLE;
-    }
-
-    @Override
-    public CharSequence getMediaSubtitle() {
-        return FAUX_SUBTITLE;
-    }
-
-    @Override
-    public int getMediaDuration() {
-        return FAUX_DURATION;
-    }
-
-    @Override
-    public Drawable getMediaArt() {
-        return null;
-    }
-
-    @Override
-    public long getSupportedActions() {
-        return PlaybackControlGlue.ACTION_PLAY_PAUSE |
-                PlaybackControlGlue.ACTION_FAST_FORWARD |
-                PlaybackControlGlue.ACTION_REWIND;
-    }
-
-    @Override
-    public int getCurrentSpeedId() {
-        return mSpeed;
-    }
-
-    @Override
-    public int getCurrentPosition() {
-        int speed;
-        if (mSpeed == PlaybackControlGlue.PLAYBACK_SPEED_PAUSED) {
-            speed = 0;
-        } else if (mSpeed == PlaybackControlGlue.PLAYBACK_SPEED_NORMAL) {
-            speed = 1;
-        } else if (mSpeed >= PlaybackControlGlue.PLAYBACK_SPEED_FAST_L0) {
-            int index = mSpeed - PlaybackControlGlue.PLAYBACK_SPEED_FAST_L0;
-            speed = getFastForwardSpeeds()[index];
-        } else if (mSpeed <= -PlaybackControlGlue.PLAYBACK_SPEED_FAST_L0) {
-            int index = -mSpeed - PlaybackControlGlue.PLAYBACK_SPEED_FAST_L0;
-            speed = -getRewindSpeeds()[index];
-        } else {
-            return -1;
-        }
-        long position = mStartPosition +
-                (System.currentTimeMillis() - mStartTime) * speed;
-        if (position > getMediaDuration()) {
-            position = getMediaDuration();
-            onPlaybackComplete(true);
-        } else if (position < 0) {
-            position = 0;
-            onPlaybackComplete(false);
-        }
-        return (int) position;
-    }
-
-    void onPlaybackComplete(final boolean ended) {
-        mHandler.post(new Runnable() {
-            @Override
-            public void run() {
-                if (mRepeatAction.getIndex() == PlaybackControlsRow.RepeatAction.NONE) {
-                    pausePlayback();
-                } else {
-                    startPlayback(PlaybackControlGlue.PLAYBACK_SPEED_NORMAL);
-                }
-                mStartPosition = 0;
-                onStateChanged();
-            }
-        });
-    }
-
-    @Override
-    protected void startPlayback(int speed) {
-        if (speed == mSpeed) {
-            return;
-        }
-        mStartPosition = getCurrentPosition();
-        mSpeed = speed;
-        mIsPlaying = true;
-        mStartTime = System.currentTimeMillis();
-    }
-
-    @Override
-    protected void pausePlayback() {
-        if (mSpeed == PlaybackControlGlue.PLAYBACK_SPEED_PAUSED) {
-            return;
-        }
-        mStartPosition = getCurrentPosition();
-        mSpeed = PlaybackControlGlue.PLAYBACK_SPEED_PAUSED;
-        mIsPlaying = false;
-    }
-
-    @Override
-    protected void skipToNext() {
-        // Not supported
-    }
-
-    @Override
-    protected void skipToPrevious() {
-        // Not supported
-    }
-
-    @Override
-    public void enableProgressUpdating(boolean enable) {
-        mHandler.removeCallbacks(mUpdateProgressRunnable);
-        if (enable) {
-            mUpdateProgressRunnable.run();
-        }
-    }
-};
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/PlaybackControlSupportHelper.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/PlaybackControlSupportHelper.java
deleted file mode 100644
index a538a44..0000000
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/PlaybackControlSupportHelper.java
+++ /dev/null
@@ -1,285 +0,0 @@
-/* This file is auto-generated from PlaybackControlHelper.java.  DO NOT MODIFY. */
-
-/*
- * 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.leanback;
-
-import android.content.Context;
-import android.graphics.drawable.Drawable;
-import android.os.Handler;
-import android.support.v17.leanback.app.PlaybackControlSupportGlue;
-import android.support.v17.leanback.widget.Action;
-import android.support.v17.leanback.widget.ArrayObjectAdapter;
-import android.support.v17.leanback.widget.ControlButtonPresenterSelector;
-import android.support.v17.leanback.widget.PlaybackControlsRow;
-import android.support.v17.leanback.widget.PlaybackControlsRowPresenter;
-import android.support.v17.leanback.widget.PresenterSelector;
-import android.support.v17.leanback.widget.SparseArrayObjectAdapter;
-import android.view.KeyEvent;
-import android.view.View;
-import android.widget.Toast;
-
-abstract class PlaybackControlSupportHelper extends PlaybackControlSupportGlue {
-    /**
-     * Change the location of the thumbs up/down controls
-     */
-    private static final boolean THUMBS_PRIMARY = true;
-
-    private static final String FAUX_TITLE = "A short song of silence";
-    private static final String FAUX_SUBTITLE = "2014";
-    private static final int FAUX_DURATION = 33 * 1000;
-
-    // These should match the playback service FF behavior
-    private static int[] sFastForwardSpeeds = { 2, 3, 4, 5 };
-
-    private boolean mIsPlaying;
-    private int mSpeed = PlaybackControlSupportGlue.PLAYBACK_SPEED_PAUSED;
-    private long mStartTime;
-    private long mStartPosition = 0;
-
-    private PlaybackControlsRow.RepeatAction mRepeatAction;
-    private PlaybackControlsRow.ThumbsUpAction mThumbsUpAction;
-    private PlaybackControlsRow.ThumbsDownAction mThumbsDownAction;
-    private PlaybackControlsRow.PictureInPictureAction mPipAction;
-
-    private Handler mHandler = new Handler();
-    private final Runnable mUpdateProgressRunnable = new Runnable() {
-        @Override
-        public void run() {
-            updateProgress();
-            mHandler.postDelayed(this, getUpdatePeriod());
-        }
-    };
-
-    public PlaybackControlSupportHelper(Context context, PlaybackOverlaySupportFragment fragment) {
-        super(context, fragment, sFastForwardSpeeds);
-        mThumbsUpAction = new PlaybackControlsRow.ThumbsUpAction(context);
-        mThumbsUpAction.setIndex(PlaybackControlsRow.ThumbsUpAction.OUTLINE);
-        mThumbsDownAction = new PlaybackControlsRow.ThumbsDownAction(context);
-        mThumbsDownAction.setIndex(PlaybackControlsRow.ThumbsDownAction.OUTLINE);
-        mRepeatAction = new PlaybackControlsRow.RepeatAction(context);
-        mPipAction = new PlaybackControlsRow.PictureInPictureAction(context);
-    }
-
-    @Override
-    public PlaybackControlsRowPresenter createControlsRowAndPresenter() {
-        PlaybackControlsRowPresenter presenter = super.createControlsRowAndPresenter();
-
-        ArrayObjectAdapter adapter = new ArrayObjectAdapter(new ControlButtonPresenterSelector());
-        getControlsRow().setSecondaryActionsAdapter(adapter);
-        if (!THUMBS_PRIMARY) {
-            adapter.add(mThumbsDownAction);
-        }
-        if (android.os.Build.VERSION.SDK_INT > 23) {
-            adapter.add(mPipAction);
-        }
-        adapter.add(mRepeatAction);
-        if (!THUMBS_PRIMARY) {
-            adapter.add(mThumbsUpAction);
-        }
-
-        return presenter;
-    }
-
-    @Override
-    protected SparseArrayObjectAdapter createPrimaryActionsAdapter(
-            PresenterSelector presenterSelector) {
-        SparseArrayObjectAdapter adapter = new SparseArrayObjectAdapter(presenterSelector);
-        if (THUMBS_PRIMARY) {
-            adapter.set(PlaybackControlSupportGlue.ACTION_CUSTOM_LEFT_FIRST, mThumbsUpAction);
-            adapter.set(PlaybackControlSupportGlue.ACTION_CUSTOM_RIGHT_FIRST, mThumbsDownAction);
-        }
-        return adapter;
-    }
-
-    @Override
-    public void onActionClicked(Action action) {
-        if (shouldDispatchAction(action)) {
-            dispatchAction(action);
-            return;
-        }
-        super.onActionClicked(action);
-    }
-
-    @Override
-    public boolean onKey(View view, int keyCode, KeyEvent keyEvent) {
-        if (keyEvent.getAction() == KeyEvent.ACTION_DOWN) {
-            Action action = getControlsRow().getActionForKeyCode(keyEvent.getKeyCode());
-            if (shouldDispatchAction(action)) {
-                dispatchAction(action);
-                return true;
-            }
-        }
-        return super.onKey(view, keyCode, keyEvent);
-    }
-
-    private boolean shouldDispatchAction(Action action) {
-        return action == mRepeatAction || action == mThumbsUpAction || action == mThumbsDownAction;
-    }
-
-    private void dispatchAction(Action action) {
-        Toast.makeText(getContext(), action.toString(), Toast.LENGTH_SHORT).show();
-        PlaybackControlsRow.MultiAction multiAction = (PlaybackControlsRow.MultiAction) action;
-        multiAction.nextIndex();
-        notifyActionChanged(multiAction);
-    }
-
-    private void notifyActionChanged(PlaybackControlsRow.MultiAction action) {
-        int index;
-        index = getPrimaryActionsAdapter().indexOf(action);
-        if (index >= 0) {
-            getPrimaryActionsAdapter().notifyArrayItemRangeChanged(index, 1);
-        } else {
-            index = getSecondaryActionsAdapter().indexOf(action);
-            if (index >= 0) {
-                getSecondaryActionsAdapter().notifyArrayItemRangeChanged(index, 1);
-            }
-        }
-    }
-
-    private SparseArrayObjectAdapter getPrimaryActionsAdapter() {
-        return (SparseArrayObjectAdapter) getControlsRow().getPrimaryActionsAdapter();
-    }
-
-    private ArrayObjectAdapter getSecondaryActionsAdapter() {
-        return (ArrayObjectAdapter) getControlsRow().getSecondaryActionsAdapter();
-    }
-
-    @Override
-    public boolean hasValidMedia() {
-        return true;
-    }
-
-    @Override
-    public boolean isMediaPlaying() {
-        return mIsPlaying;
-    }
-
-    @Override
-    public CharSequence getMediaTitle() {
-        return FAUX_TITLE;
-    }
-
-    @Override
-    public CharSequence getMediaSubtitle() {
-        return FAUX_SUBTITLE;
-    }
-
-    @Override
-    public int getMediaDuration() {
-        return FAUX_DURATION;
-    }
-
-    @Override
-    public Drawable getMediaArt() {
-        return null;
-    }
-
-    @Override
-    public long getSupportedActions() {
-        return PlaybackControlSupportGlue.ACTION_PLAY_PAUSE |
-                PlaybackControlSupportGlue.ACTION_FAST_FORWARD |
-                PlaybackControlSupportGlue.ACTION_REWIND;
-    }
-
-    @Override
-    public int getCurrentSpeedId() {
-        return mSpeed;
-    }
-
-    @Override
-    public int getCurrentPosition() {
-        int speed;
-        if (mSpeed == PlaybackControlSupportGlue.PLAYBACK_SPEED_PAUSED) {
-            speed = 0;
-        } else if (mSpeed == PlaybackControlSupportGlue.PLAYBACK_SPEED_NORMAL) {
-            speed = 1;
-        } else if (mSpeed >= PlaybackControlSupportGlue.PLAYBACK_SPEED_FAST_L0) {
-            int index = mSpeed - PlaybackControlSupportGlue.PLAYBACK_SPEED_FAST_L0;
-            speed = getFastForwardSpeeds()[index];
-        } else if (mSpeed <= -PlaybackControlSupportGlue.PLAYBACK_SPEED_FAST_L0) {
-            int index = -mSpeed - PlaybackControlSupportGlue.PLAYBACK_SPEED_FAST_L0;
-            speed = -getRewindSpeeds()[index];
-        } else {
-            return -1;
-        }
-        long position = mStartPosition +
-                (System.currentTimeMillis() - mStartTime) * speed;
-        if (position > getMediaDuration()) {
-            position = getMediaDuration();
-            onPlaybackComplete(true);
-        } else if (position < 0) {
-            position = 0;
-            onPlaybackComplete(false);
-        }
-        return (int) position;
-    }
-
-    void onPlaybackComplete(final boolean ended) {
-        mHandler.post(new Runnable() {
-            @Override
-            public void run() {
-                if (mRepeatAction.getIndex() == PlaybackControlsRow.RepeatAction.NONE) {
-                    pausePlayback();
-                } else {
-                    startPlayback(PlaybackControlSupportGlue.PLAYBACK_SPEED_NORMAL);
-                }
-                mStartPosition = 0;
-                onStateChanged();
-            }
-        });
-    }
-
-    @Override
-    protected void startPlayback(int speed) {
-        if (speed == mSpeed) {
-            return;
-        }
-        mStartPosition = getCurrentPosition();
-        mSpeed = speed;
-        mIsPlaying = true;
-        mStartTime = System.currentTimeMillis();
-    }
-
-    @Override
-    protected void pausePlayback() {
-        if (mSpeed == PlaybackControlSupportGlue.PLAYBACK_SPEED_PAUSED) {
-            return;
-        }
-        mStartPosition = getCurrentPosition();
-        mSpeed = PlaybackControlSupportGlue.PLAYBACK_SPEED_PAUSED;
-        mIsPlaying = false;
-    }
-
-    @Override
-    protected void skipToNext() {
-        // Not supported
-    }
-
-    @Override
-    protected void skipToPrevious() {
-        // Not supported
-    }
-
-    @Override
-    public void enableProgressUpdating(boolean enable) {
-        mHandler.removeCallbacks(mUpdateProgressRunnable);
-        if (enable) {
-            mUpdateProgressRunnable.run();
-        }
-    }
-};
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/PlaybackOverlayActivity.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/PlaybackOverlayActivity.java
deleted file mode 100644
index 764b169..0000000
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/PlaybackOverlayActivity.java
+++ /dev/null
@@ -1,51 +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.leanback;
-
-import android.app.Activity;
-import android.os.Bundle;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class PlaybackOverlayActivity extends Activity {
-    private List<PictureInPictureListener> mListeners = new ArrayList<>();
-
-    /** Called when the activity is first created. */
-    @Override
-    public void onCreate(Bundle savedInstanceState)
-    {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.playback_controls);
-    }
-
-    @Override
-    public void onPictureInPictureModeChanged(boolean isInPictureInPictureMode) {
-        for (PictureInPictureListener listener : mListeners) {
-            listener.onPictureInPictureModeChanged(isInPictureInPictureMode);
-        }
-    }
-
-    public void registerPictureInPictureListener(PictureInPictureListener listener) {
-        mListeners.add(listener);
-    }
-
-    public void unregisterPictureInPictureListener(PictureInPictureListener listener) {
-        mListeners.remove(listener);
-    }
-
-    public interface PictureInPictureListener {
-        void onPictureInPictureModeChanged(boolean isInPictureInPictureMode);
-    }
-}
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/PlaybackOverlayFragment.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/PlaybackOverlayFragment.java
deleted file mode 100644
index c918774..0000000
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/PlaybackOverlayFragment.java
+++ /dev/null
@@ -1,194 +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.leanback;
-
-import android.content.Context;
-import android.graphics.drawable.Drawable;
-import android.os.Bundle;
-import android.os.Handler;
-import android.support.v17.leanback.app.PlaybackControlGlue;
-import android.support.v17.leanback.widget.Action;
-import android.support.v17.leanback.widget.ArrayObjectAdapter;
-import android.support.v17.leanback.widget.PlaybackControlsRow;
-import android.support.v17.leanback.widget.PlaybackControlsRow.RepeatAction;
-import android.support.v17.leanback.widget.PlaybackControlsRow.ThumbsUpAction;
-import android.support.v17.leanback.widget.PlaybackControlsRow.ThumbsDownAction;
-import android.support.v17.leanback.widget.PlaybackControlsRowPresenter;
-import android.support.v17.leanback.widget.HeaderItem;
-import android.support.v17.leanback.widget.PresenterSelector;
-import android.support.v17.leanback.widget.Row;
-import android.support.v17.leanback.widget.ListRow;
-import android.support.v17.leanback.widget.Presenter;
-import android.support.v17.leanback.widget.RowPresenter;
-import android.support.v17.leanback.widget.ListRowPresenter;
-import android.support.v17.leanback.widget.OnItemViewSelectedListener;
-import android.support.v17.leanback.widget.OnItemViewClickedListener;
-import android.support.v17.leanback.widget.ControlButtonPresenterSelector;
-import android.support.v17.leanback.widget.SparseArrayObjectAdapter;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.Toast;
-
-public class PlaybackOverlayFragment
-        extends android.support.v17.leanback.app.PlaybackOverlayFragment
-        implements PlaybackOverlayActivity.PictureInPictureListener {
-    private static final String TAG = "leanback.PlaybackControlsFragment";
-
-    /**
-     * Change this to choose a different overlay background.
-     */
-    private static final int BACKGROUND_TYPE = PlaybackOverlayFragment.BG_LIGHT;
-
-    /**
-     * Change the number of related content rows.
-     */
-    private static final int RELATED_CONTENT_ROWS = 3;
-
-    /**
-     * Change this to select hidden
-     */
-    private static final boolean SECONDARY_HIDDEN = false;
-
-    private static final int ROW_CONTROLS = 0;
-
-    private PlaybackControlHelper mGlue;
-    private PlaybackControlsRowPresenter mPlaybackControlsRowPresenter;
-    private ListRowPresenter mListRowPresenter;
-
-    private OnItemViewClickedListener mOnItemViewClickedListener = new OnItemViewClickedListener() {
-        @Override
-        public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
-                                  RowPresenter.ViewHolder rowViewHolder, Row row) {
-            Log.i(TAG, "onItemClicked: " + item + " row " + row);
-            if (item instanceof Action) {
-                mGlue.onActionClicked((Action) item);
-            }
-        }
-    };
-
-    private OnItemViewSelectedListener mOnItemViewSelectedListener = new OnItemViewSelectedListener() {
-        @Override
-        public void onItemSelected(Presenter.ViewHolder itemViewHolder, Object item,
-                                   RowPresenter.ViewHolder rowViewHolder, Row row) {
-            Log.i(TAG, "onItemSelected: " + item + " row " + row);
-        }
-    };
-
-    public SparseArrayObjectAdapter getAdapter() {
-        return (SparseArrayObjectAdapter) super.getAdapter();
-    }
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        Log.i(TAG, "onCreate");
-        super.onCreate(savedInstanceState);
-
-        setBackgroundType(BACKGROUND_TYPE);
-        setOnItemViewSelectedListener(mOnItemViewSelectedListener);
-
-        createComponents(getActivity());
-    }
-
-    private void createComponents(Context context) {
-        mGlue = new PlaybackControlHelper(context, this) {
-            @Override
-            public int getUpdatePeriod() {
-                int totalTime = getControlsRow().getTotalTime();
-                if (getView() == null || getView().getWidth() == 0 || totalTime <= 0) {
-                    return 1000;
-                }
-                return Math.max(16, totalTime / getView().getWidth());
-            }
-
-            @Override
-            protected void onRowChanged(PlaybackControlsRow row) {
-                if (getAdapter() == null) {
-                    return;
-                }
-                int index = getAdapter().indexOf(row);
-                if (index >= 0) {
-                    getAdapter().notifyArrayItemRangeChanged(index, 1);
-                }
-            }
-
-            @Override
-            public void onActionClicked(Action action) {
-                if (action.getId() == R.id.lb_control_picture_in_picture) {
-                    getActivity().enterPictureInPictureMode();
-                    return;
-                }
-                super.onActionClicked(action);
-            }
-        };
-
-        mGlue.setOnItemViewClickedListener(mOnItemViewClickedListener);
-
-        mPlaybackControlsRowPresenter = mGlue.createControlsRowAndPresenter();
-        mPlaybackControlsRowPresenter.setSecondaryActionsHidden(SECONDARY_HIDDEN);
-        mListRowPresenter = new ListRowPresenter();
-
-        setAdapter(new SparseArrayObjectAdapter(new PresenterSelector() {
-            @Override
-            public Presenter getPresenter(Object object) {
-                if (object instanceof PlaybackControlsRow) {
-                    return mPlaybackControlsRowPresenter;
-                } else if (object instanceof ListRow) {
-                    return mListRowPresenter;
-                }
-                throw new IllegalArgumentException("Unhandled object: " + object);
-            }
-        }));
-
-        // Add the controls row
-        getAdapter().set(ROW_CONTROLS, mGlue.getControlsRow());
-
-        // Add related content rows
-        for (int i = 0; i < RELATED_CONTENT_ROWS; ++i) {
-            ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter(new StringPresenter());
-            listRowAdapter.add("Some related content");
-            listRowAdapter.add("Other related content");
-            HeaderItem header = new HeaderItem(i, "Row " + i);
-            getAdapter().set(ROW_CONTROLS + 1 + i, new ListRow(header, listRowAdapter));
-        }
-
-    }
-
-    @Override
-    public void onStart() {
-        super.onStart();
-        mGlue.setFadingEnabled(true);
-        mGlue.enableProgressUpdating(mGlue.hasValidMedia() && mGlue.isMediaPlaying());
-        ((PlaybackOverlayActivity) getActivity()).registerPictureInPictureListener(this);
-    }
-
-    @Override
-    public void onStop() {
-        mGlue.enableProgressUpdating(false);
-        ((PlaybackOverlayActivity) getActivity()).unregisterPictureInPictureListener(this);
-        super.onStop();
-    }
-
-    @Override
-    public void onPictureInPictureModeChanged(boolean isInPictureInPictureMode) {
-        if (isInPictureInPictureMode) {
-            // Hide the controls in picture-in-picture mode.
-            setFadingEnabled(true);
-            fadeOut();
-        } else {
-            setFadingEnabled(mGlue.isMediaPlaying());
-        }
-    }
-}
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/PlaybackOverlaySupportActivity.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/PlaybackOverlaySupportActivity.java
deleted file mode 100644
index e1b01e1..0000000
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/PlaybackOverlaySupportActivity.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/* This file is auto-generated from PlaybackOverlayActivity.java.  DO NOT MODIFY. */
-
-/*
- * 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.leanback;
-
-import android.support.v4.app.FragmentActivity;
-import android.os.Bundle;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class PlaybackOverlaySupportActivity extends FragmentActivity {
-    private List<PictureInPictureListener> mListeners = new ArrayList<>();
-
-    /** Called when the activity is first created. */
-    @Override
-    public void onCreate(Bundle savedInstanceState)
-    {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.playback_controls_support);
-    }
-
-    @Override
-    public void onPictureInPictureModeChanged(boolean isInPictureInPictureMode) {
-        for (PictureInPictureListener listener : mListeners) {
-            listener.onPictureInPictureModeChanged(isInPictureInPictureMode);
-        }
-    }
-
-    public void registerPictureInPictureListener(PictureInPictureListener listener) {
-        mListeners.add(listener);
-    }
-
-    public void unregisterPictureInPictureListener(PictureInPictureListener listener) {
-        mListeners.remove(listener);
-    }
-
-    public interface PictureInPictureListener {
-        void onPictureInPictureModeChanged(boolean isInPictureInPictureMode);
-    }
-}
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/PlaybackOverlaySupportFragment.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/PlaybackOverlaySupportFragment.java
deleted file mode 100644
index e8ea8f5..0000000
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/PlaybackOverlaySupportFragment.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/* This file is auto-generated from PlaybackOverlayFragment.java.  DO NOT MODIFY. */
-
-/*
- * 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.leanback;
-
-import android.content.Context;
-import android.graphics.drawable.Drawable;
-import android.os.Bundle;
-import android.os.Handler;
-import android.support.v17.leanback.app.PlaybackControlGlue;
-import android.support.v17.leanback.widget.Action;
-import android.support.v17.leanback.widget.ArrayObjectAdapter;
-import android.support.v17.leanback.widget.PlaybackControlsRow;
-import android.support.v17.leanback.widget.PlaybackControlsRow.RepeatAction;
-import android.support.v17.leanback.widget.PlaybackControlsRow.ThumbsUpAction;
-import android.support.v17.leanback.widget.PlaybackControlsRow.ThumbsDownAction;
-import android.support.v17.leanback.widget.PlaybackControlsRowPresenter;
-import android.support.v17.leanback.widget.HeaderItem;
-import android.support.v17.leanback.widget.PresenterSelector;
-import android.support.v17.leanback.widget.Row;
-import android.support.v17.leanback.widget.ListRow;
-import android.support.v17.leanback.widget.Presenter;
-import android.support.v17.leanback.widget.RowPresenter;
-import android.support.v17.leanback.widget.ListRowPresenter;
-import android.support.v17.leanback.widget.OnItemViewSelectedListener;
-import android.support.v17.leanback.widget.OnItemViewClickedListener;
-import android.support.v17.leanback.widget.ControlButtonPresenterSelector;
-import android.support.v17.leanback.widget.SparseArrayObjectAdapter;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.Toast;
-
-public class PlaybackOverlaySupportFragment
-        extends android.support.v17.leanback.app.PlaybackOverlaySupportFragment
-        implements PlaybackOverlaySupportActivity.PictureInPictureListener {
-    private static final String TAG = "leanback.PlaybackControlsFragment";
-
-    /**
-     * Change this to choose a different overlay background.
-     */
-    private static final int BACKGROUND_TYPE = PlaybackOverlaySupportFragment.BG_LIGHT;
-
-    /**
-     * Change the number of related content rows.
-     */
-    private static final int RELATED_CONTENT_ROWS = 3;
-
-    /**
-     * Change this to select hidden
-     */
-    private static final boolean SECONDARY_HIDDEN = false;
-
-    private static final int ROW_CONTROLS = 0;
-
-    private PlaybackControlSupportHelper mGlue;
-    private PlaybackControlsRowPresenter mPlaybackControlsRowPresenter;
-    private ListRowPresenter mListRowPresenter;
-
-    private OnItemViewClickedListener mOnItemViewClickedListener = new OnItemViewClickedListener() {
-        @Override
-        public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
-                                  RowPresenter.ViewHolder rowViewHolder, Row row) {
-            Log.i(TAG, "onItemClicked: " + item + " row " + row);
-            if (item instanceof Action) {
-                mGlue.onActionClicked((Action) item);
-            }
-        }
-    };
-
-    private OnItemViewSelectedListener mOnItemViewSelectedListener = new OnItemViewSelectedListener() {
-        @Override
-        public void onItemSelected(Presenter.ViewHolder itemViewHolder, Object item,
-                                   RowPresenter.ViewHolder rowViewHolder, Row row) {
-            Log.i(TAG, "onItemSelected: " + item + " row " + row);
-        }
-    };
-
-    public SparseArrayObjectAdapter getAdapter() {
-        return (SparseArrayObjectAdapter) super.getAdapter();
-    }
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        Log.i(TAG, "onCreate");
-        super.onCreate(savedInstanceState);
-
-        setBackgroundType(BACKGROUND_TYPE);
-        setOnItemViewSelectedListener(mOnItemViewSelectedListener);
-
-        createComponents(getActivity());
-    }
-
-    private void createComponents(Context context) {
-        mGlue = new PlaybackControlSupportHelper(context, this) {
-            @Override
-            public int getUpdatePeriod() {
-                int totalTime = getControlsRow().getTotalTime();
-                if (getView() == null || getView().getWidth() == 0 || totalTime <= 0) {
-                    return 1000;
-                }
-                return Math.max(16, totalTime / getView().getWidth());
-            }
-
-            @Override
-            protected void onRowChanged(PlaybackControlsRow row) {
-                if (getAdapter() == null) {
-                    return;
-                }
-                int index = getAdapter().indexOf(row);
-                if (index >= 0) {
-                    getAdapter().notifyArrayItemRangeChanged(index, 1);
-                }
-            }
-
-            @Override
-            public void onActionClicked(Action action) {
-                if (action.getId() == R.id.lb_control_picture_in_picture) {
-                    getActivity().enterPictureInPictureMode();
-                    return;
-                }
-                super.onActionClicked(action);
-            }
-        };
-
-        mGlue.setOnItemViewClickedListener(mOnItemViewClickedListener);
-
-        mPlaybackControlsRowPresenter = mGlue.createControlsRowAndPresenter();
-        mPlaybackControlsRowPresenter.setSecondaryActionsHidden(SECONDARY_HIDDEN);
-        mListRowPresenter = new ListRowPresenter();
-
-        setAdapter(new SparseArrayObjectAdapter(new PresenterSelector() {
-            @Override
-            public Presenter getPresenter(Object object) {
-                if (object instanceof PlaybackControlsRow) {
-                    return mPlaybackControlsRowPresenter;
-                } else if (object instanceof ListRow) {
-                    return mListRowPresenter;
-                }
-                throw new IllegalArgumentException("Unhandled object: " + object);
-            }
-        }));
-
-        // Add the controls row
-        getAdapter().set(ROW_CONTROLS, mGlue.getControlsRow());
-
-        // Add related content rows
-        for (int i = 0; i < RELATED_CONTENT_ROWS; ++i) {
-            ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter(new StringPresenter());
-            listRowAdapter.add("Some related content");
-            listRowAdapter.add("Other related content");
-            HeaderItem header = new HeaderItem(i, "Row " + i);
-            getAdapter().set(ROW_CONTROLS + 1 + i, new ListRow(header, listRowAdapter));
-        }
-
-    }
-
-    @Override
-    public void onStart() {
-        super.onStart();
-        mGlue.setFadingEnabled(true);
-        mGlue.enableProgressUpdating(mGlue.hasValidMedia() && mGlue.isMediaPlaying());
-        ((PlaybackOverlaySupportActivity) getActivity()).registerPictureInPictureListener(this);
-    }
-
-    @Override
-    public void onStop() {
-        mGlue.enableProgressUpdating(false);
-        ((PlaybackOverlaySupportActivity) getActivity()).unregisterPictureInPictureListener(this);
-        super.onStop();
-    }
-
-    @Override
-    public void onPictureInPictureModeChanged(boolean isInPictureInPictureMode) {
-        if (isInPictureInPictureMode) {
-            // Hide the controls in picture-in-picture mode.
-            setFadingEnabled(true);
-            fadeOut();
-        } else {
-            setFadingEnabled(mGlue.isMediaPlaying());
-        }
-    }
-}
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/RowsActivity.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/RowsActivity.java
deleted file mode 100644
index e5b1ea1..0000000
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/RowsActivity.java
+++ /dev/null
@@ -1,58 +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.leanback;
-
-import android.app.Activity;
-import android.content.Intent;
-import android.os.Bundle;
-import android.support.v17.leanback.R;
-import android.support.v17.leanback.widget.BrowseFrameLayout;
-import android.support.v17.leanback.widget.TitleHelper;
-import android.support.v17.leanback.widget.TitleView;
-import android.view.View;
-
-public class RowsActivity extends Activity
-{
-    private RowsFragment mRowsFragment;
-    private TitleHelper mTitleHelper;
-
-    /** Called when the activity is first created. */
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.rows);
-
-        mRowsFragment = (RowsFragment) getFragmentManager().findFragmentById(
-                R.id.main_rows_fragment);
-
-        setupTitleFragment();
-    }
-
-    private void setupTitleFragment() {
-        TitleView titleView = (TitleView) findViewById(R.id.title);
-        titleView.setTitle("RowsFragment");
-        titleView.setOnSearchClickedListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View view) {
-                Intent intent = new Intent(RowsActivity.this, SearchActivity.class);
-                startActivity(intent);
-            }
-        });
-
-        BrowseFrameLayout frameLayout = (BrowseFrameLayout) findViewById(R.id.rows_frame);
-        mTitleHelper = new TitleHelper(frameLayout, titleView);
-        frameLayout.setOnFocusSearchListener(mTitleHelper.getOnFocusSearchListener());
-        mRowsFragment.setTitleHelper(mTitleHelper);
-    }
-}
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/RowsFragment.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/RowsFragment.java
deleted file mode 100644
index 8e9456f..0000000
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/RowsFragment.java
+++ /dev/null
@@ -1,118 +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.leanback;
-
-import android.app.Activity;
-import android.content.Intent;
-import android.os.Bundle;
-import android.support.v17.leanback.widget.TitleHelper;
-import android.support.v17.leanback.widget.TitleView;
-import android.support.v4.app.ActivityOptionsCompat;
-import android.support.v17.leanback.R;
-import android.support.v17.leanback.widget.ArrayObjectAdapter;
-import android.support.v17.leanback.widget.HeaderItem;
-import android.support.v17.leanback.widget.ImageCardView;
-import android.support.v17.leanback.widget.ListRow;
-import android.support.v17.leanback.widget.ListRowPresenter;
-import android.support.v17.leanback.widget.OnItemViewClickedListener;
-import android.support.v17.leanback.widget.OnItemViewSelectedListener;
-import android.support.v17.leanback.widget.Presenter;
-import android.support.v17.leanback.widget.Row;
-import android.support.v17.leanback.widget.RowPresenter;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-
-public class RowsFragment extends android.support.v17.leanback.app.RowsFragment {
-
-    private static final String TAG = "leanback.RowsFragment";
-
-    private static final int NUM_ROWS = 10;
-    // Row heights default to wrap content
-    private static final boolean USE_FIXED_ROW_HEIGHT = false;
-
-    private ArrayObjectAdapter mRowsAdapter;
-    private TitleHelper mTitleHelper;
-
-    public void setTitleHelper(TitleHelper titleHelper) {
-        mTitleHelper = titleHelper;
-    }
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        Log.i(TAG, "onCreate");
-        super.onCreate(savedInstanceState);
-
-        setupRows();
-        setOnItemViewClickedListener(new ItemViewClickedListener());
-        setOnItemViewSelectedListener(new OnItemViewSelectedListener() {
-            @Override
-            public void onItemSelected(Presenter.ViewHolder itemViewHolder, Object item,
-                    RowPresenter.ViewHolder rowViewHolder, Row row) {
-                Log.i(TAG, "onItemSelected: " + item + " row " + row);
-                if (mTitleHelper != null) {
-                    mTitleHelper.showTitle(getAdapter() == null || getAdapter().size() == 0 ||
-                            getAdapter().get(0) == row);
-                }
-            }
-        });
-    }
-
-    private void setupRows() {
-        ListRowPresenter lrp = new ListRowPresenter();
-
-        // For good performance, it's important to use a single instance of
-        // a card presenter for all rows using that presenter.
-        final CardPresenter cardPresenter = new CardPresenter();
-
-        if (USE_FIXED_ROW_HEIGHT) {
-            lrp.setRowHeight(cardPresenter.getRowHeight(getActivity()));
-            lrp.setExpandedRowHeight(cardPresenter.getExpandedRowHeight(getActivity()));
-        }
-
-        mRowsAdapter = new ArrayObjectAdapter(lrp);
-
-        for (int i = 0; i < NUM_ROWS; ++i) {
-            ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter(cardPresenter);
-            listRowAdapter.add(new PhotoItem("Hello world", R.drawable.gallery_photo_1));
-            listRowAdapter.add(new PhotoItem("This is a test", R.drawable.gallery_photo_2));
-            listRowAdapter.add(new PhotoItem("Android TV", R.drawable.gallery_photo_3));
-            listRowAdapter.add(new PhotoItem("Leanback", R.drawable.gallery_photo_4));
-            listRowAdapter.add(new PhotoItem("Hello world", R.drawable.gallery_photo_5));
-            listRowAdapter.add(new PhotoItem("This is a test", R.drawable.gallery_photo_6));
-            listRowAdapter.add(new PhotoItem("Android TV", R.drawable.gallery_photo_7));
-            listRowAdapter.add(new PhotoItem("Leanback", R.drawable.gallery_photo_8));
-            HeaderItem header = new HeaderItem(i, "Row " + i);
-            mRowsAdapter.add(new ListRow(header, listRowAdapter));
-        }
-
-        setAdapter(mRowsAdapter);
-    }
-
-    private final class ItemViewClickedListener implements OnItemViewClickedListener {
-        @Override
-        public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
-                RowPresenter.ViewHolder rowViewHolder, Row row) {
-            Intent intent = new Intent(getActivity(), DetailsActivity.class);
-            intent.putExtra(DetailsActivity.EXTRA_ITEM, (PhotoItem) item);
-
-            Bundle bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(
-                    getActivity(),
-                    ((ImageCardView)itemViewHolder.view).getMainImageView(),
-                    DetailsActivity.SHARED_ELEMENT_NAME).toBundle();
-            getActivity().startActivity(intent, bundle);
-        }
-    }
-}
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/RowsSupportActivity.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/RowsSupportActivity.java
deleted file mode 100644
index ca4d0e1..0000000
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/RowsSupportActivity.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/* This file is auto-generated from RowsActivity.java.  DO NOT MODIFY. */
-
-/*
- * 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.leanback;
-
-import android.support.v4.app.FragmentActivity;
-import android.content.Intent;
-import android.os.Bundle;
-import android.support.v17.leanback.R;
-import android.support.v17.leanback.widget.BrowseFrameLayout;
-import android.support.v17.leanback.widget.TitleHelper;
-import android.support.v17.leanback.widget.TitleView;
-import android.view.View;
-
-public class RowsSupportActivity extends FragmentActivity
-{
-    private RowsSupportFragment mRowsSupportFragment;
-    private TitleHelper mTitleHelper;
-
-    /** Called when the activity is first created. */
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.rows_support);
-
-        mRowsSupportFragment = (RowsSupportFragment) getSupportFragmentManager().findFragmentById(
-                R.id.main_rows_fragment);
-
-        setupTitleFragment();
-    }
-
-    private void setupTitleFragment() {
-        TitleView titleView = (TitleView) findViewById(R.id.title);
-        titleView.setTitle("RowsSupportFragment");
-        titleView.setOnSearchClickedListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View view) {
-                Intent intent = new Intent(RowsSupportActivity.this, SearchSupportActivity.class);
-                startActivity(intent);
-            }
-        });
-
-        BrowseFrameLayout frameLayout = (BrowseFrameLayout) findViewById(R.id.rows_frame);
-        mTitleHelper = new TitleHelper(frameLayout, titleView);
-        frameLayout.setOnFocusSearchListener(mTitleHelper.getOnFocusSearchListener());
-        mRowsSupportFragment.setTitleHelper(mTitleHelper);
-    }
-}
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/RowsSupportFragment.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/RowsSupportFragment.java
deleted file mode 100644
index 1eba32f..0000000
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/RowsSupportFragment.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/* This file is auto-generated from RowsFragment.java.  DO NOT MODIFY. */
-
-/*
- * 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.leanback;
-
-import android.app.Activity;
-import android.content.Intent;
-import android.os.Bundle;
-import android.support.v17.leanback.widget.TitleHelper;
-import android.support.v17.leanback.widget.TitleView;
-import android.support.v4.app.ActivityOptionsCompat;
-import android.support.v17.leanback.R;
-import android.support.v17.leanback.widget.ArrayObjectAdapter;
-import android.support.v17.leanback.widget.HeaderItem;
-import android.support.v17.leanback.widget.ImageCardView;
-import android.support.v17.leanback.widget.ListRow;
-import android.support.v17.leanback.widget.ListRowPresenter;
-import android.support.v17.leanback.widget.OnItemViewClickedListener;
-import android.support.v17.leanback.widget.OnItemViewSelectedListener;
-import android.support.v17.leanback.widget.Presenter;
-import android.support.v17.leanback.widget.Row;
-import android.support.v17.leanback.widget.RowPresenter;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-
-public class RowsSupportFragment extends android.support.v17.leanback.app.RowsSupportFragment {
-
-    private static final String TAG = "leanback.RowsSupportFragment";
-
-    private static final int NUM_ROWS = 10;
-    // Row heights default to wrap content
-    private static final boolean USE_FIXED_ROW_HEIGHT = false;
-
-    private ArrayObjectAdapter mRowsAdapter;
-    private TitleHelper mTitleHelper;
-
-    public void setTitleHelper(TitleHelper titleHelper) {
-        mTitleHelper = titleHelper;
-    }
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        Log.i(TAG, "onCreate");
-        super.onCreate(savedInstanceState);
-
-        setupRows();
-        setOnItemViewClickedListener(new ItemViewClickedListener());
-        setOnItemViewSelectedListener(new OnItemViewSelectedListener() {
-            @Override
-            public void onItemSelected(Presenter.ViewHolder itemViewHolder, Object item,
-                    RowPresenter.ViewHolder rowViewHolder, Row row) {
-                Log.i(TAG, "onItemSelected: " + item + " row " + row);
-                if (mTitleHelper != null) {
-                    mTitleHelper.showTitle(getAdapter() == null || getAdapter().size() == 0 ||
-                            getAdapter().get(0) == row);
-                }
-            }
-        });
-    }
-
-    private void setupRows() {
-        ListRowPresenter lrp = new ListRowPresenter();
-
-        // For good performance, it's important to use a single instance of
-        // a card presenter for all rows using that presenter.
-        final CardPresenter cardPresenter = new CardPresenter();
-
-        if (USE_FIXED_ROW_HEIGHT) {
-            lrp.setRowHeight(cardPresenter.getRowHeight(getActivity()));
-            lrp.setExpandedRowHeight(cardPresenter.getExpandedRowHeight(getActivity()));
-        }
-
-        mRowsAdapter = new ArrayObjectAdapter(lrp);
-
-        for (int i = 0; i < NUM_ROWS; ++i) {
-            ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter(cardPresenter);
-            listRowAdapter.add(new PhotoItem("Hello world", R.drawable.gallery_photo_1));
-            listRowAdapter.add(new PhotoItem("This is a test", R.drawable.gallery_photo_2));
-            listRowAdapter.add(new PhotoItem("Android TV", R.drawable.gallery_photo_3));
-            listRowAdapter.add(new PhotoItem("Leanback", R.drawable.gallery_photo_4));
-            listRowAdapter.add(new PhotoItem("Hello world", R.drawable.gallery_photo_5));
-            listRowAdapter.add(new PhotoItem("This is a test", R.drawable.gallery_photo_6));
-            listRowAdapter.add(new PhotoItem("Android TV", R.drawable.gallery_photo_7));
-            listRowAdapter.add(new PhotoItem("Leanback", R.drawable.gallery_photo_8));
-            HeaderItem header = new HeaderItem(i, "Row " + i);
-            mRowsAdapter.add(new ListRow(header, listRowAdapter));
-        }
-
-        setAdapter(mRowsAdapter);
-    }
-
-    private final class ItemViewClickedListener implements OnItemViewClickedListener {
-        @Override
-        public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
-                RowPresenter.ViewHolder rowViewHolder, Row row) {
-            Intent intent = new Intent(getActivity(), DetailsSupportActivity.class);
-            intent.putExtra(DetailsSupportActivity.EXTRA_ITEM, (PhotoItem) item);
-
-            Bundle bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(
-                    getActivity(),
-                    ((ImageCardView)itemViewHolder.view).getMainImageView(),
-                    DetailsSupportActivity.SHARED_ELEMENT_NAME).toBundle();
-            getActivity().startActivity(intent, bundle);
-        }
-    }
-}
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/SearchActivity.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/SearchActivity.java
deleted file mode 100644
index 374382b..0000000
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/SearchActivity.java
+++ /dev/null
@@ -1,66 +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.leanback;
-
-import android.app.Activity;
-import android.content.Intent;
-import android.os.Bundle;
-import android.support.v17.leanback.app.SearchFragment;
-import android.support.v17.leanback.widget.SpeechRecognitionCallback;
-import android.util.Log;
-
-public class SearchActivity extends Activity
-{
-    private static final String TAG = "SearchActivity";
-    private static boolean DEBUG = true;
-
-    /** If using internal speech recognizer, you must have RECORD_AUDIO permission */
-    private static boolean USE_INTERNAL_SPEECH_RECOGNIZER = true;
-    private static final int REQUEST_SPEECH = 1;
-
-    private SearchFragment mFragment;
-    private SpeechRecognitionCallback mSpeechRecognitionCallback;
-
-    /** Called when the activity is first created. */
-    @Override
-    public void onCreate(Bundle savedInstanceState)
-    {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.search);
-
-        mFragment = (SearchFragment) getFragmentManager().findFragmentById(R.id.search_fragment);
-
-        if (!USE_INTERNAL_SPEECH_RECOGNIZER) {
-            mSpeechRecognitionCallback = new SpeechRecognitionCallback() {
-                @Override
-                public void recognizeSpeech() {
-                    if (DEBUG) Log.v(TAG, "recognizeSpeech");
-                    startActivityForResult(mFragment.getRecognizerIntent(), REQUEST_SPEECH);
-                }
-            };
-            mFragment.setSpeechRecognitionCallback(mSpeechRecognitionCallback);
-        }
-    }
-
-    @Override
-    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
-        if (DEBUG) Log.v(TAG, "onActivityResult requestCode=" + requestCode +
-                " resultCode=" + resultCode +
-                " data=" + data);
-        if (requestCode == REQUEST_SPEECH && resultCode == RESULT_OK) {
-            mFragment.setSearchQuery(data, true);
-        }
-    }
-
-}
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/SearchDetailsActivity.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/SearchDetailsActivity.java
deleted file mode 100644
index da9e08e..0000000
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/SearchDetailsActivity.java
+++ /dev/null
@@ -1,21 +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.leanback;
-
-/**
- * Same implementation as DetailsActivity for different entries in AndroidManifest.
- */
-public class SearchDetailsActivity extends DetailsActivity
-{
-}
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/SearchDetailsSupportActivity.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/SearchDetailsSupportActivity.java
deleted file mode 100644
index c1d59b2..0000000
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/SearchDetailsSupportActivity.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/* This file is auto-generated from SearchDetailsActivity.java.  DO NOT MODIFY. */
-
-/*
- * 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.leanback;
-
-/**
- * Same implementation as DetailsSupportActivity for different entries in AndroidManifest.
- */
-public class SearchDetailsSupportActivity extends DetailsSupportActivity
-{
-}
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/SearchFragment.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/SearchFragment.java
deleted file mode 100644
index b55b82f..0000000
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/SearchFragment.java
+++ /dev/null
@@ -1,102 +0,0 @@
-package com.example.android.leanback;
-
-import android.content.Intent;
-import android.os.Bundle;
-import android.os.Handler;
-import android.support.v4.app.ActivityOptionsCompat;
-import android.support.v17.leanback.widget.ArrayObjectAdapter;
-import android.support.v17.leanback.widget.HeaderItem;
-import android.support.v17.leanback.widget.ImageCardView;
-import android.support.v17.leanback.widget.ListRow;
-import android.support.v17.leanback.widget.ListRowPresenter;
-import android.support.v17.leanback.widget.ObjectAdapter;
-import android.support.v17.leanback.widget.OnItemViewClickedListener;
-import android.support.v17.leanback.widget.Presenter;
-import android.support.v17.leanback.widget.Row;
-import android.support.v17.leanback.widget.RowPresenter;
-import android.text.TextUtils;
-import android.util.Log;
-
-public class SearchFragment extends android.support.v17.leanback.app.SearchFragment
-    implements android.support.v17.leanback.app.SearchFragment.SearchResultProvider {
-    private static final String TAG = "leanback.SearchFragment";
-    private static final int NUM_ROWS = 3;
-    private static final int SEARCH_DELAY_MS = 1000;
-
-    private ArrayObjectAdapter mRowsAdapter;
-    private Handler mHandler = new Handler();
-    private String mQuery;
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        mRowsAdapter = new ArrayObjectAdapter(new ListRowPresenter());
-
-        setBadgeDrawable(getActivity().getResources().getDrawable(R.drawable.ic_title));
-        setTitle("Leanback Sample App");
-        setSearchResultProvider(this);
-        setOnItemViewClickedListener(new ItemViewClickedListener());
-    }
-
-    @Override
-    public ObjectAdapter getResultsAdapter() {
-        return mRowsAdapter;
-    }
-
-    @Override
-    public boolean onQueryTextChange(String newQuery) {
-        Log.i(TAG, String.format("Search Query Text Change %s", newQuery));
-        mRowsAdapter.clear();
-        loadQuery(newQuery);
-        return true;
-    }
-
-    @Override
-    public boolean onQueryTextSubmit(String query) {
-        Log.i(TAG, String.format("Search Query Text Submit %s", query));
-        mRowsAdapter.clear();
-        loadQuery(query);
-        return true;
-    }
-
-    private void loadQuery(String query) {
-        mQuery = query;
-        mHandler.removeCallbacks(mDelayedLoad);
-        if (!TextUtils.isEmpty(query) && !query.equals("nil")) {
-            mHandler.postDelayed(mDelayedLoad, SEARCH_DELAY_MS);
-        }
-    }
-
-    private void loadRows() {
-        for (int i = 0; i < NUM_ROWS; ++i) {
-            ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter(new CardPresenter());
-            listRowAdapter.add(new PhotoItem("Hello world", R.drawable.gallery_photo_1));
-            listRowAdapter.add(new PhotoItem("This is a test", R.drawable.gallery_photo_2));
-            HeaderItem header = new HeaderItem(i, mQuery + " results row " + i);
-            mRowsAdapter.add(new ListRow(header, listRowAdapter));
-        }
-    }
-
-    private Runnable mDelayedLoad = new Runnable() {
-        @Override
-        public void run() {
-            loadRows();
-        }
-    };
-
-    private final class ItemViewClickedListener implements OnItemViewClickedListener {
-        @Override
-        public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
-                RowPresenter.ViewHolder rowViewHolder, Row row) {
-            Intent intent = new Intent(getActivity(), DetailsActivity.class);
-            intent.putExtra(DetailsActivity.EXTRA_ITEM, (PhotoItem) item);
-
-            Bundle bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(
-                    getActivity(),
-                    ((ImageCardView)itemViewHolder.view).getMainImageView(),
-                    DetailsActivity.SHARED_ELEMENT_NAME).toBundle();
-            getActivity().startActivity(intent, bundle);
-        }
-    }
-}
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/SearchSupportActivity.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/SearchSupportActivity.java
deleted file mode 100644
index 25e5cbf..0000000
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/SearchSupportActivity.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/* This file is auto-generated from SearchActivity.java.  DO NOT MODIFY. */
-
-/*
- * 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.leanback;
-
-import android.support.v4.app.FragmentActivity;
-import android.content.Intent;
-import android.os.Bundle;
-import android.support.v17.leanback.app.SearchSupportFragment;
-import android.support.v17.leanback.widget.SpeechRecognitionCallback;
-import android.util.Log;
-
-public class SearchSupportActivity extends FragmentActivity
-{
-    private static final String TAG = "SearchSupportActivity";
-    private static boolean DEBUG = true;
-
-    /** If using internal speech recognizer, you must have RECORD_AUDIO permission */
-    private static boolean USE_INTERNAL_SPEECH_RECOGNIZER = true;
-    private static final int REQUEST_SPEECH = 1;
-
-    private SearchSupportFragment mFragment;
-    private SpeechRecognitionCallback mSpeechRecognitionCallback;
-
-    /** Called when the activity is first created. */
-    @Override
-    public void onCreate(Bundle savedInstanceState)
-    {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.search_support);
-
-        mFragment = (SearchSupportFragment) getSupportFragmentManager().findFragmentById(R.id.search_fragment);
-
-        if (!USE_INTERNAL_SPEECH_RECOGNIZER) {
-            mSpeechRecognitionCallback = new SpeechRecognitionCallback() {
-                @Override
-                public void recognizeSpeech() {
-                    if (DEBUG) Log.v(TAG, "recognizeSpeech");
-                    startActivityForResult(mFragment.getRecognizerIntent(), REQUEST_SPEECH);
-                }
-            };
-            mFragment.setSpeechRecognitionCallback(mSpeechRecognitionCallback);
-        }
-    }
-
-    @Override
-    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
-        if (DEBUG) Log.v(TAG, "onActivityResult requestCode=" + requestCode +
-                " resultCode=" + resultCode +
-                " data=" + data);
-        if (requestCode == REQUEST_SPEECH && resultCode == RESULT_OK) {
-            mFragment.setSearchQuery(data, true);
-        }
-    }
-
-}
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/SearchSupportFragment.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/SearchSupportFragment.java
deleted file mode 100644
index 35c5eb2..0000000
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/SearchSupportFragment.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/* This file is auto-generated from SearchFragment.java.  DO NOT MODIFY. */
-
-package com.example.android.leanback;
-
-import android.content.Intent;
-import android.os.Bundle;
-import android.os.Handler;
-import android.support.v4.app.ActivityOptionsCompat;
-import android.support.v17.leanback.widget.ArrayObjectAdapter;
-import android.support.v17.leanback.widget.HeaderItem;
-import android.support.v17.leanback.widget.ImageCardView;
-import android.support.v17.leanback.widget.ListRow;
-import android.support.v17.leanback.widget.ListRowPresenter;
-import android.support.v17.leanback.widget.ObjectAdapter;
-import android.support.v17.leanback.widget.OnItemViewClickedListener;
-import android.support.v17.leanback.widget.Presenter;
-import android.support.v17.leanback.widget.Row;
-import android.support.v17.leanback.widget.RowPresenter;
-import android.text.TextUtils;
-import android.util.Log;
-
-public class SearchSupportFragment extends android.support.v17.leanback.app.SearchSupportFragment
-    implements android.support.v17.leanback.app.SearchSupportFragment.SearchResultProvider {
-    private static final String TAG = "leanback.SearchSupportFragment";
-    private static final int NUM_ROWS = 3;
-    private static final int SEARCH_DELAY_MS = 1000;
-
-    private ArrayObjectAdapter mRowsAdapter;
-    private Handler mHandler = new Handler();
-    private String mQuery;
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        mRowsAdapter = new ArrayObjectAdapter(new ListRowPresenter());
-
-        setBadgeDrawable(getActivity().getResources().getDrawable(R.drawable.ic_title));
-        setTitle("Leanback Sample App");
-        setSearchResultProvider(this);
-        setOnItemViewClickedListener(new ItemViewClickedListener());
-    }
-
-    @Override
-    public ObjectAdapter getResultsAdapter() {
-        return mRowsAdapter;
-    }
-
-    @Override
-    public boolean onQueryTextChange(String newQuery) {
-        Log.i(TAG, String.format("Search Query Text Change %s", newQuery));
-        mRowsAdapter.clear();
-        loadQuery(newQuery);
-        return true;
-    }
-
-    @Override
-    public boolean onQueryTextSubmit(String query) {
-        Log.i(TAG, String.format("Search Query Text Submit %s", query));
-        mRowsAdapter.clear();
-        loadQuery(query);
-        return true;
-    }
-
-    private void loadQuery(String query) {
-        mQuery = query;
-        mHandler.removeCallbacks(mDelayedLoad);
-        if (!TextUtils.isEmpty(query) && !query.equals("nil")) {
-            mHandler.postDelayed(mDelayedLoad, SEARCH_DELAY_MS);
-        }
-    }
-
-    private void loadRows() {
-        for (int i = 0; i < NUM_ROWS; ++i) {
-            ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter(new CardPresenter());
-            listRowAdapter.add(new PhotoItem("Hello world", R.drawable.gallery_photo_1));
-            listRowAdapter.add(new PhotoItem("This is a test", R.drawable.gallery_photo_2));
-            HeaderItem header = new HeaderItem(i, mQuery + " results row " + i);
-            mRowsAdapter.add(new ListRow(header, listRowAdapter));
-        }
-    }
-
-    private Runnable mDelayedLoad = new Runnable() {
-        @Override
-        public void run() {
-            loadRows();
-        }
-    };
-
-    private final class ItemViewClickedListener implements OnItemViewClickedListener {
-        @Override
-        public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
-                RowPresenter.ViewHolder rowViewHolder, Row row) {
-            Intent intent = new Intent(getActivity(), DetailsSupportActivity.class);
-            intent.putExtra(DetailsSupportActivity.EXTRA_ITEM, (PhotoItem) item);
-
-            Bundle bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(
-                    getActivity(),
-                    ((ImageCardView)itemViewHolder.view).getMainImageView(),
-                    DetailsSupportActivity.SHARED_ELEMENT_NAME).toBundle();
-            getActivity().startActivity(intent, bundle);
-        }
-    }
-}
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/StringPresenter.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/StringPresenter.java
deleted file mode 100644
index 5c80e0b..0000000
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/StringPresenter.java
+++ /dev/null
@@ -1,42 +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.leanback;
-
-import android.support.v17.leanback.widget.Presenter;
-import android.util.Log;
-import android.view.ViewGroup;
-import android.widget.TextView;
-
-public class StringPresenter extends Presenter {
-    private static final String TAG = "StringPresenter";
-
-    public ViewHolder onCreateViewHolder(ViewGroup parent) {
-        Log.d(TAG, "onCreateViewHolder");
-        TextView tv = new TextView(parent.getContext());
-        tv.setFocusable(true);
-        tv.setFocusableInTouchMode(true);
-        tv.setBackground(
-                parent.getContext().getResources().getDrawable(R.drawable.text_bg));
-        return new ViewHolder(tv);
-    }
-
-    public void onBindViewHolder(ViewHolder viewHolder, Object item) {
-        Log.d(TAG, "onBindViewHolder for " + item.toString());
-        ((TextView) viewHolder.view).setText(item.toString());
-    }
-
-    public void onUnbindViewHolder(ViewHolder viewHolder) {
-        Log.d(TAG, "onUnbindViewHolder"); 
-    }
-}
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/VerticalGridActivity.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/VerticalGridActivity.java
deleted file mode 100644
index 5107be5..0000000
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/VerticalGridActivity.java
+++ /dev/null
@@ -1,30 +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.leanback;
-
-import android.app.Activity;
-import android.os.Bundle;
-
-public class VerticalGridActivity extends Activity
-{
-    /** Called when the activity is first created. */
-    @Override
-    public void onCreate(Bundle savedInstanceState)
-    {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.vertical_grid);
-        // TODO: use BackgroundManager here
-        getWindow().setBackgroundDrawableResource(R.drawable.bg);
-    }
-}
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/VerticalGridFragment.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/VerticalGridFragment.java
deleted file mode 100644
index fe664dd..0000000
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/VerticalGridFragment.java
+++ /dev/null
@@ -1,112 +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.leanback;
-
-import android.content.Intent;
-import android.os.Bundle;
-import android.os.Handler;
-import android.support.v17.leanback.widget.ArrayObjectAdapter;
-import android.support.v17.leanback.widget.Presenter;
-import android.support.v17.leanback.widget.RowPresenter;
-import android.support.v17.leanback.widget.VerticalGridPresenter;
-import android.support.v17.leanback.widget.Row;
-import android.support.v17.leanback.widget.OnItemViewClickedListener;
-import android.support.v17.leanback.widget.OnItemViewSelectedListener;
-import android.util.Log;
-import android.view.Gravity;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.TextView;
-
-public class VerticalGridFragment extends android.support.v17.leanback.app.VerticalGridFragment {
-    private static final String TAG = "leanback.VerticalGridFragment";
-
-    private static final int NUM_COLUMNS = 3;
-    private static final int NUM_ITEMS = 50;
-    private static final int HEIGHT = 200;
-    private static final boolean TEST_ENTRANCE_TRANSITION = true;
-
-    private static class Adapter extends ArrayObjectAdapter {
-        public Adapter(StringPresenter presenter) {
-            super(presenter);
-        }
-        public void callNotifyChanged() {
-            super.notifyChanged();
-        }
-    }
-    private Adapter mAdapter;
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        Log.i(TAG, "onCreate");
-        super.onCreate(savedInstanceState);
-
-        setBadgeDrawable(getActivity().getResources().getDrawable(R.drawable.ic_title));
-        setTitle("Leanback Vertical Grid Demo");
-
-        setupFragment();
-        if (TEST_ENTRANCE_TRANSITION) {
-            // don't run entrance transition if fragment is restored.
-            if (savedInstanceState == null) {
-                prepareEntranceTransition();
-            }
-        }
-        // simulates in a real world use case  data being loaded two seconds later
-        new Handler().postDelayed(new Runnable() {
-            public void run() {
-                loadData();
-                startEntranceTransition();
-            }
-        }, 2000);
-    }
-
-    private void loadData() {
-        for (int i = 0; i < NUM_ITEMS; i++) {
-            mAdapter.add(Integer.toString(i));
-        }
-    }
-
-    private void setupFragment() {
-        VerticalGridPresenter gridPresenter = new VerticalGridPresenter();
-        gridPresenter.setNumberOfColumns(NUM_COLUMNS);
-        setGridPresenter(gridPresenter);
-
-        mAdapter = new Adapter(new StringPresenter());
-        setAdapter(mAdapter);
-
-        setOnItemViewSelectedListener(new OnItemViewSelectedListener() {
-            @Override
-            public void onItemSelected(Presenter.ViewHolder itemViewHolder, Object item,
-                    RowPresenter.ViewHolder rowViewHolder, Row row) {
-                Log.i(TAG, "onItemSelected: " + item + " row " + row);
-            }
-        });
-
-        setOnItemViewClickedListener(new OnItemViewClickedListener() {
-            @Override
-            public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
-                    RowPresenter.ViewHolder rowViewHolder, Row row) {
-                Log.i(TAG, "onItemClicked: " + item + " row " + row);
-                mAdapter.callNotifyChanged();
-            }
-        });
-        setOnSearchClickedListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View view) {
-                Intent intent = new Intent(getActivity(), SearchActivity.class);
-                startActivity(intent);
-            }
-        });
-    }
-}
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/VerticalGridSupportActivity.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/VerticalGridSupportActivity.java
deleted file mode 100644
index 0754fb8..0000000
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/VerticalGridSupportActivity.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/* This file is auto-generated from VerticalGridActivity.java.  DO NOT MODIFY. */
-
-/*
- * 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.leanback;
-
-import android.support.v4.app.FragmentActivity;
-import android.os.Bundle;
-
-public class VerticalGridSupportActivity extends FragmentActivity
-{
-    /** Called when the activity is first created. */
-    @Override
-    public void onCreate(Bundle savedInstanceState)
-    {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.vertical_grid_support);
-        // TODO: use BackgroundManager here
-        getWindow().setBackgroundDrawableResource(R.drawable.bg);
-    }
-}
diff --git a/samples/SupportLeanbackDemos/src/com/example/android/leanback/VerticalGridSupportFragment.java b/samples/SupportLeanbackDemos/src/com/example/android/leanback/VerticalGridSupportFragment.java
deleted file mode 100644
index cd88f5a..0000000
--- a/samples/SupportLeanbackDemos/src/com/example/android/leanback/VerticalGridSupportFragment.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/* This file is auto-generated from VerticalGridFragment.  DO NOT MODIFY. */
-
-/*
- * 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.leanback;
-
-import android.content.Intent;
-import android.os.Bundle;
-import android.os.Handler;
-import android.support.v17.leanback.widget.ArrayObjectAdapter;
-import android.support.v17.leanback.widget.Presenter;
-import android.support.v17.leanback.widget.RowPresenter;
-import android.support.v17.leanback.widget.VerticalGridPresenter;
-import android.support.v17.leanback.widget.Row;
-import android.support.v17.leanback.widget.OnItemViewClickedListener;
-import android.support.v17.leanback.widget.OnItemViewSelectedListener;
-import android.util.Log;
-import android.view.Gravity;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.TextView;
-
-public class VerticalGridSupportFragment extends android.support.v17.leanback.app.VerticalGridSupportFragment {
-    private static final String TAG = "leanback.VerticalGridSupportFragment";
-
-    private static final int NUM_COLUMNS = 3;
-    private static final int NUM_ITEMS = 50;
-    private static final int HEIGHT = 200;
-    private static final boolean TEST_ENTRANCE_TRANSITION = true;
-
-    private static class Adapter extends ArrayObjectAdapter {
-        public Adapter(StringPresenter presenter) {
-            super(presenter);
-        }
-        public void callNotifyChanged() {
-            super.notifyChanged();
-        }
-    }
-    private Adapter mAdapter;
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        Log.i(TAG, "onCreate");
-        super.onCreate(savedInstanceState);
-
-        setBadgeDrawable(getActivity().getResources().getDrawable(R.drawable.ic_title));
-        setTitle("Leanback Vertical Grid Demo");
-
-        setupFragment();
-        if (TEST_ENTRANCE_TRANSITION) {
-            // don't run entrance transition if fragment is restored.
-            if (savedInstanceState == null) {
-                prepareEntranceTransition();
-            }
-        }
-        // simulates in a real world use case  data being loaded two seconds later
-        new Handler().postDelayed(new Runnable() {
-            public void run() {
-                loadData();
-                startEntranceTransition();
-            }
-        }, 2000);
-    }
-
-    private void loadData() {
-        for (int i = 0; i < NUM_ITEMS; i++) {
-            mAdapter.add(Integer.toString(i));
-        }
-    }
-
-    private void setupFragment() {
-        VerticalGridPresenter gridPresenter = new VerticalGridPresenter();
-        gridPresenter.setNumberOfColumns(NUM_COLUMNS);
-        setGridPresenter(gridPresenter);
-
-        mAdapter = new Adapter(new StringPresenter());
-        setAdapter(mAdapter);
-
-        setOnItemViewSelectedListener(new OnItemViewSelectedListener() {
-            @Override
-            public void onItemSelected(Presenter.ViewHolder itemViewHolder, Object item,
-                    RowPresenter.ViewHolder rowViewHolder, Row row) {
-                Log.i(TAG, "onItemSelected: " + item + " row " + row);
-            }
-        });
-
-        setOnItemViewClickedListener(new OnItemViewClickedListener() {
-            @Override
-            public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
-                    RowPresenter.ViewHolder rowViewHolder, Row row) {
-                Log.i(TAG, "onItemClicked: " + item + " row " + row);
-                mAdapter.callNotifyChanged();
-            }
-        });
-        setOnSearchClickedListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View view) {
-                Intent intent = new Intent(getActivity(), SearchSupportActivity.class);
-                startActivity(intent);
-            }
-        });
-    }
-}
diff --git a/samples/SupportLeanbackShowcase/.gitignore b/samples/SupportLeanbackShowcase/.gitignore
deleted file mode 100644
index 9c4de58..0000000
--- a/samples/SupportLeanbackShowcase/.gitignore
+++ /dev/null
@@ -1,7 +0,0 @@
-.gradle
-/local.properties
-/.idea/workspace.xml
-/.idea/libraries
-.DS_Store
-/build
-/captures
diff --git a/samples/SupportLeanbackShowcase/SupportLeanbackShowcase.iml b/samples/SupportLeanbackShowcase/SupportLeanbackShowcase.iml
deleted file mode 100644
index 62a2d86..0000000
--- a/samples/SupportLeanbackShowcase/SupportLeanbackShowcase.iml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module external.linked.project.id="SupportLeanbackShowcase" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$" external.system.id="GRADLE" external.system.module.group="" external.system.module.version="unspecified" type="JAVA_MODULE" version="4">
-  <component name="FacetManager">
-    <facet type="java-gradle" name="Java-Gradle">
-      <configuration>
-        <option name="BUILD_FOLDER_PATH" value="$MODULE_DIR$/build" />
-        <option name="BUILDABLE" value="false" />
-      </configuration>
-    </facet>
-  </component>
-  <component name="NewModuleRootManager" inherit-compiler-output="true">
-    <exclude-output />
-    <content url="file://$MODULE_DIR$">
-      <excludeFolder url="file://$MODULE_DIR$/.gradle" />
-    </content>
-    <orderEntry type="inheritedJdk" />
-    <orderEntry type="sourceFolder" forTests="false" />
-  </component>
-</module>
\ No newline at end of file
diff --git a/samples/SupportLeanbackShowcase/app/.gitignore b/samples/SupportLeanbackShowcase/app/.gitignore
deleted file mode 100644
index 796b96d..0000000
--- a/samples/SupportLeanbackShowcase/app/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/build
diff --git a/samples/SupportLeanbackShowcase/app/app.iml b/samples/SupportLeanbackShowcase/app/app.iml
deleted file mode 100644
index 3bc8a32..0000000
--- a/samples/SupportLeanbackShowcase/app/app.iml
+++ /dev/null
@@ -1,103 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module external.linked.project.id=":app" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/.." external.system.id="GRADLE" external.system.module.group="SupportLeanbackShowcase" external.system.module.version="unspecified" type="JAVA_MODULE" version="4">
-  <component name="FacetManager">
-    <facet type="android-gradle" name="Android-Gradle">
-      <configuration>
-        <option name="GRADLE_PROJECT_PATH" value=":app" />
-      </configuration>
-    </facet>
-    <facet type="android" name="Android">
-      <configuration>
-        <option name="SELECTED_BUILD_VARIANT" value="debug" />
-        <option name="SELECTED_TEST_ARTIFACT" value="_android_test_" />
-        <option name="ASSEMBLE_TASK_NAME" value="assembleDebug" />
-        <option name="COMPILE_JAVA_TASK_NAME" value="compileDebugSources" />
-        <option name="SOURCE_GEN_TASK_NAME" value="generateDebugSources" />
-        <option name="ASSEMBLE_TEST_TASK_NAME" value="assembleDebugAndroidTest" />
-        <option name="COMPILE_JAVA_TEST_TASK_NAME" value="compileDebugAndroidTestSources" />
-        <option name="TEST_SOURCE_GEN_TASK_NAME" value="generateDebugAndroidTestSources" />
-        <option name="ALLOW_USER_CONFIGURATION" value="false" />
-        <option name="MANIFEST_FILE_RELATIVE_PATH" value="/src/main/AndroidManifest.xml" />
-        <option name="RES_FOLDER_RELATIVE_PATH" value="/src/main/res" />
-        <option name="RES_FOLDERS_RELATIVE_PATH" value="file://$MODULE_DIR$/src/main/res" />
-        <option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets" />
-      </configuration>
-    </facet>
-  </component>
-  <component name="NewModuleRootManager" inherit-compiler-output="false">
-    <output url="file://$MODULE_DIR$/build/intermediates/classes/debug" />
-    <output-test url="file://$MODULE_DIR$/build/intermediates/classes/androidTest/debug" />
-    <exclude-output />
-    <content url="file://$MODULE_DIR$">
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/debug" isTestSource="false" generated="true" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/debug" isTestSource="false" generated="true" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/debug" isTestSource="false" generated="true" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/debug" isTestSource="false" generated="true" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/debug" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/res/generated/debug" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/androidTest/debug" isTestSource="true" generated="true" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/androidTest/debug" isTestSource="true" generated="true" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/androidTest/debug" isTestSource="true" generated="true" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/androidTest/debug" isTestSource="true" generated="true" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/androidTest/debug" type="java-test-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/res/generated/androidTest/debug" type="java-test-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/debug/res" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/debug/resources" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/debug/assets" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/debug/aidl" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/debug/java" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/debug/jni" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/debug/rs" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/main/res" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/main/assets" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/main/aidl" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/main/jni" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/androidTest/aidl" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/androidTest/java" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/androidTest/jni" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/assets" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/bundles" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/classes" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/coverage-instrumented-classes" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/dependency-cache" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/dex" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/dex-cache" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/appcompat-v7/22.1.1/jars" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/leanback-v17/22.1.1/jars" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/palette-v7/21.0.0/jars" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/recyclerview-v7/22.1.1/jars" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/support-v4/22.1.1/jars" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/jacoco" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/javaResources" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/libs" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/lint" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/manifests" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/ndk" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/pre-dexed" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/proguard" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/res" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/rs" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" />
-      <excludeFolder url="file://$MODULE_DIR$/build/outputs" />
-      <excludeFolder url="file://$MODULE_DIR$/build/tmp" />
-    </content>
-    <orderEntry type="jdk" jdkName="Android API 22 Platform" jdkType="Android SDK" />
-    <orderEntry type="sourceFolder" forTests="false" />
-    <orderEntry type="library" exported="" name="appcompat-v7-22.1.1" level="project" />
-    <orderEntry type="library" exported="" name="leanback-v17-22.1.1" level="project" />
-    <orderEntry type="library" exported="" name="palette-v7-21.0.0" level="project" />
-    <orderEntry type="library" exported="" name="gson-1.7.2" level="project" />
-    <orderEntry type="library" exported="" name="recyclerview-v7-22.1.1" level="project" />
-    <orderEntry type="library" exported="" name="support-v4-22.1.1" level="project" />
-    <orderEntry type="library" exported="" name="support-annotations-22.1.1" level="project" />
-    <orderEntry type="library" exported="" name="picasso-2.3.2" level="project" />
-  </component>
-</module>
\ No newline at end of file
diff --git a/samples/SupportLeanbackShowcase/app/build.gradle b/samples/SupportLeanbackShowcase/app/build.gradle
deleted file mode 100644
index 2b817d3..0000000
--- a/samples/SupportLeanbackShowcase/app/build.gradle
+++ /dev/null
@@ -1,36 +0,0 @@
-apply plugin: 'com.android.application'
-
-android {
-    compileSdkVersion 'android-N'
-    buildToolsVersion "24.0.0 rc3"
-
-    defaultConfig {
-        applicationId "android.support.v17.leanback.supportleanbackshowcase"
-        minSdkVersion '17'
-        targetSdkVersion 'N'
-        versionCode 1
-        versionName "1.0"
-        multiDexEnabled true
-    }
-    buildTypes {
-        release {
-            minifyEnabled false
-            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
-        }
-    }
-}
-
-dependencies {
-    compile fileTree(dir: 'libs', include: ['*.jar'])
-    compile "com.android.support:recyclerview-v7:${supportLibVersion}"
-    compile "com.android.support:leanback-v17:${supportLibVersion}"
-    compile "com.android.support:appcompat-v7:${supportLibVersion}"
-
-    compile "com.android.support:preference-v7:${supportLibVersion}"
-    compile "com.android.support:preference-leanback-v17:${supportLibVersion}"
-    compile "com.android.support:preference-v14:${supportLibVersion}"
-
-    compile "com.google.code.gson:gson:1.7.2"
-    compile "com.squareup.picasso:picasso:2.5.2"
-    compile "com.android.support:palette-v7:${supportLibVersion}"
-}
diff --git a/samples/SupportLeanbackShowcase/app/proguard-rules.pro b/samples/SupportLeanbackShowcase/app/proguard-rules.pro
deleted file mode 100644
index cf489a5..0000000
--- a/samples/SupportLeanbackShowcase/app/proguard-rules.pro
+++ /dev/null
@@ -1,17 +0,0 @@
-# Add project specific ProGuard rules here.
-# By default, the flags in this file are appended to flags specified
-# in /Users/hahnr/Library/Android/sdk/tools/proguard/proguard-android.txt
-# You can edit the include path and order by changing the proguardFiles
-# directive in build.gradle.
-#
-# For more details, see
-#   http://developer.android.com/guide/developing/tools/proguard.html
-
-# Add any project specific keep options here:
-
-# If your project uses WebView with JS, uncomment the following
-# and specify the fully qualified class name to the JavaScript interface
-# class:
-#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
-#   public *;
-#}
diff --git a/samples/SupportLeanbackShowcase/app/src/androidTest/java/android/support/v17/leanback/supportleanbackshowcase/ApplicationTest.java b/samples/SupportLeanbackShowcase/app/src/androidTest/java/android/support/v17/leanback/supportleanbackshowcase/ApplicationTest.java
deleted file mode 100644
index 4d13a4b..0000000
--- a/samples/SupportLeanbackShowcase/app/src/androidTest/java/android/support/v17/leanback/supportleanbackshowcase/ApplicationTest.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * 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 android.support.v17.leanback.supportleanbackshowcase;
-
-import android.app.Application;
-import android.test.ApplicationTestCase;
-
-/**
- * <a href="http://d.android.com/tools/testing/testing_android.html">Testing Fundamentals</a>
- */
-public class ApplicationTest extends ApplicationTestCase<Application> {
-    public ApplicationTest() {
-        super(Application.class);
-    }
-}
\ No newline at end of file
diff --git a/samples/SupportLeanbackShowcase/app/src/main/Android.mk b/samples/SupportLeanbackShowcase/app/src/main/Android.mk
deleted file mode 100644
index 76c933e..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/Android.mk
+++ /dev/null
@@ -1,63 +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.
-
-LOCAL_PATH:= $(call my-dir)
-
-#LOCAL_JACK_FLAGS := -D jack.import.jar.debug-info=false
-
-# Build the samples.
-# We need to add some special AAPT flags to generate R classes
-# for resources that are included from the libraries.
-include $(CLEAR_VARS)
-LOCAL_PACKAGE_NAME := SupportLeanbackShowcase
-LOCAL_MODULE_TAGS := samples tests
-LOCAL_SDK_VERSION := current
-LOCAL_MIN_SDK_VERSION := 17
-LOCAL_SRC_FILES := $(call all-java-files-under, java)
-LOCAL_STATIC_JAVA_LIBRARIES := \
-        android-support-v4 \
-        android-support-v7-recyclerview \
-        android-support-v7-preference \
-        android-support-v7-appcompat \
-        android-support-v14-preference \
-        android-support-v17-preference-leanback \
-        android-support-v17-leanback \
-	gson-x \
-	picasso-x
-LOCAL_RESOURCE_DIR = \
-        $(LOCAL_PATH)/res \
-        frameworks/support/v17/preference-leanback/res \
-        frameworks/support/v7/preference/res \
-        frameworks/support/v7/appcompat/res \
-        frameworks/support/v14/preference/res \
-        frameworks/support/v17/leanback/res \
-        frameworks/support/v7/recyclerview/res
-LOCAL_AAPT_FLAGS := \
-        --auto-add-overlay \
-        --extra-packages android.support.v17.leanback \
-        --extra-packages android.support.v17.preference \
-        --extra-packages android.support.v7.preference \
-        --extra-packages android.support.v14.preference \
-        --extra-packages android.support.v7.appcompat \
-        --extra-packages android.support.v7.recyclerview
-include $(BUILD_PACKAGE)
-
-
-include $(CLEAR_VARS)
-
-LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := \
-	gson-x:../../../libs/gson-1.7.2.jar \
-	picasso-x:../../../libs/picasso-2.5.2.jar \
-
-include $(BUILD_MULTI_PREBUILT)
diff --git a/samples/SupportLeanbackShowcase/app/src/main/AndroidManifest.xml b/samples/SupportLeanbackShowcase/app/src/main/AndroidManifest.xml
deleted file mode 100644
index 4e71c40..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,74 +0,0 @@
-<manifest
-    package="android.support.v17.leanback.supportleanbackshowcase"
-    xmlns:android="http://schemas.android.com/apk/res/android">
-
-    <uses-sdk android:minSdkVersion="17" android:targetSdkVersion="23" />
-    <uses-permission android:name="android.permission.INTERNET"/>
-    <uses-permission android:name="android.permission.RECORD_AUDIO"/>
-
-    <uses-feature
-        android:name="android.hardware.touchscreen"
-        android:required="false"/>
-    <uses-feature
-        android:name="android.software.leanback"
-        android:required="true"/>
-
-    <application
-        android:allowBackup="true"
-        android:icon="@mipmap/app_banner_sample_app"
-        android:label="@string/app_name"
-        android:supportsRtl="true"
-        android:largeHeap="true"
-        android:theme="@style/Theme.Example.LeanbackLauncher">
-        <activity
-            android:name=".app.MainActivity"
-            android:exported="true"
-            android:icon="@mipmap/app_banner_sample_app"
-            android:label="@string/app_name"
-            android:logo="@mipmap/app_banner_sample_app"
-            android:screenOrientation="landscape">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN"/>
-
-                <category android:name="android.intent.category.LEANBACK_LAUNCHER"/>
-            </intent-filter>
-        </activity>
-        <activity
-                android:name=".app.page.PageAndListRowActivity"
-                android:exported="true"
-                android:theme="@style/Theme.Example.Leanback.CustomTitle"/>
-        <activity
-            android:name=".app.wizard.WizardExampleActivity"
-            android:exported="true"
-            android:theme="@style/Theme.Example.LeanbackWizard"></activity>
-        <activity
-            android:name=".app.settings.SettingsExampleActivity"
-            android:exported="true"
-            android:theme="@style/Theme.Example.LeanbackPreferences"></activity>
-        <activity
-            android:name=".app.dialog.DialogExampleActivity"
-            android:exported="true"
-            android:theme="@style/Theme.Example.LeanbackDialog"></activity>
-        <activity
-            android:name=".app.details.DetailViewExampleActivity"
-            android:exported="true"
-            android:theme="@style/Theme.Example.LeanbackDetails"></activity>
-        <activity
-            android:name=".app.cards.CardExampleActivity"
-            android:exported="true"
-            android:theme="@style/Theme.Example.LeanbackBrowse"></activity>
-        <activity
-            android:name=".app.grid.GridExampleActivity"
-            android:exported="true"
-            android:theme="@style/Theme.Example.LeanbackVerticalGrid"></activity>
-        <activity
-            android:name=".app.media.VideoExampleActivity"
-            android:exported="true"
-            android:theme="@style/Theme.Example.Leanback"></activity>
-        <activity
-            android:name=".app.media.MusicExampleActivity"
-            android:exported="true"
-            android:theme="@style/Theme.Example.LeanbackMusic"></activity>
-    </application>
-
-</manifest>
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/MainActivity.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/MainActivity.java
deleted file mode 100644
index e84c8cc..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/MainActivity.java
+++ /dev/null
@@ -1,39 +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 android.support.v17.leanback.supportleanbackshowcase.app;
-
-import android.app.Activity;
-import android.app.Fragment;
-import android.os.Bundle;
-import android.support.v17.leanback.supportleanbackshowcase.R;
-
-/*
- * MainActivity class that loads MainFragment
- */
-public class MainActivity extends Activity {
-
-    /**
-     * Called when the activity is first created.
-     */
-    @Override public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.activity_main);
-        if (savedInstanceState == null) {
-            Fragment fragment = new MainFragment();
-            getFragmentManager().beginTransaction().replace(R.id.fragmentContainer, fragment)
-                                .commit();
-        }
-    }
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/MainFragment.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/MainFragment.java
deleted file mode 100644
index 6918539..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/MainFragment.java
+++ /dev/null
@@ -1,186 +0,0 @@
-/*
- * 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 android.support.v17.leanback.supportleanbackshowcase.app;
-
-import android.content.Intent;
-import android.os.Bundle;
-import android.support.v17.leanback.app.BrowseFragment;
-import android.support.v17.leanback.supportleanbackshowcase.R;
-import android.support.v17.leanback.supportleanbackshowcase.app.cards.CardExampleActivity;
-import android.support.v17.leanback.supportleanbackshowcase.app.details.DetailViewExampleActivity;
-import android.support.v17.leanback.supportleanbackshowcase.app.dialog.DialogExampleActivity;
-import android.support.v17.leanback.supportleanbackshowcase.app.grid.GridExampleActivity;
-import android.support.v17.leanback.supportleanbackshowcase.app.media.MusicExampleActivity;
-import android.support.v17.leanback.supportleanbackshowcase.app.media.VideoExampleActivity;
-import android.support.v17.leanback.supportleanbackshowcase.app.page.PageAndListRowActivity;
-import android.support.v17.leanback.supportleanbackshowcase.app.settings.SettingsExampleActivity;
-import android.support.v17.leanback.supportleanbackshowcase.app.wizard.WizardExampleActivity;
-import android.support.v17.leanback.supportleanbackshowcase.cards.presenters.CardPresenterSelector;
-import android.support.v17.leanback.supportleanbackshowcase.models.Card;
-import android.support.v17.leanback.supportleanbackshowcase.models.CardRow;
-import android.support.v17.leanback.supportleanbackshowcase.models.Movie;
-import android.support.v17.leanback.supportleanbackshowcase.utils.Utils;
-import android.support.v17.leanback.widget.ArrayObjectAdapter;
-import android.support.v17.leanback.widget.ImageCardView;
-import android.support.v17.leanback.widget.ListRow;
-import android.support.v17.leanback.widget.ListRowPresenter;
-import android.support.v17.leanback.widget.OnItemViewClickedListener;
-import android.support.v17.leanback.widget.OnItemViewSelectedListener;
-import android.support.v17.leanback.widget.Presenter;
-import android.support.v17.leanback.widget.PresenterSelector;
-import android.support.v17.leanback.widget.Row;
-import android.support.v17.leanback.widget.RowPresenter;
-import android.support.v4.app.ActivityOptionsCompat;
-
-import com.google.gson.Gson;
-
-
-public class MainFragment extends BrowseFragment {
-
-    private ArrayObjectAdapter mRowsAdapter;
-
-    @Override
-    public void onActivityCreated(Bundle savedInstanceState) {
-        super.onActivityCreated(savedInstanceState);
-
-        setupUIElements();
-        setupRowAdapter();
-        setupEventListeners();
-    }
-
-    private void setupRowAdapter() {
-        mRowsAdapter = new ArrayObjectAdapter(new ListRowPresenter());
-        createRows();
-        setAdapter(mRowsAdapter);
-    }
-
-    private void createRows() {
-        String json = Utils
-                .inputStreamToString(getResources().openRawResource(R.raw.launcher_cards));
-        CardRow[] rows = new Gson().fromJson(json, CardRow[].class);
-        for (CardRow row : rows) {
-            mRowsAdapter.add(createCardRow(row));
-        }
-    }
-
-    private ListRow createCardRow(CardRow cardRow) {
-        PresenterSelector presenterSelector = new CardPresenterSelector(getActivity());
-        ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter(presenterSelector);
-        for (Card card : cardRow.getCards()) {
-            listRowAdapter.add(card);
-        }
-        return new ListRow(listRowAdapter);
-    }
-
-    private void setupUIElements() {
-        setTitle(getString(R.string.browse_title));
-        setBadgeDrawable(getResources().getDrawable(R.drawable.title_android_tv, null));
-        setHeadersState(HEADERS_DISABLED);
-        setHeadersTransitionOnBackEnabled(false);
-        setBrandColor(getResources().getColor(R.color.fastlane_background));
-    }
-
-    private void setupEventListeners() {
-        setOnItemViewClickedListener(new ItemViewClickedListener());
-        setOnItemViewSelectedListener(new ItemViewSelectedListener());
-    }
-
-    private final class ItemViewClickedListener implements OnItemViewClickedListener {
-
-        @Override
-        public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
-                                  RowPresenter.ViewHolder rowViewHolder, Row row) {
-            Intent intent = null;
-            Card card = (Card) item;
-            int id = card.getId();
-            switch (id) {
-                case 0: {
-                    intent = new Intent(getActivity().getBaseContext(),
-                            CardExampleActivity.class);
-                    break;
-                }
-                case 1:
-                    intent = new Intent(getActivity().getBaseContext(),
-                            PageAndListRowActivity.class);
-                    break;
-                case 2: {
-                    intent = new Intent(getActivity().getBaseContext(),
-                            GridExampleActivity.class);
-                    break;
-                }
-                case 3: {
-                    intent = new Intent(getActivity().getBaseContext(),
-                            DetailViewExampleActivity.class);
-                    break;
-                }
-                case 4: {
-                    intent = new Intent(getActivity().getBaseContext(),
-                            VideoExampleActivity.class);
-                    break;
-                }
-                case 5: {
-                    intent = new Intent(getActivity().getBaseContext(),
-                            MusicExampleActivity.class);
-                    break;
-                }
-                case 6: {
-                    // Let's create a new Wizard for a given Movie. The movie can come from any sort
-                    // of data source. To simplify this example we decode it from a JSON source
-                    // which might be loaded from a server in a real world example.
-                    intent = new Intent(getActivity().getBaseContext(),
-                            WizardExampleActivity.class);
-
-                    // Prepare extras which contains the Movie and will be passed to the Activity
-                    // which is started through the Intent/.
-                    Bundle extras = new Bundle();
-                    String json = Utils.inputStreamToString(
-                            getResources().openRawResource(R.raw.wizard_example));
-                    Movie movie = new Gson().fromJson(json, Movie.class);
-                    extras.putSerializable("movie", movie);
-                    intent.putExtras(extras);
-
-                    // Finally, start the wizard Activity.
-                    break;
-                }
-                case 7: {
-                    intent = new Intent(getActivity().getBaseContext(),
-                            SettingsExampleActivity.class);
-                    startActivity(intent);
-                    return;
-                }
-                case 8: {
-                    intent = new Intent(getActivity().getBaseContext(),
-                            DialogExampleActivity.class);
-                    break;
-                }
-                default:
-                    break;
-            }
-            if (intent != null) {
-                Bundle bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(getActivity())
-                        .toBundle();
-                startActivity(intent, bundle);
-            }
-        }
-    }
-
-    private final class ItemViewSelectedListener implements OnItemViewSelectedListener {
-
-        @Override
-        public void onItemSelected(Presenter.ViewHolder itemViewHolder, Object item,
-                                   RowPresenter.ViewHolder rowViewHolder, Row row) {
-        }
-    }
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/cards/CardExampleActivity.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/cards/CardExampleActivity.java
deleted file mode 100644
index ecb0c7a..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/cards/CardExampleActivity.java
+++ /dev/null
@@ -1,34 +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 android.support.v17.leanback.supportleanbackshowcase.app.cards;
-
-import android.app.Activity;
-import android.graphics.Color;
-import android.graphics.drawable.ColorDrawable;
-import android.os.Bundle;
-import android.support.v17.leanback.app.GuidedStepFragment;
-import android.support.v17.leanback.supportleanbackshowcase.app.dialog.DialogExampleFragment;
-import android.support.v17.leanback.supportleanbackshowcase.R;
-
-/**
- * TODO: Javadoc
- */
-public class CardExampleActivity extends Activity {
-
-    @Override public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.activity_cards_example);
-    }
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/cards/CardExampleFragment.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/cards/CardExampleFragment.java
deleted file mode 100644
index ab683d0..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/cards/CardExampleFragment.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * 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 android.support.v17.leanback.supportleanbackshowcase.app.cards;
-
-import android.content.Intent;
-import android.os.Bundle;
-import android.os.Handler;
-import android.support.v17.leanback.app.BrowseFragment;
-import android.support.v17.leanback.supportleanbackshowcase.R;
-import android.support.v17.leanback.supportleanbackshowcase.app.details.DetailViewExampleActivity;
-import android.support.v17.leanback.supportleanbackshowcase.app.details.DetailViewExampleFragment;
-import android.support.v17.leanback.supportleanbackshowcase.app.details.ShadowRowPresenterSelector;
-import android.support.v17.leanback.supportleanbackshowcase.cards.presenters.CardPresenterSelector;
-import android.support.v17.leanback.supportleanbackshowcase.models.Card;
-import android.support.v17.leanback.supportleanbackshowcase.models.CardRow;
-import android.support.v17.leanback.supportleanbackshowcase.utils.CardListRow;
-import android.support.v17.leanback.supportleanbackshowcase.utils.Utils;
-import android.support.v17.leanback.widget.ArrayObjectAdapter;
-import android.support.v17.leanback.widget.HeaderItem;
-import android.support.v17.leanback.widget.ImageCardView;
-import android.support.v17.leanback.widget.DividerRow;
-import android.support.v17.leanback.widget.SectionRow;
-import android.support.v17.leanback.widget.ListRow;
-import android.support.v17.leanback.widget.OnItemViewClickedListener;
-import android.support.v17.leanback.widget.Presenter;
-import android.support.v17.leanback.widget.PresenterSelector;
-import android.support.v17.leanback.widget.Row;
-import android.support.v17.leanback.widget.RowPresenter;
-import android.support.v17.leanback.widget.SearchOrbView;
-import android.support.v4.app.ActivityOptionsCompat;
-import android.view.View;
-import android.widget.ImageView;
-import android.widget.Toast;
-
-import com.google.gson.Gson;
-
-/**
- * This fragment will be shown when the "Card Examples" card is selected at the home menu. It will
- * display multiple card types.
- */
-public class CardExampleFragment extends BrowseFragment {
-
-    private ArrayObjectAdapter mRowsAdapter;
-
-    @Override public void onActivityCreated(Bundle savedInstanceState) {
-        super.onActivityCreated(savedInstanceState);
-        setupUi();
-        setupRowAdapter();
-    }
-
-    private void setupUi() {
-        setHeadersState(HEADERS_ENABLED);
-        setHeadersTransitionOnBackEnabled(true);
-        setTitle(getString(R.string.card_examples_title));
-        setOnSearchClickedListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                Toast.makeText(getActivity(), getString(R.string.implement_search),
-                        Toast.LENGTH_LONG).show();
-            }
-        });
-        setOnItemViewClickedListener(new OnItemViewClickedListener() {
-
-            @Override
-            public void onItemClicked(Presenter.ViewHolder viewHolder, Object item, RowPresenter.ViewHolder viewHolder1, Row row) {
-                if (!(item instanceof Card)) return;
-                if (!(viewHolder.view instanceof ImageCardView)) return;
-
-                ImageView imageView = ((ImageCardView) viewHolder.view).getMainImageView();
-                Bundle bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(getActivity(),
-                        imageView, DetailViewExampleFragment.TRANSITION_NAME).toBundle();
-                Intent intent = new Intent(getActivity().getBaseContext(),
-                        DetailViewExampleActivity.class);
-                Card card = (Card) item;
-                int imageResId = card.getLocalImageResourceId(getContext());
-                intent.putExtra(DetailViewExampleFragment.EXTRA_CARD, imageResId);
-                startActivity(intent, bundle);
-            }
-
-        });
-
-        prepareEntranceTransition();
-    }
-
-    private void setupRowAdapter() {
-        mRowsAdapter = new ArrayObjectAdapter(new ShadowRowPresenterSelector());
-        setAdapter(mRowsAdapter);
-        new Handler().postDelayed(new Runnable() {
-            @Override
-            public void run() {
-                createRows();
-                startEntranceTransition();
-            }
-        }, 500);
-    }
-
-    private void createRows() {
-        String json = Utils
-                .inputStreamToString(getResources().openRawResource(R.raw.cards_example));
-        CardRow[] rows = new Gson().fromJson(json, CardRow[].class);
-        for (CardRow row : rows) {
-            mRowsAdapter.add(createCardRow(row));
-        }
-    }
-
-    private Row createCardRow(final CardRow cardRow) {
-        switch (cardRow.getType()) {
-            case CardRow.TYPE_SECTION_HEADER:
-                return new SectionRow(new HeaderItem(cardRow.getTitle()));
-            case CardRow.TYPE_DIVIDER:
-                return new DividerRow();
-            case CardRow.TYPE_DEFAULT:
-            default:
-                // Build main row using the ImageCardViewPresenter.
-                PresenterSelector presenterSelector = new CardPresenterSelector(getActivity());
-                ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter(presenterSelector);
-                for (Card card : cardRow.getCards()) {
-                    listRowAdapter.add(card);
-                }
-                return new CardListRow(new HeaderItem(cardRow.getTitle()), listRowAdapter, cardRow);
-        }
-    }
-
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/details/DetailViewExampleActivity.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/details/DetailViewExampleActivity.java
deleted file mode 100644
index 6b9c143..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/details/DetailViewExampleActivity.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * 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 android.support.v17.leanback.supportleanbackshowcase.app.details;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.support.v17.leanback.app.DetailsFragment;
-import android.support.v17.leanback.supportleanbackshowcase.R;
-
-/**
- * Contains a {@link DetailsFragment} in order to display more details for a given card.
- */
-public class DetailViewExampleActivity extends Activity {
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.activity_detail_example);
-    }
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/details/DetailViewExampleFragment.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/details/DetailViewExampleFragment.java
deleted file mode 100644
index eed800f..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/details/DetailViewExampleFragment.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- * 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 android.support.v17.leanback.supportleanbackshowcase.app.details;
-
-import android.graphics.Bitmap;
-import android.graphics.BitmapFactory;
-import android.os.Bundle;
-import android.os.Handler;
-import android.support.v17.leanback.app.DetailsFragment;
-import android.support.v17.leanback.supportleanbackshowcase.models.DetailedCard;
-import android.support.v17.leanback.supportleanbackshowcase.R;
-import android.support.v17.leanback.supportleanbackshowcase.utils.CardListRow;
-import android.support.v17.leanback.supportleanbackshowcase.utils.Utils;
-import android.support.v17.leanback.supportleanbackshowcase.cards.presenters.CardPresenterSelector;
-import android.support.v17.leanback.supportleanbackshowcase.models.Card;
-import android.support.v17.leanback.widget.Action;
-import android.support.v17.leanback.widget.ArrayObjectAdapter;
-import android.support.v17.leanback.widget.ClassPresenterSelector;
-import android.support.v17.leanback.widget.DetailsOverviewRow;
-import android.support.v17.leanback.widget.FullWidthDetailsOverviewRowPresenter;
-import android.support.v17.leanback.widget.FullWidthDetailsOverviewSharedElementHelper;
-import android.support.v17.leanback.widget.HeaderItem;
-import android.support.v17.leanback.widget.ListRow;
-import android.support.v17.leanback.widget.ListRowPresenter;
-import android.support.v17.leanback.widget.OnItemViewClickedListener;
-import android.support.v17.leanback.widget.OnItemViewSelectedListener;
-import android.support.v17.leanback.widget.Presenter;
-import android.support.v17.leanback.widget.Row;
-import android.support.v17.leanback.widget.RowPresenter;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.Toast;
-
-import com.google.gson.Gson;
-
-/**
- * Displays a card with more details using a {@link DetailsFragment}.
- */
-public class DetailViewExampleFragment extends DetailsFragment implements OnItemViewClickedListener,
-        OnItemViewSelectedListener {
-
-    public static final String TRANSITION_NAME = "t_for_transition";
-    public static final String EXTRA_CARD = "card";
-
-    private ArrayObjectAdapter mRowsAdapter;
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setupUi();
-        setupEventListeners();
-    }
-
-    private void setupUi() {
-        // Load the card we want to display from a JSON resource. This JSON data could come from
-        // anywhere in a real world app, e.g. a server.
-        String json = Utils
-                .inputStreamToString(getResources().openRawResource(R.raw.detail_example));
-        DetailedCard data = new Gson().fromJson(json, DetailedCard.class);
-
-        // Setup fragment
-        setTitle(getString(R.string.detail_view_title));
-
-        FullWidthDetailsOverviewRowPresenter rowPresenter = new FullWidthDetailsOverviewRowPresenter(
-                new DetailsDescriptionPresenter(getActivity())) {
-
-            @Override
-            protected RowPresenter.ViewHolder createRowViewHolder(ViewGroup parent) {
-                // Customize Actionbar and Content by using custom colors.
-                RowPresenter.ViewHolder viewHolder = super.createRowViewHolder(parent);
-
-                View actionsView = viewHolder.view.
-                        findViewById(R.id.details_overview_actions_background);
-                actionsView.setBackgroundColor(getActivity().getResources().
-                        getColor(R.color.detail_view_actionbar_background, null));
-
-                View detailsView = viewHolder.view.findViewById(R.id.details_frame);
-                detailsView.setBackgroundColor(
-                        getResources().getColor(R.color.detail_view_background, null));
-                return viewHolder;
-            }
-        };
-
-        FullWidthDetailsOverviewSharedElementHelper mHelper = new FullWidthDetailsOverviewSharedElementHelper();
-        mHelper.setSharedElementEnterTransition(getActivity(), TRANSITION_NAME);
-        rowPresenter.setListener(mHelper);
-        rowPresenter.setParticipatingEntranceTransition(false);
-        prepareEntranceTransition();
-
-        ListRowPresenter shadowDisabledRowPresenter = new ListRowPresenter();
-        shadowDisabledRowPresenter.setShadowEnabled(false);
-
-        // Setup PresenterSelector to distinguish between the different rows.
-        ClassPresenterSelector rowPresenterSelector = new ClassPresenterSelector();
-        rowPresenterSelector.addClassPresenter(DetailsOverviewRow.class, rowPresenter);
-        rowPresenterSelector.addClassPresenter(CardListRow.class, shadowDisabledRowPresenter);
-        rowPresenterSelector.addClassPresenter(ListRow.class, new ListRowPresenter());
-        mRowsAdapter = new ArrayObjectAdapter(rowPresenterSelector);
-
-        // Setup action and detail row.
-        DetailsOverviewRow detailsOverview = new DetailsOverviewRow(data);
-        int imageResId = data.getLocalImageResourceId(getActivity());
-
-        Bundle extras = getActivity().getIntent().getExtras();
-        if (extras != null && extras.containsKey(EXTRA_CARD)) {
-            imageResId = extras.getInt(EXTRA_CARD, imageResId);
-        }
-        detailsOverview.setImageDrawable(getResources().getDrawable(imageResId, null));
-        ArrayObjectAdapter actionAdapter = new ArrayObjectAdapter();
-        actionAdapter.add(new Action(1, getString(R.string.action_buy) + data.getPrice()));
-        actionAdapter.add(new Action(2, getString(R.string.action_wishlist)));
-        actionAdapter.add(new Action(3, getString(R.string.action_related)));
-        detailsOverview.setActionsAdapter(actionAdapter);
-        mRowsAdapter.add(detailsOverview);
-
-        // Setup related row.
-        ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter(
-                new CardPresenterSelector(getActivity()));
-        for (Card characterCard : data.getCharacters()) listRowAdapter.add(characterCard);
-        HeaderItem header = new HeaderItem(0, getString(R.string.header_related));
-        mRowsAdapter.add(new CardListRow(header, listRowAdapter, null));
-
-        // Setup recommended row.
-        listRowAdapter = new ArrayObjectAdapter(new CardPresenterSelector(getActivity()));
-        for (Card card : data.getRecommended()) listRowAdapter.add(card);
-        header = new HeaderItem(1, getString(R.string.header_recommended));
-        mRowsAdapter.add(new ListRow(header, listRowAdapter));
-
-        setAdapter(mRowsAdapter);
-        new Handler().postDelayed(new Runnable() {
-            @Override
-            public void run() {
-                startEntranceTransition();
-            }
-        }, 500);
-    }
-
-    private void setupEventListeners() {
-        setOnItemViewSelectedListener(this);
-        setOnItemViewClickedListener(this);
-    }
-
-    @Override
-    public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
-                              RowPresenter.ViewHolder rowViewHolder, Row row) {
-        if (!(item instanceof Action)) return;
-        Action action = (Action) item;
-        if (action.getId() == 3) {
-            setSelectedPosition(1);
-        } else {
-            Toast.makeText(getActivity(), getString(R.string.action_cicked), Toast.LENGTH_LONG)
-                    .show();
-        }
-    }
-
-    @Override
-    public void onItemSelected(Presenter.ViewHolder itemViewHolder, Object item,
-                               RowPresenter.ViewHolder rowViewHolder, Row row) {
-        if (mRowsAdapter.indexOf(row) > 0) {
-            int backgroundColor = getResources().getColor(R.color.detail_view_related_background,
-                    null);
-            getView().setBackgroundColor(backgroundColor);
-        } else {
-            getView().setBackground(null);
-        }
-    }
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/details/DetailsDescriptionPresenter.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/details/DetailsDescriptionPresenter.java
deleted file mode 100644
index b8488a1..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/details/DetailsDescriptionPresenter.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * 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 android.support.v17.leanback.supportleanbackshowcase.app.details;
-
-import android.content.Context;
-import android.support.v17.leanback.supportleanbackshowcase.R;
-import android.support.v17.leanback.supportleanbackshowcase.models.DetailedCard;
-import android.support.v17.leanback.supportleanbackshowcase.utils.ResourceCache;
-import android.support.v17.leanback.widget.Presenter;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.TextView;
-
-/**
- * This presenter is used to render a {@link DetailedCard} in the {@link
- * DetailViewExampleFragment}.
- */
-public class DetailsDescriptionPresenter extends Presenter {
-
-    private ResourceCache mResourceCache = new ResourceCache();
-    private Context mContext;
-
-    public DetailsDescriptionPresenter(Context context) {
-        mContext = context;
-    }
-
-    @Override public ViewHolder onCreateViewHolder(ViewGroup parent) {
-        View view = LayoutInflater.from(mContext).inflate(R.layout.detail_view_content, null);
-        return new ViewHolder(view);
-    }
-
-    @Override public void onBindViewHolder(ViewHolder viewHolder, Object item) {
-        TextView primaryText = mResourceCache.getViewById(viewHolder.view, R.id.primary_text);
-        TextView sndText1 = mResourceCache.getViewById(viewHolder.view, R.id.secondary_text_first);
-        TextView sndText2 = mResourceCache.getViewById(viewHolder.view, R.id.secondary_text_second);
-        TextView extraText = mResourceCache.getViewById(viewHolder.view, R.id.extra_text);
-
-        DetailedCard card = (DetailedCard) item;
-        primaryText.setText(card.getTitle());
-        sndText1.setText(card.getDescription());
-        sndText2.setText(card.getYear() + "");
-        extraText.setText(card.getText());
-    }
-
-    @Override public void onUnbindViewHolder(ViewHolder viewHolder) {
-        // Nothing to do here.
-    }
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/details/ShadowRowPresenterSelector.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/details/ShadowRowPresenterSelector.java
deleted file mode 100644
index 7df3bf8..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/details/ShadowRowPresenterSelector.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * 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 android.support.v17.leanback.supportleanbackshowcase.app.details;
-
-import android.support.v17.leanback.supportleanbackshowcase.models.CardRow;
-import android.support.v17.leanback.supportleanbackshowcase.utils.CardListRow;
-import android.support.v17.leanback.widget.ListRowPresenter;
-import android.support.v17.leanback.widget.Presenter;
-import android.support.v17.leanback.widget.PresenterSelector;
-
-/**
- * This {@link PresenterSelector} will return a {@link ListRowPresenter} which has shadow support
- * enabled or not depending on {@link CardRow#useShadow()} for a given row.
- */
-public class ShadowRowPresenterSelector extends PresenterSelector {
-
-    private ListRowPresenter mShadowEnabledRowPresenter = new ListRowPresenter();
-    private ListRowPresenter mShadowDisabledRowPresenter = new ListRowPresenter();
-
-    public ShadowRowPresenterSelector() {
-        mShadowDisabledRowPresenter.setShadowEnabled(false);
-    }
-
-    @Override public Presenter getPresenter(Object item) {
-        if (!(item instanceof CardListRow)) return mShadowDisabledRowPresenter;
-        CardListRow listRow = (CardListRow) item;
-        CardRow row = listRow.getCardRow();
-        if (row.useShadow()) return mShadowEnabledRowPresenter;
-        return mShadowDisabledRowPresenter;
-    }
-
-    @Override
-    public Presenter[] getPresenters() {
-        return new Presenter [] {
-                mShadowDisabledRowPresenter,
-                mShadowEnabledRowPresenter
-        };
-    }
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/dialog/DialogExampleActivity.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/dialog/DialogExampleActivity.java
deleted file mode 100644
index 0c71739..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/dialog/DialogExampleActivity.java
+++ /dev/null
@@ -1,37 +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 android.support.v17.leanback.supportleanbackshowcase.app.dialog;
-
-import android.app.Activity;
-import android.graphics.Color;
-import android.graphics.drawable.ColorDrawable;
-import android.os.Bundle;
-import android.support.v17.leanback.app.GuidedStepFragment;
-
-/**
- * TODO: Javadoc
- */
-public class DialogExampleActivity extends Activity {
-
-    @Override public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        getWindow().setBackgroundDrawable(new ColorDrawable(Color.parseColor("#21272A")));
-
-        if (savedInstanceState == null) {
-            GuidedStepFragment fragment = new DialogExampleFragment();
-            GuidedStepFragment.addAsRoot(this, fragment, android.R.id.content);
-        }
-    }
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/dialog/DialogExampleFragment.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/dialog/DialogExampleFragment.java
deleted file mode 100644
index 80b22a9..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/dialog/DialogExampleFragment.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * 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 android.support.v17.leanback.supportleanbackshowcase.app.dialog;
-
-import android.os.Bundle;
-import android.support.annotation.NonNull;
-import android.support.v17.leanback.app.GuidedStepFragment;
-import android.support.v17.leanback.supportleanbackshowcase.R;
-import android.support.v17.leanback.widget.GuidanceStylist.Guidance;
-import android.support.v17.leanback.widget.GuidedAction;
-import android.widget.Toast;
-
-import java.util.List;
-
-/**
- * TODO: Javadoc
- */
-public class DialogExampleFragment extends GuidedStepFragment {
-
-    private static final int ACTION_ID_POSITIVE = 1;
-    private static final int ACTION_ID_NEGATIVE = ACTION_ID_POSITIVE + 1;
-
-    @NonNull
-    @Override
-    public Guidance onCreateGuidance(Bundle savedInstanceState) {
-        Guidance guidance = new Guidance(getString(R.string.dialog_example_title),
-                getString(R.string.dialog_example_description),
-                "", null);
-        return guidance;
-    }
-
-    @Override
-    public void onCreateActions(@NonNull List<GuidedAction> actions, Bundle savedInstanceState) {
-        GuidedAction action = new GuidedAction.Builder()
-                .id(ACTION_ID_POSITIVE)
-                .title(getString(R.string.dialog_example_button_positive)).build();
-        actions.add(action);
-        action = new GuidedAction.Builder()
-                .id(ACTION_ID_NEGATIVE)
-                .title(getString(R.string.dialog_example_button_negative)).build();
-        actions.add(action);
-    }
-
-    @Override
-    public void onGuidedActionClicked(GuidedAction action) {
-        if (ACTION_ID_POSITIVE == action.getId()) {
-            Toast.makeText(getActivity(), R.string.dialog_example_button_toast_positive_clicked,
-                    Toast.LENGTH_SHORT).show();
-        } else {
-            Toast.makeText(getActivity(), R.string.dialog_example_button_toast_negative_clicked,
-                    Toast.LENGTH_SHORT).show();
-        }
-        getActivity().finish();
-    }
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/grid/GridExampleActivity.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/grid/GridExampleActivity.java
deleted file mode 100644
index e2d0887..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/grid/GridExampleActivity.java
+++ /dev/null
@@ -1,30 +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 android.support.v17.leanback.supportleanbackshowcase.app.grid;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.support.v17.leanback.supportleanbackshowcase.R;
-
-/**
- * TODO: Javadoc
- */
-public class GridExampleActivity extends Activity {
-
-    @Override public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.activity_grid_example);
-    }
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/grid/GridExampleFragment.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/grid/GridExampleFragment.java
deleted file mode 100644
index 6640b51..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/grid/GridExampleFragment.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * 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 android.support.v17.leanback.supportleanbackshowcase.app.grid;
-
-import android.os.Bundle;
-import android.os.Handler;
-import android.support.v17.leanback.app.VerticalGridFragment;
-import android.support.v17.leanback.supportleanbackshowcase.R;
-import android.support.v17.leanback.supportleanbackshowcase.utils.Utils;
-import android.support.v17.leanback.supportleanbackshowcase.models.CardRow;
-import android.support.v17.leanback.supportleanbackshowcase.cards.presenters.CardPresenterSelector;
-import android.support.v17.leanback.widget.ArrayObjectAdapter;
-import android.support.v17.leanback.widget.FocusHighlight;
-import android.support.v17.leanback.widget.PresenterSelector;
-import android.support.v17.leanback.widget.VerticalGridPresenter;
-
-import com.google.gson.Gson;
-
-/**
- * An example how to use leanback's {@link VerticalGridFragment}.
- */
-public class GridExampleFragment extends VerticalGridFragment {
-
-    private static final int COLUMNS = 4;
-    private static final int ZOOM_FACTOR = FocusHighlight.ZOOM_FACTOR_MEDIUM;
-
-    private ArrayObjectAdapter mAdapter;
-
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setTitle(getString(R.string.grid_example_title));
-        setupRowAdapter();
-    }
-
-    private void setupRowAdapter() {
-        VerticalGridPresenter gridPresenter = new VerticalGridPresenter(ZOOM_FACTOR);
-        gridPresenter.setNumberOfColumns(COLUMNS);
-        setGridPresenter(gridPresenter);
-
-        PresenterSelector cardPresenterSelector = new CardPresenterSelector(getActivity());
-        mAdapter = new ArrayObjectAdapter(cardPresenterSelector);
-        setAdapter(mAdapter);
-
-        prepareEntranceTransition();
-        new Handler().postDelayed(new Runnable() {
-            @Override
-            public void run() {
-                createRows();
-                startEntranceTransition();
-            }
-        }, 1000);
-    }
-
-    private void createRows() {
-        String json = Utils.inputStreamToString(getResources()
-                .openRawResource(R.raw.grid_example));
-        CardRow row = new Gson().fromJson(json, CardRow.class);
-        mAdapter.addAll(0, row.getCards());
-    }
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/media/MediaPlayerGlue.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/media/MediaPlayerGlue.java
deleted file mode 100644
index f64899e..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/media/MediaPlayerGlue.java
+++ /dev/null
@@ -1,456 +0,0 @@
-/*
- * 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 android.support.v17.leanback.supportleanbackshowcase.app.media;
-
-import android.content.Context;
-import android.graphics.Color;
-import android.graphics.drawable.Drawable;
-import android.media.AudioManager;
-import android.media.MediaPlayer;
-import android.net.Uri;
-import android.os.Handler;
-import android.support.v17.leanback.app.PlaybackControlGlue;
-import android.support.v17.leanback.app.PlaybackOverlayFragment;
-import android.support.v17.leanback.supportleanbackshowcase.R;
-import android.support.v17.leanback.widget.Action;
-import android.support.v17.leanback.widget.ArrayObjectAdapter;
-import android.support.v17.leanback.widget.ControlButtonPresenterSelector;
-import android.support.v17.leanback.widget.OnItemViewSelectedListener;
-import android.support.v17.leanback.widget.PlaybackControlsRow;
-import android.support.v17.leanback.widget.PlaybackControlsRowPresenter;
-import android.support.v17.leanback.widget.Presenter;
-import android.support.v17.leanback.widget.Row;
-import android.support.v17.leanback.widget.RowPresenter;
-import android.util.Log;
-import android.view.KeyEvent;
-import android.view.SurfaceHolder;
-import android.view.View;
-
-import java.io.IOException;
-
-/**
- * This glue extends the {@link PlaybackControlGlue} with a {@link MediaPlayer} synchronization. It
- * supports 7 actions: <ul> <li>{@link android.support.v17.leanback.widget.PlaybackControlsRow.FastForwardAction}</li>
- * <li>{@link android.support.v17.leanback.widget.PlaybackControlsRow.RewindAction}</li> <li>{@link
- * android.support.v17.leanback.widget.PlaybackControlsRow.PlayPauseAction}</li> <li>{@link
- * android.support.v17.leanback.widget.PlaybackControlsRow.ShuffleAction}</li> <li>{@link
- * android.support.v17.leanback.widget.PlaybackControlsRow.RepeatAction}</li> <li>{@link
- * android.support.v17.leanback.widget.PlaybackControlsRow.ThumbsDownAction}</li> <li>{@link
- * android.support.v17.leanback.widget.PlaybackControlsRow.ThumbsUpAction}</li> </ul>
- * <p/>
- */
-public abstract class MediaPlayerGlue extends PlaybackControlGlue implements
-        OnItemViewSelectedListener {
-
-    public static final int FAST_FORWARD_REWIND_STEP = 10 * 1000; // in milliseconds
-    public static final int FAST_FORWARD_REWIND_REPEAT_DELAY = 200; // in milliseconds
-    private static final String TAG = "MediaPlayerGlue";
-    protected final PlaybackControlsRow.ThumbsDownAction mThumbsDownAction;
-    protected final PlaybackControlsRow.ThumbsUpAction mThumbsUpAction;
-    private final Context mContext;
-    private final MediaPlayer mPlayer = new MediaPlayer();
-    private final PlaybackControlsRow.RepeatAction mRepeatAction;
-    private final PlaybackControlsRow.ShuffleAction mShuffleAction;
-    private PlaybackControlsRow mControlsRow;
-    private Runnable mRunnable;
-    private Handler mHandler = new Handler();
-    private boolean mInitialized = false; // true when the MediaPlayer is prepared/initialized
-    private OnMediaFileFinishedPlayingListener mMediaFileFinishedPlayingListener;
-    private Action mSelectedAction; // the action which is currently selected by the user
-    private long mLastKeyDownEvent = 0L; // timestamp when the last DPAD_CENTER KEY_DOWN occurred
-    private MetaData mMetaData;
-    private Uri mMediaSourceUri = null;
-    private String mMediaSourcePath = null;
-
-    public MediaPlayerGlue(Context context, PlaybackOverlayFragment fragment) {
-        super(context, fragment, new int[]{1});
-        mContext = context;
-
-        // Instantiate secondary actions
-        mShuffleAction = new PlaybackControlsRow.ShuffleAction(mContext);
-        mRepeatAction = new PlaybackControlsRow.RepeatAction(mContext);
-        mThumbsDownAction = new PlaybackControlsRow.ThumbsDownAction(mContext);
-        mThumbsUpAction = new PlaybackControlsRow.ThumbsUpAction(mContext);
-        mThumbsDownAction.setIndex(PlaybackControlsRow.ThumbsAction.OUTLINE);
-        mThumbsUpAction.setIndex(PlaybackControlsRow.ThumbsAction.OUTLINE);
-
-        // Register selected listener such that we know what action the user currently has focused.
-        fragment.setOnItemViewSelectedListener(this);
-    }
-
-    /**
-     * Will reset the {@link MediaPlayer} and the glue such that a new file can be played. You are
-     * not required to call this method before playing the first file. However you have to call it
-     * before playing a second one.
-     */
-    void reset() {
-        mInitialized = false;
-        mPlayer.reset();
-    }
-
-    public void setOnMediaFileFinishedPlayingListener(OnMediaFileFinishedPlayingListener listener) {
-        mMediaFileFinishedPlayingListener = listener;
-    }
-
-    /**
-     * Override this method in case you need to add different secondary actions.
-     *
-     * @param secondaryActionsAdapter The adapter you need to add the {@link Action}s to.
-     */
-    protected void addSecondaryActions(ArrayObjectAdapter secondaryActionsAdapter) {
-        secondaryActionsAdapter.add(mShuffleAction);
-        secondaryActionsAdapter.add(mRepeatAction);
-        secondaryActionsAdapter.add(mThumbsDownAction);
-        secondaryActionsAdapter.add(mThumbsUpAction);
-    }
-
-    /**
-     * @see MediaPlayer#setDisplay(SurfaceHolder)
-     */
-    public void setDisplay(SurfaceHolder surfaceHolder) {
-        mPlayer.setDisplay(surfaceHolder);
-    }
-
-    /**
-     * Use this method to setup the {@link PlaybackControlsRowPresenter}. It'll be called
-     * <u>after</u> the {@link PlaybackControlsRowPresenter} has been created and the primary and
-     * secondary actions have been added.
-     *
-     * @param presenter The PlaybackControlsRowPresenter used to display the controls.
-     */
-    public void setupControlsRowPresenter(PlaybackControlsRowPresenter presenter) {
-        // TODO: hahnr@ move into resources
-        presenter.setProgressColor(getContext().getResources().getColor(
-                R.color.player_progress_color));
-        presenter.setBackgroundColor(getContext().getResources().getColor(
-                R.color.player_background_color));
-    }
-
-    @Override public PlaybackControlsRowPresenter createControlsRowAndPresenter() {
-        PlaybackControlsRowPresenter presenter = super.createControlsRowAndPresenter();
-        mControlsRow = getControlsRow();
-
-        // Add secondary actions and change the control row color.
-        ArrayObjectAdapter secondaryActions = new ArrayObjectAdapter(
-                new ControlButtonPresenterSelector());
-        mControlsRow.setSecondaryActionsAdapter(secondaryActions);
-        addSecondaryActions(secondaryActions);
-        setupControlsRowPresenter(presenter);
-        return presenter;
-    }
-
-    @Override public void enableProgressUpdating(final boolean enabled) {
-        if (!enabled) {
-            if (mRunnable != null) mHandler.removeCallbacks(mRunnable);
-            return;
-        }
-        mRunnable = new Runnable() {
-            @Override public void run() {
-                updateProgress();
-                Log.d(TAG, "enableProgressUpdating(boolean)");
-                mHandler.postDelayed(this, getUpdatePeriod());
-            }
-        };
-        mHandler.postDelayed(mRunnable, getUpdatePeriod());
-    }
-
-    @Override public void onActionClicked(Action action) {
-        // If either 'Shuffle' or 'Repeat' has been clicked we need to make sure the acitons index
-        // is incremented and the UI updated such that we can display the new state.
-        super.onActionClicked(action);
-        if (action instanceof PlaybackControlsRow.ShuffleAction) {
-            mShuffleAction.nextIndex();
-        } else if (action instanceof PlaybackControlsRow.RepeatAction) {
-            mRepeatAction.nextIndex();
-        } else if (action instanceof PlaybackControlsRow.ThumbsUpAction) {
-            if (mThumbsUpAction.getIndex() == PlaybackControlsRow.ThumbsAction.SOLID) {
-                mThumbsUpAction.setIndex(PlaybackControlsRow.ThumbsAction.OUTLINE);
-            } else {
-                mThumbsUpAction.setIndex(PlaybackControlsRow.ThumbsAction.SOLID);
-                mThumbsDownAction.setIndex(PlaybackControlsRow.ThumbsAction.OUTLINE);
-            }
-        } else if (action instanceof PlaybackControlsRow.ThumbsDownAction) {
-            if (mThumbsDownAction.getIndex() == PlaybackControlsRow.ThumbsAction.SOLID) {
-                mThumbsDownAction.setIndex(PlaybackControlsRow.ThumbsAction.OUTLINE);
-            } else {
-                mThumbsDownAction.setIndex(PlaybackControlsRow.ThumbsAction.SOLID);
-                mThumbsUpAction.setIndex(PlaybackControlsRow.ThumbsAction.OUTLINE);
-            }
-        }
-        onMetadataChanged();
-    }
-
-    @Override public boolean onKey(View v, int keyCode, KeyEvent event) {
-        // This method is overridden in order to make implement fast forwarding and rewinding when
-        // the user keeps the corresponding action pressed.
-        // We only consume DPAD_CENTER Action_DOWN events on the Fast-Forward and Rewind action and
-        // only if it has not been pressed in the last X milliseconds.
-        boolean consume = mSelectedAction instanceof PlaybackControlsRow.RewindAction;
-        consume = consume || mSelectedAction instanceof PlaybackControlsRow.FastForwardAction;
-        consume = consume && mInitialized;
-        consume = consume && event.getKeyCode() == KeyEvent.KEYCODE_DPAD_CENTER;
-        consume = consume && event.getAction() == KeyEvent.ACTION_DOWN;
-        consume = consume && System
-                .currentTimeMillis() - mLastKeyDownEvent > FAST_FORWARD_REWIND_REPEAT_DELAY;
-        if (consume) {
-            mLastKeyDownEvent = System.currentTimeMillis();
-            int newPosition = getCurrentPosition() + FAST_FORWARD_REWIND_STEP;
-            if (mSelectedAction instanceof PlaybackControlsRow.RewindAction) {
-                newPosition = getCurrentPosition() - FAST_FORWARD_REWIND_STEP;
-            }
-            // Make sure the new calculated duration is in the range 0 >= X >= MediaDuration
-            if (newPosition < 0) newPosition = 0;
-            if (newPosition > getMediaDuration()) newPosition = getMediaDuration();
-            seekTo(newPosition);
-            return true;
-        }
-        return super.onKey(v, keyCode, event);
-    }
-
-    @Override public boolean hasValidMedia() {
-        return mMetaData != null;
-    }
-
-    @Override public boolean isMediaPlaying() {
-        return mPlayer.isPlaying();
-    }
-
-    @Override public CharSequence getMediaTitle() {
-        return hasValidMedia() ? mMetaData.getTitle() : "N/a";
-    }
-
-    @Override public CharSequence getMediaSubtitle() {
-        return hasValidMedia() ? mMetaData.getArtist() : "N/a";
-    }
-
-    @Override public int getMediaDuration() {
-        return mInitialized ? mPlayer.getDuration() : 0;
-    }
-
-    @Override public Drawable getMediaArt() {
-        return hasValidMedia() ? mMetaData.getCover() : null;
-    }
-
-    @Override public long getSupportedActions() {
-        return PlaybackControlGlue.ACTION_PLAY_PAUSE | PlaybackControlGlue.ACTION_FAST_FORWARD | PlaybackControlGlue.ACTION_REWIND;
-    }
-
-    @Override public int getCurrentSpeedId() {
-        // 0 = Pause, 1 = Normal Playback Speed
-        return mPlayer.isPlaying() ? 1 : 0;
-    }
-
-    @Override public int getCurrentPosition() {
-        return mInitialized ? mPlayer.getCurrentPosition() : 0;
-    }
-
-    @Override protected void startPlayback(int speed) throws IllegalStateException {
-        mPlayer.start();
-    }
-
-    @Override protected void pausePlayback() {
-        if (mPlayer.isPlaying()) {
-            mPlayer.pause();
-        }
-    }
-
-    @Override protected void skipToNext() {
-        // Not supported.
-    }
-
-    @Override protected void skipToPrevious() {
-        // Not supported.
-    }
-
-    /**
-     * Called whenever the user presses fast-forward/rewind or when the user keeps the corresponding
-     * action pressed.
-     *
-     * @param newPosition The new position of the media track in milliseconds.
-     */
-    protected void seekTo(int newPosition) {
-        mPlayer.seekTo(newPosition);
-    }
-
-    /**
-     * Sets the media source of the player witha given URI.
-     * @see MediaPlayer#setDataSource(String)
-     * @return Returns <code>true</code> if uri represents a new media; <code>false</code>
-     * otherwise.
-     */
-    public boolean setMediaSource(Uri uri) {
-        if (mMediaSourceUri != null && mMediaSourceUri.equals(uri)) {
-            return false;
-        }
-        mMediaSourceUri = uri;
-        return true;
-    }
-
-    /**
-     * Sets the media source of the player with a String path URL.
-     * @see MediaPlayer#setDataSource(String)
-     * @return Returns <code>true</code> if path represents a new media; <code>false</code>
-     * otherwise.
-     */
-    public boolean setMediaSource(String path) {
-        if (mMediaSourcePath != null && mMediaSourcePath.equals(mMediaSourcePath)) {
-            return false;
-        }
-        mMediaSourcePath = path;
-        return true;
-    }
-
-    public void prepareMediaForPlaying() {
-        reset();
-        try {
-            if (mMediaSourceUri != null) mPlayer.setDataSource(getContext(), mMediaSourceUri);
-            else mPlayer.setDataSource(mMediaSourcePath);
-        } catch (IOException e) {
-            throw new RuntimeException(e);
-        }
-        mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
-        mPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
-            @Override public void onPrepared(MediaPlayer mp) {
-                mInitialized = true;
-                mPlayer.start();
-                onMetadataChanged();
-                onStateChanged();
-                updateProgress();
-            }
-        });
-        mPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
-            @Override public void onCompletion(MediaPlayer mp) {
-                if (mInitialized && mMediaFileFinishedPlayingListener != null)
-                    mMediaFileFinishedPlayingListener.onMediaFileFinishedPlaying(mMetaData);
-            }
-        });
-        mPlayer.setOnBufferingUpdateListener(new MediaPlayer.OnBufferingUpdateListener() {
-            @Override public void onBufferingUpdate(MediaPlayer mp, int percent) {
-                mControlsRow.setBufferedProgress((int) (mp.getDuration() * (percent / 100f)));
-            }
-        });
-        mPlayer.prepareAsync();
-        onStateChanged();
-    }
-
-    /**
-     * Call to <code>startPlayback(1)</code>.
-     *
-     * @throws IllegalStateException See {@link MediaPlayer} for further information about it's
-     * different states when setting a data source and preparing it to be played.
-     */
-    public void startPlayback() throws IllegalStateException {
-        startPlayback(1);
-    }
-
-    /**
-     * @return Returns <code>true</code> iff 'Shuffle' is <code>ON</code>.
-     */
-    public boolean useShuffle() {
-        return mShuffleAction.getIndex() == PlaybackControlsRow.ShuffleAction.ON;
-    }
-
-    /**
-     * @return Returns <code>true</code> iff 'Repeat-One' is <code>ON</code>.
-     */
-    public boolean repeatOne() {
-        return mRepeatAction.getIndex() == PlaybackControlsRow.RepeatAction.ONE;
-    }
-
-    /**
-     * @return Returns <code>true</code> iff 'Repeat-All' is <code>ON</code>.
-     */
-    public boolean repeatAll() {
-        return mRepeatAction.getIndex() == PlaybackControlsRow.RepeatAction.ALL;
-    }
-
-    public void setMetaData(MetaData metaData) {
-        mMetaData = metaData;
-        onMetadataChanged();
-    }
-
-    /**
-     * This is a listener implementation for the {@link OnItemViewSelectedListener} of the {@link
-     * PlaybackOverlayFragment}. This implementation is required in order to detect KEY_DOWN events
-     * on the {@link android.support.v17.leanback.widget.PlaybackControlsRow.FastForwardAction} and
-     * {@link android.support.v17.leanback.widget.PlaybackControlsRow.RewindAction}. Thus you should
-     * <u>NOT</u> set another {@link OnItemViewSelectedListener} on your {@link
-     * PlaybackOverlayFragment}. Instead, override this method and call its super (this)
-     * implementation.
-     *
-     * @see OnItemViewSelectedListener#onItemSelected(Presenter.ViewHolder, Object,
-     * RowPresenter.ViewHolder, Row)
-     */
-    @Override public void onItemSelected(Presenter.ViewHolder itemViewHolder, Object item,
-                                         RowPresenter.ViewHolder rowViewHolder, Row row) {
-        if (item instanceof Action) {
-            mSelectedAction = (Action) item;
-        } else {
-            mSelectedAction = null;
-        }
-    }
-
-    /**
-     * A listener which will be called whenever a track is finished playing.
-     */
-    public interface OnMediaFileFinishedPlayingListener {
-
-        /**
-         * Called when a track is finished playing.
-         *
-         * @param metaData The track's {@link MetaData} which just finished playing.
-         */
-        void onMediaFileFinishedPlaying(MetaData metaData);
-
-    }
-
-    /**
-     * Holds the meta data such as track title, artist and cover art. It'll be used by the {@link
-     * MediaPlayerGlue}.
-     */
-    public static class MetaData {
-
-        private String mTitle;
-        private String mArtist;
-        private Drawable mCover;
-
-        public String getTitle() {
-            return mTitle;
-        }
-
-        public void setTitle(String title) {
-            this.mTitle = title;
-        }
-
-        public String getArtist() {
-            return mArtist;
-        }
-
-        public void setArtist(String artist) {
-            this.mArtist = artist;
-        }
-
-        public Drawable getCover() {
-            return mCover;
-        }
-
-        public void setCover(Drawable cover) {
-            this.mCover = cover;
-        }
-
-    }
-
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/media/MusicConsumptionExampleFragment.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/media/MusicConsumptionExampleFragment.java
deleted file mode 100644
index 0650cfc..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/media/MusicConsumptionExampleFragment.java
+++ /dev/null
@@ -1,313 +0,0 @@
-/*
- * 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 android.support.v17.leanback.supportleanbackshowcase.app.media;
-
-import android.content.Context;
-import android.content.res.Resources;
-import android.graphics.drawable.Drawable;
-import android.net.Uri;
-import android.os.Bundle;
-import android.support.v17.leanback.app.PlaybackOverlayFragment;
-import android.support.v17.leanback.supportleanbackshowcase.utils.Constants;
-import android.support.v17.leanback.supportleanbackshowcase.R;
-import android.support.v17.leanback.supportleanbackshowcase.utils.Utils;
-import android.support.v17.leanback.supportleanbackshowcase.models.Song;
-import android.support.v17.leanback.supportleanbackshowcase.models.SongList;
-import android.support.v17.leanback.widget.*;
-import android.support.v17.leanback.widget.AbstractMediaItemPresenter;
-import android.util.Log;
-
-import com.google.gson.Gson;
-
-import java.util.List;
-
-/**
- * This example shows how to play music files and build a simple track list.
- */
-public class MusicConsumptionExampleFragment extends PlaybackOverlayFragment implements
-        BaseOnItemViewClickedListener, BaseOnItemViewSelectedListener,
-        MediaPlayerGlue.OnMediaFileFinishedPlayingListener {
-
-    private static final String TAG = "MusicConsumptionExampleFragment";
-    private static final int PLAYLIST_ACTION_ID = 0;
-    private static final int FAVORITE_ACTION_ID = 1;
-    private ArrayObjectAdapter mRowsAdapter;
-    private MediaPlayerGlue mGlue;
-    private int mCurrentSongIndex = 0;
-    private List<Song> mSongList;
-    private boolean mAdapterNotified = false;
-
-    @Override public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        if (Constants.LOCAL_LOGD) Log.d(TAG, "onCreate");
-
-        mGlue = new MediaPlayerGlue(getActivity(), this) {
-
-            @Override protected void onRowChanged(PlaybackControlsRow row) {
-                if (mRowsAdapter == null || mAdapterNotified) return;
-                //mAdapterNotified = true;
-                mRowsAdapter.notifyArrayItemRangeChanged(0, 1);
-            }
-        };
-        mGlue.setOnMediaFileFinishedPlayingListener(this);
-
-        String json = Utils.inputStreamToString(
-                getResources().openRawResource(R.raw.music_consumption_example));
-
-
-        mSongList = new Gson().fromJson(json, SongList.class).getSongs();
-
-        Resources res = getActivity().getResources();
-
-        // For each song add a playlist and favorite actions.
-        for(Song song : mSongList) {
-            MultiActionsProvider.MultiAction[] mediaRowActions = new
-                    MultiActionsProvider.MultiAction[2];
-            MultiActionsProvider.MultiAction playlistAction = new
-                    MultiActionsProvider.MultiAction(PLAYLIST_ACTION_ID);
-            Drawable[] playlistActionDrawables = new Drawable[] {
-                    res.getDrawable(R.drawable.ic_playlist_add_white_24dp,
-                            getActivity().getTheme()),
-                    res.getDrawable(R.drawable.ic_playlist_add_filled_24dp,
-                            getActivity().getTheme())};
-            playlistAction.setDrawables(playlistActionDrawables);
-            mediaRowActions[0] = playlistAction;
-
-            MultiActionsProvider.MultiAction favoriteAction = new
-                    MultiActionsProvider.MultiAction(FAVORITE_ACTION_ID);
-            Drawable[] favoriteActionDrawables = new Drawable[] {
-                    res.getDrawable(R.drawable.ic_favorite_border_white_24dp,
-                            getActivity().getTheme()),
-                    res.getDrawable(R.drawable.ic_favorite_filled_24dp,
-                            getActivity().getTheme())};
-            favoriteAction.setDrawables(favoriteActionDrawables);
-            mediaRowActions[1] = favoriteAction;
-            song.setMediaRowActions(mediaRowActions);
-        }
-
-        Song song = mSongList.get(mCurrentSongIndex);
-        MediaPlayerGlue.MetaData metaData = new MediaPlayerGlue.MetaData();
-        metaData.setArtist(song.getDescription());
-        metaData.setTitle(song.getTitle());
-        metaData.setCover(getResources().getDrawable(song.getImageResource(getActivity()), null));
-        Uri uri = Utils.getResourceUri(getActivity(), song.getFileResource(getActivity()));
-        mGlue.setMetaData(metaData);
-        mGlue.setMediaSource(uri);
-        mGlue.prepareMediaForPlaying();
-
-        addPlaybackControlsRow();
-    }
-
-    @Override public void onStart() {
-        super.onStart();
-        mGlue.enableProgressUpdating(mGlue.hasValidMedia() && mGlue.isMediaPlaying());
-    }
-
-    @Override public void onStop() {
-        super.onStop();
-        mGlue.enableProgressUpdating(false);
-        mGlue.reset();
-    }
-
-    static class SongPresenter extends AbstractMediaItemPresenter {
-
-        SongPresenter() {
-            super();
-        }
-
-        SongPresenter(Context context, int themeResId) {
-            super(themeResId);
-            setHasMediaRowSeparator(true);
-        }
-
-        @Override
-        protected void onBindMediaDetails(ViewHolder vh, Object item) {
-
-            int favoriteTextColor =  vh.view.getContext().getResources().getColor(
-                    R.color.song_row_favorite_color);
-            Song song = (Song) item;
-            vh.getMediaItemNumberView().setText("" + song.getNumber());
-
-            String songTitle = song.getTitle() + " / " + song.getDescription();
-            vh.getMediaItemNameView().setText(songTitle);
-
-            vh.getMediaItemDurationView().setText("" + song.getDuration());
-
-            if (song.isFavorite()) {
-                vh.getMediaItemNumberView().setTextColor(favoriteTextColor);
-                vh.getMediaItemNameView().setTextColor(favoriteTextColor);
-                vh.getMediaItemDurationView().setTextColor(favoriteTextColor);
-            } else {
-                Context context = vh.getMediaItemNumberView().getContext();
-                vh.getMediaItemNumberView().setTextAppearance(context,
-                        R.style.TextAppearance_Leanback_PlaybackMediaItemNumber);
-                vh.getMediaItemNameView().setTextAppearance(context,
-                        R.style.TextAppearance_Leanback_PlaybackMediaItemName);
-                vh.getMediaItemDurationView().setTextAppearance(context,
-                        R.style.TextAppearance_Leanback_PlaybackMediaItemDuration);
-            }
-        }
-    };
-
-    static class SongPresenterSelector extends PresenterSelector {
-        Presenter mRegularPresenter;
-        Presenter mFavoritePresenter;
-
-        /**
-         * Adds a presenter to be used for the given class.
-         */
-        public SongPresenterSelector setSongPresenterRegular(Presenter presenter) {
-            mRegularPresenter = presenter;
-            return this;
-        }
-
-        /**
-         * Adds a presenter to be used for the given class.
-         */
-        public SongPresenterSelector setSongPresenterFavorite(Presenter presenter) {
-            mFavoritePresenter = presenter;
-            return this;
-        }
-
-        @Override
-        public Presenter[] getPresenters() {
-            return new Presenter[]{mRegularPresenter, mFavoritePresenter};
-        }
-
-        @Override
-        public Presenter getPresenter(Object item) {
-            return ( (Song) item).isFavorite() ? mFavoritePresenter : mRegularPresenter;
-        }
-
-    }
-
-    static class TrackListHeaderPresenter extends AbstractMediaListHeaderPresenter {
-
-        TrackListHeaderPresenter() {
-            super();
-        }
-
-        @Override
-        protected void onBindMediaListHeaderViewHolder(ViewHolder vh, Object item) {
-            vh.getHeaderView().setText("Tracklist");
-        }
-    };
-
-    private void addPlaybackControlsRow() {
-        mRowsAdapter = new ArrayObjectAdapter(new ClassPresenterSelector()
-                .addClassPresenterSelector(Song.class, new SongPresenterSelector()
-                        .setSongPresenterRegular(new SongPresenter(getActivity(),
-                                R.style.Theme_Example_LeanbackMusic_RegularSongNumbers))
-                        .setSongPresenterFavorite(new SongPresenter(getActivity(),
-                                R.style.Theme_Example_LeanbackMusic_FavoriteSongNumbers)))
-                .addClassPresenter(TrackListHeader.class, new TrackListHeaderPresenter())
-                .addClassPresenter(PlaybackControlsRow.class,
-                        mGlue.createControlsRowAndPresenter()));
-        mRowsAdapter.add(mGlue.getControlsRow());
-        mRowsAdapter.add(new TrackListHeader());
-        mRowsAdapter.addAll(2, mSongList);
-        setAdapter(mRowsAdapter);
-        setOnItemViewClickedListener(this);
-        setOnItemViewSelectedListener(this);
-    }
-
-    public MusicConsumptionExampleFragment() {
-        super();
-    }
-
-
-
-    @Override public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
-                                        RowPresenter.ViewHolder rowViewHolder, Object row) {
-
-        if (item instanceof  Action) {
-            // if the clicked item is a primary or secondary action in the playback controller
-            mGlue.onActionClicked((Action) item);
-        } else if (row instanceof  Song) {
-            // if a media item row is clicked
-            Song clickedSong = (Song) row;
-            AbstractMediaItemPresenter.ViewHolder songRowVh =
-                    (AbstractMediaItemPresenter.ViewHolder) rowViewHolder;
-
-            // if an action within a media item row is clicked
-            if (item instanceof MultiActionsProvider.MultiAction) {
-                if ( ((MultiActionsProvider.MultiAction) item).getId() == FAVORITE_ACTION_ID) {
-                    MultiActionsProvider.MultiAction favoriteAction =
-                            (MultiActionsProvider.MultiAction) item;
-                    MultiActionsProvider.MultiAction playlistAction =
-                            songRowVh.getMediaItemRowActions()[0];
-                    favoriteAction.incrementIndex();
-                    playlistAction.incrementIndex();;
-
-                    clickedSong.setFavorite(!clickedSong.isFavorite());
-                    songRowVh.notifyDetailsChanged();
-                    songRowVh.notifyActionChanged(playlistAction);
-                    songRowVh.notifyActionChanged(favoriteAction);
-                }
-            } else if (item == null){
-                // if a media item details is clicked, start playing that media item
-                onSongDetailsClicked(clickedSong);
-            }
-
-        }
-
-
-    }
-
-    @Override
-    public void onItemSelected(Presenter.ViewHolder itemViewHolder, Object item,
-                               RowPresenter.ViewHolder rowViewHolder, Object row) {
-    }
-
-
-    public void onSongDetailsClicked(Song song) {
-        int nextSongIndex = mSongList.indexOf(song);
-        mCurrentSongIndex = nextSongIndex;
-        startPlayback();
-    }
-
-
-    @Override public void onMediaFileFinishedPlaying(MediaPlayerGlue.MetaData song) {
-        if (mGlue.repeatOne()) {
-        } else if (mGlue.useShuffle()) {
-            mCurrentSongIndex = (int) (Math.random() * mSongList.size());
-        } else {
-            mCurrentSongIndex++;
-            if (mCurrentSongIndex >= mSongList.size()) {
-                mCurrentSongIndex = 0;
-                if (!mGlue.repeatAll()) {
-                    return;
-                }
-            }
-        }
-        startPlayback();
-    }
-
-    private void startPlayback() {
-        Song song = mSongList.get(mCurrentSongIndex);
-        MediaPlayerGlue.MetaData metaData = new MediaPlayerGlue.MetaData();
-        metaData.setArtist(song.getDescription());
-        metaData.setTitle(song.getTitle());
-        metaData.setCover(getResources().getDrawable(song.getImageResource(getActivity()), null));
-
-        Uri uri = Utils.getResourceUri(getActivity(), song.getFileResource(getActivity()));
-        mGlue.setMetaData(metaData);
-
-        if (mGlue.setMediaSource(uri)) {
-            mGlue.prepareMediaForPlaying();
-        }
-        mGlue.startPlayback();
-    }
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/media/MusicExampleActivity.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/media/MusicExampleActivity.java
deleted file mode 100644
index 3107ed6..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/media/MusicExampleActivity.java
+++ /dev/null
@@ -1,30 +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 android.support.v17.leanback.supportleanbackshowcase.app.media;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.support.v17.leanback.supportleanbackshowcase.R;
-
-/**
- * TODO: Javadoc
- */
-public class MusicExampleActivity extends Activity {
-
-    @Override public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.activity_music_example);
-    }
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/media/SongListRow.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/media/SongListRow.java
deleted file mode 100644
index 4096132..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/media/SongListRow.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * 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 android.support.v17.leanback.supportleanbackshowcase.app.media;
-
-import android.support.v17.leanback.widget.Row;
-
-public class SongListRow extends Row {}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/media/TrackListHeader.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/media/TrackListHeader.java
deleted file mode 100644
index 0206748..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/media/TrackListHeader.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * 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 android.support.v17.leanback.supportleanbackshowcase.app.media;
-
-import android.support.v17.leanback.widget.Row;
-
-public class TrackListHeader extends Row {
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/media/VideoConsumptionExampleFragment.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/media/VideoConsumptionExampleFragment.java
deleted file mode 100644
index ca33b42..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/media/VideoConsumptionExampleFragment.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * 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 android.support.v17.leanback.supportleanbackshowcase.app.media;
-
-import android.app.Fragment;
-import android.os.Bundle;
-import android.support.v17.leanback.app.PlaybackOverlayFragment;
-import android.support.v17.leanback.widget.Action;
-import android.support.v17.leanback.widget.ArrayObjectAdapter;
-import android.support.v17.leanback.widget.OnItemViewClickedListener;
-import android.support.v17.leanback.widget.PlaybackControlsRow;
-import android.support.v17.leanback.widget.PlaybackControlsRowPresenter;
-import android.support.v17.leanback.widget.Presenter;
-import android.support.v17.leanback.widget.Row;
-import android.support.v17.leanback.widget.RowPresenter;
-import android.view.SurfaceHolder;
-import android.view.SurfaceView;
-
-
-public class VideoConsumptionExampleFragment extends PlaybackOverlayFragment implements
-        OnItemViewClickedListener, MediaPlayerGlue.OnMediaFileFinishedPlayingListener {
-
-    private static final String URL = "http://techslides.com/demos/sample-videos/small.mp4";
-    public static final String TAG = "VideoConsumptionExampleFragment";
-    private ArrayObjectAdapter mRowsAdapter;
-    private MediaPlayerGlue mGlue;
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        mGlue = new VideoMediaPlayerGlue(getActivity(), this) {
-
-            @Override
-            protected void onRowChanged(PlaybackControlsRow row) {
-                if (mRowsAdapter == null) return;
-                mRowsAdapter.notifyArrayItemRangeChanged(0, 1);
-            }
-        };
-        mGlue.setOnMediaFileFinishedPlayingListener(this);
-        MediaPlayerGlue.MetaData metaData = new MediaPlayerGlue.MetaData();
-        metaData.setArtist("A Googler");
-        metaData.setTitle("Diving with Sharks");
-        mGlue.setMetaData(metaData);
-        mGlue.setMediaSource(URL);
-        mGlue.prepareMediaForPlaying();
-
-
-        Fragment videoSurfaceFragment = getFragmentManager()
-                .findFragmentByTag(VideoSurfaceFragment.TAG);
-
-        SurfaceView surface = (SurfaceView) videoSurfaceFragment.getView();
-        surface.getHolder().addCallback(new SurfaceHolder.Callback() {
-            @Override
-            public void surfaceCreated(SurfaceHolder holder) {
-                mGlue.setDisplay(holder);
-            }
-
-            @Override
-            public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
-                // Nothing to do
-            }
-
-            @Override
-            public void surfaceDestroyed(SurfaceHolder holder) {
-            }
-        });
-
-        setBackgroundType(PlaybackOverlayFragment.BG_LIGHT);
-        addPlaybackControlsRow();
-    }
-
-    @Override
-    public void onStart() {
-        super.onStart();
-        mGlue.enableProgressUpdating(mGlue.hasValidMedia() && mGlue.isMediaPlaying());
-    }
-
-    @Override
-    public void onStop() {
-        super.onStop();
-        mGlue.enableProgressUpdating(false);
-        mGlue.reset();
-    }
-
-    private void addPlaybackControlsRow() {
-        final PlaybackControlsRowPresenter controlsPresenter = mGlue
-                .createControlsRowAndPresenter();
-        mRowsAdapter = new ArrayObjectAdapter(controlsPresenter);
-        mRowsAdapter.add(mGlue.getControlsRow());
-        setAdapter(mRowsAdapter);
-        setOnItemViewClickedListener(this);
-    }
-
-    @Override
-    public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
-                              RowPresenter.ViewHolder rowViewHolder, Row row) {
-        if (!(item instanceof Action)) return;
-        mGlue.onActionClicked((Action) item);
-    }
-
-
-    @Override
-    public void onMediaFileFinishedPlaying(MediaPlayerGlue.MetaData metaData) {
-        mGlue.startPlayback();
-    }
-
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/media/VideoExampleActivity.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/media/VideoExampleActivity.java
deleted file mode 100644
index 2e87654..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/media/VideoExampleActivity.java
+++ /dev/null
@@ -1,43 +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 android.support.v17.leanback.supportleanbackshowcase.app.media;
-
-import android.app.Activity;
-import android.app.FragmentTransaction;
-import android.os.Bundle;
-import android.support.v17.leanback.supportleanbackshowcase.R;
-
-/**
- * TODO: Javadoc
- */
-public class VideoExampleActivity extends Activity {
-
-    public static final String TAG = "VideoExampleActivity";
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.activity_video_example);
-
-        FragmentTransaction ft1 = getFragmentManager().beginTransaction();
-        ft1.replace(R.id.videoFragment, new VideoSurfaceFragment(), VideoSurfaceFragment.TAG);
-        ft1.commit();
-
-        FragmentTransaction ft2 = getFragmentManager().beginTransaction();
-        ft2.add(R.id.videoFragment, new VideoConsumptionExampleFragment(), VideoConsumptionExampleFragment.TAG);
-        ft2.commit();
-    }
-
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/media/VideoMediaPlayerGlue.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/media/VideoMediaPlayerGlue.java
deleted file mode 100644
index 52ab09f..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/media/VideoMediaPlayerGlue.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * 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 android.support.v17.leanback.supportleanbackshowcase.app.media;
-
-import android.content.Context;
-import android.graphics.Color;
-import android.support.v17.leanback.app.PlaybackOverlayFragment;
-import android.support.v17.leanback.supportleanbackshowcase.app.media.MediaPlayerGlue;
-import android.support.v17.leanback.widget.Action;
-import android.support.v17.leanback.widget.ArrayObjectAdapter;
-import android.support.v17.leanback.widget.PlaybackControlsRow;
-import android.support.v17.leanback.widget.PlaybackControlsRowPresenter;
-
-public abstract class VideoMediaPlayerGlue extends MediaPlayerGlue {
-
-    private final PlaybackControlsRow.ClosedCaptioningAction mClosedCaptioningAction;
-
-    public VideoMediaPlayerGlue(Context context, PlaybackOverlayFragment fragment) {
-        super(context, fragment);
-
-        // Instantiate secondary actions
-        mClosedCaptioningAction = new PlaybackControlsRow.ClosedCaptioningAction(context);
-        setFadingEnabled(true);
-    }
-
-    @Override protected void addSecondaryActions(ArrayObjectAdapter secondaryActionsAdapter) {
-        secondaryActionsAdapter.add(mClosedCaptioningAction);
-        secondaryActionsAdapter.add(mThumbsDownAction);
-        secondaryActionsAdapter.add(mThumbsUpAction);
-    }
-
-    @Override public void onActionClicked(Action action) {
-        super.onActionClicked(action);
-        if (action == mClosedCaptioningAction) {
-            mClosedCaptioningAction.nextIndex();
-        }
-    }
-
-    public void setupControlsRowPresenter(PlaybackControlsRowPresenter presenter) {
-        // TODO: hahnr@ move into resources
-        presenter.setProgressColor(Color.parseColor("#EEFF41"));
-        presenter.setBackgroundColor(Color.parseColor("#007236"));
-    }
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/media/VideoSurfaceFragment.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/media/VideoSurfaceFragment.java
deleted file mode 100644
index 569309d..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/media/VideoSurfaceFragment.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * 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 android.support.v17.leanback.supportleanbackshowcase.app.media;
-
-import android.app.Fragment;
-import android.os.Bundle;
-import android.support.annotation.Nullable;
-import android.support.v17.leanback.supportleanbackshowcase.R;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-
-
-public class VideoSurfaceFragment extends Fragment {
-
-    public static final String TAG = "VideoSurfaceFragment";
-
-    @Override public void onCreate(Bundle savedInstanceState) {
-        Log.d(TAG, "onCreate started");
-        super.onCreate(savedInstanceState);
-
-    }
-
-    @Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container,
-                                                 Bundle savedInstanceState) {
-        return inflater.inflate(R.layout.video_surface_fragment, null);
-    }
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/page/CustomTitleView.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/page/CustomTitleView.java
deleted file mode 100644
index 10ca3e9..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/page/CustomTitleView.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * 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 android.support.v17.leanback.supportleanbackshowcase.app.page;
-
-import android.content.Context;
-import android.graphics.drawable.Drawable;
-import android.support.v17.leanback.supportleanbackshowcase.R;
-import android.support.v17.leanback.widget.TitleViewAdapter;
-import android.util.AttributeSet;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.widget.ImageView;
-import android.widget.RelativeLayout;
-import android.widget.TextView;
-
-/**
- * Custom title view to be used in {@link android.support.v17.leanback.app.BrowseFragment}.
- */
-public class CustomTitleView extends RelativeLayout implements TitleViewAdapter.Provider {
-    private final TextView mTitleView;
-    private final ImageView mBadgeView;
-
-    private final TitleViewAdapter mTitleViewAdapter = new TitleViewAdapter() {
-        @Override
-        public View getSearchAffordanceView() {
-            return null;
-        }
-
-        @Override
-        public void setTitle(CharSequence titleText) {
-            CustomTitleView.this.setTitle(titleText);
-        }
-
-        @Override
-        public void setBadgeDrawable(Drawable drawable) {
-            CustomTitleView.this.setBadgeDrawable(drawable);
-        }
-    };
-
-    public CustomTitleView(Context context) {
-        this(context, null);
-    }
-
-    public CustomTitleView(Context context, AttributeSet attrs) {
-        this(context, attrs, 0);
-    }
-
-    public CustomTitleView(Context context, AttributeSet attrs, int defStyle) {
-        super(context, attrs, defStyle);
-        View root  = LayoutInflater.from(context).inflate(R.layout.custom_titleview, this);
-        mTitleView = (TextView) root.findViewById(R.id.title_tv);
-        mBadgeView = (ImageView)root.findViewById(R.id.title_badge_iv);
-    }
-
-    public void setTitle(CharSequence title) {
-        if (title != null) {
-            mTitleView.setText(title);
-            mTitleView.setVisibility(View.VISIBLE);
-            mBadgeView.setVisibility(View.GONE);
-        }
-    }
-
-
-    public void setBadgeDrawable(Drawable drawable) {
-        if (drawable != null) {
-            mTitleView.setVisibility(View.GONE);
-            mBadgeView.setImageDrawable(drawable);
-            mBadgeView.setVisibility(View.VISIBLE);
-        }
-    }
-
-    @Override
-    public TitleViewAdapter getTitleViewAdapter() {
-        return mTitleViewAdapter;
-    }
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/page/GridFragment.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/page/GridFragment.java
deleted file mode 100644
index a1a25a5..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/page/GridFragment.java
+++ /dev/null
@@ -1,219 +0,0 @@
-/*
- * 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 android.support.v17.leanback.supportleanbackshowcase.app.page;
-
-import android.app.Fragment;
-import android.os.Bundle;
-import android.support.v17.leanback.app.BrowseFragment;
-import android.support.v17.leanback.supportleanbackshowcase.R;
-import android.support.v17.leanback.transition.TransitionHelper;
-import android.support.v17.leanback.widget.ObjectAdapter;
-import android.support.v17.leanback.widget.OnChildLaidOutListener;
-import android.support.v17.leanback.widget.OnItemViewClickedListener;
-import android.support.v17.leanback.widget.OnItemViewSelectedListener;
-import android.support.v17.leanback.widget.Presenter;
-import android.support.v17.leanback.widget.Row;
-import android.support.v17.leanback.widget.RowPresenter;
-import android.support.v17.leanback.widget.VerticalGridPresenter;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-
-/**
- * A fragment for rendering items in a vertical grids.
- */
-public class GridFragment extends Fragment implements BrowseFragment.MainFragmentAdapterProvider {
-    private static final String TAG = "VerticalGridFragment";
-    private static boolean DEBUG = false;
-
-    private ObjectAdapter mAdapter;
-    private VerticalGridPresenter mGridPresenter;
-    private VerticalGridPresenter.ViewHolder mGridViewHolder;
-    private OnItemViewSelectedListener mOnItemViewSelectedListener;
-    private OnItemViewClickedListener mOnItemViewClickedListener;
-    private Object mSceneAfterEntranceTransition;
-    private int mSelectedPosition = -1;
-    private BrowseFragment.MainFragmentAdapter mMainFragmentAdapter =
-            new BrowseFragment.MainFragmentAdapter(this) {
-                @Override
-                public void setEntranceTransitionState(boolean state) {
-                    GridFragment.this.setEntranceTransitionState(state);
-                }
-            };
-    /**
-     * Sets the grid presenter.
-     */
-    public void setGridPresenter(VerticalGridPresenter gridPresenter) {
-        if (gridPresenter == null) {
-            throw new IllegalArgumentException("Grid presenter may not be null");
-        }
-        mGridPresenter = gridPresenter;
-        mGridPresenter.setOnItemViewSelectedListener(mViewSelectedListener);
-        if (mOnItemViewClickedListener != null) {
-            mGridPresenter.setOnItemViewClickedListener(mOnItemViewClickedListener);
-        }
-    }
-
-    /**
-     * Returns the grid presenter.
-     */
-    public VerticalGridPresenter getGridPresenter() {
-        return mGridPresenter;
-    }
-
-    /**
-     * Sets the object adapter for the fragment.
-     */
-    public void setAdapter(ObjectAdapter adapter) {
-        mAdapter = adapter;
-        updateAdapter();
-    }
-
-    /**
-     * Returns the object adapter.
-     */
-    public ObjectAdapter getAdapter() {
-        return mAdapter;
-    }
-
-    final private OnItemViewSelectedListener mViewSelectedListener =
-            new OnItemViewSelectedListener() {
-                @Override
-                public void onItemSelected(Presenter.ViewHolder itemViewHolder, Object item,
-                                           RowPresenter.ViewHolder rowViewHolder, Row row) {
-                    int position = mGridViewHolder.getGridView().getSelectedPosition();
-                    if (DEBUG) Log.v(TAG, "grid selected position " + position);
-                    gridOnItemSelected(position);
-                    if (mOnItemViewSelectedListener != null) {
-                        mOnItemViewSelectedListener.onItemSelected(itemViewHolder, item,
-                                rowViewHolder, row);
-                    }
-                }
-            };
-
-    final private OnChildLaidOutListener mChildLaidOutListener =
-            new OnChildLaidOutListener() {
-                @Override
-                public void onChildLaidOut(ViewGroup parent, View view, int position, long id) {
-                    if (position == 0) {
-                        showOrHideTitle();
-                    }
-                }
-            };
-
-    /**
-     * Sets an item selection listener.
-     */
-    public void setOnItemViewSelectedListener(OnItemViewSelectedListener listener) {
-        mOnItemViewSelectedListener = listener;
-    }
-
-    private void gridOnItemSelected(int position) {
-        if (position != mSelectedPosition) {
-            mSelectedPosition = position;
-            showOrHideTitle();
-        }
-    }
-
-    private void showOrHideTitle() {
-        if (mGridViewHolder.getGridView().findViewHolderForAdapterPosition(mSelectedPosition)
-                == null) {
-            return;
-        }
-        if (!mGridViewHolder.getGridView().hasPreviousViewInSameRow(mSelectedPosition)) {
-            mMainFragmentAdapter.getFragmentHost().showTitleView(true);
-        } else {
-            mMainFragmentAdapter.getFragmentHost().showTitleView(false);
-        }
-    }
-
-    /**
-     * Sets an item clicked listener.
-     */
-    public void setOnItemViewClickedListener(OnItemViewClickedListener listener) {
-        mOnItemViewClickedListener = listener;
-        if (mGridPresenter != null) {
-            mGridPresenter.setOnItemViewClickedListener(mOnItemViewClickedListener);
-        }
-    }
-
-    /**
-     * Returns the item clicked listener.
-     */
-    public OnItemViewClickedListener getOnItemViewClickedListener() {
-        return mOnItemViewClickedListener;
-    }
-
-    @Override
-    public View onCreateView(LayoutInflater inflater, ViewGroup container,
-                             Bundle savedInstanceState) {
-        return inflater.inflate(R.layout.grid_fragment, container, false);
-    }
-
-    @Override
-    public void onViewCreated(View view, Bundle savedInstanceState) {
-        super.onViewCreated(view, savedInstanceState);
-        ViewGroup gridDock = (ViewGroup) view.findViewById(R.id.browse_grid_dock);
-        mGridViewHolder = mGridPresenter.onCreateViewHolder(gridDock);
-        gridDock.addView(mGridViewHolder.view);
-        mGridViewHolder.getGridView().setOnChildLaidOutListener(mChildLaidOutListener);
-
-        mSceneAfterEntranceTransition = TransitionHelper.createScene(gridDock, new Runnable() {
-            @Override
-            public void run() {
-                setEntranceTransitionState(true);
-            }
-        });
-
-        getMainFragmentAdapter().getFragmentHost().notifyViewCreated(mMainFragmentAdapter);
-        updateAdapter();
-
-    }
-
-    @Override
-    public void onDestroyView() {
-        super.onDestroyView();
-        mGridViewHolder = null;
-    }
-
-    @Override
-    public BrowseFragment.MainFragmentAdapter getMainFragmentAdapter() {
-        return mMainFragmentAdapter;
-    }
-
-    /**
-     * Sets the selected item position.
-     */
-    public void setSelectedPosition(int position) {
-        mSelectedPosition = position;
-        if(mGridViewHolder != null && mGridViewHolder.getGridView().getAdapter() != null) {
-            mGridViewHolder.getGridView().setSelectedPositionSmooth(position);
-        }
-    }
-
-    private void updateAdapter() {
-        if (mGridViewHolder != null) {
-            mGridPresenter.onBindViewHolder(mGridViewHolder, mAdapter);
-            if (mSelectedPosition != -1) {
-                mGridViewHolder.getGridView().setSelectedPosition(mSelectedPosition);
-            }
-        }
-    }
-
-    void setEntranceTransitionState(boolean afterTransition) {
-        mGridPresenter.setEntranceTransitionState(mGridViewHolder, afterTransition);
-    }
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/page/PageAndListRowActivity.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/page/PageAndListRowActivity.java
deleted file mode 100644
index 4d5b309..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/page/PageAndListRowActivity.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * 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 android.support.v17.leanback.supportleanbackshowcase.app.page;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.support.v17.leanback.supportleanbackshowcase.R;
-
-/**
- * Activity showcasing the use of {@link android.support.v17.leanback.widget.PageRow} and
- * {@link android.support.v17.leanback.widget.ListRow}.
- */
-public class PageAndListRowActivity extends Activity {
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.page_list_row);
-    }
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/page/PageAndListRowFragment.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/page/PageAndListRowFragment.java
deleted file mode 100644
index 3f08a59..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/page/PageAndListRowFragment.java
+++ /dev/null
@@ -1,338 +0,0 @@
-/*
- * 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 android.support.v17.leanback.supportleanbackshowcase.app.page;
-
-import android.app.Activity;
-import android.app.Fragment;
-import android.os.Bundle;
-import android.os.Handler;
-import android.support.v17.leanback.app.BackgroundManager;
-import android.support.v17.leanback.app.BrowseFragment;
-import android.support.v17.leanback.app.RowsFragment;
-import android.support.v17.leanback.supportleanbackshowcase.R;
-import android.support.v17.leanback.supportleanbackshowcase.app.details.ShadowRowPresenterSelector;
-import android.support.v17.leanback.supportleanbackshowcase.cards.presenters.CardPresenterSelector;
-import android.support.v17.leanback.supportleanbackshowcase.models.Card;
-import android.support.v17.leanback.supportleanbackshowcase.models.CardRow;
-import android.support.v17.leanback.supportleanbackshowcase.utils.CardListRow;
-import android.support.v17.leanback.supportleanbackshowcase.utils.Utils;
-import android.support.v17.leanback.widget.ArrayObjectAdapter;
-import android.support.v17.leanback.widget.FocusHighlight;
-import android.support.v17.leanback.widget.HeaderItem;
-import android.support.v17.leanback.widget.ListRow;
-import android.support.v17.leanback.widget.ListRowPresenter;
-import android.support.v17.leanback.widget.OnItemViewClickedListener;
-import android.support.v17.leanback.widget.PageRow;
-import android.support.v17.leanback.widget.Presenter;
-import android.support.v17.leanback.widget.PresenterSelector;
-import android.support.v17.leanback.widget.Row;
-import android.support.v17.leanback.widget.RowPresenter;
-import android.support.v17.leanback.widget.VerticalGridPresenter;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.webkit.WebView;
-import android.webkit.WebViewClient;
-import android.widget.FrameLayout;
-import android.widget.Toast;
-import com.google.gson.Gson;
-
-/**
- * Sample {@link BrowseFragment} implementation showcasing the use of {@link PageRow} and
- * {@link ListRow}.
- */
-public class PageAndListRowFragment extends BrowseFragment {
-    private static final long HEADER_ID_1 = 1;
-    private static final String HEADER_NAME_1 = "Page Fragment";
-    private static final long HEADER_ID_2 = 2;
-    private static final String HEADER_NAME_2 = "Rows Fragment";
-    private static final long HEADER_ID_3 = 3;
-    private static final String HEADER_NAME_3 = "Settings Fragment";
-    private static final long HEADER_ID_4 = 4;
-    private static final String HEADER_NAME_4 = "User agreement Fragment";
-    private BackgroundManager mBackgroundManager;
-
-    private ArrayObjectAdapter mRowsAdapter;
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setupUi();
-        loadData();
-        mBackgroundManager = BackgroundManager.getInstance(getActivity());
-        mBackgroundManager.attach(getActivity().getWindow());
-        getMainFragmentRegistry().registerFragment(PageRow.class,
-                new PageRowFragmentFactory(mBackgroundManager));
-    }
-
-    private void setupUi() {
-        setHeadersState(HEADERS_ENABLED);
-        setHeadersTransitionOnBackEnabled(true);
-        setBrandColor(getResources().getColor(R.color.fastlane_background));
-        setTitle("Title goes here");
-        setOnSearchClickedListener(new View.OnClickListener() {
-
-            @Override
-            public void onClick(View view) {
-                Toast.makeText(
-                        getActivity(), getString(R.string.implement_search), Toast.LENGTH_SHORT)
-                        .show();
-            }
-        });
-
-        prepareEntranceTransition();
-    }
-
-    private void loadData() {
-        mRowsAdapter = new ArrayObjectAdapter(new ListRowPresenter());
-        setAdapter(mRowsAdapter);
-
-        new Handler().postDelayed(new Runnable() {
-            @Override
-            public void run() {
-                createRows();
-                startEntranceTransition();
-            }
-        }, 2000);
-    }
-
-    private void createRows() {
-        HeaderItem headerItem1 = new HeaderItem(HEADER_ID_1, HEADER_NAME_1);
-        PageRow pageRow1 = new PageRow(headerItem1);
-        mRowsAdapter.add(pageRow1);
-
-        HeaderItem headerItem2 = new HeaderItem(HEADER_ID_2, HEADER_NAME_2);
-        PageRow pageRow2 = new PageRow(headerItem2);
-        mRowsAdapter.add(pageRow2);
-
-        HeaderItem headerItem3 = new HeaderItem(HEADER_ID_3, HEADER_NAME_3);
-        PageRow pageRow3 = new PageRow(headerItem3);
-        mRowsAdapter.add(pageRow3);
-
-        HeaderItem headerItem4 = new HeaderItem(HEADER_ID_4, HEADER_NAME_4);
-        PageRow pageRow4 = new PageRow(headerItem4);
-        mRowsAdapter.add(pageRow4);
-    }
-
-    private static class PageRowFragmentFactory extends BrowseFragment.FragmentFactory {
-        private final BackgroundManager mBackgroundManager;
-
-        PageRowFragmentFactory(BackgroundManager backgroundManager) {
-            this.mBackgroundManager = backgroundManager;
-        }
-
-        @Override
-        public Fragment createFragment(Object rowObj) {
-            Row row = (Row)rowObj;
-            mBackgroundManager.setDrawable(null);
-            if (row.getHeaderItem().getId() == HEADER_ID_1) {
-                return new SampleFragmentA();
-            } else if (row.getHeaderItem().getId() == HEADER_ID_2) {
-                return new SampleFragmentB();
-            } else if (row.getHeaderItem().getId() == HEADER_ID_3) {
-                return new SettingsFragment();
-            } else if (row.getHeaderItem().getId() == HEADER_ID_4) {
-                return new WebViewFragment();
-            }
-
-            throw new IllegalArgumentException(String.format("Invalid row %s", rowObj));
-        }
-    }
-
-    public static class PageFragmentAdapterImpl extends MainFragmentAdapter<SampleFragmentA> {
-
-        public PageFragmentAdapterImpl(SampleFragmentA fragment) {
-            super(fragment);
-        }
-    }
-
-    /**
-     * Simple page fragment implementation.
-     */
-    public static class SampleFragmentA extends GridFragment {
-        private static final int COLUMNS = 4;
-        private final int ZOOM_FACTOR = FocusHighlight.ZOOM_FACTOR_SMALL;
-        private ArrayObjectAdapter mAdapter;
-
-        @Override
-        public void onCreate(Bundle savedInstanceState) {
-            super.onCreate(savedInstanceState);
-            setupAdapter();
-            loadData();
-            getMainFragmentAdapter().getFragmentHost().notifyDataReady(getMainFragmentAdapter());
-        }
-
-
-        private void setupAdapter() {
-            VerticalGridPresenter presenter = new VerticalGridPresenter(ZOOM_FACTOR);
-            presenter.setNumberOfColumns(COLUMNS);
-            setGridPresenter(presenter);
-
-            CardPresenterSelector cardPresenter = new CardPresenterSelector(getActivity());
-            mAdapter = new ArrayObjectAdapter(cardPresenter);
-            setAdapter(mAdapter);
-
-            setOnItemViewClickedListener(new OnItemViewClickedListener() {
-                @Override
-                public void onItemClicked(
-                        Presenter.ViewHolder itemViewHolder,
-                        Object item,
-                        RowPresenter.ViewHolder rowViewHolder,
-                        Row row) {
-                    Card card = (Card)item;
-                    Toast.makeText(getActivity(),
-                            "Clicked on "+card.getTitle(),
-                            Toast.LENGTH_SHORT).show();
-                }
-            });
-        }
-
-        private void loadData() {
-            String json = Utils.inputStreamToString(getResources().openRawResource(
-                    R.raw.grid_example));
-            CardRow cardRow = new Gson().fromJson(json, CardRow.class);
-            mAdapter.addAll(0, cardRow.getCards());
-        }
-    }
-
-    /**
-     * Page fragment embeds a rows fragment.
-     */
-    public static class SampleFragmentB extends RowsFragment {
-        private final ArrayObjectAdapter mRowsAdapter;
-
-        public SampleFragmentB() {
-            mRowsAdapter = new ArrayObjectAdapter(new ShadowRowPresenterSelector());
-
-            setAdapter(mRowsAdapter);
-            setOnItemViewClickedListener(new OnItemViewClickedListener() {
-                @Override
-                public void onItemClicked(
-                        Presenter.ViewHolder itemViewHolder,
-                        Object item,
-                        RowPresenter.ViewHolder rowViewHolder,
-                        Row row) {
-                    Toast.makeText(getActivity(), "Implement click handler", Toast.LENGTH_SHORT)
-                            .show();
-                }
-            });
-        }
-
-        @Override
-        public void onCreate(Bundle savedInstanceState) {
-            super.onCreate(savedInstanceState);
-            createRows();
-            getMainFragmentAdapter().getFragmentHost().notifyDataReady(getMainFragmentAdapter());
-        }
-
-        private void createRows() {
-                String json = Utils.inputStreamToString(getResources().openRawResource(
-                        R.raw.page_row_example));
-                CardRow[] rows = new Gson().fromJson(json, CardRow[].class);
-                for (CardRow row : rows) {
-                    if (row.getType() == CardRow.TYPE_DEFAULT) {
-                        mRowsAdapter.add(createCardRow(row));
-                    }
-                }
-        }
-
-        private Row createCardRow(CardRow cardRow) {
-            PresenterSelector presenterSelector = new CardPresenterSelector(getActivity());
-            ArrayObjectAdapter adapter = new ArrayObjectAdapter(presenterSelector);
-            for (Card card : cardRow.getCards()) {
-                adapter.add(card);
-            }
-
-            HeaderItem headerItem = new HeaderItem(cardRow.getTitle());
-            return new CardListRow(headerItem, adapter, cardRow);
-        }
-    }
-
-    public static class SettingsFragment extends RowsFragment {
-        private final ArrayObjectAdapter mRowsAdapter;
-
-        public SettingsFragment() {
-            ListRowPresenter selector = new ListRowPresenter();
-            selector.setNumRows(2);
-            mRowsAdapter = new ArrayObjectAdapter(selector);
-            setAdapter(mRowsAdapter);
-        }
-
-        @Override
-        public void onAttach(Activity activity) {
-            super.onAttach(activity);
-            new Handler().postDelayed(new Runnable() {
-                @Override
-                public void run() {
-                    loadData();
-                }
-            }, 200);
-        }
-
-        private void loadData() {
-            if (isAdded()) {
-                String json = Utils.inputStreamToString(getResources().openRawResource(
-                        R.raw.icon_example));
-                CardRow cardRow = new Gson().fromJson(json, CardRow.class);
-                mRowsAdapter.add(createCardRow(cardRow));
-                getMainFragmentAdapter().getFragmentHost().notifyDataReady(
-                        getMainFragmentAdapter());
-            }
-        }
-
-        private ListRow createCardRow(CardRow cardRow) {
-            SettingsIconPresenter iconCardPresenter = new SettingsIconPresenter(getActivity());
-            ArrayObjectAdapter adapter = new ArrayObjectAdapter(iconCardPresenter);
-            for(Card card : cardRow.getCards()) {
-                adapter.add(card);
-            }
-
-            HeaderItem headerItem = new HeaderItem(cardRow.getTitle());
-            return new CardListRow(headerItem, adapter, cardRow);
-        }
-    }
-
-    public static class WebViewFragment extends Fragment implements MainFragmentAdapterProvider {
-        private MainFragmentAdapter mMainFragmentAdapter = new MainFragmentAdapter(this);
-        private WebView mWebview;
-
-        @Override
-        public MainFragmentAdapter getMainFragmentAdapter() {
-            return mMainFragmentAdapter;
-        }
-
-        @Override
-        public View onCreateView(
-                LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
-            FrameLayout root = new FrameLayout(getActivity());
-            FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(
-                    FrameLayout.LayoutParams.MATCH_PARENT,
-                    FrameLayout.LayoutParams.MATCH_PARENT);
-            lp.setMarginStart(32);
-            mWebview = new WebView(getActivity());
-            mWebview.setWebViewClient(new WebViewClient());
-            mWebview.getSettings().setJavaScriptEnabled(true);
-            root.addView(mWebview, lp);
-            return root;
-        }
-
-        @Override
-        public void onResume() {
-            super.onResume();
-            mWebview.loadUrl("https://www.google.com/policies/terms");
-            getMainFragmentAdapter().getFragmentHost().notifyDataReady(getMainFragmentAdapter());
-        }
-    }
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/page/SettingsIconPresenter.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/page/SettingsIconPresenter.java
deleted file mode 100644
index cdc8447..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/page/SettingsIconPresenter.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * 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 android.support.v17.leanback.supportleanbackshowcase.app.page;
-
-import android.content.Context;
-import android.support.v17.leanback.supportleanbackshowcase.R;
-import android.support.v17.leanback.supportleanbackshowcase.cards.presenters.ImageCardViewPresenter;
-import android.support.v17.leanback.widget.ImageCardView;
-import android.view.View;
-import android.widget.ImageView;
-
-/**
- * Simple presenter implementation to represent settings icon as cards.
- */
-public class SettingsIconPresenter extends ImageCardViewPresenter {
-
-    public SettingsIconPresenter(Context context) {
-        super(context, R.style.IconCardTheme);
-    }
-
-    @Override
-    protected ImageCardView onCreateView() {
-        final ImageCardView imageCardView = super.onCreateView();
-        imageCardView.setOnFocusChangeListener(new View.OnFocusChangeListener() {
-            @Override
-            public void onFocusChange(View v, boolean hasFocus) {
-                if (hasFocus) {
-                    setImageBackground(imageCardView, R.color.settings_card_background_focussed);
-                } else {
-                    setImageBackground(imageCardView, R.color.settings_card_background);
-                }
-            }
-        });
-        setImageBackground(imageCardView, R.color.settings_card_background);
-        return imageCardView;
-    }
-
-    private void setImageBackground(ImageCardView imageCardView, int colorId) {
-        imageCardView.setBackgroundColor(getContext().getResources().getColor(colorId));
-    }
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/settings/SettingsExampleActivity.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/settings/SettingsExampleActivity.java
deleted file mode 100644
index 01963ca..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/settings/SettingsExampleActivity.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * 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 android.support.v17.leanback.supportleanbackshowcase.app.settings;
-
-import android.app.Activity;
-import android.app.Fragment;
-import android.os.Bundle;
-import android.support.v17.leanback.supportleanbackshowcase.R;
-
-/*
- * TODO: Javadoc
- */
-public class SettingsExampleActivity extends Activity {
-
-    @Override public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.activity_settings_example);
-    }
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/settings/SettingsExampleFragment.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/settings/SettingsExampleFragment.java
deleted file mode 100644
index 0276d53..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/settings/SettingsExampleFragment.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * 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 android.support.v17.leanback.supportleanbackshowcase.app.settings;
-
-import android.app.Fragment;
-import android.content.Context;
-import android.os.Bundle;
-import android.support.v14.preference.PreferenceFragment;
-import android.support.v17.leanback.supportleanbackshowcase.R;
-import android.support.v17.preference.LeanbackPreferenceFragment;
-import android.support.v17.preference.LeanbackSettingsFragment;
-import android.support.v7.preference.DialogPreference;
-import android.support.v7.preference.ListPreference;
-import android.support.v7.preference.Preference;
-import android.support.v7.preference.PreferenceScreen;
-import android.widget.Toast;
-
-import java.util.Arrays;
-import java.util.Stack;
-
-public class SettingsExampleFragment extends LeanbackSettingsFragment {
-
-    @Override
-    public void onPreferenceStartInitialScreen() {
-        startPreferenceFragment(buildPreferenceFragment(R.xml.prefs, null));
-    }
-
-    @Override
-    public boolean onPreferenceStartFragment(PreferenceFragment preferenceFragment,
-                                             Preference preference) {
-        return false;
-    }
-
-    @Override
-    public boolean onPreferenceStartScreen(PreferenceFragment preferenceFragment,
-                                           PreferenceScreen preferenceScreen) {
-        PreferenceFragment frag = buildPreferenceFragment(R.xml.prefs, preferenceScreen.getKey());
-        startPreferenceFragment(frag);
-        return true;
-    }
-
-    private PreferenceFragment buildPreferenceFragment(int preferenceResId, String root) {
-        PreferenceFragment fragment = new PrefFragment();
-        Bundle args = new Bundle();
-        args.putInt("preferenceResource", preferenceResId);
-        args.putString("root", root);
-        fragment.setArguments(args);
-        return fragment;
-    }
-
-    public static class PrefFragment extends LeanbackPreferenceFragment {
-
-        @Override
-        public void onCreatePreferences(Bundle bundle, String s) {
-            String root = getArguments().getString("root", null);
-            int prefResId = getArguments().getInt("preferenceResource");
-            if (root == null) {
-                addPreferencesFromResource(prefResId);
-            } else {
-                setPreferencesFromResource(prefResId, root);
-            }
-        }
-
-        @Override
-        public boolean onPreferenceTreeClick(Preference preference) {
-            final String[] keys = {"prefs_wifi_connect_wps", "prefs_date", "prefs_time",
-                    "prefs_date_time_use_timezone", "app_banner_sample_app", "pref_force_stop",
-                    "pref_uninstall", "pref_more_info"};
-            if (Arrays.asList(keys).contains(preference.getKey())) {
-                Toast.makeText(getActivity(), "Implement your own action handler.", Toast.LENGTH_SHORT).show();
-                return true;
-            }
-            return super.onPreferenceTreeClick(preference);
-        }
-
-    }
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/wizard/WizardExample1stStepFragment.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/wizard/WizardExample1stStepFragment.java
deleted file mode 100644
index cbfa868..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/wizard/WizardExample1stStepFragment.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * 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 android.support.v17.leanback.supportleanbackshowcase.app.wizard;
-
-import android.os.Bundle;
-import android.support.annotation.NonNull;
-import android.support.v17.leanback.app.GuidedStepFragment;
-import android.support.v17.leanback.supportleanbackshowcase.R;
-import android.support.v17.leanback.widget.GuidanceStylist;
-import android.support.v17.leanback.widget.GuidedAction;
-
-import java.util.List;
-
-/**
- * The first screen of the rental wizard. Gives the user the choice between renting the movie in SD
- * or HD quality.
- */
-public class WizardExample1stStepFragment extends WizardExampleBaseStepFragment {
-
-    private static final int ACTION_ID_BUY_HD = 1;
-    private static final int ACTION_ID_BUY_SD = ACTION_ID_BUY_HD + 1;
-
-    @NonNull
-    @Override
-    public GuidanceStylist.Guidance onCreateGuidance(Bundle savedInstanceState) {
-        GuidanceStylist.Guidance guidance = new GuidanceStylist.Guidance(mMovie.getTitle(),
-                getString(R.string.wizard_example_choose_rent_options),
-                mMovie.getBreadcrump(), null);
-        return guidance;
-    }
-
-    @Override
-    public void onCreateActions(@NonNull List<GuidedAction> actions, Bundle savedInstanceState) {
-        GuidedAction action = new GuidedAction.Builder(getActivity())
-                .id(ACTION_ID_BUY_HD)
-                .title(R.string.wizard_example_rent_hd)
-                .editable(false)
-                .description(mMovie.getPriceHd() + " " +
-                        getString(R.string.wizard_example_watch_hd))
-                .build();
-        actions.add(action);
-        action = new GuidedAction.Builder(getActivity())
-                .id(ACTION_ID_BUY_SD)
-                .title(getString(R.string.wizard_example_rent_sd))
-                .editable(false)
-                .description(mMovie.getPriceSd() + " " +
-                        getString(R.string.wizard_example_watch_sd))
-                .build();
-        actions.add(action);
-    }
-
-    @Override
-    public void onGuidedActionClicked(GuidedAction action) {
-        boolean rentHd = ACTION_ID_BUY_HD == action.getId();
-        GuidedStepFragment fragment = WizardExample2ndStepFragment.build(rentHd, this);
-        add(getFragmentManager(), fragment);
-    }
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/wizard/WizardExample2ndStepFragment.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/wizard/WizardExample2ndStepFragment.java
deleted file mode 100644
index f630d59..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/wizard/WizardExample2ndStepFragment.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * 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 android.support.v17.leanback.supportleanbackshowcase.app.wizard;
-
-import android.app.FragmentManager;
-import android.graphics.Color;
-import android.graphics.drawable.Drawable;
-import android.os.Bundle;
-import android.support.annotation.NonNull;
-import android.support.v17.leanback.app.GuidedStepFragment;
-import android.support.v17.leanback.supportleanbackshowcase.R;
-import android.support.v17.leanback.widget.GuidanceStylist;
-import android.support.v17.leanback.widget.GuidedAction;
-import android.support.v17.leanback.widget.GuidedActionsStylist;
-import android.widget.Toast;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Displays the second screen of the rental wizard which requires the user to confirm his purchase.
- */
-public class WizardExample2ndStepFragment extends WizardExampleBaseStepFragment {
-
-    private static final String ARG_HD = "hd";
-    private static final int ACTION_ID_CONFIRM = 1;
-    private static final int ACTION_ID_PAYMENT_METHOD = ACTION_ID_CONFIRM + 1;
-    private static final int ACTION_ID_NEW_PAYMENT = ACTION_ID_PAYMENT_METHOD + 1;
-
-    protected static ArrayList<String> sCards = new ArrayList();
-    protected static int sSelectedCard = -1;
-
-    static {
-        sCards.add("Visa-1234");
-        sCards.add("Master-4321");
-    }
-
-
-    public static GuidedStepFragment build(boolean hd, WizardExampleBaseStepFragment previousFragment) {
-        GuidedStepFragment fragment = new WizardExample2ndStepFragment();
-        // Reuse the same arguments this fragment was given.
-        Bundle args = previousFragment.getArguments();
-        args.putBoolean(ARG_HD, hd);
-        fragment.setArguments(args);
-        return fragment;
-    }
-
-    @NonNull
-    @Override
-    public GuidanceStylist.Guidance onCreateGuidance(Bundle savedInstanceState) {
-        GuidanceStylist.Guidance guidance = new GuidanceStylist.Guidance(mMovie.getTitle(),
-                getString(R.string.wizard_example_rental_period),
-                mMovie.getBreadcrump(), null);
-        return guidance;
-
-    }
-
-    @Override
-    public void onCreateActions(@NonNull List<GuidedAction> actions, Bundle savedInstanceState) {
-        boolean rentHighDefinition = getArguments().getBoolean(ARG_HD);
-
-        GuidedAction action = new GuidedAction.Builder(getActivity())
-                .id(ACTION_ID_CONFIRM)
-                .title(R.string.wizard_example_rent)
-                .description(rentHighDefinition ? mMovie.getPriceHd() : mMovie.getPriceSd())
-                .editable(false)
-                .build();
-        action.setEnabled(false);
-        actions.add(action);
-        List<GuidedAction> subActions = new ArrayList();
-        action = new GuidedAction.Builder(getActivity())
-                .id(ACTION_ID_PAYMENT_METHOD)
-                .title(R.string.wizard_example_payment_method)
-                .editTitle("")
-                .description(R.string.wizard_example_input_credit)
-                .subActions(subActions)
-                .build();
-        actions.add(action);
-    }
-
-    @Override
-    public void onResume() {
-        super.onResume();
-        GuidedAction payment = findActionById(ACTION_ID_PAYMENT_METHOD);
-
-        List<GuidedAction> paymentSubActions = payment.getSubActions();
-        paymentSubActions.clear();
-        for (int i = 0; i < sCards.size(); i++) {
-            paymentSubActions.add(new GuidedAction.Builder(getActivity())
-                            .title(sCards.get(i))
-                            .description("")
-                            .checkSetId(GuidedAction.DEFAULT_CHECK_SET_ID)
-                            .build()
-            );
-        }
-        paymentSubActions.add(new GuidedAction.Builder(getActivity())
-                .id(ACTION_ID_NEW_PAYMENT)
-                .title("Add New Card")
-                .description("")
-                .editable(false)
-                .build()
-        );
-        if ( sSelectedCard >= 0 && sSelectedCard < sCards.size() ) {
-            payment.setDescription(sCards.get(sSelectedCard));
-            findActionById(ACTION_ID_CONFIRM).setEnabled(true);
-        } else
-            findActionById(ACTION_ID_CONFIRM).setEnabled(false);
-        notifyActionChanged(findActionPositionById(ACTION_ID_CONFIRM));
-    }
-
-    @Override
-    public boolean onSubGuidedActionClicked(GuidedAction action) {
-
-        if (action.isChecked()) {
-            String payment = action.getTitle().toString();
-            if ( (sSelectedCard = sCards.indexOf(payment)) != -1 ) {
-                findActionById(ACTION_ID_PAYMENT_METHOD).setDescription(payment);
-                notifyActionChanged(findActionPositionById(ACTION_ID_PAYMENT_METHOD));
-                findActionById(ACTION_ID_CONFIRM).setEnabled(true);
-                notifyActionChanged(findActionPositionById(ACTION_ID_CONFIRM));
-            }
-            return true;
-        } else {
-            FragmentManager fm = getFragmentManager();
-            GuidedStepFragment fragment = new WizardNewPaymentStepFragment();
-            fragment.setArguments(getArguments());
-            add(fm, fragment);
-            return false;
-        }
-    }
-
-    @Override
-    public void onGuidedActionClicked(GuidedAction action) {
-        if (ACTION_ID_CONFIRM == action.getId()) {
-            GuidedStepFragment fragment = new WizardExample3rdStepFragment();
-            fragment.setArguments(getArguments());
-            add(getFragmentManager(), fragment);
-        }
-    }
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/wizard/WizardExample3rdStepFragment.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/wizard/WizardExample3rdStepFragment.java
deleted file mode 100644
index 9a2ec39..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/wizard/WizardExample3rdStepFragment.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * 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 android.support.v17.leanback.supportleanbackshowcase.app.wizard;
-
-import android.os.Bundle;
-import android.os.Handler;
-import android.support.annotation.NonNull;
-import android.support.v17.leanback.app.GuidedStepFragment;
-import android.support.v17.leanback.supportleanbackshowcase.R;
-import android.support.v17.leanback.widget.GuidanceStylist;
-import android.support.v17.leanback.widget.GuidedAction;
-import android.support.v17.leanback.widget.GuidedActionsStylist;
-
-import java.util.List;
-
-/**
- * This is the third screen of the rental wizard which will display a progressbar while waiting for
- * the server to process the rental. The server communication is faked for the sake of this example
- * by waiting four seconds until continuing.
- */
-public class WizardExample3rdStepFragment extends WizardExampleBaseStepFragment {
-
-    private static final int ACTION_ID_PROCESSING = 1;
-    private final Handler mFakeHttpHandler = new Handler();
-
-    @Override
-    public void onStart() {
-        super.onStart();
-
-        // Fake Http call by creating some sort of delay.
-        mFakeHttpHandler.postDelayed(fakeHttpRequestRunnable, 4000L);
-    }
-
-    @Override
-    public GuidedActionsStylist onCreateActionsStylist() {
-        GuidedActionsStylist stylist = new GuidedActionsStylist() {
-            @Override
-            public int onProvideItemLayoutId() {
-                return R.layout.wizard_progress_action_item;
-            }
-
-        };
-        return stylist;
-    }
-
-    @Override
-    public int onProvideTheme() {
-        return R.style.Theme_Example_LeanbackWizard_NoSelector;
-    }
-
-    @Override
-    public void onStop() {
-        super.onStop();
-
-        // Make sure to cancel the execution of the Runnable in case the fragment is stopped.
-        mFakeHttpHandler.removeCallbacks(fakeHttpRequestRunnable);
-    }
-
-    @NonNull
-    @Override
-    public GuidanceStylist.Guidance onCreateGuidance(Bundle savedInstanceState) {
-        GuidanceStylist.Guidance guidance = new GuidanceStylist.Guidance(mMovie.getTitle(),
-                getString(R.string.wizard_example_just_a_second),
-                mMovie.getBreadcrump(), null);
-        return guidance;
-    }
-
-    @Override
-    public void onCreateActions(@NonNull List<GuidedAction> actions, Bundle savedInstanceState) {
-        GuidedAction action = new GuidedAction.Builder(getActivity())
-                .id(ACTION_ID_PROCESSING)
-                .title(R.string.wizard_example_processing)
-                .infoOnly(true)
-                .build();
-        actions.add(action);
-    }
-
-    private final Runnable fakeHttpRequestRunnable = new Runnable() {
-        @Override
-        public void run() {
-            GuidedStepFragment fragment = new WizardExample4thStepFragment();
-            fragment.setArguments(getArguments());
-            add(getFragmentManager(), fragment);
-        }
-    };
-
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/wizard/WizardExample4thStepFragment.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/wizard/WizardExample4thStepFragment.java
deleted file mode 100644
index b0cb9aa..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/wizard/WizardExample4thStepFragment.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * 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 android.support.v17.leanback.supportleanbackshowcase.app.wizard;
-
-import android.content.Intent;
-import android.os.Bundle;
-import android.support.annotation.NonNull;
-import android.support.v17.leanback.supportleanbackshowcase.R;
-import android.support.v17.leanback.supportleanbackshowcase.app.media.VideoExampleActivity;
-import android.support.v17.leanback.widget.GuidanceStylist;
-import android.support.v17.leanback.widget.GuidedAction;
-import android.support.v4.app.ActivityOptionsCompat;
-import android.widget.Toast;
-
-import java.util.List;
-
-/**
- * The last screen of the Wizard gives to options to either watch the rented movie now or later. Due
- * to keep this example simple and focused on the usage of the GuidedStepFragment, clicking on
- * either action will end the wizard. You might however start a new Activity playing the movie.
- */
-public class WizardExample4thStepFragment extends WizardExampleBaseStepFragment {
-
-    private static final int ACTION_ID_WATCH = 1;
-    private static final int ACTION_ID_LATER = ACTION_ID_WATCH + 1;
-
-    @NonNull
-    @Override
-    public GuidanceStylist.Guidance onCreateGuidance(Bundle savedInstanceState) {
-        GuidanceStylist.Guidance guidance = new GuidanceStylist.Guidance(mMovie.getTitle(),
-                getString(R.string.wizard_example_rental_period),
-                mMovie.getBreadcrump(), null);
-        return guidance;
-    }
-
-    @Override
-    public void onCreateActions(@NonNull List<GuidedAction> actions, Bundle savedInstanceState) {
-        GuidedAction action = new GuidedAction.Builder(getActivity())
-                .id(ACTION_ID_WATCH)
-                .editable(false)
-                .title(R.string.wizard_example_watch_now)
-                .build();
-        actions.add(action);
-        action = new GuidedAction.Builder(getActivity())
-                .id(ACTION_ID_LATER)
-                .editable(false)
-                .title(R.string.wizard_example_later)
-                .build();
-        actions.add(action);
-    }
-
-    @Override
-    public void onGuidedActionClicked(GuidedAction action) {
-        if (action.getId() == ACTION_ID_WATCH) {
-            finishGuidedStepFragments();
-            Intent intent = new Intent(getActivity().getBaseContext(),
-                    VideoExampleActivity.class);
-            startActivity(intent);
-        } else if (action.getId() == ACTION_ID_LATER) {
-            Toast.makeText(getActivity(), getString(R.string.wizard_example_later_clicked),
-                    Toast.LENGTH_SHORT).show();
-            finishGuidedStepFragments();
-        }
-    }
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/wizard/WizardExampleActivity.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/wizard/WizardExampleActivity.java
deleted file mode 100644
index 96f71f8..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/wizard/WizardExampleActivity.java
+++ /dev/null
@@ -1,48 +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 android.support.v17.leanback.supportleanbackshowcase.app.wizard;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.os.PersistableBundle;
-import android.support.v17.leanback.app.GuidedStepFragment;
-import android.support.v17.leanback.supportleanbackshowcase.R;
-
-/**
- * An Activity displaying a wizard for renting a movie.
- */
-public class WizardExampleActivity extends Activity {
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        getWindow().setBackgroundDrawableResource(R.drawable.wizard_background_blackned);
-
-        GuidedStepFragment fragment = new WizardExample1stStepFragment();
-        fragment.setArguments(getIntent().getExtras()); // Delegate Movie to first step.
-        GuidedStepFragment.addAsRoot(this, fragment, android.R.id.content);
-    }
-
-    @Override
-    public void onBackPressed() {
-        if (GuidedStepFragment.getCurrentGuidedStepFragment(getFragmentManager())
-                instanceof WizardExample4thStepFragment) {
-            // The user 'bought' the product. When he presses 'Back' the Wizard will be closed and
-            // he will not be send back to 'Processing Payment...'-Screen.
-            finish();
-        } else super.onBackPressed();
-    }
-
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/wizard/WizardExampleBaseStepFragment.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/wizard/WizardExampleBaseStepFragment.java
deleted file mode 100644
index 8fd5981..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/wizard/WizardExampleBaseStepFragment.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * 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 android.support.v17.leanback.supportleanbackshowcase.app.wizard;
-
-import android.os.Bundle;
-import android.support.v17.leanback.app.GuidedStepFragment;
-import android.support.v17.leanback.supportleanbackshowcase.models.Movie;
-import android.support.v17.leanback.supportleanbackshowcase.R;
-
-/**
- * A base class which provides all it's implementations with a method #getWizardActivity(). It also
- * makes sure that the wizard is using the correct theme.
- */
-public abstract class WizardExampleBaseStepFragment extends GuidedStepFragment {
-
-    protected Movie mMovie;
-
-    @Override
-    public int onProvideTheme() {
-        return R.style.Theme_Example_LeanbackWizard;
-    }
-
-    WizardExampleActivity getWizardActivity() {
-        if (!(getActivity() instanceof WizardExampleActivity)) {
-            throw new IllegalStateException(WizardExampleActivity.class.getName() + " expected.");
-        }
-        return (WizardExampleActivity) getActivity();
-    }
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        mMovie = (Movie) getArguments().getSerializable("movie");
-        super.onCreate(savedInstanceState);
-    }
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/wizard/WizardNewPaymentStepFragment.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/wizard/WizardNewPaymentStepFragment.java
deleted file mode 100644
index a42ab9e..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/wizard/WizardNewPaymentStepFragment.java
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- * 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 android.support.v17.leanback.supportleanbackshowcase.app.wizard;
-
-import android.app.FragmentManager;
-import android.os.Bundle;
-import android.support.annotation.NonNull;
-import android.support.v17.leanback.supportleanbackshowcase.R;
-import android.support.v17.leanback.widget.GuidanceStylist;
-import android.support.v17.leanback.widget.GuidedAction;
-import android.support.v17.leanback.widget.GuidedDatePickerAction;
-import android.text.TextUtils;
-
-import java.util.Calendar;
-import java.util.List;
-
-/**
- * A fragment for allowing users to enter a new payment information.
- */
-public class WizardNewPaymentStepFragment extends WizardExampleBaseStepFragment {
-
-    private static final int ACTION_ID_CARD_NUMBER = 1;
-    private static final int ACTION_ID_PAYMENT_EXP = ACTION_ID_CARD_NUMBER + 1;
-
-    @NonNull
-    @Override
-    public GuidanceStylist.Guidance onCreateGuidance(Bundle savedInstanceState) {
-        String title = getString(R.string.wizard_example_new_payment_guidance_title);
-        String description = getString(R.string.wizard_example_new_payment_guidance_description);
-        String breadcrumb = mMovie.getBreadcrump();
-
-        GuidanceStylist.Guidance guidance = new GuidanceStylist.Guidance(title, description,
-                breadcrumb, null);
-        return guidance;
-    }
-
-    @Override
-    public void onCreateActions(List<GuidedAction> actions, Bundle savedInstanceState) {
-        actions.add(new GuidedAction.Builder(getActivity())
-                        .id(ACTION_ID_CARD_NUMBER)
-                        .title(R.string.wizard_example_input_card)
-                        .editTitle("")
-                        .description(R.string.wizard_example_input_card)
-                        .editDescription("Card number")
-                        .editable(true)
-                        .build()
-        );
-
-        actions.add(new GuidedDatePickerAction.Builder(getActivity())
-                        .id(ACTION_ID_PAYMENT_EXP)
-                        .title(R.string.wizard_example_expiration_date)
-                        .datePickerFormat("MY")
-                        .build()
-        );
-    }
-
-    @Override
-    public void onCreateButtonActions(@NonNull List<GuidedAction> actions,
-                                      Bundle savedInstanceState) {
-        actions.add(new GuidedAction.Builder(getActivity())
-                        .clickAction(GuidedAction.ACTION_ID_OK)
-                        .build()
-        );
-        actions.get(actions.size() - 1).setEnabled(false);
-    }
-
-    @Override
-    public void onGuidedActionClicked(GuidedAction action) {
-        if (action.getId() == GuidedAction.ACTION_ID_OK) {
-            CharSequence cardNumber = findActionById(ACTION_ID_CARD_NUMBER).getDescription();
-            WizardExample2ndStepFragment.sSelectedCard = WizardExample2ndStepFragment.sCards.size();
-            WizardExample2ndStepFragment.sCards.add(cardNumber.toString());
-            popBackStackToGuidedStepFragment(WizardNewPaymentStepFragment.class,
-                    FragmentManager.POP_BACK_STACK_INCLUSIVE);
-        }
-    }
-
-    @Override
-    public long onGuidedActionEditedAndProceed(GuidedAction action) {
-
-        boolean cardNumberCheck = false;
-        boolean expDateCheck = false;
-
-        if (action.getId() == ACTION_ID_CARD_NUMBER) {
-            CharSequence cardNumber = action.getEditTitle();
-            cardNumberCheck = isCardNumberValid(cardNumber);
-            expDateCheck = isExpDateValid(findActionById(ACTION_ID_PAYMENT_EXP));
-            updateOkButton(cardNumberCheck && expDateCheck);
-
-            if (cardNumberCheck) {
-                String last4Digits = cardNumber.subSequence(cardNumber.length() - 4,
-                        cardNumber.length()).toString();
-
-                if ( (Integer.parseInt(last4Digits) & 1) == 0 )
-                    action.setDescription(getString(R.string.wizard_example_visa,
-                            last4Digits));
-                else
-                    action.setDescription(getString(R.string.wizard_example_master,
-                            last4Digits));
-
-                return GuidedAction.ACTION_ID_NEXT;
-            } else if (cardNumber.length() == 0) {
-                action.setDescription(getString(R.string.wizard_example_input_card));
-                return GuidedAction.ACTION_ID_CURRENT;
-            } else {
-                action.setDescription(getString(R.string.wizard_example_input_credit_wrong));
-                return GuidedAction.ACTION_ID_CURRENT;
-            }
-
-        } else if (action.getId() == ACTION_ID_PAYMENT_EXP) {
-            expDateCheck = isExpDateValid(action);
-            cardNumberCheck = isCardNumberValid(findActionById(ACTION_ID_CARD_NUMBER)
-                    .getEditTitle());
-            updateOkButton(cardNumberCheck && expDateCheck);
-            if (expDateCheck) {
-                return GuidedAction.ACTION_ID_NEXT;
-            }
-        }
-        return GuidedAction.ACTION_ID_CURRENT;
-    }
-
-    private void updateOkButton(boolean enabled) {
-        findButtonActionById(GuidedAction.ACTION_ID_OK).setEnabled(enabled);
-        notifyButtonActionChanged(findButtonActionPositionById(GuidedAction.ACTION_ID_OK));
-    }
-
-    private static boolean isCardNumberValid(CharSequence number) {
-        return (TextUtils.isDigitsOnly(number) && number.length() == 16);
-    }
-
-    private static boolean isExpDateValid(GuidedAction dateAction) {
-        long date = ((GuidedDatePickerAction) dateAction).getDate();
-        Calendar c = Calendar.getInstance();
-        c.setTimeInMillis(date);
-        return Calendar.getInstance().before(c);
-    }
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/CharacterCardView.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/CharacterCardView.java
deleted file mode 100644
index 962adb0..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/CharacterCardView.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * 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 android.support.v17.leanback.supportleanbackshowcase.cards;
-
-import android.content.Context;
-import android.graphics.Bitmap;
-import android.graphics.BitmapFactory;
-import android.support.v17.leanback.supportleanbackshowcase.R;
-import android.support.v17.leanback.supportleanbackshowcase.models.Card;
-import android.support.v17.leanback.widget.BaseCardView;
-import android.support.v4.graphics.drawable.RoundedBitmapDrawable;
-import android.support.v4.graphics.drawable.RoundedBitmapDrawableFactory;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.widget.ImageView;
-import android.widget.TextView;
-
-public class CharacterCardView extends BaseCardView {
-
-    public CharacterCardView(Context context) {
-        super(context, null, R.style.CharacterCardStyle);
-        LayoutInflater.from(getContext()).inflate(R.layout.character_card, this);
-        setOnFocusChangeListener(new View.OnFocusChangeListener() {
-            @Override
-            public void onFocusChange(View v, boolean hasFocus) {
-                ImageView mainImage = (ImageView) findViewById(R.id.main_image);
-                View container = findViewById(R.id.container);
-                if (hasFocus) {
-                    container.setBackgroundResource(R.drawable.character_focused);
-                    mainImage.setBackgroundResource(R.drawable.character_focused);
-                } else {
-                    container.setBackgroundResource(R.drawable.character_not_focused_padding);
-                    mainImage.setBackgroundResource(R.drawable.character_not_focused);
-                }
-            }
-        });
-        setFocusable(true);
-    }
-
-    public void updateUi(Card card) {
-        TextView primaryText = (TextView) findViewById(R.id.primary_text);
-        final ImageView imageView = (ImageView) findViewById(R.id.main_image);
-
-        primaryText.setText(card.getTitle());
-        if (card.getLocalImageResourceName() != null) {
-            int resourceId = card.getLocalImageResourceId(getContext());
-            Bitmap bitmap = BitmapFactory
-                    .decodeResource(getContext().getResources(), resourceId);
-            RoundedBitmapDrawable drawable = RoundedBitmapDrawableFactory.create(getContext().getResources(), bitmap);
-            drawable.setAntiAlias(true);
-            drawable.setCornerRadius(Math.max(bitmap.getWidth(), bitmap.getHeight()) / 2.0f);
-            imageView.setImageDrawable(drawable);
-        }
-    }
-
-
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/TextCardView.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/TextCardView.java
deleted file mode 100644
index 830b474..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/TextCardView.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * 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 android.support.v17.leanback.supportleanbackshowcase.cards;
-
-import android.content.Context;
-import android.graphics.Bitmap;
-import android.graphics.BitmapFactory;
-import android.support.v17.leanback.supportleanbackshowcase.R;
-import android.support.v17.leanback.supportleanbackshowcase.models.Card;
-import android.support.v17.leanback.widget.BaseCardView;
-import android.support.v4.graphics.drawable.RoundedBitmapDrawable;
-import android.support.v4.graphics.drawable.RoundedBitmapDrawableFactory;
-import android.view.LayoutInflater;
-import android.widget.ImageView;
-import android.widget.TextView;
-
-public class TextCardView extends BaseCardView {
-
-    public TextCardView(Context context) {
-        super(context, null, R.style.TextCardStyle);
-        LayoutInflater.from(getContext()).inflate(R.layout.text_icon_card, this);
-        setFocusable(true);
-    }
-
-    public void updateUi(Card card) {
-        TextView extraText = (TextView) findViewById(R.id.extra_text);
-        TextView primaryText = (TextView) findViewById(R.id.primary_text);
-        final ImageView imageView = (ImageView) findViewById(R.id.main_image);
-
-        extraText.setText(card.getExtraText());
-        primaryText.setText(card.getTitle());
-
-        // Create a rounded drawable.
-        int resourceId = card.getLocalImageResourceId(getContext());
-        Bitmap bitmap = BitmapFactory
-                .decodeResource(getContext().getResources(), resourceId);
-        RoundedBitmapDrawable drawable = RoundedBitmapDrawableFactory.create(getContext().getResources(), bitmap);
-        drawable.setAntiAlias(true);
-        drawable.setCornerRadius(
-                Math.max(bitmap.getWidth(), bitmap.getHeight()) / 2.0f);
-        imageView.setImageDrawable(drawable);
-    }
-
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/presenters/AbstractCardPresenter.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/presenters/AbstractCardPresenter.java
deleted file mode 100644
index fe7541b..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/presenters/AbstractCardPresenter.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * 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 android.support.v17.leanback.supportleanbackshowcase.cards.presenters;
-
-import android.content.Context;
-import android.support.v17.leanback.supportleanbackshowcase.models.Card;
-import android.support.v17.leanback.widget.BaseCardView;
-import android.support.v17.leanback.widget.Presenter;
-import android.view.ViewGroup;
-
-/**
- * This abstract, generic class will create and manage the
- * ViewHolder and will provide typed Presenter callbacks such that you do not have to perform casts
- * on your own.
- *
- * @param <T> View type for the card.
- */
-public abstract class AbstractCardPresenter<T extends BaseCardView> extends Presenter {
-
-    private static final String TAG = "AbstractCardPresenter";
-    private final Context mContext;
-
-    /**
-     * @param context The current context.
-     */
-    public AbstractCardPresenter(Context context) {
-        mContext = context;
-    }
-
-    public Context getContext() {
-        return mContext;
-    }
-
-    @Override public final ViewHolder onCreateViewHolder(ViewGroup parent) {
-        T cardView = onCreateView();
-        return new ViewHolder(cardView);
-    }
-
-    @Override public final void onBindViewHolder(ViewHolder viewHolder, Object item) {
-        Card card = (Card) item;
-        onBindViewHolder(card, (T) viewHolder.view);
-    }
-
-    @Override public final void onUnbindViewHolder(ViewHolder viewHolder) {
-        onUnbindViewHolder((T) viewHolder.view);
-    }
-
-    public void onUnbindViewHolder(T cardView) {
-        // Nothing to clean up. Override if necessary.
-    }
-
-    /**
-     * Invoked when a new view is created.
-     *
-     * @return Returns the newly created view.
-     */
-    protected abstract T onCreateView();
-
-    /**
-     * Implement this method to update your card's view with the data bound to it.
-     *
-     * @param card The model containing the data for the card.
-     * @param cardView The view the card is bound to.
-     * @see Presenter#onBindViewHolder(Presenter.ViewHolder, Object)
-     */
-    public abstract void onBindViewHolder(Card card, T cardView);
-
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/presenters/CardPresenterSelector.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/presenters/CardPresenterSelector.java
deleted file mode 100644
index d4e8283..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/presenters/CardPresenterSelector.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * 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 android.support.v17.leanback.supportleanbackshowcase.cards.presenters;
-
-import android.content.Context;
-import android.support.v17.leanback.supportleanbackshowcase.R;
-import android.support.v17.leanback.supportleanbackshowcase.models.Card;
-import android.support.v17.leanback.widget.Presenter;
-import android.support.v17.leanback.widget.PresenterSelector;
-
-import java.util.HashMap;
-
-/**
- * This PresenterSelector will decide what Presenter to use depending on a given card's type.
- */
-public class CardPresenterSelector extends PresenterSelector {
-
-    private final Context mContext;
-    private final HashMap<Card.Type, Presenter> presenters = new HashMap<Card.Type, Presenter>();
-
-    public CardPresenterSelector(Context context) {
-        mContext = context;
-    }
-
-    @Override
-    public Presenter getPresenter(Object item) {
-        if (!(item instanceof Card)) throw new RuntimeException(
-                String.format("The PresenterSelector only supports data items of type '%s'",
-                        Card.class.getName()));
-        Card card = (Card) item;
-        Presenter presenter = presenters.get(card.getType());
-        if (presenter == null) {
-            switch (card.getType()) {
-                case SINGLE_LINE:
-                    presenter = new SingleLineCardPresenter(mContext);
-                    break;
-                case MOVIE:
-                case MOVIE_BASE:
-                case MOVIE_COMPLETE:
-                case SQUARE_BIG:
-                case GRID_SQUARE:
-                case GAME: {
-                    int themeResId = R.style.MovieCardSimpleTheme;
-                    if (card.getType() == Card.Type.MOVIE_BASE) {
-                        themeResId = R.style.MovieCardBasicTheme;
-                    } else if (card.getType() == Card.Type.MOVIE_COMPLETE) {
-                        themeResId = R.style.MovieCardCompleteTheme;
-                    } else if (card.getType() == Card.Type.SQUARE_BIG) {
-                        themeResId = R.style.SquareBigCardTheme;
-                    } else if (card.getType() == Card.Type.GRID_SQUARE) {
-                        themeResId = R.style.GridCardTheme;
-                    } else if (card.getType() == Card.Type.GAME) {
-                        themeResId = R.style.GameCardTheme;
-                    }
-                    presenter = new ImageCardViewPresenter(mContext, themeResId);
-                    break;
-                }
-                case SIDE_INFO:
-                    presenter = new SideInfoCardPresenter(mContext);
-                    break;
-                case TEXT:
-                    presenter = new TextCardPresenter(mContext);
-                    break;
-                case ICON:
-                    presenter = new IconCardPresenter(mContext);
-                    break;
-                case CHARACTER:
-                    presenter = new CharacterCardPresenter(mContext);
-                    break;
-                default:
-                    presenter = new ImageCardViewPresenter(mContext);
-                    break;
-            }
-        }
-        presenters.put(card.getType(), presenter);
-        return presenter;
-    }
-
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/presenters/CharacterCardPresenter.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/presenters/CharacterCardPresenter.java
deleted file mode 100644
index 35a42a9..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/presenters/CharacterCardPresenter.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * 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 android.support.v17.leanback.supportleanbackshowcase.cards.presenters;
-
-import android.content.Context;
-import android.support.v17.leanback.supportleanbackshowcase.cards.CharacterCardView;
-import android.support.v17.leanback.supportleanbackshowcase.models.Card;
-
-/**
- * This Presenter is used to display the characters card row in the DetailView examples.
- */
-public class CharacterCardPresenter extends AbstractCardPresenter<CharacterCardView> {
-
-    public CharacterCardPresenter(Context context) {
-        super(context);
-    }
-
-    @Override
-    protected CharacterCardView onCreateView() {
-        return new CharacterCardView(getContext());
-    }
-
-    @Override
-    public void onBindViewHolder(Card card, CharacterCardView cardView) {
-        cardView.updateUi(card);
-    }
-
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/presenters/IconCardPresenter.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/presenters/IconCardPresenter.java
deleted file mode 100644
index c628988..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/presenters/IconCardPresenter.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * 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 android.support.v17.leanback.supportleanbackshowcase.cards.presenters;
-
-import android.animation.ObjectAnimator;
-import android.content.Context;
-import android.graphics.drawable.Drawable;
-import android.support.v17.leanback.supportleanbackshowcase.R;
-import android.support.v17.leanback.widget.ImageCardView;
-import android.view.View;
-import android.widget.ImageView;
-
-/**
- * This Presenter will display cards which consists of a single icon which will be highlighted by a
- * surrounding circle when the card is focused. AndroidTV uses these cards for entering settings
- * menu.
- */
-public class IconCardPresenter extends ImageCardViewPresenter {
-    private static final int ANIMATION_DURATION = 200;
-
-    public IconCardPresenter(Context context) {
-        super(context, R.style.IconCardTheme);
-    }
-
-    @Override
-    protected ImageCardView onCreateView() {
-        final ImageCardView imageCardView = super.onCreateView();
-        final ImageView image = imageCardView.getMainImageView();
-        image.setBackgroundResource(R.drawable.icon_focused);
-        image.getBackground().setAlpha(0);
-        imageCardView.setOnFocusChangeListener(new View.OnFocusChangeListener() {
-            @Override
-            public void onFocusChange(View v, boolean hasFocus) {
-                animateIconBackground(image.getBackground(), hasFocus);
-            }
-        });
-        return imageCardView;
-    }
-
-    private void animateIconBackground(Drawable drawable, boolean hasFocus) {
-        if (hasFocus) {
-            ObjectAnimator.ofInt(drawable, "alpha", 0, 255).setDuration(ANIMATION_DURATION).start();
-        } else {
-            ObjectAnimator.ofInt(drawable, "alpha", 255, 0).setDuration(ANIMATION_DURATION).start();
-        }
-    }
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/presenters/ImageCardViewPresenter.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/presenters/ImageCardViewPresenter.java
deleted file mode 100644
index f0b75f1..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/presenters/ImageCardViewPresenter.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * 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 android.support.v17.leanback.supportleanbackshowcase.cards.presenters;
-
-import android.content.Context;
-import android.support.v17.leanback.supportleanbackshowcase.R;
-import android.support.v17.leanback.supportleanbackshowcase.models.Card;
-import android.support.v17.leanback.widget.ImageCardView;
-import android.view.ContextThemeWrapper;
-
-import android.view.View;
-import android.widget.Toast;
-import com.squareup.picasso.Picasso;
-
-/**
- * A very basic {@link ImageCardView} {@link android.support.v17.leanback.widget.Presenter}.You can
- * pass a custom style for the ImageCardView in the constructor. Use the default constructor to
- * create a Presenter with a default ImageCardView style.
- */
-public class ImageCardViewPresenter extends AbstractCardPresenter<ImageCardView> {
-
-    public ImageCardViewPresenter(Context context, int cardThemeResId) {
-        super(new ContextThemeWrapper(context, cardThemeResId));
-    }
-
-    public ImageCardViewPresenter(Context context) {
-        this(context, R.style.DefaultCardTheme);
-    }
-
-    @Override
-    protected ImageCardView onCreateView() {
-        ImageCardView imageCardView = new ImageCardView(getContext());
-        imageCardView.setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                Toast.makeText(getContext(), "Clicked on ImageCardView", Toast.LENGTH_SHORT).show();
-            }
-        });
-        return imageCardView;
-    }
-
-    @Override
-    public void onBindViewHolder(Card card, final ImageCardView cardView) {
-        cardView.setTag(card);
-        cardView.setTitleText(card.getTitle());
-        cardView.setContentText(card.getDescription());
-        if (card.getLocalImageResourceName() != null) {
-            int resourceId = getContext().getResources()
-                    .getIdentifier(card.getLocalImageResourceName(),
-                            "drawable", getContext().getPackageName());
-            Picasso.with(getContext()).load(resourceId).into(cardView.getMainImageView());
-        }
-    }
-
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/presenters/SideInfoCardPresenter.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/presenters/SideInfoCardPresenter.java
deleted file mode 100644
index b9f44fc..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/presenters/SideInfoCardPresenter.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * 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 android.support.v17.leanback.supportleanbackshowcase.cards.presenters;
-
-import android.content.Context;
-import android.support.v17.leanback.supportleanbackshowcase.R;
-import android.support.v17.leanback.supportleanbackshowcase.models.Card;
-import android.support.v17.leanback.widget.BaseCardView;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.widget.ImageView;
-import android.widget.TextView;
-
-import com.squareup.picasso.Picasso;
-
-/**
- * This Presenter will display a card consisting of an image on the left side of the card followed
- * by text on the right side. The image and text have equal width. The text will work like a info
- * box, thus it will be hidden if the parent row is inactive. This behavior is unique to this card
- * and requires a special focus handler.
- */
-public class SideInfoCardPresenter extends AbstractCardPresenter<BaseCardView> {
-
-    public SideInfoCardPresenter(Context context) {
-        super(context);
-    }
-
-    @Override
-    protected BaseCardView onCreateView() {
-        final BaseCardView cardView = new BaseCardView(getContext(), null,
-                R.style.SideInfoCardStyle);
-        cardView.setFocusable(true);
-        cardView.addView(LayoutInflater.from(getContext()).inflate(R.layout.side_info_card, null));
-        return cardView;
-    }
-
-    @Override
-    public void onBindViewHolder(Card card, BaseCardView cardView) {
-        ImageView imageView = (ImageView) cardView.findViewById(R.id.main_image);
-        if (card.getLocalImageResourceName() != null) {
-            int width = (int) getContext().getResources()
-                    .getDimension(R.dimen.sidetext_image_card_width);
-            int height = (int) getContext().getResources()
-                    .getDimension(R.dimen.sidetext_image_card_height);
-            int resourceId = getContext().getResources()
-                    .getIdentifier(card.getLocalImageResourceName(),
-                            "drawable", getContext().getPackageName());
-            Picasso.with(getContext()).load(resourceId).resize(width, height).centerCrop()
-                    .into(imageView);
-        }
-
-        TextView primaryText = (TextView) cardView.findViewById(R.id.primary_text);
-        primaryText.setText(card.getTitle());
-
-        TextView secondaryText = (TextView) cardView.findViewById(R.id.secondary_text);
-        secondaryText.setText(card.getDescription());
-
-        TextView extraText = (TextView) cardView.findViewById(R.id.extra_text);
-        extraText.setText(card.getExtraText());
-    }
-
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/presenters/SingleLineCardPresenter.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/presenters/SingleLineCardPresenter.java
deleted file mode 100644
index a823993..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/presenters/SingleLineCardPresenter.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * 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 android.support.v17.leanback.supportleanbackshowcase.cards.presenters;
-
-import android.content.Context;
-import android.support.v17.leanback.supportleanbackshowcase.R;
-import android.support.v17.leanback.supportleanbackshowcase.models.Card;
-import android.support.v17.leanback.widget.ImageCardView;
-
-/**
- * This Presenter will display a card which consists of a big image followed by a colored footer.
- * Not only the colored footer is unique to this card, but also it's footer (info) will be visible
- * even when its parent row is inactive.
- */
-public class SingleLineCardPresenter extends ImageCardViewPresenter {
-
-    public SingleLineCardPresenter(Context context) {
-        super(context, R.style.SingleLineCardTheme);
-    }
-
-    @Override public void onBindViewHolder(Card card, ImageCardView cardView) {
-        super.onBindViewHolder(card, cardView);
-        cardView.setInfoAreaBackgroundColor(card.getFooterColor());
-    }
-
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/presenters/TextCardPresenter.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/presenters/TextCardPresenter.java
deleted file mode 100644
index 7e65f0f..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/presenters/TextCardPresenter.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * 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 android.support.v17.leanback.supportleanbackshowcase.cards.presenters;
-
-import android.content.Context;
-import android.support.v17.leanback.supportleanbackshowcase.cards.TextCardView;
-import android.support.v17.leanback.supportleanbackshowcase.models.Card;
-
-/**
- * The Presenter displays a card consisting of text as a replacement for a big image. The footer is
- * also quite unique since it does contain two images rather than one or non.
- */
-public class TextCardPresenter extends AbstractCardPresenter<TextCardView> {
-
-    public TextCardPresenter(Context context) {
-        super(context);
-    }
-
-    @Override
-    protected TextCardView onCreateView() {
-        return new TextCardView(getContext());
-    }
-
-    @Override
-    public void onBindViewHolder(Card card, TextCardView cardView) {
-        cardView.updateUi(card);
-    }
-
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/models/Card.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/models/Card.java
deleted file mode 100644
index ccaaf72..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/models/Card.java
+++ /dev/null
@@ -1,129 +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 android.support.v17.leanback.supportleanbackshowcase.models;
-
-import android.content.Context;
-import android.graphics.Color;
-import android.util.Log;
-
-import com.google.gson.annotations.SerializedName;
-
-import java.net.URI;
-import java.net.URISyntaxException;
-
-/**
- * This is a generic example of a custom data object, containing info we might want to keep with
- * each card on the home screen
- */
-public class Card {
-
-    @SerializedName("title") private String mTitle = "";
-    @SerializedName("description") private String mDescription = "";
-    @SerializedName("extraText") private String mExtraText = "";
-    @SerializedName("imageUrl") private String mImageUrl;
-    @SerializedName("footerColor") private String mFooterColor = null;
-    @SerializedName("selectedColor") private String mSelectedColor = null;
-    @SerializedName("localImageResource") private String mLocalImageResource = null;
-    @SerializedName("footerIconLocalImageResource") private String mFooterResource = null;
-    @SerializedName("type") private Card.Type mType;
-    @SerializedName("id") private int mId;
-    @SerializedName("width") private int mWidth;
-    @SerializedName("height") private int mHeight;
-
-    public String getTitle() {
-        return mTitle;
-    }
-
-    public int getWidth() {
-        return mWidth;
-    }
-
-    public int getHeight() {
-        return mHeight;
-    }
-
-    public int getId() {
-        return mId;
-    }
-
-    public Card.Type getType() {
-        return mType;
-    }
-
-    public String getDescription() {
-        return mDescription;
-    }
-
-    public String getExtraText() {
-        return mExtraText;
-    }
-
-    public int getFooterColor() {
-        if (mFooterColor == null) return -1;
-        return Color.parseColor(mFooterColor);
-    }
-
-    public int getSelectedColor() {
-        if (mSelectedColor == null) return -1;
-        return Color.parseColor(mSelectedColor);
-    }
-
-    public String getImageUrl() {
-        return mImageUrl;
-    }
-
-    public URI getImageURI() {
-        if (getImageUrl() == null) return null;
-        try {
-            return new URI(getImageUrl());
-        } catch (URISyntaxException e) {
-            Log.d("URI exception: ", getImageUrl());
-            return null;
-        }
-    }
-
-    public int getLocalImageResourceId(Context context) {
-        return context.getResources().getIdentifier(getLocalImageResourceName(), "drawable",
-                                                    context.getPackageName());
-    }
-
-    public String getLocalImageResourceName() {
-        return mLocalImageResource;
-    }
-
-    public String getFooterLocalImageResourceName() {
-        return mFooterResource;
-    }
-
-    public enum Type {
-
-        MOVIE_COMPLETE,
-        MOVIE,
-        MOVIE_BASE,
-        ICON,
-        SQUARE_BIG,
-        SINGLE_LINE,
-        GAME,
-        SQUARE_SMALL,
-        DEFAULT,
-        SIDE_INFO,
-        SIDE_INFO_TEST_1,
-        TEXT,
-        CHARACTER,
-        GRID_SQUARE
-
-    }
-
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/models/CardRow.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/models/CardRow.java
deleted file mode 100644
index ffc5001..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/models/CardRow.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * 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 android.support.v17.leanback.supportleanbackshowcase.models;
-
-import com.google.gson.annotations.SerializedName;
-
-import java.util.List;
-
-/**
- * This class represents a row of cards. In a real world application you might want to store more
- * data than in this example.
- */
-public class CardRow {
-
-    // default is a list of cards
-    public static final int TYPE_DEFAULT = 0;
-    // section header
-    public static final int TYPE_SECTION_HEADER = 1;
-    // divider
-    public static final int TYPE_DIVIDER = 2;
-
-    @SerializedName("type") private int mType = TYPE_DEFAULT;
-    // Used to determine whether the row shall use shadows when displaying its cards or not.
-    @SerializedName("shadow") private boolean mShadow = true;
-    @SerializedName("title") private String mTitle;
-    @SerializedName("cards") private List<Card> mCards;
-
-    public int getType() {
-        return mType;
-    }
-
-    public String getTitle() {
-        return mTitle;
-    }
-
-    public boolean useShadow() {
-        return mShadow;
-    }
-
-    public List<Card> getCards() {
-        return mCards;
-    }
-
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/models/DetailedCard.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/models/DetailedCard.java
deleted file mode 100644
index 8727a40..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/models/DetailedCard.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * 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 android.support.v17.leanback.supportleanbackshowcase.models;
-
-import android.content.Context;
-import android.support.v17.leanback.supportleanbackshowcase.models.Card;
-
-import com.google.gson.annotations.SerializedName;
-
-public class DetailedCard {
-
-    @SerializedName("title") private String mTitle = "";
-    @SerializedName("description") private String mDescription = "";
-    @SerializedName("text") private String mText = "";
-    @SerializedName("localImageResource") private String mLocalImageResource = null;
-    @SerializedName("price") private String mPrice = null;
-    @SerializedName("characters") private Card[] mCharacters = null;
-    @SerializedName("recommended") private Card[] mRecommended = null;
-    @SerializedName("year") private int mYear = 0;
-
-
-    public String getPrice() {
-        return mPrice;
-    }
-
-    public int getYear() {
-        return mYear;
-    }
-
-    public String getLocalImageResource() {
-        return mLocalImageResource;
-    }
-
-    public String getText() {
-        return mText;
-    }
-
-    public String getDescription() {
-        return mDescription;
-    }
-
-    public String getTitle() {
-        return mTitle;
-    }
-
-    public Card[] getCharacters() {
-        return mCharacters;
-    }
-
-    public Card[] getRecommended() {
-        return mRecommended;
-    }
-
-    public int getLocalImageResourceId(Context context) {
-        return context.getResources()
-                      .getIdentifier(getLocalImageResource(), "drawable", context.getPackageName());
-    }
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/models/Movie.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/models/Movie.java
deleted file mode 100644
index 83912b3..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/models/Movie.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * 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 android.support.v17.leanback.supportleanbackshowcase.models;
-
-import com.google.gson.annotations.SerializedName;
-
-import java.io.Serializable;
-
-public class Movie implements Serializable {
-
-    private static final long serialVersionUID = 133742L;
-
-    @SerializedName("title")
-    private String mTitle = "";
-    @SerializedName("price_hd")
-    private String mPriceHd = "n/a";
-    @SerializedName("price_sd")
-    private String mPriceSd = "n/a";
-    @SerializedName("breadcrump")
-    private String mBreadcrump = "";
-
-    public String getTitle() {
-        return mTitle;
-    }
-
-    public String getBreadcrump() {
-        return mBreadcrump;
-    }
-
-    public String getPriceHd() {
-        return mPriceHd;
-    }
-
-    public String getPriceSd() {
-        return mPriceSd;
-    }
-
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/models/Song.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/models/Song.java
deleted file mode 100644
index 1ba29ca..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/models/Song.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * 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 android.support.v17.leanback.supportleanbackshowcase.models;
-
-import android.content.Context;
-import android.graphics.drawable.Drawable;
-import android.support.v17.leanback.supportleanbackshowcase.R;
-import android.support.v17.leanback.widget.BaseOnItemViewSelectedListener;
-import android.support.v17.leanback.widget.MultiActionsProvider;
-import android.support.v17.leanback.widget.Row;
-import android.support.v17.leanback.widget.RowPresenter;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.TextView;
-
-import com.google.gson.Gson;
-import com.google.gson.annotations.SerializedName;
-
-public class Song implements MultiActionsProvider {
-
-    @SerializedName("title") private String mTitle = "";
-    @SerializedName("description") private String mDescription = "";
-    @SerializedName("text") private String mText = "";
-    @SerializedName("image") private String mImage = null;
-    @SerializedName("file") private String mFile = null;
-    @SerializedName("duration") private String mDuration = null;
-    @SerializedName("number") private int mNumber = 0;
-    @SerializedName("favorite") private boolean mFavorite = false;
-
-    private MultiAction[] mMediaRowActions;
-
-
-    public void setMediaRowActions(MultiAction[] mediaRowActions) {
-        mMediaRowActions = mediaRowActions;
-    }
-
-    public MultiAction[] getMediaRowActions() {
-        return mMediaRowActions;
-    }
-
-    public String getDuration() {
-        return mDuration;
-    }
-
-    public void setDuration(String duration) {
-        mDuration = duration;
-    }
-
-    public int getNumber() {
-        return mNumber;
-    }
-
-    public String getText() {
-        return mText;
-    }
-
-    public String getDescription() {
-        return mDescription;
-    }
-
-    public void setDescription(String description) {
-        mDescription = description;
-    }
-
-    public String getTitle() {
-        return mTitle;
-    }
-
-    public void setTitle(String title) {
-        mTitle = title;
-    }
-
-    public boolean isFavorite() {
-        return mFavorite;
-    }
-
-    public void setFavorite(boolean favorite) {
-        mFavorite = favorite;
-    }
-
-    public int getFileResource(Context context) {
-        return context.getResources()
-                      .getIdentifier(mFile, "raw", context.getPackageName());
-    }
-
-    public int getImageResource(Context context) {
-        return context.getResources()
-                      .getIdentifier(mImage, "drawable", context.getPackageName());
-    }
-
-    @Override
-    public MultiAction[] getActions() {
-        return mMediaRowActions;
-    }
-
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/models/SongList.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/models/SongList.java
deleted file mode 100644
index 034ae19..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/models/SongList.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * 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 android.support.v17.leanback.supportleanbackshowcase.models;
-
-import com.google.gson.annotations.SerializedName;
-
-import java.util.List;
-
-/**
- */
-public class SongList {
-
-    @SerializedName("songs") private List<Song> mSongs;
-
-    public List<Song> getSongs() {
-        return mSongs;
-    }
-
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/utils/CardListRow.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/utils/CardListRow.java
deleted file mode 100644
index 19f2437..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/utils/CardListRow.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * 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 android.support.v17.leanback.supportleanbackshowcase.utils;
-
-import android.support.v17.leanback.supportleanbackshowcase.app.details.ShadowRowPresenterSelector;
-import android.support.v17.leanback.supportleanbackshowcase.models.CardRow;
-import android.support.v17.leanback.widget.HeaderItem;
-import android.support.v17.leanback.widget.ListRow;
-import android.support.v17.leanback.widget.ObjectAdapter;
-
-/**
- * The {@link CardListRow} allows the {@link ShadowRowPresenterSelector} to access the {@link CardRow}
- * held by the row and determine whether to use a {@link android.support.v17.leanback.widget.Presenter}
- * with or without a shadow.
- */
-public class CardListRow extends ListRow {
-
-    private CardRow mCardRow;
-
-    public CardListRow(HeaderItem header, ObjectAdapter adapter, CardRow cardRow) {
-        super(header, adapter);
-        setCardRow(cardRow);
-    }
-
-    public CardRow getCardRow() {
-        return mCardRow;
-    }
-
-    public void setCardRow(CardRow cardRow) {
-        this.mCardRow = cardRow;
-    }
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/utils/Constants.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/utils/Constants.java
deleted file mode 100644
index 1c9dd9c..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/utils/Constants.java
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * 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 android.support.v17.leanback.supportleanbackshowcase.utils;
-
-public class Constants {
-
-    public static final boolean LOCAL_LOGD = true;
-
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/utils/PicassoBackgroundManagerTarget.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/utils/PicassoBackgroundManagerTarget.java
deleted file mode 100644
index 2723d0b..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/utils/PicassoBackgroundManagerTarget.java
+++ /dev/null
@@ -1,61 +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 android.support.v17.leanback.supportleanbackshowcase.utils;
-
-import android.graphics.Bitmap;
-import android.graphics.drawable.Drawable;
-import android.support.v17.leanback.app.BackgroundManager;
-
-import com.squareup.picasso.Picasso;
-import com.squareup.picasso.Target;
-
-/**
- * Picasso target for updating default_background images
- */
-public class PicassoBackgroundManagerTarget implements Target {
-
-    private BackgroundManager mBackgroundManager;
-
-    public PicassoBackgroundManagerTarget(BackgroundManager backgroundManager) {
-        this.mBackgroundManager = backgroundManager;
-    }
-
-    @Override public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom loadedFrom) {
-        this.mBackgroundManager.setBitmap(bitmap);
-    }
-
-    @Override public void onBitmapFailed(Drawable drawable) {
-        this.mBackgroundManager.setDrawable(drawable);
-    }
-
-    @Override public void onPrepareLoad(Drawable drawable) {
-        // Do nothing, default_background manager has its own transitions
-    }
-
-    @Override public boolean equals(Object o) {
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
-
-        PicassoBackgroundManagerTarget that = (PicassoBackgroundManagerTarget) o;
-
-        if (!mBackgroundManager.equals(that.mBackgroundManager)) return false;
-
-        return true;
-    }
-
-    @Override public int hashCode() {
-        return mBackgroundManager.hashCode();
-    }
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/utils/ResourceCache.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/utils/ResourceCache.java
deleted file mode 100644
index 09a1965..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/utils/ResourceCache.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * 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 android.support.v17.leanback.supportleanbackshowcase.utils;
-
-import android.util.SparseArray;
-import android.view.View;
-
-/**
- * ResourceCache allows retrieving children from a given view and caches the resulting views in
- * order to prevent future lookups.
- */
-public class ResourceCache {
-
-    private final SparseArray<View> mCachedViews = new SparseArray<View>();
-
-    public <ViewType extends View> ViewType getViewById(View view, int resId) {
-        View child = mCachedViews.get(resId, null);
-        if (child == null) {
-            child = view.findViewById(resId);
-            mCachedViews.put(resId, child);
-        }
-        return (ViewType) child;
-    }
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/utils/Utils.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/utils/Utils.java
deleted file mode 100644
index 4416cbe..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/utils/Utils.java
+++ /dev/null
@@ -1,58 +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 android.support.v17.leanback.supportleanbackshowcase.utils;
-
-import android.content.ContentResolver;
-import android.content.Context;
-import android.net.Uri;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-/**
- * A collection of utility methods, all static.
- */
-public class Utils {
-
-    public static int convertDpToPixel(Context ctx, int dp) {
-        float density = ctx.getResources().getDisplayMetrics().density;
-        return Math.round((float) dp * density);
-    }
-
-    /**
-     * Will read the content from a given {@link InputStream} and return it as a {@link String}.
-     *
-     * @param inputStream The {@link InputStream} which should be read.
-     * @return Returns <code>null</code> if the the {@link InputStream} could not be read. Else
-     * returns the content of the {@link InputStream} as {@link String}.
-     */
-    public static String inputStreamToString(InputStream inputStream) {
-        try {
-            byte[] bytes = new byte[inputStream.available()];
-            inputStream.read(bytes, 0, bytes.length);
-            String json = new String(bytes);
-            return json;
-        } catch (IOException e) {
-            return null;
-        }
-    }
-
-    public static Uri getResourceUri(Context context, int resID) {
-        return Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://" +
-                                 context.getResources().getResourcePackageName(resID) + '/' +
-                                 context.getResources().getResourceTypeName(resID) + '/' +
-                                 context.getResources().getResourceEntryName(resID));
-    }
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-v21/song_row_background_focused.xml b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-v21/song_row_background_focused.xml
deleted file mode 100644
index 34e2bd7..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-v21/song_row_background_focused.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
-
-    <item>
-        <color android:color="#384248"></color>
-    </item>
-    <item>
-        <ripple xmlns:android="http://schemas.android.com/apk/res/android"
-                android:color="?android:attr/colorControlHighlight">
-            <item android:id="@android:id/mask">
-                <shape android:shape="rectangle">
-                    <corners android:radius="2dp"/>
-                    <solid android:color="#FFFFFF"/>
-                </shape>
-            </item>
-
-        </ripple>
-    </item>
-
-</layer-list>
\ No newline at end of file
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/background_canyon.jpg b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/background_canyon.jpg
deleted file mode 100644
index 0f77261..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/background_canyon.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/background_food.jpg b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/background_food.jpg
deleted file mode 100644
index cbe05f8..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/background_food.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/background_sax.jpg b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/background_sax.jpg
deleted file mode 100644
index 20fec8c..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/background_sax.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_dummy_16_9_l.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_dummy_16_9_l.png
deleted file mode 100644
index 6088150..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_dummy_16_9_l.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_movie_01.jpg b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_movie_01.jpg
deleted file mode 100644
index df42850..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_movie_01.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_movie_02.jpg b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_movie_02.jpg
deleted file mode 100644
index f633b04..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_movie_02.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_movie_03.jpg b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_movie_03.jpg
deleted file mode 100644
index 52a6b01..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_movie_03.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_movie_04.jpg b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_movie_04.jpg
deleted file mode 100644
index 428e6bf..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_movie_04.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_movie_05.jpg b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_movie_05.jpg
deleted file mode 100644
index a816fe8..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_movie_05.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_movie_06.jpg b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_movie_06.jpg
deleted file mode 100644
index 8746fd9..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_movie_06.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_movie_07.jpg b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_movie_07.jpg
deleted file mode 100644
index 770f22e..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_movie_07.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_movie_08.jpg b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_movie_08.jpg
deleted file mode 100644
index cf83f9f..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_movie_08.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_movie_09.jpg b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_movie_09.jpg
deleted file mode 100644
index 2622893..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_movie_09.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_music_01.jpg b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_music_01.jpg
deleted file mode 100644
index d604a50..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_music_01.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_music_02.jpg b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_music_02.jpg
deleted file mode 100644
index cdcee88..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_music_02.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_music_03.jpg b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_music_03.jpg
deleted file mode 100644
index 229f0c4..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_music_03.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_music_04.jpg b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_music_04.jpg
deleted file mode 100644
index b7bbe9c..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_music_04.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_music_05.jpg b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_music_05.jpg
deleted file mode 100644
index bfa1389..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_music_05.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_music_06.jpg b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_music_06.jpg
deleted file mode 100644
index 033d60e..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_music_06.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_music_07.jpg b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_music_07.jpg
deleted file mode 100644
index 784d0e9..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_music_07.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_music_08.jpg b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_music_08.jpg
deleted file mode 100644
index 040e222..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_music_08.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_music_09.jpg b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_music_09.jpg
deleted file mode 100644
index 2a9f136..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/card_image_music_09.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/category_action.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/category_action.png
deleted file mode 100755
index f3cb7af..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/category_action.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/category_animation.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/category_animation.png
deleted file mode 100755
index a1d9f40..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/category_animation.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/category_classics.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/category_classics.png
deleted file mode 100755
index 17c1580..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/category_classics.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/category_comedy.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/category_comedy.png
deleted file mode 100755
index 5a23e6e..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/category_comedy.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/category_crime.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/category_crime.png
deleted file mode 100755
index 52450a6..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/category_crime.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/category_documentary.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/category_documentary.png
deleted file mode 100755
index afb2b61..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/category_documentary.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/category_drama.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/category_drama.png
deleted file mode 100755
index 79e1b57..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/category_drama.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/coffee_and_tea_01.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/coffee_and_tea_01.png
deleted file mode 100755
index 9fb73f7..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/coffee_and_tea_01.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/coffee_and_tea_02.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/coffee_and_tea_02.png
deleted file mode 100755
index 9e0abfe..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/coffee_and_tea_02.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/coffee_and_tea_03.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/coffee_and_tea_03.png
deleted file mode 100755
index cd78b71..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/coffee_and_tea_03.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/coffee_and_tea_04.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/coffee_and_tea_04.png
deleted file mode 100755
index bf7561c..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/coffee_and_tea_04.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/coffee_and_tea_05.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/coffee_and_tea_05.png
deleted file mode 100755
index eae5338..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/coffee_and_tea_05.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/coffee_and_tea_06.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/coffee_and_tea_06.png
deleted file mode 100755
index b1feda0..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/coffee_and_tea_06.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/coffee_and_tea_07.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/coffee_and_tea_07.png
deleted file mode 100755
index 0f7dd21..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/coffee_and_tea_07.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/coffee_and_tea_08.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/coffee_and_tea_08.png
deleted file mode 100755
index b904137..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/coffee_and_tea_08.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/food_01.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/food_01.png
deleted file mode 100755
index b4757a8..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/food_01.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/food_02.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/food_02.png
deleted file mode 100755
index 0d746d3..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/food_02.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/food_03.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/food_03.png
deleted file mode 100755
index ddde1ef..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/food_03.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/food_04.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/food_04.png
deleted file mode 100755
index ca09156..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/food_04.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/food_05.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/food_05.png
deleted file mode 100755
index 8c4d7e6..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/food_05.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/food_06.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/food_06.png
deleted file mode 100755
index d81ad8c..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/food_06.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/food_07.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/food_07.png
deleted file mode 100755
index a0f381d..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/food_07.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/food_08.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/food_08.png
deleted file mode 100755
index c377d27..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/food_08.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/food_09.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/food_09.png
deleted file mode 100755
index de5a207..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/food_09.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/food_10.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/food_10.png
deleted file mode 100755
index 958f47e..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/food_10.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/food_11.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/food_11.png
deleted file mode 100755
index 36a8007..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/food_11.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/food_12.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/food_12.png
deleted file mode 100755
index 4d60e8e..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/food_12.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/food_13.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/food_13.png
deleted file mode 100755
index b4a8837..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/food_13.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/food_14.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/food_14.png
deleted file mode 100755
index ae3d40b..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/food_14.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/game_crazy_one.jpg b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/game_crazy_one.jpg
deleted file mode 100644
index 9bb47c1..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/game_crazy_one.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/game_cursed.jpg b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/game_cursed.jpg
deleted file mode 100644
index 7d4b45a..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/game_cursed.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/game_fairy.jpg b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/game_fairy.jpg
deleted file mode 100644
index c1658e9..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/game_fairy.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/game_hear_the_roar.jpg b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/game_hear_the_roar.jpg
deleted file mode 100644
index 78003b2..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/game_hear_the_roar.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/game_silence.jpg b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/game_silence.jpg
deleted file mode 100644
index 1672536..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/game_silence.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/ic_cc.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/ic_cc.png
deleted file mode 100644
index 4615394..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/ic_cc.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/ic_installed.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/ic_installed.png
deleted file mode 100644
index 190f6ba..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/ic_installed.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/ic_settings_apps.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/ic_settings_apps.png
deleted file mode 100755
index ed92603..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/ic_settings_apps.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/ic_settings_more.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/ic_settings_more.png
deleted file mode 100755
index 5307576..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/ic_settings_more.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/ic_settings_parental_control.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/ic_settings_parental_control.png
deleted file mode 100755
index d541c6a..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/ic_settings_parental_control.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/ic_settings_settings.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/ic_settings_settings.png
deleted file mode 100755
index f2eaa45..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/ic_settings_settings.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/ic_settings_time.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/ic_settings_time.png
deleted file mode 100755
index 72899ae..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/ic_settings_time.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/ic_settings_wifi_3_bar.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/ic_settings_wifi_3_bar.png
deleted file mode 100755
index f9abb6c..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/ic_settings_wifi_3_bar.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/ic_settings_wifi_4_bar.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/ic_settings_wifi_4_bar.png
deleted file mode 100755
index dcd2088..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/ic_settings_wifi_4_bar.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/ic_star_off.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/ic_star_off.png
deleted file mode 100644
index cbee75a..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/ic_star_off.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/ic_star_on_yellow.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/ic_star_on_yellow.png
deleted file mode 100644
index 28cd07a..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/ic_star_on_yellow.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/movie_poster_01.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/movie_poster_01.png
deleted file mode 100644
index e09af32..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/movie_poster_01.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/stars_red.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/stars_red.png
deleted file mode 100644
index e4c6056..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/stars_red.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/stars_white.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/stars_white.png
deleted file mode 100644
index 83e7c8b..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/stars_white.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/thumbnail_example_browse.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/thumbnail_example_browse.png
deleted file mode 100755
index 374f357..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/thumbnail_example_browse.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/thumbnail_example_cards.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/thumbnail_example_cards.png
deleted file mode 100755
index 1ddadfa..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/thumbnail_example_cards.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/thumbnail_example_custom_01.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/thumbnail_example_custom_01.png
deleted file mode 100755
index f73b9b7..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/thumbnail_example_custom_01.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/thumbnail_example_detail.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/thumbnail_example_detail.png
deleted file mode 100755
index aa881b8..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/thumbnail_example_detail.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/thumbnail_example_dialog.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/thumbnail_example_dialog.png
deleted file mode 100755
index 6508d08..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/thumbnail_example_dialog.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/thumbnail_example_grid.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/thumbnail_example_grid.png
deleted file mode 100755
index 686566f..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/thumbnail_example_grid.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/thumbnail_example_music_consumption.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/thumbnail_example_music_consumption.png
deleted file mode 100755
index ffc653d..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/thumbnail_example_music_consumption.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/thumbnail_example_settings.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/thumbnail_example_settings.png
deleted file mode 100755
index 8337b92..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/thumbnail_example_settings.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/thumbnail_example_video_consumption.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/thumbnail_example_video_consumption.png
deleted file mode 100755
index a0a9d95..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/thumbnail_example_video_consumption.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/thumbnail_example_wizard.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/thumbnail_example_wizard.png
deleted file mode 100755
index 4338d30..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/thumbnail_example_wizard.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/title_android_tv.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/title_android_tv.png
deleted file mode 100644
index 8d1e241..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable-xhdpi/title_android_tv.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/app_icon_your_company.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable/app_icon_your_company.png
deleted file mode 100644
index 0a47b01..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/app_icon_your_company.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/bg_living_room.jpg b/samples/SupportLeanbackShowcase/app/src/main/res/drawable/bg_living_room.jpg
deleted file mode 100644
index 47e8851..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/bg_living_room.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/bg_living_room_wide.jpg b/samples/SupportLeanbackShowcase/app/src/main/res/drawable/bg_living_room_wide.jpg
deleted file mode 100644
index 156d55c..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/bg_living_room_wide.jpg
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/character_focused.xml b/samples/SupportLeanbackShowcase/app/src/main/res/drawable/character_focused.xml
deleted file mode 100644
index 5c2570d..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/character_focused.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<shape
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:shape="oval">
-    <padding
-        android:bottom="4dp"
-        android:left="4dp"
-        android:right="4dp"
-        android:top="4dp"></padding>
-    <solid android:color="#FFEEEEEE"></solid>
-</shape>
\ No newline at end of file
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/character_not_focused.xml b/samples/SupportLeanbackShowcase/app/src/main/res/drawable/character_not_focused.xml
deleted file mode 100644
index db4cf9c..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/character_not_focused.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<shape
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:shape="oval">
-    <padding
-        android:bottom="4dp"
-        android:left="4dp"
-        android:right="4dp"
-        android:top="4dp"></padding>
-    <solid android:color="#FFCCCCCC"></solid>
-</shape>
\ No newline at end of file
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/character_not_focused_padding.xml b/samples/SupportLeanbackShowcase/app/src/main/res/drawable/character_not_focused_padding.xml
deleted file mode 100644
index 8da3812..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/character_not_focused_padding.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<shape
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:shape="oval">
-    <padding
-        android:bottom="4dp"
-        android:left="4dp"
-        android:right="4dp"
-        android:top="4dp"></padding>
-    <solid android:color="#00CCCCCC"></solid>
-</shape>
\ No newline at end of file
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/default_background.xml b/samples/SupportLeanbackShowcase/app/src/main/res/drawable/default_background.xml
deleted file mode 100644
index d9fa80b..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/default_background.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<shape xmlns:android="http://schemas.android.com/apk/res/android"
-       android:shape="rectangle">
-    <gradient
-        android:angle="-270"
-        android:endColor="@color/background_gradient_end"
-        android:startColor="@color/background_gradient_start"/>
-</shape>
\ No newline at end of file
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/face_01.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable/face_01.png
deleted file mode 100755
index d5b2900..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/face_01.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/face_02.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable/face_02.png
deleted file mode 100755
index ced0a7c..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/face_02.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/face_03.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable/face_03.png
deleted file mode 100755
index 276cacf..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/face_03.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/face_04.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable/face_04.png
deleted file mode 100755
index e90487d..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/face_04.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/face_05.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable/face_05.png
deleted file mode 100755
index f048ecb..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/face_05.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/face_06.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable/face_06.png
deleted file mode 100755
index f4d15eb..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/face_06.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/face_07.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable/face_07.png
deleted file mode 100755
index 7ac0af3..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/face_07.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/face_08.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable/face_08.png
deleted file mode 100755
index e6fc51e..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/face_08.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/ic_favorite_border_white_24dp.xml b/samples/SupportLeanbackShowcase/app/src/main/res/drawable/ic_favorite_border_white_24dp.xml
deleted file mode 100644
index 03e16ad..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/ic_favorite_border_white_24dp.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-        android:width="24dp"
-        android:height="24dp"
-        android:viewportWidth="24.0"
-        android:viewportHeight="24.0">
-    <path
-        android:pathData="M16.5,3c-1.74,0 -3.41,0.81 -4.5,2.09C10.91,3.81 9.24,3 7.5,3 4.42,3 2,5.42 2,8.5c0,3.78 3.4,6.86 8.55,11.54L12,21.35l1.45,-1.32C18.6,15.36 22,12.28 22,8.5 22,5.42 19.58,3 16.5,3zM12.1,18.55l-0.1,0.1 -0.1,-0.1C7.14,14.24 4,11.39 4,8.5 4,6.5 5.5,5 7.5,5c1.54,0 3.04,0.99 3.57,2.36h1.87C13.46,5.99 14.96,5 16.5,5c2,0 3.5,1.5 3.5,3.5 0,2.89 -3.14,5.74 -7.9,10.05z"
-        android:fillColor="#FFFFFF"/>
-</vector>
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/ic_favorite_filled_24dp.xml b/samples/SupportLeanbackShowcase/app/src/main/res/drawable/ic_favorite_filled_24dp.xml
deleted file mode 100644
index bce1999..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/ic_favorite_filled_24dp.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-        android:width="24dp"
-        android:height="24dp"
-        android:viewportWidth="24.0"
-        android:viewportHeight="24.0">
-    <path
-        android:pathData="M12,21.35l-1.45,-1.32C5.4,15.36 2,12.28 2,8.5 2,5.42 4.42,3 7.5,3c1.74,0 3.41,0.81 4.5,2.09C13.09,3.81 14.76,3 16.5,3 19.58,3 22,5.42 22,8.5c0,3.78 -3.4,6.86 -8.55,11.54L12,21.35z"
-        android:fillColor="@color/song_row_favorite_color"/>
-</vector>
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/ic_playlist_add_filled_24dp.xml b/samples/SupportLeanbackShowcase/app/src/main/res/drawable/ic_playlist_add_filled_24dp.xml
deleted file mode 100644
index ac5d3f3..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/ic_playlist_add_filled_24dp.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-        android:width="24dp"
-        android:height="24dp"
-        android:viewportWidth="24.0"
-        android:viewportHeight="24.0">
-    <path
-        android:pathData="M14,10L2,10v2h12v-2zM14,6L2,6v2h12L14,6zM18,14v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zM2,16h8v-2L2,14v2z"
-        android:fillColor="@color/song_row_favorite_color"/>
-</vector>
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/ic_playlist_add_white_24dp.xml b/samples/SupportLeanbackShowcase/app/src/main/res/drawable/ic_playlist_add_white_24dp.xml
deleted file mode 100644
index 4147e81..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/ic_playlist_add_white_24dp.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-        android:width="24dp"
-        android:height="24dp"
-        android:viewportWidth="24.0"
-        android:viewportHeight="24.0">
-    <path
-        android:pathData="M14,10L2,10v2h12v-2zM14,6L2,6v2h12L14,6zM18,14v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zM2,16h8v-2L2,14v2z"
-        android:fillColor="#FFFFFF"/>
-</vector>
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/icon_01.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable/icon_01.png
deleted file mode 100644
index 6fdb583..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/icon_01.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/icon_02.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable/icon_02.png
deleted file mode 100644
index 8728c6f..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/icon_02.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/icon_03.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable/icon_03.png
deleted file mode 100644
index 2364de9..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/icon_03.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/icon_04.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable/icon_04.png
deleted file mode 100644
index 9c4fa52..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/icon_04.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/icon_05.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable/icon_05.png
deleted file mode 100644
index c56828c..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/icon_05.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/icon_06.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable/icon_06.png
deleted file mode 100644
index b9f34f4..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/icon_06.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/icon_07.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable/icon_07.png
deleted file mode 100644
index 76ea4f6..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/icon_07.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/icon_08.png b/samples/SupportLeanbackShowcase/app/src/main/res/drawable/icon_08.png
deleted file mode 100644
index 4b1ddb9..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/icon_08.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/icon_focused.xml b/samples/SupportLeanbackShowcase/app/src/main/res/drawable/icon_focused.xml
deleted file mode 100644
index bab1cc6..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/icon_focused.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<shape xmlns:android="http://schemas.android.com/apk/res/android"
-       android:shape="oval">
-    <solid android:color="#4DEEEEEE"></solid>
-    <size
-        android:width="96dp"
-        android:height="96dp"/>
-</shape>
\ No newline at end of file
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/overlay_black.xml b/samples/SupportLeanbackShowcase/app/src/main/res/drawable/overlay_black.xml
deleted file mode 100644
index 9fccc24..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/overlay_black.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<shape xmlns:android="http://schemas.android.com/apk/res/android">
-    <solid android:color="#E6000000"></solid>
-</shape>
\ No newline at end of file
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/song_row_background.xml b/samples/SupportLeanbackShowcase/app/src/main/res/drawable/song_row_background.xml
deleted file mode 100644
index 0329874..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/song_row_background.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:drawable="@drawable/song_row_background_focused" android:state_focused="true"></item>
-    <item>
-        <color android:color="#384248"></color>
-    </item>
-</selector>
\ No newline at end of file
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/song_row_background_focused.xml b/samples/SupportLeanbackShowcase/app/src/main/res/drawable/song_row_background_focused.xml
deleted file mode 100644
index 152e7e6..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/song_row_background_focused.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.
--->
-<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
-    <item>
-        <color android:color="#384248"></color>
-    </item>
-    <item>
-        <color android:color="#1AFFFFFF"></color>
-    </item>
-</layer-list>
\ No newline at end of file
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/wizard_background_blackned.xml b/samples/SupportLeanbackShowcase/app/src/main/res/drawable/wizard_background_blackned.xml
deleted file mode 100644
index bea8d66..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/wizard_background_blackned.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
-     <item android:drawable="@drawable/background_canyon"></item>
-     <item android:drawable="@drawable/overlay_black"></item>
-</layer-list>
\ No newline at end of file
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/wizard_important_action_item_background.xml b/samples/SupportLeanbackShowcase/app/src/main/res/drawable/wizard_important_action_item_background.xml
deleted file mode 100644
index b4fd39e..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/wizard_important_action_item_background.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:drawable="@drawable/wizard_important_action_item_background_focused" android:state_focused="true"></item>
-    <item android:drawable="@drawable/wizard_important_action_item_background_not_focused"></item>
-</selector>
\ No newline at end of file
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/wizard_important_action_item_background_focused.xml b/samples/SupportLeanbackShowcase/app/src/main/res/drawable/wizard_important_action_item_background_focused.xml
deleted file mode 100644
index d6a1023..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/wizard_important_action_item_background_focused.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<shape
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:shape="rectangle">
-    <solid android:color="#FFFFFF"></solid>
-</shape>
\ No newline at end of file
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/wizard_important_action_item_background_not_focused.xml b/samples/SupportLeanbackShowcase/app/src/main/res/drawable/wizard_important_action_item_background_not_focused.xml
deleted file mode 100644
index 74cccd0..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/drawable/wizard_important_action_item_background_not_focused.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<shape
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:shape="rectangle">
-    <solid android:color="#B2FFFFFF"></solid>
-</shape>
\ No newline at end of file
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/layout/activity_cards_example.xml b/samples/SupportLeanbackShowcase/app/src/main/res/layout/activity_cards_example.xml
deleted file mode 100644
index 45b5505..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/layout/activity_cards_example.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
-                android:layout_width="match_parent"
-                android:layout_height="match_parent">
-
-    <fragment
-        android:id="@+id/cardsFragment"
-        android:name="android.support.v17.leanback.supportleanbackshowcase.app.cards.CardExampleFragment"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"></fragment>
-</RelativeLayout>
\ No newline at end of file
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/layout/activity_detail_example.xml b/samples/SupportLeanbackShowcase/app/src/main/res/layout/activity_detail_example.xml
deleted file mode 100644
index 1dd92d8..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/layout/activity_detail_example.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
-                android:layout_width="match_parent"
-                android:layout_height="match_parent">
-    <fragment
-        android:id="@+id/detailsFragment"
-        android:name="android.support.v17.leanback.supportleanbackshowcase.app.details.DetailViewExampleFragment"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"></fragment>
-</RelativeLayout>
\ No newline at end of file
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/layout/activity_grid_example.xml b/samples/SupportLeanbackShowcase/app/src/main/res/layout/activity_grid_example.xml
deleted file mode 100644
index f3fcdea..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/layout/activity_grid_example.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
-                android:layout_width="match_parent"
-                android:layout_height="match_parent">
-
-    <fragment
-        android:id="@+id/cardsFragment"
-        android:name="android.support.v17.leanback.supportleanbackshowcase.app.grid.GridExampleFragment"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"></fragment>
-</RelativeLayout>
\ No newline at end of file
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/layout/activity_main.xml b/samples/SupportLeanbackShowcase/app/src/main/res/layout/activity_main.xml
deleted file mode 100644
index 9d2eda6..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/layout/activity_main.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<RelativeLayout
-    android:id="@+id/fragmentContainer"
-    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:deviceIds="tv"
-    tools:ignore="MergeRootFrame">
-</RelativeLayout>
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/layout/activity_music_example.xml b/samples/SupportLeanbackShowcase/app/src/main/res/layout/activity_music_example.xml
deleted file mode 100644
index 9eef61a..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/layout/activity_music_example.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
-                android:layout_width="match_parent"
-                android:layout_height="match_parent">
-
-    <fragment
-        android:id="@+id/musicFragment"
-        android:name="android.support.v17.leanback.supportleanbackshowcase.app.media.MusicConsumptionExampleFragment"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"></fragment>
-</RelativeLayout>
\ No newline at end of file
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/layout/activity_settings_example.xml b/samples/SupportLeanbackShowcase/app/src/main/res/layout/activity_settings_example.xml
deleted file mode 100644
index c6c81a3..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/layout/activity_settings_example.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
-                android:layout_width="match_parent"
-                android:layout_height="match_parent">
-    <fragment
-        android:id="@+id/settingsFragment"
-        android:name="android.support.v17.leanback.supportleanbackshowcase.app.settings.SettingsExampleFragment"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"></fragment>
-</RelativeLayout>
\ No newline at end of file
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/layout/activity_video_example.xml b/samples/SupportLeanbackShowcase/app/src/main/res/layout/activity_video_example.xml
deleted file mode 100644
index 45b12b5..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/layout/activity_video_example.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
-                android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                android:id="@+id/videoFragment">
-
-</RelativeLayout>
\ No newline at end of file
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/layout/character_card.xml b/samples/SupportLeanbackShowcase/app/src/main/res/layout/character_card.xml
deleted file mode 100644
index dee09a8..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/layout/character_card.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
-             xmlns:lb="http://schemas.android.com/apk/res-auto"
-             android:layout_width="match_parent"
-             android:layout_height="match_parent"
-             lb:cardBackground="@null"
-             lb:layout_viewType="main">
-
-    <LinearLayout
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:orientation="vertical">
-
-        <FrameLayout
-            android:id="@+id/container"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:background="@drawable/character_not_focused_padding">
-
-            <ImageView
-                android:id="@+id/main_image"
-                android:layout_width="@dimen/character_image_card_width"
-                android:layout_height="@dimen/character_image_card_height"
-                android:background="@drawable/character_not_focused"
-                android:src="@drawable/face_08"/>
-        </FrameLayout>
-
-        <TextView
-            android:id="@+id/primary_text"
-            style="@style/Widget.Leanback.ImageCardView.TitleStyle"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginTop="7dp"
-            android:fontFamily="sans-serif-condensed"
-            android:gravity="center"/>
-    </LinearLayout>
-</FrameLayout>
\ No newline at end of file
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/layout/custom_titleview.xml b/samples/SupportLeanbackShowcase/app/src/main/res/layout/custom_titleview.xml
deleted file mode 100644
index f3ac0df..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/layout/custom_titleview.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<merge xmlns:android="http://schemas.android.com/apk/res/android"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content">
-
-    <!--<android.support.v17.leanback.widget.SearchOrbView-->
-        <!--android:id="@+id/search_orb"-->
-        <!--android:layout_height="wrap_content"-->
-        <!--android:layout_width="wrap_content"-->
-        <!--android:transitionGroup="true"-->
-        <!--android:layout_gravity="center_vertical|start"-->
-        <!--android:layout_marginStart="56dp" />-->
-
-    <AnalogClock
-            android:id="@+id/clock"
-            android:layout_width="80dp"
-            android:layout_height="80dp"
-            android:padding="6dp"
-            android:layout_alignParentEnd="true"
-            android:layout_centerVertical="true"
-            android:layout_marginEnd="24dp" />
-
-    <ImageView
-            android:id="@+id/title_badge_iv"
-            android:layout_width="wrap_content"
-            android:layout_height="224dp"
-            android:adjustViewBounds="true"
-            android:layout_gravity="center_vertical|end"
-            android:layout_toStartOf="@id/clock"
-            android:src="@null"
-            android:layout_centerVertical="true"
-            android:visibility="gone" />
-
-    <TextView
-            android:id="@+id/title_tv"
-            android:textAppearance="@android:style/TextAppearance.Large"
-            android:visibility="gone"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginEnd="24dp"
-            android:layout_centerVertical="true"
-            android:layout_toStartOf="@id/clock" />
-
-</merge>
\ No newline at end of file
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/layout/detail_view_content.xml b/samples/SupportLeanbackShowcase/app/src/main/res/layout/detail_view_content.xml
deleted file mode 100644
index 5140ed7..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/layout/detail_view_content.xml
+++ /dev/null
@@ -1,96 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-              android:layout_width="match_parent"
-              android:layout_height="match_parent"
-              android:orientation="vertical">
-
-    <TextView
-        android:id="@+id/primary_text"
-        style="@style/Widget.Leanback.DetailsDescriptionTitleStyle"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_marginBottom="3dp"
-        android:layout_marginTop="15dp"
-        android:fontFamily="sans-serif-light"
-        android:text="Title Text"/>
-
-    <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_marginBottom="14dp"
-        android:gravity="center_vertical"
-        android:orientation="horizontal">
-
-        <TextView
-            android:id="@+id/secondary_text_first"
-            style="@style/Widget.Leanback.DetailsDescriptionSubtitleStyle"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginRight="16dp"
-            android:fontFamily="sans-serif-condensed"
-            android:text="Secondary Text Area"/>
-
-        <TextView
-            android:id="@+id/secondary_text_second"
-            style="@style/Widget.Leanback.DetailsDescriptionSubtitleStyle"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginRight="16dp"
-            android:fontFamily="sans-serif-condensed"
-            android:text="With Icons"/>
-
-        <ImageView
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginRight="16dp"
-            android:src="@drawable/ic_cc"/>
-
-        <ImageView
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:src="@drawable/ic_star_on_yellow"/>
-
-        <ImageView
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:src="@drawable/ic_star_on_yellow"/>
-
-        <ImageView
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:src="@drawable/ic_star_on_yellow"/>
-
-        <ImageView
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:src="@drawable/ic_star_off"/>
-
-        <ImageView
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:src="@drawable/ic_star_off"/>
-    </LinearLayout>
-
-    <TextView
-        android:id="@+id/extra_text"
-        style="@style/Widget.Leanback.DetailsDescriptionBodyStyle"
-        android:layout_width="match_parent"
-        android:fontFamily="sans-serif-regular"
-        android:layout_height="wrap_content"
-        android:text="Filmmaker Guillermo del Toro teas up with Legendary Pictures to bring audiences a unique take on the monster film with this sci/fi production."/>
-</LinearLayout>
\ No newline at end of file
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/layout/grid_fragment.xml b/samples/SupportLeanbackShowcase/app/src/main/res/layout/grid_fragment.xml
deleted file mode 100644
index 4e67908..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/layout/grid_fragment.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
-             android:id="@+id/browse_dummy"
-             android:layout_width="match_parent"
-             android:layout_height="match_parent" >
-
-    <android.support.v17.leanback.widget.BrowseFrameLayout
-            android:id="@+id/grid_frame"
-            android:focusable="true"
-            android:focusableInTouchMode="true"
-            android:descendantFocusability="afterDescendants"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent" >
-
-        <FrameLayout
-                android:id="@+id/browse_grid_dock"
-                android:layout_width="match_parent"
-                android:layout_height="match_parent" />
-
-    </android.support.v17.leanback.widget.BrowseFrameLayout>
-</FrameLayout>
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/layout/page_fragment.xml b/samples/SupportLeanbackShowcase/app/src/main/res/layout/page_fragment.xml
deleted file mode 100644
index 3419b66..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/layout/page_fragment.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
-                android:id="@+id/container_list"
-                android:layout_width="match_parent"
-                android:layout_height="match_parent">
-
-    <LinearLayout
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:orientation="vertical"
-            android:layout_alignParentRight="true"
-            android:layout_marginRight="128dp"
-            android:layout_centerVertical="true">
-
-        <EditText
-                android:id="@+id/tv1"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:text="Header 1"
-                android:layout_margin="16dp"
-                android:focusable="true"
-                android:textAppearance="@android:style/TextAppearance.DeviceDefault.Large" />
-
-        <EditText
-                android:id="@+id/tv2"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:text="Header 2"
-                android:layout_margin="16dp"
-                android:focusable="true"
-                android:textAppearance="@android:style/TextAppearance.DeviceDefault.Medium" />
-
-        <EditText
-                android:id="@+id/tv3"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:text="Header 3"
-                android:layout_margin="16dp"
-                android:focusable="true"
-                android:textAppearance="@android:style/TextAppearance.DeviceDefault.Small" />
-
-    </LinearLayout>
-</RelativeLayout>
\ No newline at end of file
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/layout/page_list_row.xml b/samples/SupportLeanbackShowcase/app/src/main/res/layout/page_list_row.xml
deleted file mode 100644
index 6b3cb6b..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/layout/page_list_row.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
-              android:layout_width="match_parent"
-              android:layout_height="match_parent">
-
-    <fragment
-        android:id="@+id/page_list_fragment"
-        android:name="android.support.v17.leanback.supportleanbackshowcase.app.page.PageAndListRowFragment"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent" />
-
-</FrameLayout>
\ No newline at end of file
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/layout/side_info_card.xml b/samples/SupportLeanbackShowcase/app/src/main/res/layout/side_info_card.xml
deleted file mode 100644
index 725af09..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/layout/side_info_card.xml
+++ /dev/null
@@ -1,64 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:lb="http://schemas.android.com/apk/res-auto"
-    android:id="@+id/container"
-    android:layout_width="wrap_content"
-    android:layout_height="wrap_content"
-    android:orientation="horizontal">
-
-    <ImageView
-        android:id="@+id/main_image"
-        android:layout_width="144dp"
-        android:layout_height="144dp"
-        lb:layout_viewType="main"
-        />
-
-    <LinearLayout
-        android:id="@+id/info"
-        android:layout_width="144dp"
-        android:layout_height="match_parent"
-        android:orientation="vertical"
-        android:paddingLeft="11dp"
-        android:paddingRight="11dp"
-        android:paddingTop="7dp"
-        android:background="@color/default_card_footer_background_color">
-
-        <TextView
-            android:id="@+id/primary_text"
-            style="@style/Widget.Leanback.ImageCardView.TitleStyle"
-            android:fontFamily="sans-serif-condensed"
-            android:maxLines="2"
-            android:textSize="16sp"/>
-
-        <TextView
-            android:id="@+id/secondary_text"
-            style="@style/Widget.Leanback.ImageCardView.ContentStyle"
-            android:layout_marginTop="4dp"
-            android:fontFamily="sans-serif-condensed"
-            android:maxLines="1"
-            android:textColor="#EEEEEE"/>
-
-        <TextView
-            android:id="@+id/extra_text"
-            style="@style/Widget.Leanback.ImageCardView.ContentStyle"
-            android:layout_marginTop="6dp"
-            android:fontFamily="sans-serif-condensed"
-            android:maxLines="5"/>
-    </LinearLayout>
-</LinearLayout>
\ No newline at end of file
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/layout/text_icon_card.xml b/samples/SupportLeanbackShowcase/app/src/main/res/layout/text_icon_card.xml
deleted file mode 100644
index 339549a..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/layout/text_icon_card.xml
+++ /dev/null
@@ -1,79 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<merge xmlns:android="http://schemas.android.com/apk/res/android"
-       xmlns:lb="http://schemas.android.com/apk/res-auto"
-       android:layout_width="wrap_content"
-       android:layout_height="wrap_content">
-
-    <TextView
-        android:id="@+id/extra_text"
-        style="@style/Widget.Leanback.ImageCardView.ContentStyle"
-        android:layout_width="256dp"
-        android:layout_height="wrap_content"
-        android:background="@color/default_card_background_color"
-        android:fontFamily="sans-serif-condensed"
-        android:lines="7"
-        android:maxLines="7"
-        android:paddingBottom="14dp"
-        android:paddingLeft="15dp"
-        android:paddingRight="15dp"
-        android:paddingTop="12dp"
-        lb:layout_viewType="main"/>
-
-    <android.support.v17.leanback.widget.NonOverlappingRelativeLayout
-        android:layout_width="256dp"
-        android:layout_height="36dp"
-        android:background="@color/default_card_footer_background_color"
-        android:gravity="left"
-        android:orientation="horizontal"
-        android:paddingBottom="7dp"
-        android:paddingLeft="12dp"
-        android:paddingRight="12dp"
-        android:paddingTop="7dp">
-
-        <ImageView
-            android:id="@+id/main_image"
-            android:layout_width="36dp"
-            android:layout_height="36dp"
-            android:layout_centerVertical="true"
-            android:layout_gravity="center_vertical"
-            android:layout_marginRight="8dp"
-            android:adjustViewBounds="true"/>
-
-        <TextView
-            android:id="@+id/primary_text"
-            style="@style/Widget.Leanback.ImageCardView.TitleStyle"
-            android:layout_width="match_parent"
-            android:layout_centerVertical="true"
-            android:layout_gravity="left"
-            android:layout_toRightOf="@+id/main_image"
-            android:fontFamily="sans-serif-condensed"
-            android:maxLines="1"
-            />
-
-        <ImageView
-            android:id="@+id/footer_icon"
-            android:layout_width="wrap_content"
-            android:layout_height="32dp"
-            android:layout_alignParentEnd="true"
-            android:layout_centerVertical="true"
-            android:layout_gravity="center_vertical"
-            android:adjustViewBounds="true"
-            android:src="@drawable/stars_white"/>
-
-    </android.support.v17.leanback.widget.NonOverlappingRelativeLayout>
-</merge>
\ No newline at end of file
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/layout/titleview.xml b/samples/SupportLeanbackShowcase/app/src/main/res/layout/titleview.xml
deleted file mode 100644
index a5de787..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/layout/titleview.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<android.support.v17.leanback.supportleanbackshowcase.app.page.CustomTitleView
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        android:id="@+id/browse_title_group"
-        android:padding="16dp"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content" />
\ No newline at end of file
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/layout/video_surface_fragment.xml b/samples/SupportLeanbackShowcase/app/src/main/res/layout/video_surface_fragment.xml
deleted file mode 100644
index ff5be69..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/layout/video_surface_fragment.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<SurfaceView xmlns:android="http://schemas.android.com/apk/res/android"
-           android:layout_width="match_parent"
-           android:layout_height="match_parent">
-</SurfaceView>
\ No newline at end of file
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/layout/wizard_progress_action_item.xml b/samples/SupportLeanbackShowcase/app/src/main/res/layout/wizard_progress_action_item.xml
deleted file mode 100644
index 9051f38..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/layout/wizard_progress_action_item.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<android.support.v17.leanback.widget.NonOverlappingLinearLayout
-    style="?attr/guidedActionItemContainerStyle"
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent">
-
-    <ProgressBar
-        android:id="@+id/progressBar"
-        style="?android:attr/progressBarStyle"
-        android:indeterminateTintMode="src_in"
-        android:indeterminateTint="#FFAB91"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_marginRight="10dp"
-        android:indeterminate="false"/>
-
-    <android.support.v17.leanback.widget.NonOverlappingLinearLayout
-        android:id="@+id/guidedactions_item_content"
-        style="?attr/guidedActionItemContentStyle"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content">
-
-        <TextView
-            android:id="@+id/guidedactions_item_title"
-            style="?attr/guidedActionItemTitleStyle"
-            android:text="Processing..."
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content" />
-
-    </android.support.v17.leanback.widget.NonOverlappingLinearLayout>
-
-</android.support.v17.leanback.widget.NonOverlappingLinearLayout>
\ No newline at end of file
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/mipmap-hdpi/ic_launcher.png b/samples/SupportLeanbackShowcase/app/src/main/res/mipmap-hdpi/ic_launcher.png
deleted file mode 100644
index cde69bc..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/mipmap-hdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/mipmap-mdpi/ic_launcher.png b/samples/SupportLeanbackShowcase/app/src/main/res/mipmap-mdpi/ic_launcher.png
deleted file mode 100644
index c133a0c..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/mipmap-mdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/mipmap-xhdpi/app_banner_sample_app.png b/samples/SupportLeanbackShowcase/app/src/main/res/mipmap-xhdpi/app_banner_sample_app.png
deleted file mode 100644
index 222c1e5..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/mipmap-xhdpi/app_banner_sample_app.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/samples/SupportLeanbackShowcase/app/src/main/res/mipmap-xhdpi/ic_launcher.png
deleted file mode 100644
index bfa42f0..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/mipmap-xhdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/samples/SupportLeanbackShowcase/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
deleted file mode 100644
index 324e72c..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/raw/cards_example.json b/samples/SupportLeanbackShowcase/app/src/main/res/raw/cards_example.json
deleted file mode 100644
index 4fc4672..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/raw/cards_example.json
+++ /dev/null
@@ -1,517 +0,0 @@
-[
-  {
-    "type" : 1,
-    "title": "ImageCardView Examples"
-  },
-  {
-    "title": "One Line Title",
-    "cards": [
-      {
-        "type": "MOVIE",
-        "title": "Deep Into The Deep Sleep",
-        "description": "$3.99",
-        "localImageResource": "card_image_movie_01"
-      },
-      {
-        "type": "MOVIE",
-        "title": "We",
-        "description": "$3.99",
-        "localImageResource": "card_image_movie_02"
-      },
-      {
-        "type": "MOVIE",
-        "title": "The Fairy Story Of A Legend",
-        "description": "$3.99",
-        "localImageResource": "card_image_movie_03"
-      },
-      {
-        "type": "MOVIE",
-        "title": "Cursed",
-        "description": "$3.99",
-        "localImageResource": "card_image_movie_04"
-      },
-      {
-        "type": "MOVIE",
-        "title": "My Crazy One",
-        "description": "$3.99",
-        "localImageResource": "card_image_movie_05"
-      },
-      {
-        "type": "MOVIE",
-        "title": "Gone",
-        "description": "$3.99",
-        "localImageResource": "card_image_movie_06"
-      },
-      {
-        "type": "MOVIE",
-        "title": "A Cold Night To Stay",
-        "description": "$3.99",
-        "localImageResource": "card_image_movie_07"
-      },
-      {
-        "type": "MOVIE",
-        "title": "The Silence",
-        "description": "$3.99",
-        "localImageResource": "card_image_movie_08"
-      },
-      {
-        "type": "MOVIE",
-        "title": "Hear The Roar",
-        "description": "$3.99",
-        "localImageResource": "card_image_movie_09"
-      }
-    ]
-  },
-  {
-    "title": "Two Line Title + Icon",
-    "cards": [
-      {
-        "type": "MOVIE_BASE",
-        "title": "Deep Into The Deep Sleep",
-        "localImageResource": "card_image_movie_01"
-      },
-      {
-        "type": "MOVIE_BASE",
-        "title": "We",
-        "localImageResource": "card_image_movie_02"
-      },
-      {
-        "type": "MOVIE_BASE",
-        "title": "The Fairy Story Of A Legend",
-        "localImageResource": "card_image_movie_03"
-      },
-      {
-        "type": "MOVIE_BASE",
-        "title": "Cursed",
-        "localImageResource": "card_image_movie_04"
-      },
-      {
-        "type": "MOVIE_BASE",
-        "title": "My Crazy One",
-        "localImageResource": "card_image_movie_05"
-      },
-      {
-        "type": "MOVIE_BASE",
-        "title": "Gone",
-        "localImageResource": "card_image_movie_06"
-      },
-      {
-        "type": "MOVIE_BASE",
-        "title": "A Cold Night To Stay",
-        "localImageResource": "card_image_movie_07"
-      },
-      {
-        "type": "MOVIE_BASE",
-        "title": "The Silence",
-        "localImageResource": "card_image_movie_08"
-      },
-      {
-        "type": "MOVIE_BASE",
-        "title": "Hear The Roar",
-        "localImageResource": "card_image_movie_09"
-      }
-    ]
-  },
-  {
-    "title": "Two Line Title + Description + Icon",
-    "cards": [
-      {
-        "type": "MOVIE_COMPLETE",
-        "description": "$3.99",
-        "title": "Deep Into The Deep Sleep",
-        "footerIconLocalImageResource": "stars_red",
-        "localImageResource": "card_image_movie_01"
-      },
-      {
-        "type": "MOVIE_COMPLETE",
-        "title": "We",
-        "description": "$3.99",
-        "footerIconLocalImageResource": "stars_red",
-        "localImageResource": "card_image_movie_02"
-      },
-      {
-        "type": "MOVIE_COMPLETE",
-        "title": "The Fairy",
-        "description": "$3.99",
-        "footerIconLocalImageResource": "stars_red",
-        "localImageResource": "card_image_movie_03"
-      },
-      {
-        "type": "MOVIE_COMPLETE",
-        "title": "Cursed",
-        "description": "$3.99",
-        "footerIconLocalImageResource": "stars_red",
-        "localImageResource": "card_image_movie_04"
-      },
-      {
-        "type": "MOVIE_COMPLETE",
-        "title": "My Crazy One",
-        "description": "$3.99",
-        "footerIconLocalImageResource": "stars_red",
-        "localImageResource": "card_image_movie_05"
-      },
-      {
-        "type": "MOVIE_COMPLETE",
-        "title": "Gone",
-        "description": "$3.99",
-        "footerIconLocalImageResource": "stars_red",
-        "localImageResource": "card_image_movie_06"
-      },
-      {
-        "type": "MOVIE_COMPLETE",
-        "title": "A Cold Night To Stay",
-        "description": "$3.99",
-        "footerIconLocalImageResource": "stars_red",
-        "localImageResource": "card_image_movie_07"
-      },
-      {
-        "type": "MOVIE_COMPLETE",
-        "description": "$3.99",
-        "title": "The Silence",
-        "footerIconLocalImageResource": "stars_red",
-        "localImageResource": "card_image_movie_08"
-      },
-      {
-        "type": "MOVIE_COMPLETE",
-        "title": "Hear The Roar",
-        "description": "$3.99",
-        "footerIconLocalImageResource": "stars_red",
-        "localImageResource": "card_image_movie_09"
-      }
-    ]
-  },
-  {
-    "title": "Title + Description",
-    "cards": [
-      {
-        "type": "SQUARE_BIG",
-        "title": "Blue in Green",
-        "description": "Miles Davis",
-        "footerColor": "#bf360C",
-        "localImageResource": "card_image_music_02"
-      },
-      {
-        "type": "SQUARE_BIG",
-        "title": "Blue in Green",
-        "description": "Miles Davis",
-        "footerColor": "#b93221",
-        "localImageResource": "card_image_music_03"
-      },
-      {
-        "type": "SQUARE_BIG",
-        "title": "Blue in Green",
-        "description": "Miles Davis",
-        "footerColor": "#311b92",
-        "localImageResource": "card_image_music_04"
-      },
-      {
-        "type": "SQUARE_BIG",
-        "title": "Blue in Green",
-        "description": "Miles Davis",
-        "footerColor": "#33691e",
-        "localImageResource": "card_image_music_05"
-      },
-      {
-        "type": "SQUARE_BIG",
-        "title": "Blue in Green",
-        "description": "Miles Davis",
-        "footerColor": "#37474f",
-        "localImageResource": "card_image_music_06"
-      },
-      {
-        "type": "SQUARE_BIG",
-        "title": "Blue in Green",
-        "description": "Miles Davis",
-        "footerColor": "#3e2723",
-        "localImageResource": "card_image_music_08"
-      },
-      {
-        "type": "SQUARE_BIG",
-        "title": "Blue in Green",
-        "description": "Miles Davis",
-        "footerColor": "#01579B",
-        "localImageResource": "card_image_music_09"
-      }
-    ]
-  },
-  {
-    "title": "Title + Description + Icon",
-    "cards": [
-      {
-        "type": "GAME",
-        "title": "Crazy One",
-        "description": "Purchased",
-        "localImageResource": "game_crazy_one",
-        "footerIconLocalImageResource": "ic_installed"
-      },
-      {
-        "type": "GAME",
-        "title": "Cursed",
-        "description": "Purchased",
-        "localImageResource": "game_cursed",
-        "footerIconLocalImageResource": "ic_installed"
-      },
-      {
-        "type": "GAME",
-        "title": "fairy",
-        "description": "Purchased",
-        "localImageResource": "game_fairy",
-        "footerIconLocalImageResource": "ic_installed"
-      },
-      {
-        "type": "GAME",
-        "title": "Hear The Roar",
-        "description": "Purchased",
-        "localImageResource": "game_hear_the_roar",
-        "footerIconLocalImageResource": "ic_installed"
-      },
-      {
-        "type": "GAME",
-        "title": "Silence",
-        "description": "Purchased",
-        "localImageResource": "game_silence",
-        "footerIconLocalImageResource": "ic_installed"
-      }
-    ]
-  },
-  {
-    "title": "Title + Description (Wide)",
-    "cards": [
-      {
-        "type": "DEFAULT",
-        "title": "Marseille sea food tour",
-        "description": "9,089 views   3 years ago   by ADELAIDE",
-        "localImageResource": "coffee_and_tea_01"
-      },
-      {
-        "type": "DEFAULT",
-        "title": "Marseille sea food tour",
-        "description": "9,089 views   3 years ago   by ADELAIDE",
-        "localImageResource": "coffee_and_tea_02"
-      },
-      {
-        "type": "DEFAULT",
-        "title": "Marseille sea food tour",
-        "description": "9,089 views   3 years ago   by ADELAIDE",
-        "localImageResource": "coffee_and_tea_03"
-      },
-      {
-        "type": "DEFAULT",
-        "title": "Marseille sea food tour",
-        "description": "9,089 views   3 years ago   by ADELAIDE",
-        "localImageResource": "coffee_and_tea_04"
-      },
-      {
-        "type": "DEFAULT",
-        "title": "Marseille sea food tour",
-        "description": "9,089 views   3 years ago   by ADELAIDE",
-        "localImageResource": "coffee_and_tea_05"
-      },
-      {
-        "type": "DEFAULT",
-        "title": "Marseille sea food tour",
-        "description": "9,089 views   3 years ago   by ADELAIDE",
-        "localImageResource": "coffee_and_tea_06"
-      },
-      {
-        "type": "DEFAULT",
-        "title": "Marseille sea food tour",
-        "description": "9,089 views   3 years ago   by ADELAIDE",
-        "localImageResource": "coffee_and_tea_07"
-      },
-      {
-        "type": "DEFAULT",
-        "title": "Marseille sea food tour",
-        "description": "9,089 views   3 years ago   by ADELAIDE",
-        "localImageResource": "coffee_and_tea_08"
-      }
-    ]
-  },
-  {
-    "type" : 2
-  },
-  {
-    "type" : 1,
-    "title": "Advanced Examples"
-  },
-  {
-    "title": "BaseCardView Info On The Right",
-    "cards": [
-      {
-        "type": "SIDE_INFO",
-        "title": "The Life Aquatic",
-        "description": "Seu Jorge",
-        "extraText": "Bacon ipsum dolor amet bresaola kevin tenderloin swine shoulder strip steak t-bone picanha turducken beef. Ribeye turkey t-bone pastrami meatball corned beef. Pork belly landjaeger short ribs ground round cupim, brisket ham tri-tip. Pig pork loin hamburger picanha ribeye, pork belly meatball chicken ham boudin sirloin corned beef frankfurter ham hock.",
-        "localImageResource": "card_image_music_02"
-      },
-      {
-        "type": "SIDE_INFO",
-        "title": "The Life Aquatic",
-        "description": "Seu Jorge",
-        "extraText": "Bacon ipsum dolor amet bresaola kevin tenderloin swine shoulder strip steak t-bone picanha turducken beef. Ribeye turkey t-bone pastrami meatball corned beef. Pork belly landjaeger short ribs ground round cupim, brisket ham tri-tip. Pig pork loin hamburger picanha ribeye, pork belly meatball chicken ham boudin sirloin corned beef frankfurter ham hock.",
-        "localImageResource": "card_image_music_03"
-      },
-      {
-        "type": "SIDE_INFO",
-        "title": "The Life Aquatic",
-        "description": "Seu Jorge",
-        "extraText": "Bacon ipsum dolor amet bresaola kevin tenderloin swine shoulder strip steak t-bone picanha turducken beef. Ribeye turkey t-bone pastrami meatball corned beef. Pork belly landjaeger short ribs ground round cupim, brisket ham tri-tip. Pig pork loin hamburger picanha ribeye, pork belly meatball chicken ham boudin sirloin corned beef frankfurter ham hock.",
-        "localImageResource": "card_image_music_04"
-      },
-      {
-        "type": "SIDE_INFO",
-        "title": "The Life Aquatic",
-        "description": "Seu Jorge",
-        "extraText": "Bacon ipsum dolor amet bresaola kevin tenderloin swine shoulder strip steak t-bone picanha turducken beef. Ribeye turkey t-bone pastrami meatball corned beef. Pork belly landjaeger short ribs ground round cupim, brisket ham tri-tip. Pig pork loin hamburger picanha ribeye, pork belly meatball chicken ham boudin sirloin corned beef frankfurter ham hock.",
-        "localImageResource": "card_image_music_05"
-      },
-      {
-        "type": "SIDE_INFO",
-        "title": "The Life Aquatic",
-        "description": "Seu Jorge",
-        "extraText": "Bacon ipsum dolor amet bresaola kevin tenderloin swine shoulder strip steak t-bone picanha turducken beef. Ribeye turkey t-bone pastrami meatball corned beef. Pork belly landjaeger short ribs ground round cupim, brisket ham tri-tip. Pig pork loin hamburger picanha ribeye, pork belly meatball chicken ham boudin sirloin corned beef frankfurter ham hock.",
-        "localImageResource": "card_image_music_06"
-      },
-      {
-        "type": "SIDE_INFO",
-        "title": "The Life Aquatic",
-        "description": "Seu Jorge",
-        "extraText": "Bacon ipsum dolor amet bresaola kevin tenderloin swine shoulder strip steak t-bone picanha turducken beef. Ribeye turkey t-bone pastrami meatball corned beef. Pork belly landjaeger short ribs ground round cupim, brisket ham tri-tip. Pig pork loin hamburger picanha ribeye, pork belly meatball chicken ham boudin sirloin corned beef frankfurter ham hock.",
-        "localImageResource": "card_image_music_07"
-      },
-      {
-        "type": "SIDE_INFO",
-        "title": "The Life Aquatic",
-        "description": "Seu Jorge",
-        "extraText": "Bacon ipsum dolor amet bresaola kevin tenderloin swine shoulder strip steak t-bone picanha turducken beef. Ribeye turkey t-bone pastrami meatball corned beef. Pork belly landjaeger short ribs ground round cupim, brisket ham tri-tip. Pig pork loin hamburger picanha ribeye, pork belly meatball chicken ham boudin sirloin corned beef frankfurter ham hock.",
-        "localImageResource": "card_image_music_08"
-      }
-    ]
-  },
-  {
-    "title": "BaseCardView using TextView",
-    "cards": [
-      {
-        "type": "TEXT",
-        "title": "Jonathan Max",
-        "extraText": "Bacon ipsum dolor amet bresaola kevin tenderloin swine shoulder strip steak t-bone picanha turducken beef. Ribeye turkey t-bone pastrami meatball corned beef. Pork belly landjaeger short ribs ground round cupim, brisket ham tri-tip. Pig pork loin hamburger picanha ribeye, pork belly meatball chicken ham boudin sirloin corned beef frankfurter ham hock.",
-        "localImageResource": "face_01"
-      },
-      {
-        "type": "TEXT",
-        "title": "Jonathan Max",
-        "extraText": "Bacon ipsum dolor amet bresaola kevin tenderloin swine shoulder strip steak t-bone picanha turducken beef. Ribeye turkey t-bone pastrami meatball corned beef. Pork belly landjaeger short ribs ground round cupim, brisket ham tri-tip. Pig pork loin hamburger picanha ribeye, pork belly meatball chicken ham boudin sirloin corned beef frankfurter ham hock.",
-        "localImageResource": "face_02"
-      },
-      {
-        "type": "TEXT",
-        "title": "Jonathan Max",
-        "extraText": "Bacon ipsum dolor amet bresaola kevin tenderloin swine shoulder strip steak t-bone picanha turducken beef. Ribeye turkey t-bone pastrami meatball corned beef. Pork belly landjaeger short ribs ground round cupim, brisket ham tri-tip. Pig pork loin hamburger picanha ribeye, pork belly meatball chicken ham boudin sirloin corned beef frankfurter ham hock.",
-        "localImageResource": "face_03"
-      },
-      {
-        "type": "TEXT",
-        "title": "Jonathan Max",
-        "extraText": "Bacon ipsum dolor amet bresaola kevin tenderloin swine shoulder strip steak t-bone picanha turducken beef. Ribeye turkey t-bone pastrami meatball corned beef. Pork belly landjaeger short ribs ground round cupim, brisket ham tri-tip. Pig pork loin hamburger picanha ribeye, pork belly meatball chicken ham boudin sirloin corned beef frankfurter ham hock.",
-        "localImageResource": "face_04"
-      },
-      {
-        "type": "TEXT",
-        "title": "Jonathan Max",
-        "extraText": "Bacon ipsum dolor amet bresaola kevin tenderloin swine shoulder strip steak t-bone picanha turducken beef. Ribeye turkey t-bone pastrami meatball corned beef. Pork belly landjaeger short ribs ground round cupim, brisket ham tri-tip. Pig pork loin hamburger picanha ribeye, pork belly meatball chicken ham boudin sirloin corned beef frankfurter ham hock.",
-        "localImageResource": "face_05"
-      },
-      {
-        "type": "TEXT",
-        "title": "Jonathan Max",
-        "extraText": "Bacon ipsum dolor amet bresaola kevin tenderloin swine shoulder strip steak t-bone picanha turducken beef. Ribeye turkey t-bone pastrami meatball corned beef. Pork belly landjaeger short ribs ground round cupim, brisket ham tri-tip. Pig pork loin hamburger picanha ribeye, pork belly meatball chicken ham boudin sirloin corned beef frankfurter ham hock.",
-        "localImageResource": "face_06"
-      },
-      {
-        "type": "TEXT",
-        "title": "Jonathan Max",
-        "extraText": "Bacon ipsum dolor amet bresaola kevin tenderloin swine shoulder strip steak t-bone picanha turducken beef. Ribeye turkey t-bone pastrami meatball corned beef. Pork belly landjaeger short ribs ground round cupim, brisket ham tri-tip. Pig pork loin hamburger picanha ribeye, pork belly meatball chicken ham boudin sirloin corned beef frankfurter ham hock.",
-        "localImageResource": "face_07"
-      },
-      {
-        "type": "TEXT",
-        "title": "Jonathan Max",
-        "extraText": "Bacon ipsum dolor amet bresaola kevin tenderloin swine shoulder strip steak t-bone picanha turducken beef. Ribeye turkey t-bone pastrami meatball corned beef. Pork belly landjaeger short ribs ground round cupim, brisket ham tri-tip. Pig pork loin hamburger picanha ribeye, pork belly meatball chicken ham boudin sirloin corned beef frankfurter ham hock.",
-        "localImageResource": "face_08"
-      }
-    ]
-  },
-  {
-    "title": "ImageCardView Customize Style",
-    "cards": [
-      {
-        "type": "SINGLE_LINE",
-        "title": "Action & Adventure",
-        "footerColor": "#dd004e",
-        "localImageResource": "category_action"
-      },
-      {
-        "type": "SINGLE_LINE",
-        "title": "Animation",
-        "footerColor": "#c51162",
-        "localImageResource": "category_animation"
-      },
-      {
-        "type": "SINGLE_LINE",
-        "title": "Classics",
-        "footerColor": "#9c27b0",
-        "localImageResource": "category_classics"
-      },
-      {
-        "type": "SINGLE_LINE",
-        "title": "Comedy",
-        "footerColor": "#cf4900",
-        "localImageResource": "category_comedy"
-      },
-      {
-        "type": "SINGLE_LINE",
-        "title": "Crime",
-        "footerColor": "#3f51b5",
-        "localImageResource": "category_crime"
-      },
-      {
-        "type": "SINGLE_LINE",
-        "title": "Documentary",
-        "footerColor": "#02639b",
-        "localImageResource": "category_documentary"
-      },
-      {
-        "type": "SINGLE_LINE",
-        "title": "Drama",
-        "footerColor": "#2a56c6",
-        "localImageResource": "category_drama"
-      }
-    ]
-  },
-  {
-    "title": "ImageCardView with onFocusChange listener",
-    "shadow": false,
-    "cards": [
-      {
-        "type": "ICON",
-        "title": "Settings",
-        "localImageResource": "ic_settings_settings"
-      },
-      {
-        "type": "ICON",
-        "title": "WiFi",
-        "localImageResource": "ic_settings_wifi_3_bar"
-      },
-      {
-        "type": "ICON",
-        "title": "Parental Control",
-        "localImageResource": "ic_settings_parental_control"
-      },
-      {
-        "type": "ICON",
-        "title": "Time",
-        "localImageResource": "ic_settings_time"
-      }
-    ]
-  }
-]
\ No newline at end of file
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/raw/detail_example.json b/samples/SupportLeanbackShowcase/app/src/main/res/raw/detail_example.json
deleted file mode 100644
index b6d06e2..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/raw/detail_example.json
+++ /dev/null
@@ -1,106 +0,0 @@
-{
-  "title": "A Summer in a Canyon",
-  "description": "Kate Douglas Smith Wiggin",
-  "year": 1914,
-  "text": "It was nine o’clock one sunny California morning, and Geoffrey Strong stood under the live-oak trees in Las Flores Cañon, with a pot of black paint in one hand and a huge brush in the other.  He could have handled these implements to better purpose and with better grace had not his arms been firmly held by three laughing girls, who pulled not wisely, but too well.  He was further incommoded by the presence of a small urchin who lay on the dusty ground beneath his feet, fastening an upward clutch on the legs of his trousers.\n\nThere were three large canvas tents directly in front of them, yet no one of these seemed to be the object of dissension, but rather a redwood board, some three feet in length, which was nailed on a tree near by. twitch of her cousin’s sleeve.",
-  "localImageResource": "movie_poster_01",
-  "price": "$9.99",
-  "characters": [
-    {
-      "type": "CHARACTER",
-      "title": "Leonardo Di Caprio",
-      "localImageResource": "face_01"
-    },
-    {
-      "type": "CHARACTER",
-      "title": "Gerald Butler",
-      "localImageResource": "face_08"
-    },
-    {
-      "type": "CHARACTER",
-      "title": "Russle Crow",
-      "localImageResource": "face_02"
-    },
-    {
-      "type": "CHARACTER",
-      "title": "Emma Stone",
-      "localImageResource": "face_03"
-    },
-    {
-      "type": "CHARACTER",
-      "title": "Natalie Portman",
-      "localImageResource": "face_04"
-    },
-    {
-      "type": "CHARACTER",
-      "title": "Jack Gyllanhall",
-      "localImageResource": "face_05"
-    },
-    {
-      "type": "CHARACTER",
-      "title": "Ryan Gossling",
-      "localImageResource": "face_06"
-    },
-    {
-      "type": "CHARACTER",
-      "title": "Olivia Wilde",
-      "localImageResource": "face_07"
-    }
-  ],
-  "recommended": [
-    {
-      "type": "MOVIE",
-      "title": "The Amazing Spuder-Man",
-      "description": "$3.99",
-      "localImageResource": "card_image_movie_01"
-    },
-    {
-      "type": "MOVIE",
-      "title": "American Psycho",
-      "description": "$3.99",
-      "localImageResource": "card_image_movie_02"
-    },
-    {
-      "type": "MOVIE",
-      "title": "Big Hero 6",
-      "description": "$3.99",
-      "localImageResource": "card_image_movie_03"
-    },
-    {
-      "type": "MOVIE",
-      "title": "Edge of Tomorrow",
-      "description": "$3.99",
-      "localImageResource": "card_image_movie_04"
-    },
-    {
-      "type": "MOVIE",
-      "title": "The Hobbit: The Desolation of Smaug",
-      "description": "$3.99",
-      "localImageResource": "card_image_movie_05"
-    },
-    {
-      "type": "MOVIE",
-      "title": "Interstellar",
-      "description": "$3.99",
-      "localImageResource": "card_image_movie_06"
-    },
-    {
-      "type": "MOVIE",
-      "title": "Jurassic Park",
-      "description": "$3.99",
-      "localImageResource": "card_image_movie_07"
-    },
-    {
-      "type": "MOVIE",
-      "title": "The Hunger Games: Mockingjay Part I",
-      "description": "$3.99",
-      "localImageResource": "card_image_movie_08"
-    },
-    {
-      "type": "MOVIE",
-      "title": "Planes",
-      "description": "$3.99",
-      "localImageResource": "card_image_movie_09"
-    }
-  ]
-}
\ No newline at end of file
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/raw/grid_example.json b/samples/SupportLeanbackShowcase/app/src/main/res/raw/grid_example.json
deleted file mode 100644
index 56da5db..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/raw/grid_example.json
+++ /dev/null
@@ -1,88 +0,0 @@
-{
-  "cards": [
-    {
-      "type": "GRID_SQUARE",
-      "title": "Nüsse",
-      "description": "$3.99/lb",
-      "localImageResource": "food_01"
-    },
-    {
-      "type": "GRID_SQUARE",
-      "title": "Undefinierbar",
-      "description": "$3.99/lb",
-      "localImageResource": "food_02"
-    },
-    {
-      "type": "GRID_SQUARE",
-      "title": "Brocoli",
-      "description": "$3.99/lb",
-      "localImageResource": "food_03"
-    },
-    {
-      "type": "GRID_SQUARE",
-      "title": "Salat",
-      "description": "$3.99/lb",
-      "localImageResource": "food_04"
-    },
-    {
-      "type": "GRID_SQUARE",
-      "title": "Große Radischen",
-      "description": "$3.99/lb",
-      "localImageResource": "food_05"
-    },
-    {
-      "type": "GRID_SQUARE",
-      "title": "Rote Zwiebeln",
-      "description": "$3.99/lb",
-      "localImageResource": "food_06"
-    },
-    {
-      "type": "GRID_SQUARE",
-      "title": "Lauch",
-      "description": "$3.99/lb",
-      "localImageResource": "food_07"
-    },
-    {
-      "type": "GRID_SQUARE",
-      "title": "Exotisches Zeugs",
-      "description": "$3.99/lb",
-      "localImageResource": "food_08"
-    },
-    {
-      "type": "GRID_SQUARE",
-      "title": "Zitronen",
-      "description": "$3.99/lb",
-      "localImageResource": "food_09"
-    },
-    {
-      "type": "GRID_SQUARE",
-      "title": "Meerirgendwas",
-      "description": "$3.99/lb",
-      "localImageResource": "food_10"
-    },
-    {
-      "type": "GRID_SQUARE",
-      "title": "Irgendein Kohl",
-      "description": "$3.99/lb",
-      "localImageResource": "food_11"
-    },
-    {
-      "type": "GRID_SQUARE",
-      "title": "Apfel",
-      "description": "$3.99/lb",
-      "localImageResource": "food_12"
-    },
-    {
-      "type": "GRID_SQUARE",
-      "title": "Mehr Äpfel",
-      "description": "$3.99/lb",
-      "localImageResource": "food_13"
-    },
-    {
-      "type": "GRID_SQUARE",
-      "title": "Tomaten",
-      "description": "$3.99/lb",
-      "localImageResource": "food_14"
-    }
-  ]
-}
\ No newline at end of file
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/raw/icon_example.json b/samples/SupportLeanbackShowcase/app/src/main/res/raw/icon_example.json
deleted file mode 100644
index 2fdfef5..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/raw/icon_example.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
-  "title": "Icon",
-  "cards": [
-      {
-        "type": "ICON",
-        "title": "Settings",
-        "localImageResource": "ic_settings_settings"
-      },
-      {
-        "type": "ICON",
-        "title": "WiFi",
-        "localImageResource": "ic_settings_wifi_3_bar"
-      },
-      {
-        "type": "ICON",
-        "title": "Parental Control",
-        "localImageResource": "ic_settings_parental_control"
-      },
-      {
-        "type": "ICON",
-        "title": "Time",
-        "localImageResource": "ic_settings_time"
-      },
-      {
-        "type": "ICON",
-        "title": "Input connection",
-        "localImageResource": "icon_01"
-      },
-      {
-        "type": "ICON",
-        "title": "Hdmi",
-        "localImageResource": "icon_02"
-      },
-      {
-        "type": "ICON",
-        "title": "Overscan",
-        "localImageResource": "icon_03"
-      },
-      {
-        "type": "ICON",
-        "title": "Remote",
-        "localImageResource": "icon_04"
-      },
-      {
-        "type": "ICON",
-        "title": "Ethernet",
-        "localImageResource": "icon_05"
-      },
-      {
-        "type": "ICON",
-        "title": "Voice",
-        "localImageResource": "icon_06"
-      },
-      {
-        "type": "ICON",
-        "title": "Brightness",
-        "localImageResource": "icon_07"
-      },
-      {
-        "type": "ICON",
-        "title": "Antenna",
-        "localImageResource": "icon_08"
-      }
-    ]
-}
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/raw/launcher_cards.json b/samples/SupportLeanbackShowcase/app/src/main/res/raw/launcher_cards.json
deleted file mode 100644
index 7508d97..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/raw/launcher_cards.json
+++ /dev/null
@@ -1,70 +0,0 @@
-[
-  {
-    "title": "",
-    "cards": [
-      {
-        "id": 0,
-        "type": "DEFAULT",
-        "title": "Card Examples",
-        "localImageResource": "thumbnail_example_cards",
-        "description": "Showcase of various card design and layouts"
-      },
-      {
-        "id": 1,
-        "type": "DEFAULT",
-        "title": "Page/Row fragment Examples",
-        "localImageResource": "thumbnail_example_browse",
-        "description": "Showcase usage of page/rows fragment"
-      },
-      {
-        "id": 2,
-        "type": "DEFAULT",
-        "title": "Grid Examples",
-        "localImageResource": "thumbnail_example_grid",
-        "description": "Showcase of various card design and layouts"
-      },
-      {
-        "id": 3,
-        "type": "DEFAULT",
-        "title": "Detail Examples",
-        "localImageResource": "thumbnail_example_detail",
-        "description": "Showcase of various card design and layouts"
-      },
-      {
-        "id": 4,
-        "type": "DEFAULT",
-        "title": "Video consumption Examples",
-        "localImageResource": "thumbnail_example_video_consumption",
-        "description": "Showcase of various card design and layouts"
-      },
-      {
-        "id": 5,
-        "type": "DEFAULT",
-        "title": "Music consumption Examples",
-        "localImageResource": "thumbnail_example_music_consumption",
-        "description": "Showcase of various card design and layouts"
-      },
-      {
-        "id": 6,
-        "type": "DEFAULT",
-        "title": "Wizard Examples",
-        "localImageResource": "thumbnail_example_wizard",
-        "description": "Showcase of various card design and layouts"
-      },
-      {
-        "id": 7,
-        "type": "DEFAULT",
-        "title": "Settings Examples",
-        "localImageResource": "thumbnail_example_settings",
-        "description": "Showcase of various card design and layouts"
-      },
-      {
-        "id": 8,
-        "type": "DEFAULT",
-        "title": "Dialog Examples",
-        "localImageResource": "thumbnail_example_dialog",
-        "description": "Showcase of various card design and layouts"
-      }
-    ]
-  }
-]
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/raw/music_consumption_example.json b/samples/SupportLeanbackShowcase/app/src/main/res/raw/music_consumption_example.json
deleted file mode 100644
index 23eb239..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/raw/music_consumption_example.json
+++ /dev/null
@@ -1,76 +0,0 @@
-{
-  "songs": [
-    {
-      "number": 1,
-      "duration": "1:38",
-      "title": "Thump and Jump",
-      "description": "Jimmy Fontanez/Media Right Production",
-      "image": "card_image_music_01",
-      "file": "track_01"
-    },
-    {
-      "number": 2,
-      "duration": "1:42",
-      "title": "Give",
-      "description": "Silent Partner",
-      "image": "card_image_music_02",
-      "file": "track_02"
-    },
-    {
-      "number": 3,
-      "duration": "1:21",
-      "title": "Dusty Road",
-      "description": "Jingle Punks",
-      "image": "card_image_music_03",
-      "file": "track_03"
-    },
-    {
-      "number": 4,
-      "duration": "2:06",
-      "title": "Light The Torch",
-      "description": "Silent Partner",
-      "image": "card_image_music_04",
-      "file": "track_04"
-    },
-    {
-      "number": 5,
-      "duration": "2:43",
-      "title": "Blue Skies",
-      "description": "Silent Partner",
-      "image": "card_image_music_05",
-      "file": "track_05"
-    },
-    {
-      "number": 6,
-      "duration": "0:05",
-      "title": "In the Land of Rhinoplasty(Sting)",
-      "description": "Jingle Punks",
-      "image": "card_image_music_06",
-      "file": "track_06"
-    },
-    {
-      "number": 7,
-      "duration": "2:54",
-      "title": "Ice Crystals",
-      "description": "Everet Almond",
-      "image": "card_image_music_07",
-      "file": "track_07"
-    },
-    {
-      "number": 8,
-      "duration": "2:38",
-      "title": "Shoulder Closures",
-      "description": "Gunnar Olsen",
-      "image": "card_image_music_08",
-      "file": "track_08"
-    },
-    {
-      "number": 9,
-      "duration": "2:40",
-      "title": "The Coldest Shoulder",
-      "description": "The 126ers",
-      "image": "card_image_music_09",
-      "file": "track_09"
-    }
-  ]
-}
\ No newline at end of file
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/raw/music_example.json b/samples/SupportLeanbackShowcase/app/src/main/res/raw/music_example.json
deleted file mode 100644
index b01a2d4..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/raw/music_example.json
+++ /dev/null
@@ -1,106 +0,0 @@
-{
-  "title": "A Summer in a Canyon",
-  "description": "Kate Douglas Smith Wiggin",
-  "year": 1914,
-  "text": "It was nine o’clock one sunny California morning, and Geoffrey Strong stood under the live-oak trees in Las Flores Cañon, with a pot of black paint in one hand and a huge brush in the other.  He could have handled these implements to better purpose and with better grace had not his arms been firmly held by three laughing girls, who pulled not wisely, but too well.  He was further incommoded by the presence of a small urchin who lay on the dusty ground beneath his feet, fastening an upward clutch on the legs of his trousers.\n\nThere were three large canvas tents directly in front of them, yet no one of these seemed to be the object of dissension, but rather a redwood board, some three feet in length, which was nailed on a tree near by. twitch of her cousin’s sleeve.",
-  "localImageResource": "movie_poster_01",
-  "price": "$9.99",
-  "characters": [
-    {
-      "type": "CHARACTER",
-      "title": "Leonardo Di Caprio",
-      "localImageResource": "face_01"
-    },
-    {
-      "type": "CHARACTER",
-      "title": "Gerald Butler",
-      "localImageResource": "face_08"
-    },
-    {
-      "type": "CHARACTER",
-      "title": "Russle Crow",
-      "localImageResource": "face_02"
-    },
-    {
-      "type": "CHARACTER",
-      "title": "Emma Stone",
-      "localImageResource": "face_03"
-    },
-    {
-      "type": "CHARACTER",
-      "title": "Natalie Portman",
-      "localImageResource": "face_04"
-    },
-    {
-      "type": "CHARACTER",
-      "title": "Jack Gyllanhall",
-      "localImageResource": "face_05"
-    },
-    {
-      "type": "CHARACTER",
-      "title": "Ryan Gossling",
-      "localImageResource": "face_06"
-    },
-    {
-      "type": "CHARACTER",
-      "title": "Olivia Wilde",
-      "localImageResource": "face_07"
-    }
-  ],
-  "recommended": [
-    {
-      "type": "THIN",
-      "title": "The Amazing Spuder-Man",
-      "description": "$3.99",
-      "localImageResource": "card_image_movie_01"
-    },
-    {
-      "type": "THIN",
-      "title": "American Psycho",
-      "description": "$3.99",
-      "localImageResource": "card_image_movie_02"
-    },
-    {
-      "type": "THIN",
-      "title": "Big Hero 6",
-      "description": "$3.99",
-      "localImageResource": "card_image_movie_03"
-    },
-    {
-      "type": "THIN",
-      "title": "Edge of Tomorrow",
-      "description": "$3.99",
-      "localImageResource": "card_image_movie_04"
-    },
-    {
-      "type": "THIN",
-      "title": "The Hobbit: The Desolation of Smaug",
-      "description": "$3.99",
-      "localImageResource": "card_image_movie_05"
-    },
-    {
-      "type": "THIN",
-      "title": "Interstellar",
-      "description": "$3.99",
-      "localImageResource": "card_image_movie_06"
-    },
-    {
-      "type": "THIN",
-      "title": "Jurassic Park",
-      "description": "$3.99",
-      "localImageResource": "card_image_movie_07"
-    },
-    {
-      "type": "THIN",
-      "title": "The Hunger Games: Mockingjay Part I",
-      "description": "$3.99",
-      "localImageResource": "card_image_movie_08"
-    },
-    {
-      "type": "THIN",
-      "title": "Planes",
-      "description": "$3.99",
-      "localImageResource": "card_image_movie_09"
-    }
-  ]
-}
\ No newline at end of file
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/raw/page_row_example.json b/samples/SupportLeanbackShowcase/app/src/main/res/raw/page_row_example.json
deleted file mode 100644
index 5e686d7..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/raw/page_row_example.json
+++ /dev/null
@@ -1,515 +0,0 @@
-[
-  {
-    "title": "One Line Title",
-    "cards": [
-      {
-        "type": "MOVIE",
-        "title": "Deep Into The Deep Sleep",
-        "description": "$3.99",
-        "localImageResource": "card_image_movie_01"
-      },
-      {
-        "type": "MOVIE",
-        "title": "We",
-        "description": "$3.99",
-        "localImageResource": "card_image_movie_02"
-      },
-      {
-        "type": "MOVIE",
-        "title": "The Fairy Story Of A Legend",
-        "description": "$3.99",
-        "localImageResource": "card_image_movie_03"
-      },
-      {
-        "type": "MOVIE",
-        "title": "Cursed",
-        "description": "$3.99",
-        "localImageResource": "card_image_movie_04"
-      },
-      {
-        "type": "MOVIE",
-        "title": "My Crazy One",
-        "description": "$3.99",
-        "localImageResource": "card_image_movie_05"
-      },
-      {
-        "type": "MOVIE",
-        "title": "Gone",
-        "description": "$3.99",
-        "localImageResource": "card_image_movie_06"
-      },
-      {
-        "type": "MOVIE",
-        "title": "A Cold Night To Stay",
-        "description": "$3.99",
-        "localImageResource": "card_image_movie_07"
-      },
-      {
-        "type": "MOVIE",
-        "title": "The Silence",
-        "description": "$3.99",
-        "localImageResource": "card_image_movie_08"
-      },
-      {
-        "type": "MOVIE",
-        "title": "Hear The Roar",
-        "description": "$3.99",
-        "localImageResource": "card_image_movie_09"
-      }
-    ]
-  },
-  {
-    "title": "Two Line Title",
-    "cards": [
-      {
-        "type": "MOVIE_BASE",
-        "title": "Deep Into The Deep Sleep",
-        "description": "$3.99",
-        "localImageResource": "card_image_movie_01"
-      },
-      {
-        "type": "MOVIE_BASE",
-        "title": "We",
-        "description": "$3.99",
-        "localImageResource": "card_image_movie_02"
-      },
-      {
-        "type": "MOVIE_BASE",
-        "title": "The Fairy Story Of A Legend",
-        "description": "$3.99",
-        "localImageResource": "card_image_movie_03"
-      },
-      {
-        "type": "MOVIE_BASE",
-        "title": "Cursed",
-        "description": "$3.99",
-        "localImageResource": "card_image_movie_04"
-      },
-      {
-        "type": "MOVIE_BASE",
-        "title": "My Crazy One",
-        "description": "$3.99",
-        "localImageResource": "card_image_movie_05"
-      },
-      {
-        "type": "MOVIE_BASE",
-        "title": "Gone",
-        "description": "$3.99",
-        "localImageResource": "card_image_movie_06"
-      },
-      {
-        "type": "MOVIE_BASE",
-        "title": "A Cold Night To Stay",
-        "description": "$3.99",
-        "localImageResource": "card_image_movie_07"
-      },
-      {
-        "type": "MOVIE_BASE",
-        "title": "The Silence",
-        "description": "$3.99",
-        "localImageResource": "card_image_movie_08"
-      },
-      {
-        "type": "MOVIE_BASE",
-        "title": "Hear The Roar",
-        "description": "$3.99",
-        "localImageResource": "card_image_movie_09"
-      }
-    ]
-  },
-  {
-    "title": "Two Line Title + Icon",
-    "cards": [
-      {
-        "type": "MOVIE_COMPLETE",
-        "description": "$3.99",
-        "title": "Deep Into The Deep Sleep",
-        "footerIconLocalImageResource": "stars_red",
-        "localImageResource": "card_image_movie_01"
-      },
-      {
-        "type": "MOVIE_COMPLETE",
-        "title": "We",
-        "description": "$3.99",
-        "footerIconLocalImageResource": "stars_red",
-        "localImageResource": "card_image_movie_02"
-      },
-      {
-        "type": "MOVIE_COMPLETE",
-        "title": "The Fairy",
-        "description": "$3.99",
-        "footerIconLocalImageResource": "stars_red",
-        "localImageResource": "card_image_movie_03"
-      },
-      {
-        "type": "MOVIE_COMPLETE",
-        "title": "Cursed",
-        "description": "$3.99",
-        "footerIconLocalImageResource": "stars_red",
-        "localImageResource": "card_image_movie_04"
-      },
-      {
-        "type": "MOVIE_COMPLETE",
-        "title": "My Crazy One",
-        "description": "$3.99",
-        "footerIconLocalImageResource": "stars_red",
-        "localImageResource": "card_image_movie_05"
-      },
-      {
-        "type": "MOVIE_COMPLETE",
-        "title": "Gone",
-        "description": "$3.99",
-        "footerIconLocalImageResource": "stars_red",
-        "localImageResource": "card_image_movie_06"
-      },
-      {
-        "type": "MOVIE_COMPLETE",
-        "title": "A Cold Night To Stay",
-        "description": "$3.99",
-        "footerIconLocalImageResource": "stars_red",
-        "localImageResource": "card_image_movie_07"
-      },
-      {
-        "type": "MOVIE_COMPLETE",
-        "description": "$3.99",
-        "title": "The Silence",
-        "footerIconLocalImageResource": "stars_red",
-        "localImageResource": "card_image_movie_08"
-      },
-      {
-        "type": "MOVIE_COMPLETE",
-        "title": "Hear The Roar",
-        "description": "$3.99",
-        "footerIconLocalImageResource": "stars_red",
-        "localImageResource": "card_image_movie_09"
-      }
-    ]
-  },
-  {
-    "title": "Title + Description",
-    "cards": [
-      {
-        "type": "SQUARE_BIG",
-        "title": "Blue in Green",
-        "description": "Miles Davis",
-        "footerColor": "#bf360C",
-        "localImageResource": "card_image_music_02"
-      },
-      {
-        "type": "SQUARE_BIG",
-        "title": "Blue in Green",
-        "description": "Miles Davis",
-        "footerColor": "#b93221",
-        "localImageResource": "card_image_music_03"
-      },
-      {
-        "type": "SQUARE_BIG",
-        "title": "Blue in Green",
-        "description": "Miles Davis",
-        "footerColor": "#311b92",
-        "localImageResource": "card_image_music_04"
-      },
-      {
-        "type": "SQUARE_BIG",
-        "title": "Blue in Green",
-        "description": "Miles Davis",
-        "footerColor": "#33691e",
-        "localImageResource": "card_image_music_05"
-      },
-      {
-        "type": "SQUARE_BIG",
-        "title": "Blue in Green",
-        "description": "Miles Davis",
-        "footerColor": "#37474f",
-        "localImageResource": "card_image_music_06"
-      },
-      {
-        "type": "SQUARE_BIG",
-        "title": "Blue in Green",
-        "description": "Miles Davis",
-        "footerColor": "#3e2723",
-        "localImageResource": "card_image_music_08"
-      },
-      {
-        "type": "SQUARE_BIG",
-        "title": "Blue in Green",
-        "description": "Miles Davis",
-        "footerColor": "#01579B",
-        "localImageResource": "card_image_music_09"
-      }
-    ]
-  },
-  {
-    "title": "Title + Description + Icon",
-    "cards": [
-      {
-        "type": "GAME",
-        "title": "Crazy One",
-        "description": "Purchased",
-        "localImageResource": "game_crazy_one",
-        "footerIconLocalImageResource": "ic_installed"
-      },
-      {
-        "type": "GAME",
-        "title": "Cursed",
-        "description": "Purchased",
-        "localImageResource": "game_cursed",
-        "footerIconLocalImageResource": "ic_installed"
-      },
-      {
-        "type": "GAME",
-        "title": "fairy",
-        "description": "Purchased",
-        "localImageResource": "game_fairy",
-        "footerIconLocalImageResource": "ic_installed"
-      },
-      {
-        "type": "GAME",
-        "title": "Hear The Roar",
-        "description": "Purchased",
-        "localImageResource": "game_hear_the_roar",
-        "footerIconLocalImageResource": "ic_installed"
-      },
-      {
-        "type": "GAME",
-        "title": "Silence",
-        "description": "Purchased",
-        "localImageResource": "game_silence",
-        "footerIconLocalImageResource": "ic_installed"
-      }
-    ]
-  },
-  {
-    "title": "Title + Description (Wide)",
-    "cards": [
-      {
-        "type": "DEFAULT",
-        "title": "Marseille sea food tour",
-        "description": "9,089 views   3 years ago   by ADELAIDE",
-        "localImageResource": "coffee_and_tea_01"
-      },
-      {
-        "type": "DEFAULT",
-        "title": "Marseille sea food tour",
-        "description": "9,089 views   3 years ago   by ADELAIDE",
-        "localImageResource": "coffee_and_tea_02"
-      },
-      {
-        "type": "DEFAULT",
-        "title": "Marseille sea food tour",
-        "description": "9,089 views   3 years ago   by ADELAIDE",
-        "localImageResource": "coffee_and_tea_03"
-      },
-      {
-        "type": "DEFAULT",
-        "title": "Marseille sea food tour",
-        "description": "9,089 views   3 years ago   by ADELAIDE",
-        "localImageResource": "coffee_and_tea_04"
-      },
-      {
-        "type": "DEFAULT",
-        "title": "Marseille sea food tour",
-        "description": "9,089 views   3 years ago   by ADELAIDE",
-        "localImageResource": "coffee_and_tea_05"
-      },
-      {
-        "type": "DEFAULT",
-        "title": "Marseille sea food tour",
-        "description": "9,089 views   3 years ago   by ADELAIDE",
-        "localImageResource": "coffee_and_tea_06"
-      },
-      {
-        "type": "DEFAULT",
-        "title": "Marseille sea food tour",
-        "description": "9,089 views   3 years ago   by ADELAIDE",
-        "localImageResource": "coffee_and_tea_07"
-      },
-      {
-        "type": "DEFAULT",
-        "title": "Marseille sea food tour",
-        "description": "9,089 views   3 years ago   by ADELAIDE",
-        "localImageResource": "coffee_and_tea_08"
-      }
-    ]
-  },
-  {
-    "title": "BaseCardView Info On The Right",
-    "cards": [
-      {
-        "type": "SIDE_INFO",
-        "title": "The Life Aquatic",
-        "description": "Seu Jorge",
-        "extraText": "Bacon ipsum dolor amet bresaola kevin tenderloin swine shoulder strip steak t-bone picanha turducken beef. Ribeye turkey t-bone pastrami meatball corned beef. Pork belly landjaeger short ribs ground round cupim, brisket ham tri-tip. Pig pork loin hamburger picanha ribeye, pork belly meatball chicken ham boudin sirloin corned beef frankfurter ham hock.",
-        "localImageResource": "card_image_music_02"
-      },
-      {
-        "type": "SIDE_INFO",
-        "title": "The Life Aquatic",
-        "description": "Seu Jorge",
-        "extraText": "Bacon ipsum dolor amet bresaola kevin tenderloin swine shoulder strip steak t-bone picanha turducken beef. Ribeye turkey t-bone pastrami meatball corned beef. Pork belly landjaeger short ribs ground round cupim, brisket ham tri-tip. Pig pork loin hamburger picanha ribeye, pork belly meatball chicken ham boudin sirloin corned beef frankfurter ham hock.",
-        "localImageResource": "card_image_music_03"
-      },
-      {
-        "type": "SIDE_INFO",
-        "title": "The Life Aquatic",
-        "description": "Seu Jorge",
-        "extraText": "Bacon ipsum dolor amet bresaola kevin tenderloin swine shoulder strip steak t-bone picanha turducken beef. Ribeye turkey t-bone pastrami meatball corned beef. Pork belly landjaeger short ribs ground round cupim, brisket ham tri-tip. Pig pork loin hamburger picanha ribeye, pork belly meatball chicken ham boudin sirloin corned beef frankfurter ham hock.",
-        "localImageResource": "card_image_music_04"
-      },
-      {
-        "type": "SIDE_INFO",
-        "title": "The Life Aquatic",
-        "description": "Seu Jorge",
-        "extraText": "Bacon ipsum dolor amet bresaola kevin tenderloin swine shoulder strip steak t-bone picanha turducken beef. Ribeye turkey t-bone pastrami meatball corned beef. Pork belly landjaeger short ribs ground round cupim, brisket ham tri-tip. Pig pork loin hamburger picanha ribeye, pork belly meatball chicken ham boudin sirloin corned beef frankfurter ham hock.",
-        "localImageResource": "card_image_music_05"
-      },
-      {
-        "type": "SIDE_INFO",
-        "title": "The Life Aquatic",
-        "description": "Seu Jorge",
-        "extraText": "Bacon ipsum dolor amet bresaola kevin tenderloin swine shoulder strip steak t-bone picanha turducken beef. Ribeye turkey t-bone pastrami meatball corned beef. Pork belly landjaeger short ribs ground round cupim, brisket ham tri-tip. Pig pork loin hamburger picanha ribeye, pork belly meatball chicken ham boudin sirloin corned beef frankfurter ham hock.",
-        "localImageResource": "card_image_music_06"
-      },
-      {
-        "type": "SIDE_INFO",
-        "title": "The Life Aquatic",
-        "description": "Seu Jorge",
-        "extraText": "Bacon ipsum dolor amet bresaola kevin tenderloin swine shoulder strip steak t-bone picanha turducken beef. Ribeye turkey t-bone pastrami meatball corned beef. Pork belly landjaeger short ribs ground round cupim, brisket ham tri-tip. Pig pork loin hamburger picanha ribeye, pork belly meatball chicken ham boudin sirloin corned beef frankfurter ham hock.",
-        "localImageResource": "card_image_music_07"
-      },
-      {
-        "type": "SIDE_INFO",
-        "title": "The Life Aquatic",
-        "description": "Seu Jorge",
-        "extraText": "Bacon ipsum dolor amet bresaola kevin tenderloin swine shoulder strip steak t-bone picanha turducken beef. Ribeye turkey t-bone pastrami meatball corned beef. Pork belly landjaeger short ribs ground round cupim, brisket ham tri-tip. Pig pork loin hamburger picanha ribeye, pork belly meatball chicken ham boudin sirloin corned beef frankfurter ham hock.",
-        "localImageResource": "card_image_music_08"
-      }
-    ]
-  },
-  {
-    "title": "BaseCardView using TextView",
-    "cards": [
-      {
-        "type": "TEXT",
-        "title": "Jonathan Max",
-        "extraText": "Bacon ipsum dolor amet bresaola kevin tenderloin swine shoulder strip steak t-bone picanha turducken beef. Ribeye turkey t-bone pastrami meatball corned beef. Pork belly landjaeger short ribs ground round cupim, brisket ham tri-tip. Pig pork loin hamburger picanha ribeye, pork belly meatball chicken ham boudin sirloin corned beef frankfurter ham hock.",
-        "localImageResource": "face_01"
-      },
-      {
-        "type": "TEXT",
-        "title": "Jonathan Max",
-        "extraText": "Bacon ipsum dolor amet bresaola kevin tenderloin swine shoulder strip steak t-bone picanha turducken beef. Ribeye turkey t-bone pastrami meatball corned beef. Pork belly landjaeger short ribs ground round cupim, brisket ham tri-tip. Pig pork loin hamburger picanha ribeye, pork belly meatball chicken ham boudin sirloin corned beef frankfurter ham hock.",
-        "localImageResource": "face_02"
-      },
-      {
-        "type": "TEXT",
-        "title": "Jonathan Max",
-        "extraText": "Bacon ipsum dolor amet bresaola kevin tenderloin swine shoulder strip steak t-bone picanha turducken beef. Ribeye turkey t-bone pastrami meatball corned beef. Pork belly landjaeger short ribs ground round cupim, brisket ham tri-tip. Pig pork loin hamburger picanha ribeye, pork belly meatball chicken ham boudin sirloin corned beef frankfurter ham hock.",
-        "localImageResource": "face_03"
-      },
-      {
-        "type": "TEXT",
-        "title": "Jonathan Max",
-        "extraText": "Bacon ipsum dolor amet bresaola kevin tenderloin swine shoulder strip steak t-bone picanha turducken beef. Ribeye turkey t-bone pastrami meatball corned beef. Pork belly landjaeger short ribs ground round cupim, brisket ham tri-tip. Pig pork loin hamburger picanha ribeye, pork belly meatball chicken ham boudin sirloin corned beef frankfurter ham hock.",
-        "localImageResource": "face_04"
-      },
-      {
-        "type": "TEXT",
-        "title": "Jonathan Max",
-        "extraText": "Bacon ipsum dolor amet bresaola kevin tenderloin swine shoulder strip steak t-bone picanha turducken beef. Ribeye turkey t-bone pastrami meatball corned beef. Pork belly landjaeger short ribs ground round cupim, brisket ham tri-tip. Pig pork loin hamburger picanha ribeye, pork belly meatball chicken ham boudin sirloin corned beef frankfurter ham hock.",
-        "localImageResource": "face_05"
-      },
-      {
-        "type": "TEXT",
-        "title": "Jonathan Max",
-        "extraText": "Bacon ipsum dolor amet bresaola kevin tenderloin swine shoulder strip steak t-bone picanha turducken beef. Ribeye turkey t-bone pastrami meatball corned beef. Pork belly landjaeger short ribs ground round cupim, brisket ham tri-tip. Pig pork loin hamburger picanha ribeye, pork belly meatball chicken ham boudin sirloin corned beef frankfurter ham hock.",
-        "localImageResource": "face_06"
-      },
-      {
-        "type": "TEXT",
-        "title": "Jonathan Max",
-        "extraText": "Bacon ipsum dolor amet bresaola kevin tenderloin swine shoulder strip steak t-bone picanha turducken beef. Ribeye turkey t-bone pastrami meatball corned beef. Pork belly landjaeger short ribs ground round cupim, brisket ham tri-tip. Pig pork loin hamburger picanha ribeye, pork belly meatball chicken ham boudin sirloin corned beef frankfurter ham hock.",
-        "localImageResource": "face_07"
-      },
-      {
-        "type": "TEXT",
-        "title": "Jonathan Max",
-        "extraText": "Bacon ipsum dolor amet bresaola kevin tenderloin swine shoulder strip steak t-bone picanha turducken beef. Ribeye turkey t-bone pastrami meatball corned beef. Pork belly landjaeger short ribs ground round cupim, brisket ham tri-tip. Pig pork loin hamburger picanha ribeye, pork belly meatball chicken ham boudin sirloin corned beef frankfurter ham hock.",
-        "localImageResource": "face_08"
-      }
-    ]
-  },
-  {
-    "title": "ImageCardView Customize Style",
-    "cards": [
-      {
-        "type": "SINGLE_LINE",
-        "title": "Action & Adventure",
-        "footerColor": "#dd004e",
-        "localImageResource": "category_action"
-      },
-      {
-        "type": "SINGLE_LINE",
-        "title": "Animation",
-        "footerColor": "#c51162",
-        "localImageResource": "category_animation"
-      },
-      {
-        "type": "SINGLE_LINE",
-        "title": "Classics",
-        "footerColor": "#9c27b0",
-        "localImageResource": "category_classics"
-      },
-      {
-        "type": "SINGLE_LINE",
-        "title": "Comedy",
-        "footerColor": "#cf4900",
-        "localImageResource": "category_comedy"
-      },
-      {
-        "type": "SINGLE_LINE",
-        "title": "Crime",
-        "footerColor": "#3f51b5",
-        "localImageResource": "category_crime"
-      },
-      {
-        "type": "SINGLE_LINE",
-        "title": "Documentary",
-        "footerColor": "#02639b",
-        "localImageResource": "category_documentary"
-      },
-      {
-        "type": "SINGLE_LINE",
-        "title": "Drama",
-        "footerColor": "#2a56c6",
-        "localImageResource": "category_drama"
-      }
-    ]
-  },
-  {
-    "title": "ImageCardView with onFocusChange listener",
-    "shadow": false,
-    "cards": [
-      {
-        "type": "ICON",
-        "title": "Settings",
-        "localImageResource": "ic_settings_settings"
-      },
-      {
-        "type": "ICON",
-        "title": "WiFi",
-        "localImageResource": "ic_settings_wifi_3_bar"
-      },
-      {
-        "type": "ICON",
-        "title": "Parental Control",
-        "localImageResource": "ic_settings_parental_control"
-      },
-      {
-        "type": "ICON",
-        "title": "Time",
-        "localImageResource": "ic_settings_time"
-      }
-    ]
-  }
-]
\ No newline at end of file
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/raw/track_01.mp3 b/samples/SupportLeanbackShowcase/app/src/main/res/raw/track_01.mp3
deleted file mode 100755
index 9762383..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/raw/track_01.mp3
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/raw/track_02.mp3 b/samples/SupportLeanbackShowcase/app/src/main/res/raw/track_02.mp3
deleted file mode 100755
index 82f4c8a..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/raw/track_02.mp3
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/raw/track_03.mp3 b/samples/SupportLeanbackShowcase/app/src/main/res/raw/track_03.mp3
deleted file mode 100755
index 7faaeea..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/raw/track_03.mp3
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/raw/track_04.mp3 b/samples/SupportLeanbackShowcase/app/src/main/res/raw/track_04.mp3
deleted file mode 100755
index 90a5310..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/raw/track_04.mp3
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/raw/track_05.mp3 b/samples/SupportLeanbackShowcase/app/src/main/res/raw/track_05.mp3
deleted file mode 100755
index ec65400..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/raw/track_05.mp3
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/raw/track_06.mp3 b/samples/SupportLeanbackShowcase/app/src/main/res/raw/track_06.mp3
deleted file mode 100755
index fe84974..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/raw/track_06.mp3
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/raw/track_07.mp3 b/samples/SupportLeanbackShowcase/app/src/main/res/raw/track_07.mp3
deleted file mode 100755
index 9f876c0..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/raw/track_07.mp3
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/raw/track_08.mp3 b/samples/SupportLeanbackShowcase/app/src/main/res/raw/track_08.mp3
deleted file mode 100755
index 33c8af8..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/raw/track_08.mp3
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/raw/track_09.mp3 b/samples/SupportLeanbackShowcase/app/src/main/res/raw/track_09.mp3
deleted file mode 100755
index aaed617..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/raw/track_09.mp3
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/raw/wizard_example.json b/samples/SupportLeanbackShowcase/app/src/main/res/raw/wizard_example.json
deleted file mode 100644
index f46b856..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/raw/wizard_example.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-  "title": "Androidify! The Movie",
-  "breadcrump": "Android TV",
-  "price_hd": "$4.99",
-  "price_sd": "$2.99"
-}
\ No newline at end of file
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/values/arrays.xml b/samples/SupportLeanbackShowcase/app/src/main/res/values/arrays.xml
deleted file mode 100644
index 9933ba7..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/values/arrays.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ 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.
-  ~
-  -->
-
-<resources>
-    <array name="pref_parent_control_entries">
-        <item>Everyone</item>
-        <item>Low maturity</item>
-        <item>Medium maturity</item>
-        <item>High maturity</item>
-    </array>
-    <array name="pref_parent_control_entries_values">
-        <item>everyone</item>
-        <item>low</item>
-        <item>medium</item>
-        <item>high</item>
-    </array>
-    <array name="pref_parent_control_entries_summaries">
-        <item>This description becomes visible only on focus.</item>
-        <item>This description becomes visible only on focus.</item>
-        <item>This description becomes visible only on focus.</item>
-        <item>This description becomes visible only on focus.</item>
-    </array>
-    <array name="pref_wifi_networks">
-        <item>Wi-Fi network 1</item>
-        <item>Wi-Fi network 2</item>
-        <item>Wi-Fi network 3</item>
-        <item>Wi-Fi network 4</item>
-        <item>Wi-Fi network 5</item>
-        <item>Wi-Fi network 6</item>
-    </array>
-</resources>
\ No newline at end of file
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/values/colors.xml b/samples/SupportLeanbackShowcase/app/src/main/res/values/colors.xml
deleted file mode 100644
index 8526c76..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/values/colors.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ 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.
-  ~
-  -->
-<resources>
-    <color name="background_gradient_start">#FFFFFF</color>
-    <color name="background_gradient_end">#DDDDDD</color>
-    <color name="fastlane_background">#06838f</color>
-    <color name="fastlane_teal_background">#00796B</color>
-    <color name="search_opaque">#ffaa3f</color>
-    <color name="search_color">#FFEB3B</color>
-    <color name="search_bright_color">#FFEB3B</color>
-    <color name="search_icon_color">#222222</color>
-    <color name="accent">#80D3FB</color>
-    <color name="settings_background">#00695C</color>
-
-    <color name="default_background">#3d3d3d</color>
-
-    <color name="default_card_background_color">#263238</color>
-    <color name="default_card_footer_background_color">#37474F</color>
-    <color name="selected_card_footer_background_color">#F0F</color>
-
-    <color name="lb_default_brand_color">#FF455A64</color>
-    <color name="card_primary_text">#EEEEEE</color>
-    <color name="card_secondary_text">#99EEEEEE</color>
-
-    <color name="loading_error_card_background">#86c739</color>
-
-    <color name="card_examples_background">#222222</color>
-
-    <color name="detail_view_actionbar_background">#04549D</color>
-    <color name="detail_view_background">#0374BF</color>
-    <color name="detail_view_related_background">#022A4E</color>
-    <color name="song_row_favorite_color">#FF6E40</color>
-
-    <color name="app_guidedstep_actions_background">#C03800</color>
-    <color name="app_guidedstep_subactions_background">#732200</color>
-    <color name="app_guidedstep_dialog_actions_background">#263238</color>
-    <color name="settings_card_background">#0277BD</color>
-    <color name="settings_card_background_focussed">#01579B</color>
-
-    <color name="player_progress_color">#feab91</color>
-    <color name="player_background_color">#db2a0f</color>
-
-</resources>
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/values/dims.xml b/samples/SupportLeanbackShowcase/app/src/main/res/values/dims.xml
deleted file mode 100644
index 07c8027..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/values/dims.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ 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.
-  ~
-  -->
-<resources>
-    <dimen name="default_image_card_width">224dp</dimen>
-    <dimen name="default_image_card_height">126dp</dimen>
-
-    <dimen name="movie_image_card_width">120dp</dimen>
-    <dimen name="movie_image_card_height">172dp</dimen>
-
-    <dimen name="icon_image_card_width">224dp</dimen>
-    <dimen name="icon_image_card_height">109dp</dimen>
-
-    <dimen name="big_square_image_card_width">144dp</dimen>
-    <dimen name="big_square_image_card_height">144dp</dimen>
-
-    <dimen name="square_image_card_width">128dp</dimen>
-    <dimen name="square_image_card_height">128dp</dimen>
-
-    <dimen name="small_square_image_card_width">96dp</dimen>
-    <dimen name="small_square_image_card_height">96dp</dimen>
-
-    <dimen name="sidetext_image_card_width">144dp</dimen>
-    <dimen name="sidetext_image_card_height">144dp</dimen>
-
-    <dimen name="wide_short_image_card_width">224dp</dimen>
-    <dimen name="wide_short_image_card_height">109dp</dimen>
-
-    <dimen name="character_image_card_width">120dp</dimen>
-    <dimen name="character_image_card_height">120dp</dimen>
-
-    <dimen name="grid_card_width">200dp</dimen>
-    <dimen name="grid_card_height">200dp</dimen>
-</resources>
\ No newline at end of file
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/values/strings.xml b/samples/SupportLeanbackShowcase/app/src/main/res/values/strings.xml
deleted file mode 100644
index 0921d66..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/values/strings.xml
+++ /dev/null
@@ -1,67 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ 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.
-  ~
-  -->
-<resources>
-    <string name="app_name">ShowcaseApp</string>
-    <string name="browse_title"><![CDATA[androidTV]]></string>
-
-    <!-- Error messages -->
-    <string name="implement_search">Implement your own in-app search.</string>
-    <string name="card_examples_title">Card Examples</string>
-    <string name="detail_view_title">DetailView Example</string>
-    <string name="action_cicked">Action clicked. Implement your own handler.</string>
-    <string name="grid_example_title">Grid Example</string>
-    <string name="action_buy">Buy </string>
-    <string name="action_wishlist">Add to wishlist</string>
-    <string name="action_related">Related</string>
-    <string name="header_related">Related Items</string>
-    <string name="header_recommended">Recommended</string>
-
-    <!-- Page/List Row -->
-    <string name="page_list_row_title">Page and List Row</string>
-
-    <!-- Dialog example -->
-    <string name="dialog_example_title">Use Google\'s location service?</string>
-    <string name="dialog_example_description">Let Google help apps determine location. This means sending anonymous location data to Google, even when no apps are running.</string>
-    <string name="dialog_example_button_positive">Agree</string>
-    <string name="dialog_example_button_negative">Disagree</string>
-    <string name="dialog_example_button_toast_positive_clicked">\'Agree\' clicked.</string>
-    <string name="dialog_example_button_toast_negative_clicked">\'Disagree\' clicked.</string>
-
-    <!-- Wizard example -->
-    <string name="wizard_example_choose_rent_options">Choose rent options</string>
-    <string name="wizard_example_watch_hd">Watch in HD on supported devices</string>
-    <string name="wizard_example_watch_sd">Watch in standard definition on the web and supported devices</string>
-    <string name="wizard_example_rental_period">Rental period: start within 30 days,\nfinish within 24 hours</string>
-    <string name="wizard_example_input_card">Enter credit card number</string>
-    <string name="wizard_example_expiration_date">Exp Date</string>
-    <string name="wizard_example_payment_method">Payment Method</string>
-    <string name="wizard_example_toast_payment_method_clicked">\'Payment Method\' clicked.</string>
-    <string name="wizard_example_rent">Rent</string>
-    <string name="wizard_example_rent_hd">Rent HD</string>
-    <string name="wizard_example_rent_sd">Rent SD</string>
-    <string name="wizard_example_processing">Processinig...</string>
-    <string name="wizard_example_watch_now">Watch now</string>
-    <string name="wizard_example_later">Later</string>
-    <string name="wizard_example_watch_now_clicked">\'Watch now\' clicked.</string>
-    <string name="wizard_example_later_clicked">\'Later\' clicked.</string>
-    <string name="wizard_example_new_payment_guidance_title">New credit card</string>
-    <string name="wizard_example_new_payment_guidance_description">Enter new credit card information here</string>
-    <string name="wizard_example_input_credit">Input Payment Type</string>
-    <string name="wizard_example_visa">Visa-%s</string>
-    <string name="wizard_example_master">Master-%s</string>
-    <string name="wizard_example_input_credit_wrong">Error: invalid credit card number</string>
-    <string name="wizard_example_just_a_second">Just a second...</string>
-</resources>
\ No newline at end of file
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/values/styles.xml b/samples/SupportLeanbackShowcase/app/src/main/res/values/styles.xml
deleted file mode 100644
index 4f624d8..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/values/styles.xml
+++ /dev/null
@@ -1,271 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ 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.
-  ~
-  -->
-<resources>
-
-    <style name="AppTheme" parent="@style/Theme.Leanback">
-    </style>
-
-    <!-- Various movie card styles. Used in cards example. -->
-    <style name="MovieCardBadgeStyle" parent="Widget.Leanback.ImageCardView.BadgeStyle">
-        <item name="android:src">@drawable/stars_red</item>
-        <item name="android:layout_width">wrap_content</item>
-        <item name="android:scaleType">center</item>
-    </style>
-
-    <style name="MovieCardTitleTwoLineStyle" parent="Widget.Leanback.ImageCardView.TitleStyle">
-        <item name="android:maxLines">2</item>
-        <item name="android:minLines">2</item>
-    </style>
-
-    <style name="MovieCardContentGoneStyle" parent="Widget.Leanback.ImageCardView.ContentStyle">
-        <item name="android:visibility">invisible</item>
-    </style>
-
-    <style name="MovieCardContentStyle" parent="Widget.Leanback.ImageCardView.ContentStyle">
-        <item name="android:gravity">right</item>
-    </style>
-
-    <style name="MovieCardImageStyle" parent="Widget.Leanback.ImageCardView.ImageStyle">
-        <item name="android:layout_width">@dimen/movie_image_card_width</item>
-        <item name="android:layout_height">@dimen/movie_image_card_height</item>
-    </style>
-
-
-    <style name="MovieCardTitleOnlyStyle" parent="Widget.Leanback.ImageCardViewStyle">
-        <item name="lbImageCardViewType">Title</item>
-        <item name="cardBackground">@null</item>
-    </style>
-
-    <!-- Theme corresponding to the MovieCardSimpleStyle -->
-    <style name="MovieCardSimpleTheme" parent="Theme.Leanback">
-        <item name="imageCardViewStyle"> @style/MovieCardTitleOnlyStyle </item>
-        <item name="imageCardViewImageStyle">@style/MovieCardImageStyle</item>
-    </style>
-
-    <style name="MovieCardCompleteStyle" parent="MovieCardTitleOnlyStyle">
-        <item name="lbImageCardViewType">Title|Content|IconOnLeft</item>
-    </style>
-
-    <!-- Theme corresponding to the MovieCardCompleteStyle -->
-    <style name="MovieCardCompleteTheme" parent="Theme.Leanback">
-        <item name="imageCardViewStyle"> @style/MovieCardCompleteStyle </item>
-        <item name="imageCardViewImageStyle">@style/MovieCardImageStyle</item>
-        <item name="imageCardViewTitleStyle">@style/MovieCardTitleTwoLineStyle</item>
-        <item name="imageCardViewBadgeStyle">@style/MovieCardBadgeStyle</item>
-        <item name="imageCardViewContentStyle">@style/MovieCardContentStyle</item>
-    </style>
-
-    <!-- Theme corresponding to the MovieCardBasicStyle -->
-    <style name="MovieCardBasicTheme" parent="MovieCardCompleteTheme">
-        <item name="imageCardViewContentStyle">@style/MovieCardContentGoneStyle</item>
-    </style>
-
-    <!-- Squared Title/Content card style. Used in cards example. -->
-    <style name="SquareBigCardImageStyle" parent="Widget.Leanback.ImageCardView.ImageStyle">
-        <item name="android:layout_width">@dimen/big_square_image_card_width</item>
-        <item name="android:layout_height">@dimen/big_square_image_card_height</item>
-    </style>
-
-    <style name="SquareBigCard" parent="Widget.Leanback.ImageCardViewStyle">
-        <item name="cardBackground">@null</item>
-    </style>
-
-    <!-- Theme corresponding to the SquareBigCard -->
-    <style name="SquareBigCardTheme" parent="Theme.Leanback">
-        <item name="imageCardViewStyle"> @style/SquareBigCard </item>
-        <item name="imageCardViewImageStyle">@style/SquareBigCardImageStyle</item>
-    </style>
-
-    <!-- SideInfo. used in cards example -->
-    <style name="SideInfoCardStyle" parent="Widget.Leanback.BaseCardViewStyle">
-        <item name="cardType">mainOnly</item>
-        <item name="cardBackground">@null</item>
-    </style>
-
-    <!-- TextCardView. used in cards example -->
-    <style name="TextCardStyle" parent="Widget.Leanback.BaseCardViewStyle">
-        <item name="cardBackground">@null</item>
-    </style>
-
-    <!-- CharacterCardView. used in details example -->
-    <style name="CharacterCardStyle" parent="Widget.Leanback.BaseCardViewStyle">
-        <item name="cardBackground">@null</item>
-    </style>
-
-    <!-- Grid card style. Used by Grid example. -->
-    <style name="GridCardImageStyle" parent="Widget.Leanback.ImageCardView.ImageStyle">
-        <item name="android:layout_width">@dimen/grid_card_width</item>
-        <item name="android:layout_height">@dimen/grid_card_height</item>
-    </style>
-
-    <style name="GridCardStyle" parent="Widget.Leanback.ImageCardViewStyle">
-        <item name="cardBackground">@null</item>
-    </style>
-
-    <!-- Theme corresponding to the GridCardTheme -->
-    <style name="GridCardTheme" parent="Theme.Leanback">
-        <item name="imageCardViewStyle"> @style/GridCardStyle </item>
-        <item name="imageCardViewImageStyle">@style/GridCardImageStyle</item>
-    </style>
-
-    <!-- A default card style. Used in cards example. -->
-    <style name="DefaultCardImageStyle" parent="Widget.Leanback.ImageCardView.ImageStyle">
-        <item name="android:layout_width">@dimen/default_image_card_width</item>
-        <item name="android:layout_height">@dimen/default_image_card_height</item>
-    </style>
-
-    <style name="DefaultCardStyle" parent="Widget.Leanback.ImageCardViewStyle">
-        <item name="cardBackground">@null</item>
-    </style>
-
-    <style name="DefaultCardTheme" parent="Theme.Leanback">
-        <item name="imageCardViewStyle"> @style/DefaultCardStyle </item>
-        <item name="imageCardViewImageStyle">@style/DefaultCardImageStyle</item>
-    </style>
-
-    <!-- Game card styles with custom Badge icon. Used in cards example. -->
-    <style name="GameCardContentStyle" parent="Widget.Leanback.ImageCardView.ContentStyle">
-        <item name="android:textColor">#80c349</item>
-    </style>
-
-    <style name="GameCardBadgeStyle" parent="Widget.Leanback.ImageCardView.BadgeStyle">
-        <item name="android:src">@drawable/ic_installed</item>
-    </style>
-
-    <style name="GameCardStyle" parent="DefaultCardStyle">
-        <item name="lbImageCardViewType">Title|Content|IconOnRight</item>
-    </style>
-
-    <!-- Theme corresponding to the GameCardStyle -->
-    <style name="GameCardTheme" parent="Theme.Leanback">
-        <item name="imageCardViewStyle"> @style/GameCardStyle </item>
-        <item name="imageCardViewContentStyle">@style/GameCardContentStyle</item>
-        <item name="imageCardViewBadgeStyle">@style/GameCardBadgeStyle</item>
-        <item name="imageCardViewImageStyle">@style/DefaultCardImageStyle</item>
-    </style>
-
-    <!-- Squared single line card with colored footer style. Used in cards example. -->
-    <style name="SingleLineCardTitleStyle" parent="Widget.Leanback.ImageCardView.TitleStyle">
-        <item name="android:textAlignment">center</item>
-        <item name="android:gravity">center</item>
-    </style>
-
-    <style name="SingleLineCardInfoAreaStyle" parent="Widget.Leanback.ImageCardView.InfoAreaStyle">
-        <item name="android:layout_width">@dimen/square_image_card_width</item>
-        <item name="layout_viewType">main</item>
-    </style>
-
-    <style name="SingleLineCardImageStyle" parent="Widget.Leanback.ImageCardView.ImageStyle">
-        <item name="android:layout_width">@dimen/square_image_card_width</item>
-        <item name="android:layout_height">@dimen/square_image_card_height</item>
-    </style>
-
-    <style name="SingleLineCardStyle" parent="DefaultCardStyle">
-        <item name="lbImageCardViewType">Title</item>
-    </style>
-
-    <!-- Theme corresponding to the SingleLineCardStyle -->
-    <style name="SingleLineCardTheme" parent="Theme.Leanback">
-        <item name="imageCardViewStyle"> @style/SingleLineCardStyle </item>
-        <item name="imageCardViewTitleStyle">@style/SingleLineCardTitleStyle</item>
-        <item name="imageCardViewImageStyle">@style/SingleLineCardImageStyle</item>
-        <item name="imageCardViewInfoAreaStyle">@style/SingleLineCardInfoAreaStyle</item>
-    </style>
-
-
-    <!-- Icon card style with custom focus handler. Used in cards example. -->
-    <style name="IconCardViewStyle" parent="DefaultCardStyle">
-        <item name="lbImageCardViewType">Title</item>
-    </style>
-
-    <style name="IconCardImageStyle" parent="Widget.Leanback.ImageCardView.ImageStyle">
-        <item name="android:layout_width">96dp</item>
-        <item name="android:layout_height">96dp</item>
-        <item name="android:padding">16dp</item>
-    </style>
-
-    <style name="IconCardTitleStyle" parent="Widget.Leanback.ImageCardView.TitleStyle">
-        <item name="android:maxLines">2</item>
-        <item name="android:minLines">2</item>
-        <item name="android:gravity">center</item>
-    </style>
-
-    <style name="IconCardInfoAreaStyle" parent="Widget.Leanback.ImageCardView.InfoAreaStyle">
-        <item name="android:layout_width">96dp</item>
-        <item name="android:background">@null</item>
-        <item name="layout_viewType">main</item>
-    </style>
-
-    <!-- Theme corresponding to the IconCardStyle -->
-    <style name="IconCardTheme" parent="Theme.Leanback">
-        <item name="imageCardViewStyle"> @style/IconCardViewStyle </item>
-        <item name="imageCardViewTitleStyle">@style/IconCardTitleStyle</item>
-        <item name="imageCardViewImageStyle">@style/IconCardImageStyle</item>
-        <item name="imageCardViewInfoAreaStyle">@style/IconCardInfoAreaStyle</item>
-    </style>
-
-
-    <style name="MediaListHeaderStyle" parent="Widget.Leanback.PlaybackMediaListHeaderStyle">
-        <item name="android:background">#282248</item>
-    </style>
-
-    <style name="SharedMediaItemRowStyle" parent="Widget.Leanback.PlaybackMediaItemRowStyle">
-        <item name="android:background">#282248</item>
-    </style>
-
-    <style name="RegularMediaItemTextStyle" parent="TextAppearance.Leanback.PlaybackMediaItemNumber">
-        <item name="android:textColor">#FF6255</item>
-        <item name="android:textSize">18sp</item>
-        <item name="android:fontFamily">sans-serif-light</item>
-    </style>
-
-
-    <style name="RegularMediaItemNumberStyle" parent="Widget.Leanback.PlaybackMediaItemNumberStyle">
-        <item name="android:visibility">visible</item>
-        <!--<item name="android:textAppearance">@style/OddMediaItemNumberTextStyle</item>-->
-    </style>
-
-    <style name="RegularMediaItemNameStyle" parent="Widget.Leanback.PlaybackMediaItemNameStyle">
-        <!--<item name="android:textAppearance">@style/OddMediaItemNumberTextStyle</item>-->
-    </style>
-
-    <style name="RegularMediaItemDurationStyle" parent="Widget.Leanback.PlaybackMediaItemDurationStyle">
-        <item name="android:visibility">visible</item>
-        <!--<item name="android:textAppearance">@style/OddMediaItemNumberTextStyle</item>-->
-    </style>
-
-
-    <style name="FavoriteMediaItemTextStyle" parent="TextAppearance.Leanback.PlaybackMediaItemNumber">
-        <item name="android:textColor">#FF6E40</item>
-        <item name="android:textSize">18sp</item>
-        <item name="android:fontFamily">sans-serif-medium</item>
-    </style>
-
-    <style name="FavoriteMediaItemNumberStyle" parent="Widget.Leanback.PlaybackMediaItemNumberStyle">
-        <item name="android:visibility">visible</item>
-        <item name="android:textAppearance">@style/FavoriteMediaItemTextStyle</item>
-    </style>
-
-    <style name="FavoriteMediaItemNameStyle" parent="Widget.Leanback.PlaybackMediaItemNameStyle">
-        <item name="android:textAppearance">@style/FavoriteMediaItemTextStyle</item>
-    </style>
-
-    <style name="FavoriteMediaItemDurationStyle" parent="Widget.Leanback.PlaybackMediaItemDurationStyle">
-        <item name="android:visibility">visible</item>
-        <item name="android:textAppearance">@style/FavoriteMediaItemTextStyle</item>
-    </style>
-
-</resources>
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/values/themes.xml b/samples/SupportLeanbackShowcase/app/src/main/res/values/themes.xml
deleted file mode 100644
index 4aa06f6..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/values/themes.xml
+++ /dev/null
@@ -1,94 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ 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.
-  ~
-  -->
-<resources>
-
-    <style name="Theme.Example.Leanback" parent="Theme.Leanback">
-        <item name="android:colorPrimary">#00A2B8</item>
-        <item name="android:colorAccent">@color/accent</item>
-        <item name="preferenceTheme">@style/PreferenceThemeOverlay.v14</item>
-    </style>
-
-    <style name="Theme.Example.LeanbackLauncher" parent="Theme.Example.Leanback">
-        <item name="android:windowBackground">@drawable/bg_living_room_wide</item>
-        <item name="browseRowsMarginTop">275dp</item>
-    </style>
-
-    <style name="Theme.Example.LeanbackBrowse" parent="Theme.Leanback.Browse">
-        <item name="android:windowBackground">@color/card_examples_background</item>
-        <item name="defaultBrandColor">@color/fastlane_background</item>
-        <item name="defaultSearchColor">@color/search_color</item>
-        <item name="defaultSearchIconColor">@color/search_icon_color</item>
-        <item name="defaultSearchBrightColor">@color/search_bright_color</item>
-    </style>
-
-    <style name="Theme.Example.Leanback.CustomTitle" parent="Theme.Example.LeanbackBrowse">
-        <item name="browseTitleViewLayout">@layout/titleview</item>
-        <item name="browseRowsMarginTop">120dp</item>
-    </style>
-
-    <style name="Theme.Example.LeanbackVerticalGrid" parent="Theme.Leanback.VerticalGrid">
-        <item name="android:windowBackground">@drawable/background_food</item>
-    </style>
-
-    <style name="Theme.Example.LeanbackWizard" parent="Theme.Leanback.GuidedStep">
-        <item name="guidedActionsBackground">@color/app_guidedstep_actions_background</item>
-        <item name="guidedActionsBackgroundDark">@color/app_guidedstep_subactions_background</item>
-    </style>
-
-    <style name="Theme.Example.LeanbackWizard.NoSelector">
-        <item name="guidedActionsSelectorDrawable">@null</item>
-    </style>
-
-    <style name="Theme.Example.LeanbackDialog" parent="Theme.Leanback.GuidedStep">
-        <item name="guidedActionsBackground">@color/app_guidedstep_dialog_actions_background</item>
-    </style>
-
-    <style name="Theme.Example.LeanbackPreferences" parent="Theme.Leanback">
-        <item name="preferenceTheme">@style/PreferenceThemeOverlay.v14.Leanback</item>
-        <item name="android:windowIsTranslucent">true</item>
-        <item name="android:windowBackground">@android:color/transparent</item>
-        <item name="android:backgroundDimEnabled">true</item>
-        <item name="android:colorPrimary">@color/settings_background</item>
-    </style>
-
-    <style name="Theme.Example.LeanbackDetails" parent="Theme.Leanback.Details">
-        <item name="android:colorPrimary">@color/detail_view_actionbar_background</item>
-        <item name="android:windowBackground">@drawable/background_canyon</item>
-     </style>
-
-    <style name="Theme.Example.LeanbackMusic" parent="Theme.Example.Leanback">
-        <item name="android:windowBackground">@drawable/background_sax</item>
-     </style>
-
-    <style name="Theme.Example.LeanbackMusic.RegularSongNumbers">
-        <!--<item name="playbackMediaItemRowStyle">@style/SharedMediaItemRowStyle</item>-->
-        <item name="playbackMediaItemNumberStyle">@style/RegularMediaItemNumberStyle</item>
-        <item name="playbackMediaItemNameStyle">@style/RegularMediaItemNameStyle</item>
-        <item name="playbackMediaItemDurationStyle">@style/RegularMediaItemDurationStyle</item>
-    </style>
-
-    <style name="Theme.Example.LeanbackMusic.FavoriteSongNumbers">
-        <!--<item name="playbackMediaItemRowStyle">@style/SharedMediaItemRowStyle</item>-->
-        <item name="playbackMediaItemNumberStyle">@style/FavoriteMediaItemNumberStyle</item>
-        <item name="playbackMediaItemNameStyle">@style/FavoriteMediaItemNameStyle</item>
-        <item name="playbackMediaItemDurationStyle">@style/FavoriteMediaItemDurationStyle</item>
-    </style>
-
-    <style name="Theme.Example.LeanbackMusic.TrackListHeader">
-        <item name="playbackMediaListHeaderStyle">@style/MediaListHeaderStyle</item>
-    </style>
-
-</resources>
diff --git a/samples/SupportLeanbackShowcase/app/src/main/res/xml/prefs.xml b/samples/SupportLeanbackShowcase/app/src/main/res/xml/prefs.xml
deleted file mode 100644
index f0edd0e..0000000
--- a/samples/SupportLeanbackShowcase/app/src/main/res/xml/prefs.xml
+++ /dev/null
@@ -1,113 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
-                  xmlns:app="http://schemas.android.com/apk/res-auto"
-                  android:summary="This is a dummy activitiy only to show case how to build a settings in an application. Changing configurations in this example doesn't affect anything."
-                  android:title="Settings Example">
-    <PreferenceScreen
-        android:icon="@drawable/ic_settings_wifi_4_bar"
-        android:key="prefs_wifi_screen_key"
-        android:title="Wi-Fi">
-        <PreferenceCategory
-            android:key="prefs_wifi_networks_key"
-            android:title="Available Wi-Fi networks">
-            <ListPreference
-                android:defaultValue="-1"
-                android:entries="@array/pref_wifi_networks"
-                android:entryValues="@array/pref_wifi_networks"
-                android:title="Available Wi-Fi networks"
-                android:key="prefs_wifi_key">
-            </ListPreference>
-        </PreferenceCategory>
-        <PreferenceCategory
-            android:key="prefs_wifi_others_key"
-            android:title="Other options">
-            <Preference
-                android:title="Connect via WPS"
-                android:key="prefs_wifi_connect_wps"><!-- You can use Intents here -->
-            </Preference>
-        </PreferenceCategory>
-    </PreferenceScreen>
-    <PreferenceScreen
-        android:icon="@drawable/ic_settings_time"
-        android:key="prefs_date_time_screen_key"
-        android:title="Date &amp; time">
-        <CheckBoxPreference
-            android:defaultValue="true"
-            android:disableDependentsState="true"
-            android:key="prefs_date_time_automatic"
-            android:summaryOff="On"
-            android:summaryOn="Off"
-            android:title="Automatic date  &amp; time"></CheckBoxPreference>
-        <Preference
-            android:dependency="prefs_date_time_automatic"
-            android:key="prefs_date"
-            android:summary="01/01/1970"
-            android:title="Date"></Preference>
-        <Preference
-            android:dependency="prefs_date_time_automatic"
-            android:key="prefs_time"
-            android:summary="00:43 PM"
-            android:title="Time"></Preference>
-        <CheckBoxPreference
-            android:defaultValue="true"
-            android:disableDependentsState="true"
-            android:key="prefs_date_time_use_timezone"
-            android:summary="Use network provided time zone"
-            android:title="Automatic time zone"></CheckBoxPreference>
-        <Preference
-            android:dependency="prefs_date_time_use_timezone"
-            android:summary="GMT 07:00 Pacific Daylight Time"
-            android:title="Time zone"></Preference>
-    </PreferenceScreen>
-    <ListPreference
-        android:defaultValue="everyone"
-        android:icon="@drawable/ic_settings_parental_control"
-        android:entries="@array/pref_parent_control_entries"
-        android:entryValues="@array/pref_parent_control_entries_values"
-        android:key="prefs_parental_control_level_key"
-        android:dialogMessage="Allow contents rated for"
-        android:title="Parental Control">
-    </ListPreference>
-    <PreferenceScreen
-        android:icon="@drawable/ic_settings_apps"
-        android:key="prefs_apps_screen_key"
-        android:title="Apps">
-        <PreferenceCategory
-            android:key="prefs_app_settings_category"
-            android:title="Apps settings">
-            <PreferenceScreen
-                android:key="prefs_app_settings_screen_key"
-                android:summary="Lorem ipsum dolor sit amet consectur adipiscing."
-                android:title="App permissions">
-                <Preference
-                    android:icon="@mipmap/app_banner_sample_app"
-                    android:summary="45.5 MB"
-                    android:selectable="false"
-                    android:title="Application A"></Preference>
-                <Preference
-                    android:selectable="false"
-                    android:summary="Hier steht ein voelligst sinnfreier Text den ja sowieso niemandhier lesen kann. Deshalb macht es auch keinen Unterschied ob hier sinnvolles und nicht so sinnvolles Zeug steht. Hm... Sasha, du kannst das vielleicht lesen und denkst dir jetzt auch, dass ich voll haengen geblieben bin, oder?... ^_^"></Preference>
-                <SwitchPreference
-                    android:title="Notifications"
-                    android:key="pref_force_stop"><!-- Start an Intent --></SwitchPreference>
-                <Preference
-                    android:title="Uninstall"
-                    android:key="pref_uninstall"><!-- Start an Intent --></Preference>
-                <Preference
-                    android:title="More Information"
-                    android:key="pref_more_info"></Preference>
-            </PreferenceScreen>
-        </PreferenceCategory>
-        <PreferenceCategory
-            android:key="prefs_app_downloaded_apps_category"
-            android:title="Downloaded Apps">
-            <ListPreference
-                android:defaultValue="everyone"
-                android:entries="@array/pref_parent_control_entries"
-                android:entryValues="@array/pref_parent_control_entries_values"
-                android:key="prefs_parental_control_level_key"
-                android:title="Downloaded Apps">
-            </ListPreference>
-        </PreferenceCategory>
-    </PreferenceScreen>
-</PreferenceScreen>
diff --git a/samples/SupportLeanbackShowcase/build-local.py b/samples/SupportLeanbackShowcase/build-local.py
deleted file mode 100644
index fce46a1..0000000
--- a/samples/SupportLeanbackShowcase/build-local.py
+++ /dev/null
@@ -1,65 +0,0 @@
-# BUILDING SupportLeanbackShowcase app using local library.
-import sys
-import subprocess
-import os
-import fileinput
-import re
-
-# Does an inplace substitution of the pattern with newVal in inputFile
-def replace(inputFile, pattern, newVal, ):
-  print 'About to replace repo path to {0} in {1}'.format(newVal, inputFile)
-  replaced = False
-  try:
-    for line in fileinput.input(inputFile, inplace = 1):
-      if re.match(pattern, line, re.I|re.M):
-        line = re.sub(pattern, newVal, line)
-        replaced = True
-      print line,
-  except IOError as e:
-    print "Failed to open file ", e
-
-  if not replaced:
-    file = open(inputFile, "a")
-    file.write(newVal + "\n")
-
-# Finds the local leanback library version based on leanback-v17/maven-metadata.xml
-def lookup_local_library_version(repo_path):
-  leanback_maven_metadata_path = repo_path + "/out/host/gradle/frameworks/support/build/support_repo/com/android/support/leanback-v17/maven-metadata.xml"
-  if not os.path.exists(leanback_maven_metadata_path):
-    print "ERROR: Missing leanback-v17 library {} in local repo".format(leanback_maven_metadata_path)
-
-  file = open(leanback_maven_metadata_path, "r")
-  for line in file:
-    matchObj = re.match(r'\s*<version>(.*)</version>', line)
-    if matchObj:
-      return matchObj.group(1).strip(' \t\n\r')
-
-# Get repo path
-current_path = os.getcwd()
-index = current_path.find("development/samples/SupportLeanbackShowcase")
-if index < 0:
-  print "ERROR: Invalid repo {0}".format(current_path)
-  exit(0)
-
-repo_path = current_path[:index]
-support_frameworks_path = repo_path + "/frameworks/support"
-if not (os.path.isdir(repo_path) or os.path.isdir(support_frameworks_path)):
-  print 'ERROR : Repo "{0}" does not exist'.format(repo_path)
-  print 'Please run gradlew uploadArchives inside frameworks/support'
-  exit(0)
-
-# Substitute LIBRARY_VERSION/LOCAL_REPO in local.properties
-library_version = lookup_local_library_version(repo_path)
-replace(os.getcwd()+"/local.properties", r'(.*)LOCAL_REPO(.*)', 'LOCAL_REPO='+repo_path)
-replace(os.getcwd()+"/local.properties", r'(.*)LIBRARY_VERSION(.*)', 'LIBRARY_VERSION='+library_version)
-
-# Build
-print "Building SupportLeanbackShowcase app..."
-subprocess.call(["./gradlew", "assembleDebug"])
-
-#Install apk
-print "Installing SupportLeanbackShowcase..."
-subprocess.call(["adb", "install", "-r", "./app/build/outputs/apk/app-debug.apk"])
-
-print "Finished installing SupportLeanbackShowcase app."
-
diff --git a/samples/SupportLeanbackShowcase/build-release.py b/samples/SupportLeanbackShowcase/build-release.py
deleted file mode 100644
index a70e283..0000000
--- a/samples/SupportLeanbackShowcase/build-release.py
+++ /dev/null
@@ -1,39 +0,0 @@
-# BUILDING SupportLeanbackShowcase app using local library.
-import sys
-import subprocess
-import os
-import fileinput
-import re
-
-# Does an inplace substitution of the pattern with newVal in inputFile
-def replace(inputFile, pattern, newVal, ):
-  print 'About to replace repo path to {0} in {1}'.format(newVal, inputFile)
-  replaced = False
-  try:
-    for line in fileinput.input(inputFile, inplace = 1):
-      if re.match(pattern, line, re.I|re.M):
-        line = re.sub(pattern, newVal, line)
-        replaced = True
-      print line,
-  except IOError as e:
-    print "Failed to open file ", e
-
-  if not replaced:
-    file = open(inputFile, "a")
-    file.write(newVal + "\n")
-
-# Substitute LIBRARY_VERSION/LOCAL_REPO in local.properties
-# It will use default values in build.gradle
-replace(os.getcwd()+"/local.properties", r'(.*)LOCAL_REPO(.*)', 'LOCAL_REPO=')
-replace(os.getcwd()+"/local.properties", r'(.*)LIBRARY_VERSION(.*)', 'LIBRARY_VERSION=')
-
-# Build
-print "Building SupportLeanbackShowcase app..."
-subprocess.call(["./gradlew", "assembleDebug"])
-
-#Install apk
-print "Installing SupportLeanbackShowcase..."
-subprocess.call(["adb", "install", "-r", "./app/build/outputs/apk/app-debug.apk"])
-
-print "Finished installing SupportLeanbackShowcase app."
-
diff --git a/samples/SupportLeanbackShowcase/build.gradle b/samples/SupportLeanbackShowcase/build.gradle
deleted file mode 100644
index b8ec678..0000000
--- a/samples/SupportLeanbackShowcase/build.gradle
+++ /dev/null
@@ -1,33 +0,0 @@
-// Top-level build file where you can add configuration options common to all sub-projects/modules.
-ext {
-  // This will be set by local.properties file. By default it
-  // will use the public release version (23.2.1). You can run
-  // python build-local.py to build the local verison. That script will
-  // figure out the local library version based on maven metadata for leanback
-  // library and update local.properties file. Gradle build file in turn
-  // will pick up the settings from local.properties.
-  Properties properties = new Properties()
-  properties.load(project.rootProject.file('local.properties').newDataInputStream())
-  supportLibVersion = properties.getProperty('LIBRARY_VERSION')
-  supportLibVersion = supportLibVersion ? supportLibVersion : "23.2.1"
-  localRepo = properties.getProperty('LOCAL_REPO')
-}
-
-buildscript {
-    repositories {
-        jcenter()
-    }
-    dependencies {
-        classpath 'com.android.tools.build:gradle:2.1.0'
-
-        // NOTE: Do not place your application dependencies here; they belong
-        // in the individual module build.gradle files
-    }
-}
-
-allprojects {
-    repositories {
-        maven { url "${localRepo}/out/host/gradle/frameworks/support/build/support_repo/"}
-        jcenter()
-    }
-}
diff --git a/samples/SupportLeanbackShowcase/gradle.properties b/samples/SupportLeanbackShowcase/gradle.properties
deleted file mode 100644
index 1d3591c..0000000
--- a/samples/SupportLeanbackShowcase/gradle.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-# Project-wide Gradle settings.
-
-# IDE (e.g. Android Studio) users:
-# Gradle settings configured through the IDE *will override*
-# any settings specified in this file.
-
-# For more details on how to configure your build environment visit
-# http://www.gradle.org/docs/current/userguide/build_environment.html
-
-# Specifies the JVM arguments used for the daemon process.
-# The setting is particularly useful for tweaking memory settings.
-# Default value: -Xmx10248m -XX:MaxPermSize=256m
-# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
-
-# When configured, Gradle will run in incubating parallel mode.
-# This option should only be used with decoupled projects. More details, visit
-# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
-# org.gradle.parallel=true
\ No newline at end of file
diff --git a/samples/SupportLeanbackShowcase/gradle/wrapper/gradle-wrapper.jar b/samples/SupportLeanbackShowcase/gradle/wrapper/gradle-wrapper.jar
deleted file mode 100644
index 8c0fb64..0000000
--- a/samples/SupportLeanbackShowcase/gradle/wrapper/gradle-wrapper.jar
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/gradle/wrapper/gradle-wrapper.properties b/samples/SupportLeanbackShowcase/gradle/wrapper/gradle-wrapper.properties
deleted file mode 100644
index fdb8024..0000000
--- a/samples/SupportLeanbackShowcase/gradle/wrapper/gradle-wrapper.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-#Wed Apr 10 15:27:10 PDT 2013
-distributionBase=GRADLE_USER_HOME
-distributionPath=wrapper/dists
-zipStoreBase=GRADLE_USER_HOME
-zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-bin.zip
diff --git a/samples/SupportLeanbackShowcase/gradlew b/samples/SupportLeanbackShowcase/gradlew
deleted file mode 100755
index 91a7e26..0000000
--- a/samples/SupportLeanbackShowcase/gradlew
+++ /dev/null
@@ -1,164 +0,0 @@
-#!/usr/bin/env bash
-
-##############################################################################
-##
-##  Gradle start up script for UN*X
-##
-##############################################################################
-
-# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS=""
-
-APP_NAME="Gradle"
-APP_BASE_NAME=`basename "$0"`
-
-# Use the maximum available, or set MAX_FD != -1 to use that value.
-MAX_FD="maximum"
-
-warn ( ) {
-    echo "$*"
-}
-
-die ( ) {
-    echo
-    echo "$*"
-    echo
-    exit 1
-}
-
-# OS specific support (must be 'true' or 'false').
-cygwin=false
-msys=false
-darwin=false
-case "`uname`" in
-  CYGWIN* )
-    cygwin=true
-    ;;
-  Darwin* )
-    darwin=true
-    ;;
-  MINGW* )
-    msys=true
-    ;;
-esac
-
-# For Cygwin, ensure paths are in UNIX format before anything is touched.
-if $cygwin ; then
-    [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
-fi
-
-# Attempt to set APP_HOME
-# Resolve links: $0 may be a link
-PRG="$0"
-# Need this for relative symlinks.
-while [ -h "$PRG" ] ; do
-    ls=`ls -ld "$PRG"`
-    link=`expr "$ls" : '.*-> \(.*\)$'`
-    if expr "$link" : '/.*' > /dev/null; then
-        PRG="$link"
-    else
-        PRG=`dirname "$PRG"`"/$link"
-    fi
-done
-SAVED="`pwd`"
-cd "`dirname \"$PRG\"`/" >&-
-APP_HOME="`pwd -P`"
-cd "$SAVED" >&-
-
-CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
-
-# Determine the Java command to use to start the JVM.
-if [ -n "$JAVA_HOME" ] ; then
-    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
-        # IBM's JDK on AIX uses strange locations for the executables
-        JAVACMD="$JAVA_HOME/jre/sh/java"
-    else
-        JAVACMD="$JAVA_HOME/bin/java"
-    fi
-    if [ ! -x "$JAVACMD" ] ; then
-        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
-    fi
-else
-    JAVACMD="java"
-    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
-fi
-
-# Increase the maximum file descriptors if we can.
-if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
-    MAX_FD_LIMIT=`ulimit -H -n`
-    if [ $? -eq 0 ] ; then
-        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
-            MAX_FD="$MAX_FD_LIMIT"
-        fi
-        ulimit -n $MAX_FD
-        if [ $? -ne 0 ] ; then
-            warn "Could not set maximum file descriptor limit: $MAX_FD"
-        fi
-    else
-        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
-    fi
-fi
-
-# For Darwin, add options to specify how the application appears in the dock
-if $darwin; then
-    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
-fi
-
-# For Cygwin, switch paths to Windows format before running java
-if $cygwin ; then
-    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
-    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
-
-    # We build the pattern for arguments to be converted via cygpath
-    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
-    SEP=""
-    for dir in $ROOTDIRSRAW ; do
-        ROOTDIRS="$ROOTDIRS$SEP$dir"
-        SEP="|"
-    done
-    OURCYGPATTERN="(^($ROOTDIRS))"
-    # Add a user-defined pattern to the cygpath arguments
-    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
-        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
-    fi
-    # Now convert the arguments - kludge to limit ourselves to /bin/sh
-    i=0
-    for arg in "$@" ; do
-        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
-        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
-
-        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
-            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
-        else
-            eval `echo args$i`="\"$arg\""
-        fi
-        i=$((i+1))
-    done
-    case $i in
-        (0) set -- ;;
-        (1) set -- "$args0" ;;
-        (2) set -- "$args0" "$args1" ;;
-        (3) set -- "$args0" "$args1" "$args2" ;;
-        (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
-        (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
-        (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
-        (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
-        (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
-        (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
-    esac
-fi
-
-# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
-function splitJvmOpts() {
-    JVM_OPTS=("$@")
-}
-eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
-JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
-
-exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/samples/SupportLeanbackShowcase/gradlew.bat b/samples/SupportLeanbackShowcase/gradlew.bat
deleted file mode 100644
index aec9973..0000000
--- a/samples/SupportLeanbackShowcase/gradlew.bat
+++ /dev/null
@@ -1,90 +0,0 @@
-@if "%DEBUG%" == "" @echo off

-@rem ##########################################################################

-@rem

-@rem  Gradle startup script for Windows

-@rem

-@rem ##########################################################################

-

-@rem Set local scope for the variables with windows NT shell

-if "%OS%"=="Windows_NT" setlocal

-

-@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.

-set DEFAULT_JVM_OPTS=

-

-set DIRNAME=%~dp0

-if "%DIRNAME%" == "" set DIRNAME=.

-set APP_BASE_NAME=%~n0

-set APP_HOME=%DIRNAME%

-

-@rem Find java.exe

-if defined JAVA_HOME goto findJavaFromJavaHome

-

-set JAVA_EXE=java.exe

-%JAVA_EXE% -version >NUL 2>&1

-if "%ERRORLEVEL%" == "0" goto init

-

-echo.

-echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.

-echo.

-echo Please set the JAVA_HOME variable in your environment to match the

-echo location of your Java installation.

-

-goto fail

-

-:findJavaFromJavaHome

-set JAVA_HOME=%JAVA_HOME:"=%

-set JAVA_EXE=%JAVA_HOME%/bin/java.exe

-

-if exist "%JAVA_EXE%" goto init

-

-echo.

-echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%

-echo.

-echo Please set the JAVA_HOME variable in your environment to match the

-echo location of your Java installation.

-

-goto fail

-

-:init

-@rem Get command-line arguments, handling Windowz variants

-

-if not "%OS%" == "Windows_NT" goto win9xME_args

-if "%@eval[2+2]" == "4" goto 4NT_args

-

-:win9xME_args

-@rem Slurp the command line arguments.

-set CMD_LINE_ARGS=

-set _SKIP=2

-

-:win9xME_args_slurp

-if "x%~1" == "x" goto execute

-

-set CMD_LINE_ARGS=%*

-goto execute

-

-:4NT_args

-@rem Get arguments from the 4NT Shell from JP Software

-set CMD_LINE_ARGS=%$

-

-:execute

-@rem Setup the command line

-

-set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar

-

-@rem Execute Gradle

-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%

-

-:end

-@rem End local scope for the variables with windows NT shell

-if "%ERRORLEVEL%"=="0" goto mainEnd

-

-:fail

-rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of

-rem the _cmd.exe /c_ return code!

-if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1

-exit /b 1

-

-:mainEnd

-if "%OS%"=="Windows_NT" endlocal

-

-:omega

diff --git a/samples/SupportLeanbackShowcase/libs/gson-1.7.2.jar b/samples/SupportLeanbackShowcase/libs/gson-1.7.2.jar
deleted file mode 100644
index 99e7afc..0000000
--- a/samples/SupportLeanbackShowcase/libs/gson-1.7.2.jar
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/libs/picasso-2.5.2.jar b/samples/SupportLeanbackShowcase/libs/picasso-2.5.2.jar
deleted file mode 100644
index 6acbaa1..0000000
--- a/samples/SupportLeanbackShowcase/libs/picasso-2.5.2.jar
+++ /dev/null
Binary files differ
diff --git a/samples/SupportLeanbackShowcase/settings.gradle b/samples/SupportLeanbackShowcase/settings.gradle
deleted file mode 100644
index e7b4def..0000000
--- a/samples/SupportLeanbackShowcase/settings.gradle
+++ /dev/null
@@ -1 +0,0 @@
-include ':app'
diff --git a/samples/SupportPercentDemos/Android.mk b/samples/SupportPercentDemos/Android.mk
deleted file mode 100644
index 164829f..0000000
--- a/samples/SupportPercentDemos/Android.mk
+++ /dev/null
@@ -1,36 +0,0 @@
-# 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.
-
-LOCAL_PATH:= $(call my-dir)
-
-# Build the samples.
-# We need to add some special AAPT flags to generate R classes
-# for resources that are included from the libraries.
-include $(CLEAR_VARS)
-LOCAL_PACKAGE_NAME := SupportPercentDemos
-LOCAL_MODULE_TAGS := samples
-LOCAL_SDK_VERSION := current
-LOCAL_MIN_SDK_VERSION := 7
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-LOCAL_STATIC_JAVA_LIBRARIES := \
-        android-support-percent \
-        android-support-v4 \
-        android-support-v13
-LOCAL_RESOURCE_DIR = \
-        $(LOCAL_PATH)/res \
-        frameworks/support/percent/res
-LOCAL_AAPT_FLAGS := \
-        --auto-add-overlay \
-        --extra-packages android.support.percent
-include $(BUILD_PACKAGE)
diff --git a/samples/SupportPercentDemos/AndroidManifest.xml b/samples/SupportPercentDemos/AndroidManifest.xml
deleted file mode 100644
index 71fea32..0000000
--- a/samples/SupportPercentDemos/AndroidManifest.xml
+++ /dev/null
@@ -1,96 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-
-<!-- Declare the contents of this Android application.  The namespace
-     attribute brings in the Android platform namespace, and the package
-     supplies a unique name for the application.  When writing your
-     own application, the package name must be changed from "com.example.*"
-     to come from a domain that you own or have control over. -->
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.example.android.support.percent">
-
-    <uses-sdk android:minSdkVersion="7" android:targetSdkVersion="21" />
-
-    <application android:label="@string/activity_sample_code"
-            android:supportsRtl="true"
-            android:icon="@drawable/app_sample_code">
-
-        <activity android:name="SupportPercentDemos">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.DEFAULT" />
-                <category android:name="android.intent.category.LAUNCHER" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".SimplePercentFrameLayoutActivity"
-                  android:label="@string/simple_percent_frame_demo">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN"/>
-                <category android:name="com.example.android.supportpercent.SAMPLE_CODE"/>
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".IncludePercentFrameLayoutActivity"
-                  android:label="@string/include_percent_frame_demo">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN"/>
-                <category android:name="com.example.android.supportpercent.SAMPLE_CODE"/>
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".PercentFrameLayoutActivityHPaddings"
-                  android:label="@string/percent_frame_hpaddings_demo">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN"/>
-                <category android:name="com.example.android.supportpercent.SAMPLE_CODE"/>
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".PercentFrameLayoutActivityVPaddings"
-                  android:label="@string/percent_frame_vpaddings_demo">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN"/>
-                <category android:name="com.example.android.supportpercent.SAMPLE_CODE"/>
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".SimplePercentRelativeLayoutActivity"
-                  android:label="@string/simple_percent_relative_demo">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN"/>
-                <category android:name="com.example.android.supportpercent.SAMPLE_CODE"/>
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".PercentRelativeLayoutActivityHPaddings"
-                  android:label="@string/percent_relative_hpaddings_demo">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN"/>
-                <category android:name="com.example.android.supportpercent.SAMPLE_CODE"/>
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".PercentRelativeLayoutActivityVPaddings"
-                  android:label="@string/percent_relative_vpaddings_demo">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN"/>
-                <category android:name="com.example.android.supportpercent.SAMPLE_CODE"/>
-            </intent-filter>
-        </activity>
-
-    </application>
-</manifest>
diff --git a/samples/SupportPercentDemos/res/drawable-hdpi/app_sample_code.png b/samples/SupportPercentDemos/res/drawable-hdpi/app_sample_code.png
deleted file mode 100755
index 66a1984..0000000
--- a/samples/SupportPercentDemos/res/drawable-hdpi/app_sample_code.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportPercentDemos/res/drawable-mdpi/app_sample_code.png b/samples/SupportPercentDemos/res/drawable-mdpi/app_sample_code.png
deleted file mode 100644
index 5ae7701..0000000
--- a/samples/SupportPercentDemos/res/drawable-mdpi/app_sample_code.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportPercentDemos/res/layout/include_percent_frame_layout_activity.xml b/samples/SupportPercentDemos/res/layout/include_percent_frame_layout_activity.xml
deleted file mode 100644
index cf509cb..0000000
--- a/samples/SupportPercentDemos/res/layout/include_percent_frame_layout_activity.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<android.support.percent.PercentFrameLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent">
-    <include layout="@layout/include_percent_frame_layout_content" />
-</android.support.percent.PercentFrameLayout>
diff --git a/samples/SupportPercentDemos/res/layout/include_percent_frame_layout_content.xml b/samples/SupportPercentDemos/res/layout/include_percent_frame_layout_content.xml
deleted file mode 100644
index 2e5a659..0000000
--- a/samples/SupportPercentDemos/res/layout/include_percent_frame_layout_content.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<merge
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto">
-    <View
-        app:layout_widthPercent="60%"
-        app:layout_heightPercent="60%"
-        app:layout_marginTopPercent="20%"
-        app:layout_marginLeftPercent="20%"
-        android:background="#FF0000" />
-    <View
-        android:layout_gravity="bottom|right"
-        app:layout_widthPercent="20%"
-        app:layout_heightPercent="20%"
-        app:layout_marginRightPercent="40%"
-        app:layout_marginBottomPercent="40%"
-        android:background="#0000FF" />
-</merge>
diff --git a/samples/SupportPercentDemos/res/layout/percent_frame_layout_activity_hpaddings.xml b/samples/SupportPercentDemos/res/layout/percent_frame_layout_activity_hpaddings.xml
deleted file mode 100644
index 5cc476d..0000000
--- a/samples/SupportPercentDemos/res/layout/percent_frame_layout_activity_hpaddings.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2016 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<android.support.percent.PercentFrameLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:paddingLeft="48dip"
-    android:paddingRight="64dip">
-    <View
-        android:id="@+id/child1"
-        app:layout_widthPercent="50%"
-        android:layout_height="match_parent"
-        android:layout_gravity="left"
-        android:background="#80FF0000" />
-    <View
-        android:id="@+id/child2"
-        app:layout_widthPercent="50%"
-        android:layout_height="match_parent"
-        android:layout_gravity="right"
-        android:background="#800000FF" />
-</android.support.percent.PercentFrameLayout>
diff --git a/samples/SupportPercentDemos/res/layout/percent_frame_layout_activity_vpaddings.xml b/samples/SupportPercentDemos/res/layout/percent_frame_layout_activity_vpaddings.xml
deleted file mode 100644
index d71c368..0000000
--- a/samples/SupportPercentDemos/res/layout/percent_frame_layout_activity_vpaddings.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2016 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<android.support.percent.PercentFrameLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:paddingTop="48dip"
-    android:paddingBottom="64dip">
-    <View
-        android:id="@+id/child1"
-        android:layout_width="match_parent"
-        app:layout_heightPercent="50%"
-        android:layout_gravity="top"
-        android:background="#80FF0000" />
-    <View
-        android:id="@+id/child2"
-        android:layout_width="match_parent"
-        app:layout_heightPercent="50%"
-        android:layout_gravity="bottom"
-        android:background="#800000FF" />
-</android.support.percent.PercentFrameLayout>
diff --git a/samples/SupportPercentDemos/res/layout/percent_relative_layout_activity_hpaddings.xml b/samples/SupportPercentDemos/res/layout/percent_relative_layout_activity_hpaddings.xml
deleted file mode 100644
index 2d6f1e0..0000000
--- a/samples/SupportPercentDemos/res/layout/percent_relative_layout_activity_hpaddings.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2016 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<android.support.percent.PercentRelativeLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:paddingLeft="48dip"
-    android:paddingRight="64dip">
-    <View
-        android:id="@+id/child1"
-        app:layout_widthPercent="50%"
-        android:layout_height="match_parent"
-        android:layout_alignParentLeft="true"
-        android:background="#80FF0000" />
-    <View
-        android:id="@+id/child2"
-        app:layout_widthPercent="50%"
-        android:layout_height="match_parent"
-        android:layout_toRightOf="@id/child1"
-        android:background="#800000FF" />
-</android.support.percent.PercentRelativeLayout>
diff --git a/samples/SupportPercentDemos/res/layout/percent_relative_layout_activity_vpaddings.xml b/samples/SupportPercentDemos/res/layout/percent_relative_layout_activity_vpaddings.xml
deleted file mode 100644
index 33defde..0000000
--- a/samples/SupportPercentDemos/res/layout/percent_relative_layout_activity_vpaddings.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2016 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<android.support.percent.PercentRelativeLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:paddingTop="48dip"
-    android:paddingBottom="64dip">
-    <View
-        android:id="@+id/child1"
-        android:layout_width="match_parent"
-        app:layout_heightPercent="50%"
-        android:layout_alignParentTop="true"
-        android:background="#80FF0000" />
-    <View
-        android:id="@+id/child2"
-        android:layout_width="match_parent"
-        app:layout_heightPercent="50%"
-        android:layout_below="@id/child1"
-        android:background="#800000FF" />
-</android.support.percent.PercentRelativeLayout>
diff --git a/samples/SupportPercentDemos/res/layout/simple_percent_frame_layout_activity.xml b/samples/SupportPercentDemos/res/layout/simple_percent_frame_layout_activity.xml
deleted file mode 100644
index d662b36..0000000
--- a/samples/SupportPercentDemos/res/layout/simple_percent_frame_layout_activity.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<android.support.percent.PercentFrameLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent">
-    <View
-        app:layout_widthPercent="50%"
-        app:layout_heightPercent="50%"
-        app:layout_marginTopPercent="25%"
-        app:layout_marginLeftPercent="25%"
-        android:background="#FF0000" />
-    <View
-        android:layout_gravity="bottom|right"
-        app:layout_widthPercent="33.33%"
-        app:layout_heightPercent="33.33%"
-        app:layout_marginRightPercent="33.33%"
-        app:layout_marginBottomPercent="33.33%"
-        android:background="#0000FF" />
-</android.support.percent.PercentFrameLayout>
diff --git a/samples/SupportPercentDemos/res/layout/simple_percent_relative_layout_activity.xml b/samples/SupportPercentDemos/res/layout/simple_percent_relative_layout_activity.xml
deleted file mode 100644
index 40904c1..0000000
--- a/samples/SupportPercentDemos/res/layout/simple_percent_relative_layout_activity.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<android.support.percent.PercentRelativeLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent">
-    <View
-        android:id="@+id/left"
-        app:layout_widthPercent="25%"
-        app:layout_heightPercent="50%"
-        app:layout_marginLeftPercent="25%"
-        app:layout_marginTopPercent="25%"
-        android:background="#FF0000" />
-    <View
-        app:layout_widthPercent="25%"
-        app:layout_heightPercent="50%"
-        app:layout_marginTopPercent="25%"
-        android:layout_toRightOf="@id/left"
-        android:background="#0000FF" />
-</android.support.percent.PercentRelativeLayout>
diff --git a/samples/SupportPercentDemos/res/values/strings.xml b/samples/SupportPercentDemos/res/values/strings.xml
deleted file mode 100644
index 782532e..0000000
--- a/samples/SupportPercentDemos/res/values/strings.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-
-<resources>
-    <string name="activity_sample_code">Support Percent Demos</string>
-
-    <string name="simple_percent_frame_demo">PercentFrameLayout / Basic</string>
-    <string name="include_percent_frame_demo">PercentFrameLayout / With include</string>
-    <string name="percent_frame_vpaddings_demo">PercentFrameLayout / With vertical paddings</string>
-    <string name="percent_frame_hpaddings_demo">PercentFrameLayout / With horizontal paddings</string>
-    <string name="simple_percent_relative_demo">PercentRelativeLayout / Basic</string>
-    <string name="percent_relative_vpaddings_demo">PercentRelativeLayout / With vertical paddings</string>
-    <string name="percent_relative_hpaddings_demo">PercentRelativeLayout / With horizontal paddings</string>
-</resources>
diff --git a/samples/SupportPercentDemos/src/com/example/android/support/percent/IncludePercentFrameLayoutActivity.java b/samples/SupportPercentDemos/src/com/example/android/support/percent/IncludePercentFrameLayoutActivity.java
deleted file mode 100644
index 1d9dad9..0000000
--- a/samples/SupportPercentDemos/src/com/example/android/support/percent/IncludePercentFrameLayoutActivity.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.support.percent;
-
-import android.app.Activity;
-import android.os.Bundle;
-
-public class IncludePercentFrameLayoutActivity extends Activity {
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.include_percent_frame_layout_activity);
-    }
-}
diff --git a/samples/SupportPercentDemos/src/com/example/android/support/percent/PercentFrameLayoutActivityHPaddings.java b/samples/SupportPercentDemos/src/com/example/android/support/percent/PercentFrameLayoutActivityHPaddings.java
deleted file mode 100644
index bf5e5ea..0000000
--- a/samples/SupportPercentDemos/src/com/example/android/support/percent/PercentFrameLayoutActivityHPaddings.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.support.percent;
-
-import android.app.Activity;
-import android.os.Bundle;
-
-public class PercentFrameLayoutActivityHPaddings extends Activity {
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.percent_frame_layout_activity_hpaddings);
-    }
-}
diff --git a/samples/SupportPercentDemos/src/com/example/android/support/percent/PercentFrameLayoutActivityVPaddings.java b/samples/SupportPercentDemos/src/com/example/android/support/percent/PercentFrameLayoutActivityVPaddings.java
deleted file mode 100644
index 34f9ea7..0000000
--- a/samples/SupportPercentDemos/src/com/example/android/support/percent/PercentFrameLayoutActivityVPaddings.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.support.percent;
-
-import android.app.Activity;
-import android.os.Bundle;
-
-public class PercentFrameLayoutActivityVPaddings extends Activity {
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.percent_frame_layout_activity_vpaddings);
-    }
-}
diff --git a/samples/SupportPercentDemos/src/com/example/android/support/percent/PercentRelativeLayoutActivityHPaddings.java b/samples/SupportPercentDemos/src/com/example/android/support/percent/PercentRelativeLayoutActivityHPaddings.java
deleted file mode 100644
index 232fdbe..0000000
--- a/samples/SupportPercentDemos/src/com/example/android/support/percent/PercentRelativeLayoutActivityHPaddings.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.support.percent;
-
-import android.app.Activity;
-import android.os.Bundle;
-
-public class PercentRelativeLayoutActivityHPaddings extends Activity {
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.percent_relative_layout_activity_hpaddings);
-    }
-}
diff --git a/samples/SupportPercentDemos/src/com/example/android/support/percent/PercentRelativeLayoutActivityVPaddings.java b/samples/SupportPercentDemos/src/com/example/android/support/percent/PercentRelativeLayoutActivityVPaddings.java
deleted file mode 100644
index 928a511..0000000
--- a/samples/SupportPercentDemos/src/com/example/android/support/percent/PercentRelativeLayoutActivityVPaddings.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.support.percent;
-
-import android.app.Activity;
-import android.os.Bundle;
-
-public class PercentRelativeLayoutActivityVPaddings extends Activity {
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.percent_relative_layout_activity_vpaddings);
-    }
-}
diff --git a/samples/SupportPercentDemos/src/com/example/android/support/percent/SimplePercentFrameLayoutActivity.java b/samples/SupportPercentDemos/src/com/example/android/support/percent/SimplePercentFrameLayoutActivity.java
deleted file mode 100644
index b556692..0000000
--- a/samples/SupportPercentDemos/src/com/example/android/support/percent/SimplePercentFrameLayoutActivity.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.support.percent;
-
-import android.app.Activity;
-import android.os.Bundle;
-
-public class SimplePercentFrameLayoutActivity extends Activity {
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.simple_percent_frame_layout_activity);
-    }
-}
diff --git a/samples/SupportPercentDemos/src/com/example/android/support/percent/SimplePercentRelativeLayoutActivity.java b/samples/SupportPercentDemos/src/com/example/android/support/percent/SimplePercentRelativeLayoutActivity.java
deleted file mode 100644
index 2b7ffb7..0000000
--- a/samples/SupportPercentDemos/src/com/example/android/support/percent/SimplePercentRelativeLayoutActivity.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.support.percent;
-
-import android.app.Activity;
-import android.os.Bundle;
-
-public class SimplePercentRelativeLayoutActivity extends Activity {
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.simple_percent_relative_layout_activity);
-    }
-}
diff --git a/samples/SupportPercentDemos/src/com/example/android/support/percent/SupportPercentDemos.java b/samples/SupportPercentDemos/src/com/example/android/support/percent/SupportPercentDemos.java
deleted file mode 100644
index eb2af5e..0000000
--- a/samples/SupportPercentDemos/src/com/example/android/support/percent/SupportPercentDemos.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- * 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.support.percent;
-
-import android.app.ListActivity;
-import android.content.Intent;
-import android.content.pm.PackageManager;
-import android.content.pm.ResolveInfo;
-import android.os.Bundle;
-import android.view.View;
-import android.widget.ListView;
-import android.widget.SimpleAdapter;
-
-import java.text.Collator;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-public class SupportPercentDemos extends ListActivity {
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        Intent intent = getIntent();
-        String path = intent.getStringExtra("com.example.android.apis.Path");
-
-        if (path == null) {
-            path = "";
-        }
-
-        setListAdapter(new SimpleAdapter(this, getData(path),
-                android.R.layout.simple_list_item_1, new String[] { "title" },
-                new int[] { android.R.id.text1 }));
-        getListView().setTextFilterEnabled(true);
-    }
-
-    protected List<Map<String, Object>> getData(String prefix) {
-        List<Map<String, Object>> myData = new ArrayList<Map<String, Object>>();
-
-        Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
-        mainIntent.addCategory("com.example.android.supportpercent.SAMPLE_CODE");
-
-        PackageManager pm = getPackageManager();
-        List<ResolveInfo> list = pm.queryIntentActivities(mainIntent, 0);
-
-        if (null == list)
-            return myData;
-
-        String[] prefixPath;
-        String prefixWithSlash = prefix;
-
-        if (prefix.equals("")) {
-            prefixPath = null;
-        } else {
-            prefixPath = prefix.split("/");
-            prefixWithSlash = prefix + "/";
-        }
-
-        int len = list.size();
-
-        Map<String, Boolean> entries = new HashMap<String, Boolean>();
-
-        for (int i = 0; i < len; i++) {
-            ResolveInfo info = list.get(i);
-            CharSequence labelSeq = info.loadLabel(pm);
-            String label = labelSeq != null
-                    ? labelSeq.toString()
-                    : info.activityInfo.name;
-
-            if (prefixWithSlash.length() == 0 || label.startsWith(prefixWithSlash)) {
-
-                String[] labelPath = label.split("/");
-
-                String nextLabel = prefixPath == null ? labelPath[0] : labelPath[prefixPath.length];
-
-                if ((prefixPath != null ? prefixPath.length : 0) == labelPath.length - 1) {
-                    addItem(myData, nextLabel, activityIntent(
-                            info.activityInfo.applicationInfo.packageName,
-                            info.activityInfo.name));
-                } else {
-                    if (entries.get(nextLabel) == null) {
-                        addItem(myData, nextLabel, browseIntent(
-                                prefix.equals("") ? nextLabel : prefix + "/" + nextLabel));
-                        entries.put(nextLabel, true);
-                    }
-                }
-            }
-        }
-
-        Collections.sort(myData, sDisplayNameComparator);
-
-        return myData;
-    }
-
-    private final static Comparator<Map<String, Object>> sDisplayNameComparator =
-            new Comparator<Map<String, Object>>() {
-                private final Collator collator = Collator.getInstance();
-
-                @Override
-                public int compare(Map<String, Object> map1, Map<String, Object> map2) {
-                    return collator.compare(map1.get("title"), map2.get("title"));
-                }
-            };
-
-    protected Intent activityIntent(String pkg, String componentName) {
-        Intent result = new Intent();
-        result.setClassName(pkg, componentName);
-        return result;
-    }
-
-    protected Intent browseIntent(String path) {
-        Intent result = new Intent();
-        result.setClass(this, SupportPercentDemos.class);
-        result.putExtra("com.example.android.apis.Path", path);
-        return result;
-    }
-
-    protected void addItem(List<Map<String, Object>> data, String name, Intent intent) {
-        Map<String, Object> temp = new HashMap<String, Object>();
-        temp.put("title", name);
-        temp.put("intent", intent);
-        data.add(temp);
-    }
-
-    @Override
-    @SuppressWarnings("unchecked")
-    protected void onListItemClick(ListView l, View v, int position, long id) {
-        Map<String, Object> map = (Map<String, Object>)l.getItemAtPosition(position);
-
-        Intent intent = (Intent) map.get("intent");
-        startActivity(intent);
-    }
-}
diff --git a/samples/SupportVectorDrawable/animated/Android.mk b/samples/SupportVectorDrawable/animated/Android.mk
deleted file mode 100644
index 1a34f53..0000000
--- a/samples/SupportVectorDrawable/animated/Android.mk
+++ /dev/null
@@ -1,42 +0,0 @@
-# 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.
-
-LOCAL_PATH := $(call my-dir)
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE_TAGS := tests
-
-LOCAL_SDK_VERSION := current
-
-LOCAL_MIN_SDK_VERSION := 11
-
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-
-LOCAL_PACKAGE_NAME := SupportAnimatedVectorDrawable
-
-LOCAL_STATIC_JAVA_LIBRARIES := android-support-animatedvectordrawable \
-        android-support-vectordrawable \
-        android-support-v4
-
-LOCAL_AAPT_FLAGS += --auto-add-overlay \
-        --extra-packages android.support.graphics.drawable \
-        --no-version-vectors
-
-include $(BUILD_PACKAGE)
-
-LOCAL_PROGUARD_FLAG_FILES := proguard.flags
-
-# Use the following include to make our test apk.
-include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/samples/SupportVectorDrawable/animated/AndroidManifest.xml b/samples/SupportVectorDrawable/animated/AndroidManifest.xml
deleted file mode 100644
index 55d6bc6..0000000
--- a/samples/SupportVectorDrawable/animated/AndroidManifest.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.example.android.support.vectordrawable" >
-
-    <uses-sdk android:minSdkVersion="11" android:targetSdkVersion="23"/>
-
-    <application android:icon="@drawable/app_sample_code" android:label="AnimatedVectorDrawableCompatTest" >
-        <activity android:name="com.example.android.support.vectordrawable.app.AnimatedButtonBackground" />
-        <intent-filter>
-            <action android:name="android.intent.action.MAIN" />
-
-            <category android:name="android.intent.category.LAUNCHER" />
-        </intent-filter>
-    </application>
-
-</manifest>
\ No newline at end of file
diff --git a/samples/SupportVectorDrawable/animated/res/anim/alpha_animation_progress_bar.xml b/samples/SupportVectorDrawable/animated/res/anim/alpha_animation_progress_bar.xml
deleted file mode 100644
index 2463a89..0000000
--- a/samples/SupportVectorDrawable/animated/res/anim/alpha_animation_progress_bar.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<!-- 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.
--->
-
-<set xmlns:android="http://schemas.android.com/apk/res/android" >
-
-    <objectAnimator
-        android:duration="3350"
-        android:propertyName="alpha"
-        android:valueFrom="1"
-        android:valueTo="0.2" />
-
-</set>
\ No newline at end of file
diff --git a/samples/SupportVectorDrawable/animated/res/anim/animation_grouping_1_01.xml b/samples/SupportVectorDrawable/animated/res/anim/animation_grouping_1_01.xml
deleted file mode 100644
index 36c297f..0000000
--- a/samples/SupportVectorDrawable/animated/res/anim/animation_grouping_1_01.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- 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.
--->
-
-<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
-    android:duration="3300"
-    android:propertyName="rotation"
-    android:valueFrom="0"
-    android:valueTo="450" />
diff --git a/samples/SupportVectorDrawable/animated/res/anim/trim_path_animation_progress_bar.xml b/samples/SupportVectorDrawable/animated/res/anim/trim_path_animation_progress_bar.xml
deleted file mode 100644
index 388c759..0000000
--- a/samples/SupportVectorDrawable/animated/res/anim/trim_path_animation_progress_bar.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- 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.
--->
-
-<set xmlns:android="http://schemas.android.com/apk/res/android" >
-
-    <objectAnimator
-        android:duration="1300"
-        android:interpolator="@android:anim/linear_interpolator"
-        android:propertyName="trimPathStart"
-        android:repeatCount="-1"
-        android:valueFrom="0"
-        android:valueTo="0.75"
-        android:valueType="floatType" />
-    <objectAnimator
-        android:duration="1300"
-        android:interpolator="@android:anim/linear_interpolator"
-        android:propertyName="trimPathEnd"
-        android:repeatCount="-1"
-        android:valueFrom="0.25"
-        android:valueTo="1.0"
-        android:valueType="floatType" />
-    <objectAnimator
-        android:duration="1300"
-        android:interpolator="@android:anim/linear_interpolator"
-        android:propertyName="trimPathOffset"
-        android:repeatCount="-1"
-        android:valueFrom="0"
-        android:valueTo="0.25"
-        android:valueType="floatType" />
-
-</set>
\ No newline at end of file
diff --git a/samples/SupportVectorDrawable/animated/res/drawable/animation_vector_drawable_grouping_1.xml b/samples/SupportVectorDrawable/animated/res/drawable/animation_vector_drawable_grouping_1.xml
deleted file mode 100644
index dac981b..0000000
--- a/samples/SupportVectorDrawable/animated/res/drawable/animation_vector_drawable_grouping_1.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<!--
- 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.
--->
-<animated-vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:drawable="@drawable/vector_drawable_grouping_1" >
-
-    <target
-        android:name="sun"
-        android:animation="@anim/animation_grouping_1_01" />
-    <target
-        android:name="earth"
-        android:animation="@anim/animation_grouping_1_01" />
-
-</animated-vector>
\ No newline at end of file
diff --git a/samples/SupportVectorDrawable/animated/res/drawable/animation_vector_progress_bar.xml b/samples/SupportVectorDrawable/animated/res/drawable/animation_vector_progress_bar.xml
deleted file mode 100644
index 2944dc2..0000000
--- a/samples/SupportVectorDrawable/animated/res/drawable/animation_vector_progress_bar.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<!--
- 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.
--->
-<animated-vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:drawable="@drawable/vector_drawable_progress_bar" >
-
-    <target
-        android:name="pie1"
-        android:animation="@anim/trim_path_animation_progress_bar" />
-    <target
-        android:name="root_bar"
-        android:animation="@anim/alpha_animation_progress_bar" />
-</animated-vector>
\ No newline at end of file
diff --git a/samples/SupportVectorDrawable/animated/res/drawable/app_sample_code.png b/samples/SupportVectorDrawable/animated/res/drawable/app_sample_code.png
deleted file mode 100755
index 66a1984..0000000
--- a/samples/SupportVectorDrawable/animated/res/drawable/app_sample_code.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportVectorDrawable/animated/res/drawable/btn_radio_on_to_off_bundle.xml b/samples/SupportVectorDrawable/animated/res/drawable/btn_radio_on_to_off_bundle.xml
deleted file mode 100644
index f00d888..0000000
--- a/samples/SupportVectorDrawable/animated/res/drawable/btn_radio_on_to_off_bundle.xml
+++ /dev/null
@@ -1,187 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<animated-vector xmlns:aapt="http://schemas.android.com/aapt"
-                 xmlns:android="http://schemas.android.com/apk/res/android">
-    <aapt:attr name="android:drawable">
-        <vector
-                android:width="32dp"
-                android:viewportWidth="32"
-                android:height="32dp"
-                android:viewportHeight="32">
-            <group
-                    android:name="btn_radio_to_off_mtrl_0"
-                    android:translateX="16"
-                    android:translateY="16">
-                <group
-                        android:name="ring_outer">
-                    <path
-                            android:name="ring_outer_path"
-                            android:strokeColor="#FF000000"
-                            android:strokeWidth="2"
-                            android:pathData="M 0.0,-9.0 c 4.9705627482,0.0 9.0,4.0294372518 9.0,9.0 c 0.0,4.9705627482 -4.0294372518,9.0 -9.0,9.0 c -4.9705627482,0.0 -9.0,-4.0294372518 -9.0,-9.0 c 0.0,-4.9705627482 4.0294372518,-9.0 9.0,-9.0 Z"/>
-                </group>
-                <group
-                        android:name="dot_group">
-                    <path
-                            android:name="dot_path"
-                            android:pathData="M 0.0,-5.0 c -2.7619934082,0.0 -5.0,2.2380065918 -5.0,5.0 c 0.0,2.7619934082 2.2380065918,5.0 5.0,5.0 c 2.7619934082,0.0 5.0,-2.2380065918 5.0,-5.0 c 0.0,-2.7619934082 -2.2380065918,-5.0 -5.0,-5.0 Z"
-                            android:fillColor="#FF000000"/>
-                </group>
-            </group>
-        </vector>
-    </aapt:attr>
-    <target android:name="ring_outer">
-        <aapt:attr name="android:animation">
-            <set>
-                <set
-                        android:ordering="sequentially" >
-                    <objectAnimator
-                            android:duration="183"
-                            android:propertyName="scaleX"
-                            android:valueFrom="1.0"
-                            android:valueTo="0.9"
-                            android:valueType="floatType"
-                            android:interpolator="@android:interpolator/accelerate_decelerate" />
-                    <objectAnimator
-                            android:duration="16"
-                            android:propertyName="scaleX"
-                            android:valueFrom="0.9"
-                            android:valueTo="0.5"
-                            android:valueType="floatType"
-                            android:interpolator="@android:interpolator/accelerate_decelerate" />
-                    <objectAnimator
-                            android:duration="300"
-                            android:propertyName="scaleX"
-                            android:valueFrom="0.5"
-                            android:valueTo="1.0"
-                            android:valueType="floatType"
-                            android:interpolator="@android:interpolator/accelerate_decelerate" />
-                </set>
-                <set
-                        android:ordering="sequentially" >
-                    <objectAnimator
-                            android:duration="183"
-                            android:propertyName="scaleY"
-                            android:valueFrom="1.0"
-                            android:valueTo="0.9"
-                            android:valueType="floatType"
-                            android:interpolator="@android:interpolator/accelerate_decelerate" />
-                    <objectAnimator
-                            android:duration="16"
-                            android:propertyName="scaleY"
-                            android:valueFrom="0.9"
-                            android:valueTo="0.5"
-                            android:valueType="floatType"
-                            android:interpolator="@android:interpolator/accelerate_decelerate" />
-                    <objectAnimator
-                            android:duration="300"
-                            android:propertyName="scaleY"
-                            android:valueFrom="0.5"
-                            android:valueTo="1.0"
-                            android:valueType="floatType"
-                            android:interpolator="@android:interpolator/accelerate_decelerate" />
-                </set>
-            </set>
-        </aapt:attr>
-    </target>
-
-    <target android:name="ring_outer_path">
-        <aapt:attr name="android:animation">
-            <set>
-                <set
-                        android:ordering="sequentially">
-                    <objectAnimator
-                            android:duration="183"
-                            android:propertyName="strokeWidth"
-                            android:valueFrom="2.0"
-                            android:valueTo="2.0"
-                            android:valueType="floatType"
-                            android:interpolator="@android:interpolator/accelerate_decelerate"/>
-                    <objectAnimator
-                            android:duration="16"
-                            android:propertyName="strokeWidth"
-                            android:valueFrom="2.0"
-                            android:valueTo="18.0"
-                            android:valueType="floatType"
-                            android:interpolator="@android:interpolator/accelerate_decelerate"/>
-                    <objectAnimator
-                            android:duration="300"
-                            android:propertyName="strokeWidth"
-                            android:valueFrom="18.0"
-                            android:valueTo="2.0"
-                            android:valueType="floatType"
-                            android:interpolator="@android:interpolator/accelerate_decelerate"/>
-                </set>
-
-            </set>
-        </aapt:attr>
-    </target>
-    <target
-            android:name="dot_group">
-        <aapt:attr name="android:animation">
-            <set>
-                <set
-                        android:ordering="sequentially">
-                    <objectAnimator
-                            android:duration="183"
-                            android:propertyName="scaleX"
-                            android:valueFrom="1.0"
-                            android:valueTo="1.4"
-                            android:valueType="floatType"
-                            android:interpolator="@android:interpolator/accelerate_decelerate"/>
-                    <objectAnimator
-                            android:duration="16"
-                            android:propertyName="scaleX"
-                            android:valueFrom="1.4"
-                            android:valueTo="0.0"
-                            android:valueType="floatType"
-                            android:interpolator="@android:interpolator/accelerate_decelerate"/>
-                    <objectAnimator
-                            android:duration="300"
-                            android:propertyName="scaleX"
-                            android:valueFrom="0.0"
-                            android:valueTo="0.0"
-                            android:valueType="floatType"
-                            android:interpolator="@android:interpolator/accelerate_decelerate"/>
-                </set>
-                <set
-                        android:ordering="sequentially">
-                    <objectAnimator
-                            android:duration="183"
-                            android:propertyName="scaleY"
-                            android:valueFrom="1.0"
-                            android:valueTo="1.4"
-                            android:valueType="floatType"
-                            android:interpolator="@android:interpolator/accelerate_decelerate"/>
-                    <objectAnimator
-                            android:duration="16"
-                            android:propertyName="scaleY"
-                            android:valueFrom="1.4"
-                            android:valueTo="0.0"
-                            android:valueType="floatType"
-                            android:interpolator="@android:interpolator/accelerate_decelerate"/>
-                    <objectAnimator
-                            android:duration="300"
-                            android:propertyName="scaleY"
-                            android:valueFrom="0.0"
-                            android:valueTo="0.0"
-                            android:valueType="floatType"
-                            android:interpolator="@android:interpolator/accelerate_decelerate"/>
-                </set>
-            </set>
-        </aapt:attr>
-    </target>
-</animated-vector>
\ No newline at end of file
diff --git a/samples/SupportVectorDrawable/animated/res/drawable/vector_drawable_grouping_1.xml b/samples/SupportVectorDrawable/animated/res/drawable/vector_drawable_grouping_1.xml
deleted file mode 100644
index 06f098e..0000000
--- a/samples/SupportVectorDrawable/animated/res/drawable/vector_drawable_grouping_1.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-<!--
- 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.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-        android:height="64dp"
-        android:width="64dp"
-        android:viewportHeight="256"
-        android:viewportWidth="256" >
-
-    <group
-        android:name="shape_layer_1"
-        android:translateX="128"
-        android:translateY="128" >
-        <group android:name="sun" >
-            <path
-                android:name="ellipse_path_1"
-                android:fillColor="#ffff8000"
-                android:pathData="m -25 0 a 25,25 0 1,0 50,0 a 25,25 0 1,0 -50,0" />
-
-            <group
-                android:name="earth"
-                android:translateX="75" >
-                <path
-                    android:name="ellipse_path_1_1"
-                    android:fillColor="#ff5656ea"
-                    android:pathData="m -10 0 a 10,10 0 1,0 20,0 a 10,10 0 1,0 -20,0" />
-
-                <group
-                    android:name="moon"
-                    android:translateX="25" >
-                    <path
-                        android:name="ellipse_path_1_2"
-                        android:fillColor="#ffadadad"
-                        android:pathData="m -5 0 a 5,5 0 1,0 10,0 a 5,5 0 1,0 -10,0" />
-                </group>
-            </group>
-        </group>
-    </group>
-
-</vector>
\ No newline at end of file
diff --git a/samples/SupportVectorDrawable/animated/res/drawable/vector_drawable_progress_bar.xml b/samples/SupportVectorDrawable/animated/res/drawable/vector_drawable_progress_bar.xml
deleted file mode 100644
index 535265e..0000000
--- a/samples/SupportVectorDrawable/animated/res/drawable/vector_drawable_progress_bar.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-<!--
- 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.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-        android:height="64dp"
-        android:width="64dp"
-        android:viewportHeight="64"
-        android:viewportWidth="64"
-        android:name="root_bar" >
-
-    <group
-        android:name="root"
-        android:pivotX="0.0"
-        android:pivotY="0.0"
-        android:rotation="0"
-        android:translateX="32.0"
-        android:translateY="32.0" >
-        <group
-            android:name="rotationGroup"
-            android:pivotX="0.0"
-            android:pivotY="0.0"
-            android:rotation="0" >
-            <path
-                android:name="pie1"
-                android:fillColor="#00000000"
-                android:pathData="M0, 0 m 0, -9.5 a 9.5,9.5 0 1,1 0,19 a 9.5,9.5 0 1,1 0,-19"
-                android:strokeColor="#FF00FFFF"
-                android:strokeLineCap="round"
-                android:strokeLineJoin="miter"
-                android:strokeWidth="2"
-                android:trimPathEnd="0.1"
-                android:trimPathOffset="0"
-                android:trimPathStart="0" />
-        </group>
-    </group>
-
-</vector>
\ No newline at end of file
diff --git a/samples/SupportVectorDrawable/animated/res/values/strings.xml b/samples/SupportVectorDrawable/animated/res/values/strings.xml
deleted file mode 100644
index c5451c8..0000000
--- a/samples/SupportVectorDrawable/animated/res/values/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-
-<resources>
-
-    <string name="twoLinePathData">"M 0,0 v 100 M 0,0 h 100"</string>
-    <string name="triangle"> "M300,70 l 0,-70 70,70 0,0   -70,70z"</string>
-    <string name="rectangle">"M300,70 l 0,-70 70,0  0,140 -70,0 z"</string>
-    <string name="rectangle2">"M300,70 l 0,-70 70,0  0,70z M300,70  l 70,0 0,70 -70,0z"</string>
-    <string name="equal2">    "M300,35 l 0,-35 70,0  0,35z M300,105 l 70,0 0,35 -70,0z"</string>
-    <string name="round_box">"m2.10001,-6c-1.9551,0 -0.5,0.02499 -2.10001,0.02499c-1.575,0 0.0031,-0.02499 -1.95,-0.02499c-2.543,0 -4,2.2816 -4,4.85001c0,3.52929 0.25,6.25 5.95,6.25c5.7,0 6,-2.72071 6,-6.25c0,-2.56841 -1.35699,-4.85001 -3.89999,-4.85001"</string>
-    <string name="heart">    "m4.5,-7c-1.95509,0 -3.83009,1.26759 -4.5,3c-0.66991,-1.73241 -2.54691,-3 -4.5,-3c-2.543,0 -4.5,1.93159 -4.5,4.5c0,3.5293 3.793,6.2578 9,11.5c5.207,-5.2422 9,-7.9707 9,-11.5c0,-2.56841 -1.957,-4.5 -4.5,-4.5"</string>
-    <string name="rectangle200">"M 0,0 l 200,0 l 0, 200 l -200, 0 z"</string>
-</resources>
\ No newline at end of file
diff --git a/samples/SupportVectorDrawable/animated/rundemo.sh b/samples/SupportVectorDrawable/animated/rundemo.sh
deleted file mode 100755
index e5972f7..0000000
--- a/samples/SupportVectorDrawable/animated/rundemo.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-. $ANDROID_BUILD_TOP/build/envsetup.sh && \
-mmm -j20 . && \
-adb install -r $OUT/data/app/SupportAnimatedVectorDrawable/SupportAnimatedVectorDrawable.apk && \
-adb shell am start -n com.example.android.support.vectordrawable/com.example.android.support.vectordrawable.app.AnimatedButtonBackground
-
-
diff --git a/samples/SupportVectorDrawable/animated/src/com/example/android/support/vectordrawable/app/AnimatedButtonBackground.java b/samples/SupportVectorDrawable/animated/src/com/example/android/support/vectordrawable/app/AnimatedButtonBackground.java
deleted file mode 100644
index d8381d1..0000000
--- a/samples/SupportVectorDrawable/animated/src/com/example/android/support/vectordrawable/app/AnimatedButtonBackground.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * 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.support.vectordrawable.app;
-
-import android.animation.ObjectAnimator;
-import android.app.Activity;
-import android.content.res.Resources;
-import android.os.Bundle;
-import android.support.graphics.drawable.AnimatedVectorDrawableCompat;
-import android.view.View;
-import android.widget.Button;
-import android.widget.LinearLayout;
-import android.widget.ScrollView;
-import android.widget.TextView;
-import com.example.android.support.vectordrawable.R;
-
-import java.text.DecimalFormat;
-
-public class AnimatedButtonBackground extends Activity implements View.OnClickListener{
-    private static final String LOG_TAG = "TestActivity";
-
-    private static final String LOGCAT = "VectorDrawable1";
-    protected int[] icon = {
-        R.drawable.animation_vector_drawable_grouping_1,
-        R.drawable.animation_vector_progress_bar,
-        R.drawable.btn_radio_on_to_off_bundle,
-    };
-
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        ObjectAnimator oa = new ObjectAnimator();
-        super.onCreate(savedInstanceState);
-        ScrollView scrollView = new ScrollView(this);
-        LinearLayout container = new LinearLayout(this);
-        scrollView.addView(container);
-        container.setOrientation(LinearLayout.VERTICAL);
-        Resources res = this.getResources();
-        container.setBackgroundColor(0xFF888888);
-        AnimatedVectorDrawableCompat []d = new AnimatedVectorDrawableCompat[icon.length];
-        long time =  android.os.SystemClock.currentThreadTimeMillis();
-        for (int i = 0; i < icon.length; i++) {
-             d[i] = AnimatedVectorDrawableCompat.create(this, icon[i]);
-        }
-        time =  android.os.SystemClock.currentThreadTimeMillis()-time;
-        TextView t = new TextView(this);
-        DecimalFormat df = new DecimalFormat("#.##");
-        t.setText("avgL=" + df.format(time / (icon.length)) + " ms");
-        container.addView(t);
-
-        addDrawableButtons(container, d);
-
-        // Now test constant state and mutate a bit.
-        if (d[0].getConstantState() != null) {
-            AnimatedVectorDrawableCompat[] copies = new AnimatedVectorDrawableCompat[3];
-            copies[0] = (AnimatedVectorDrawableCompat) d[0].getConstantState().newDrawable();
-            copies[1] = (AnimatedVectorDrawableCompat) d[0].getConstantState().newDrawable();
-            copies[2] = (AnimatedVectorDrawableCompat) d[0].getConstantState().newDrawable();
-            copies[0].setAlpha(128);
-
-            // Expect to see the copies[0, 1] are showing alpha 128, and [2] are showing 255.
-            copies[2].mutate();
-            copies[2].setAlpha(255);
-
-            addDrawableButtons(container, copies);
-        }
-
-        setContentView(scrollView);
-    }
-
-    private void addDrawableButtons(LinearLayout container, AnimatedVectorDrawableCompat[] d) {
-        for (int i = 0; i < d.length; i++) {
-            Button button = new Button(this);
-            button.setWidth(200);
-            button.setHeight(200);
-            button.setBackgroundDrawable(d[i]);
-            container.addView(button);
-            button.setOnClickListener(this);
-        }
-    }
-
-    @Override
-    public void onClick(View v) {
-        AnimatedVectorDrawableCompat d = (AnimatedVectorDrawableCompat) v.getBackground();
-        d.start();
-    }
-}
diff --git a/samples/SupportVectorDrawable/static/Android.mk b/samples/SupportVectorDrawable/static/Android.mk
deleted file mode 100644
index 88d76c5..0000000
--- a/samples/SupportVectorDrawable/static/Android.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-include $(CLEAR_VARS)
-
-LOCAL_MODULE_TAGS := samples tests
-
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-
-LOCAL_PACKAGE_NAME := SupportVectorDrawable
-
-LOCAL_STATIC_JAVA_LIBRARIES := android-support-vectordrawable android-support-v4
-
-LOCAL_SDK_VERSION := current
-
-LOCAL_MIN_SDK_VERSION := 7
-
-LOCAL_AAPT_FLAGS += --auto-add-overlay \
-        --extra-packages android.support.graphics.drawable \
-        --no-version-vectors
-
-include $(BUILD_PACKAGE)
-
-LOCAL_PROGUARD_FLAG_FILES := proguard.flags
-
-# Use the following include to make our test apk.
-include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/samples/SupportVectorDrawable/static/AndroidManifest.xml b/samples/SupportVectorDrawable/static/AndroidManifest.xml
deleted file mode 100644
index 53fc9c2..0000000
--- a/samples/SupportVectorDrawable/static/AndroidManifest.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.example.android.support.vectordrawable" >
-
-    <uses-sdk android:minSdkVersion="7" android:targetSdkVersion="23"/>
-
-    <application android:icon="@drawable/app_sample_code" android:label="VectorDrawableCompatTest" >
-        <activity android:name=".app.SimpleButtonBackground" />
-
-        <intent-filter>
-            <action android:name="android.intent.action.MAIN" />
-
-            <category android:name="android.intent.category.LAUNCHER" />
-        </intent-filter>
-    </application>
-
-</manifest>
diff --git a/samples/SupportVectorDrawable/static/res/drawable/app_sample_code.png b/samples/SupportVectorDrawable/static/res/drawable/app_sample_code.png
deleted file mode 100755
index 66a1984..0000000
--- a/samples/SupportVectorDrawable/static/res/drawable/app_sample_code.png
+++ /dev/null
Binary files differ
diff --git a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable01.xml b/samples/SupportVectorDrawable/static/res/drawable/vector_drawable01.xml
deleted file mode 100644
index 286b487..0000000
--- a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable01.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<!--
- 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.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-        android:height="48dp"
-        android:width="48dp"
-        android:viewportHeight="480"
-        android:viewportWidth="480" >
-
-    <group>
-        <path
-            android:name="box1"
-            android:pathData="m20,200l100,90l180-180l-35-35l-145,145l-60-60l-40,40z"
-            android:strokeLineCap="round"
-            android:strokeLineJoin="round" />
-    </group>
-</vector>
diff --git a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable02.xml b/samples/SupportVectorDrawable/static/res/drawable/vector_drawable02.xml
deleted file mode 100644
index 7567887..0000000
--- a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable02.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<!-- 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.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-        android:width="64dp"
-        android:height="64dp" android:viewportWidth="320"
-          android:viewportHeight="320">
-    <group
-        android:rotation="180"
-        android:pivotX="70"
-        android:pivotY="120">
-        <path
-            android:name="house"
-            android:pathData="M 130,225 L 130,115 L 130,115 L 70,15 L 10,115 L 10,115 L 10,225 z"
-            android:fillColor="#ff440000"
-            android:strokeColor="#FF00FF00"
-            android:strokeWidth="10"
-            android:trimPathStart=".1"
-            android:trimPathEnd=".9"/>
-    </group>
-</vector>
diff --git a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable03.xml b/samples/SupportVectorDrawable/static/res/drawable/vector_drawable03.xml
deleted file mode 100644
index 454468a..0000000
--- a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable03.xml
+++ /dev/null
@@ -1,79 +0,0 @@
-<!--
- 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.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:height="64dp"
-    android:viewportHeight="12.25"
-    android:viewportWidth="7.30625"
-    android:width="64dp" >
-
-    <group
-        android:pivotX="3.65"
-        android:pivotY="6.125"
-        android:rotation="-30" >
-        <clip-path
-            android:name="clip1"
-            android:pathData="
-                M 0, 6.125
-                l 7.3, 0
-                l 0, 12.25
-                l-7.3, 0
-                z" />
-
-        <group
-            android:pivotX="3.65"
-            android:pivotY="6.125"
-            android:rotation="30" >
-            <path
-                android:name="one"
-                android:fillColor="#ff88ff"
-                android:pathData="M 1.215625,9.5l 1.9375,0.0 0.0-6.671875-2.109375,0.421875 0.0-1.078125
-                l 2.09375-0.421875 1.1874998,0.0 0.0,7.75 1.9375,0.0 0.0,1.0
-                l-5.046875,0.0 0.0-1.0Z" />
-        </group>
-    </group>
-    <group
-        android:pivotX="3.65"
-        android:pivotY="6.125"
-        android:rotation="-30" >
-        <clip-path
-            android:name="clip2"
-            android:pathData="
-                M 0, 0
-                l 7.3, 0
-                l 0, 6.125
-                l-7.3, 0
-                z" />
-
-        <group
-            android:pivotX="3.65"
-            android:pivotY="6.125"
-            android:rotation="30" >
-            <path
-                android:name="two"
-                android:fillColor="#ff88ff"
-                android:pathData="M 2.534375,9.6875l 4.140625,0.0 0.0,1.0-5.5625,0.0 0.0-1.0q 0.671875-0.6875 1.828125-1.859375
-                        q 1.1718752-1.1875 1.4687502-1.53125 0.578125-0.625 0.796875-1.0625
-                        q 0.234375-0.453125 0.234375-0.875 0.0-0.703125-0.5-1.140625
-                        q-0.484375-0.4375-1.2656252-0.4375-0.5625,0.0-1.1875,0.1875
-                        q-0.609375,0.1875-1.3125,0.59375l 0.0-1.203125q 0.71875-0.28125 1.328125-0.421875
-                        q 0.625-0.15625 1.140625-0.15625 1.3593752,0.0 2.1718752,0.6875
-                        q 0.8125,0.671875 0.8125,1.8125 0.0,0.53125-0.203125,1.015625
-                        q-0.203125,0.484375-0.734375,1.140625-0.15625,0.171875-0.9375,0.984375
-                        q-0.78125024,0.8125-2.2187502,2.265625Z" />
-        </group>
-    </group>
-
-</vector>
\ No newline at end of file
diff --git a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable04.xml b/samples/SupportVectorDrawable/static/res/drawable/vector_drawable04.xml
deleted file mode 100644
index e6658a6..0000000
--- a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable04.xml
+++ /dev/null
@@ -1,61 +0,0 @@
-<!-- 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.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:autoMirrored="true"
-    android:height="64dp"
-    android:viewportHeight="12.25"
-    android:viewportWidth="7.30625"
-    android:width="64dp" >
-
-    <group>
-        <clip-path
-            android:name="clip1"
-            android:pathData="
-                M 3.65, 6.125
-                m-.001, 0
-                a .001,.001 0 1,0 .002,0
-                a .001,.001 0 1,0-.002,0z" />
-
-        <path
-            android:name="one"
-            android:fillColor="#ff88ff"
-            android:pathData="M 1.215625,9.5l 1.9375,0.0 0.0-6.671875-2.109375,0.421875 0.0-1.078125
-                l 2.09375-0.421875 1.1874998,0.0 0.0,7.75 1.9375,0.0 0.0,1.0
-                l-5.046875,0.0 0.0-1.0Z" />
-    </group>
-    <group>
-        <clip-path
-            android:name="clip2"
-            android:pathData="
-                M 3.65, 6.125
-                m-6, 0
-                a 6,6 0 1,0 12,0
-                a 6,6 0 1,0-12,0z" />
-
-        <path
-            android:name="two"
-            android:fillColor="#ff88ff"
-            android:pathData="M 2.534375,9.6875l 4.140625,0.0 0.0,1.0-5.5625,0.0 0.0-1.0q 0.671875-0.6875 1.828125-1.859375
-                        q 1.1718752-1.1875 1.4687502-1.53125 0.578125-0.625 0.796875-1.0625
-                        q 0.234375-0.453125 0.234375-0.875 0.0-0.703125-0.5-1.140625
-                        q-0.484375-0.4375-1.2656252-0.4375-0.5625,0.0-1.1875,0.1875
-                        q-0.609375,0.1875-1.3125,0.59375l 0.0-1.203125q 0.71875-0.28125 1.328125-0.421875
-                        q 0.625-0.15625 1.140625-0.15625 1.3593752,0.0 2.1718752,0.6875
-                        q 0.8125,0.671875 0.8125,1.8125 0.0,0.53125-0.203125,1.015625
-                        q-0.203125,0.484375-0.734375,1.140625-0.15625,0.171875-0.9375,0.984375
-                        q-0.78125024,0.8125-2.2187502,2.265625Z" />
-    </group>
-
-</vector>
\ No newline at end of file
diff --git a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable05.xml b/samples/SupportVectorDrawable/static/res/drawable/vector_drawable05.xml
deleted file mode 100644
index d1723dc..0000000
--- a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable05.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<!--
- 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.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-        android:height="64dp"
-        android:width="64dp"
-        android:viewportHeight="12.25"
-        android:viewportWidth="7.30625" >
-
-    <group>
-        <path
-            android:name="one"
-            android:fillColor="#ffff00"
-            android:pathData="M 1.215625,9.5l 1.9375,0.0 0.0-6.671875-2.109375,0.421875 0.0-1.078125
-                l 2.09375-0.421875 1.1874998,0.0 0.0,7.75 1.9375,0.0 0.0,1.0
-                l-5.046875,0.0 0.0-1.0Z" />
-        <path
-            android:name="two"
-            android:fillColor="#ffff00"
-            android:fillAlpha="0"
-            android:pathData="M 2.534375,9.6875l 4.140625,0.0 0.0,1.0-5.5625,0.0 0.0-1.0q 0.671875-0.6875 1.828125-1.859375
-                        q 1.1718752-1.1875 1.4687502-1.53125 0.578125-0.625 0.796875-1.0625
-                        q 0.234375-0.453125 0.234375-0.875 0.0-0.703125-0.5-1.140625
-                        q-0.484375-0.4375-1.2656252-0.4375-0.5625,0.0-1.1875,0.1875
-                        q-0.609375,0.1875-1.3125,0.59375l 0.0-1.203125q 0.71875-0.28125 1.328125-0.421875
-                        q 0.625-0.15625 1.140625-0.15625 1.3593752,0.0 2.1718752,0.6875
-                        q 0.8125,0.671875 0.8125,1.8125 0.0,0.53125-0.203125,1.015625
-                        q-0.203125,0.484375-0.734375,1.140625-0.15625,0.171875-0.9375,0.984375
-                        q-0.78125024,0.8125-2.2187502,2.265625Z" />
-    </group>
-</vector>
\ No newline at end of file
diff --git a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable06.xml b/samples/SupportVectorDrawable/static/res/drawable/vector_drawable06.xml
deleted file mode 100644
index 4b530fd..0000000
--- a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable06.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-<!-- 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.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-            android:width="64dp"
-            android:height="64dp"
-            android:viewportWidth="700"
-            android:viewportHeight="700">
-
-    <group>
-        <path android:pathData="M 569.374 461.472L 569.374 160.658L 160.658 160.658L 160.658 461.472L 569.374 461.472z"
-              android:name="path2451"
-              android:fillColor="#00000000"
-              android:strokeColor="#FF000000"
-              android:strokeWidth="30.65500000000000"/>
-        <path android:pathData="M 365.015 311.066"
-              android:name="path2453"
-              android:fillColor="#00000000"
-              android:strokeColor="#FF000000"
-              android:strokeWidth="30.655000000000001"/>
-        <path android:pathData="M 164.46 164.49L 340.78 343.158C 353.849 356.328 377.63 356.172 390.423 343.278L 566.622 165.928"
-              android:name="path2455"
-              android:strokeColor="#FF000000"
-              android:fillColor="#FFFFFFFF"
-              android:strokeWidth="30.655000000000001"/>
-        <path android:pathData="M 170.515 451.566L 305.61 313.46"
-              android:name="path2457"
-              android:fillColor="#00000000"
-              android:strokeColor="#000000"
-              android:strokeWidth="30.655000000000001"/>
-        <path android:pathData="M 557.968 449.974L 426.515 315.375"
-              android:name="path2459"
-              android:fillColor="#00000000"
-              android:strokeColor="#000000"
-              android:strokeWidth="30.655000000000001"/>
-    </group>
-</vector>
diff --git a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable07.xml b/samples/SupportVectorDrawable/static/res/drawable/vector_drawable07.xml
deleted file mode 100644
index bbf2451..0000000
--- a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable07.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<!-- 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.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-            android:width="64dp"
-            android:height="64dp" android:viewportWidth="140"
-          android:viewportHeight="110">
-
-    <group>
-        <path
-                android:name="back"
-                android:pathData="M 20,55 l 35.3-35.3 7.07,7.07-35.3,35.3 z
-              M 27,50 l 97,0 0,10-97,0 z
-              M 20,55 l 7.07-7.07 35.3,35.3-7.07,7.07 z"
-                android:fillColor="#ffffffff"
-                />
-    </group>
-</vector>
diff --git a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable08.xml b/samples/SupportVectorDrawable/static/res/drawable/vector_drawable08.xml
deleted file mode 100644
index e5b59df..0000000
--- a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable08.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<!-- 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.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-            android:width="64dp"
-            android:height="64dp" android:viewportWidth="600"
-          android:viewportHeight="600">
-
-    <group>
-        <path
-                android:name="pie1"
-                android:pathData="M535.441,412.339A280.868,280.868 0 1,1 536.186,161.733L284.493,286.29Z"
-                android:fillColor="#ffffcc00"
-                android:strokeColor="#FF00FF00"
-                android:strokeWidth="1"/>
-    </group>
-
-</vector>
diff --git a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable09.xml b/samples/SupportVectorDrawable/static/res/drawable/vector_drawable09.xml
deleted file mode 100644
index ce2441d..0000000
--- a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable09.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<!--
- 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.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-        android:height="64dp"
-        android:width="64dp"
-        android:viewportHeight="200"
-        android:viewportWidth="200" >
-
-    <group
-        android:pivotX="100"
-        android:pivotY="100"
-        android:rotation="90">
-        <path
-            android:name="house"
-            android:fillColor="#ffffffff"
-            android:pathData="M 100,20 l 0,0 0,140-80,0 z M 100,20 l 0,0 80,140-80,0 z"/>
-    </group>
-
-</vector>
\ No newline at end of file
diff --git a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable10.xml b/samples/SupportVectorDrawable/static/res/drawable/vector_drawable10.xml
deleted file mode 100644
index 935d4a5..0000000
--- a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable10.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-        android:height="64dp"
-        android:width="64dp"
-        android:viewportWidth="200"
-        android:viewportHeight="200">
-
-    <group>
-        <path
-            android:name="bar3"
-            android:fillColor="#FFFFFFFF"
-            android:pathData="M49.001,60c-5.466,0-9.899,4.478-9.899,10s4.434,10,9.899,10c5.468,0,9.899-4.478,9.899-10S54.469,60,49.001,60z" />
-        <path
-            android:name="bar2"
-            android:fillColor="#FFFFFFFF"
-            android:pathData="M28.001,48.787l7,7.07c7.731-7.811,20.269-7.81,28.001,0l6.999-7.07C58.403,37.071,39.599,37.071,28.001,48.787z" />
-        <path
-            android:name="bar1"
-            android:fillColor="#FF555555"
-            android:pathData="M14.001,34.645   L21,41.716c15.464-15.621,40.536-15.621,56,0l7.001-7.071C64.672,15.119,33.33,15.119,14.001,34.645z" />
-        <path
-            android:name="bar0"
-            android:fillColor="#FF555555"
-            android:pathData="M0,20.502l6.999,7.071   c23.196-23.431,60.806-23.431,84.002,0L98,20.503C70.938-6.834,27.063-6.834,0,20.502z" />
-    </group>
-
-</vector>
\ No newline at end of file
diff --git a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable11.xml b/samples/SupportVectorDrawable/static/res/drawable/vector_drawable11.xml
deleted file mode 100644
index 05f481b..0000000
--- a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable11.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<!--
- 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.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-        android:height="64dp"
-        android:width="64dp"
-        android:viewportHeight="80"
-        android:viewportWidth="40" >
-
-    <group>
-        <path
-            android:name="battery"
-            android:fillColor="#3388ff"
-            android:pathData="M 20.28125,2.0000002 C 17.352748,2.0000002 15,4.3527485 15,7.2812502 L 15,8.0000002 L 13.15625,8.0000002 C 9.7507553,8.0000002 7,10.750759 7,14.15625 L 7,39.84375 C 7,43.24924 9.7507558,46 13.15625,46 L 33.84375,46 C 37.249245,46 39.999999,43.24924 40,39.84375 L 40,14.15625 C 40,10.75076 37.249243,8.0000002 33.84375,8.0000002 L 32,8.0000002 L 32,7.2812502 C 32,4.3527485 29.647252,2.0000002 26.71875,2.0000002 L 20.28125,2.0000002 z"
-            android:strokeColor="#ff8833"
-            android:strokeWidth="1" />
-        <path
-            android:name="spark"
-            android:fillColor="#FFFF0000"
-            android:pathData="M 30,18.031528 L 25.579581,23.421071 L 29.370621,26.765348 L 20.096792,37 L 21.156922,28.014053 L 17,24.902844 L 20.880632,18 L 30,18.031528 z" />
-    </group>
-
-</vector>
\ No newline at end of file
diff --git a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable12.xml b/samples/SupportVectorDrawable/static/res/drawable/vector_drawable12.xml
deleted file mode 100644
index 94338a7..0000000
--- a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable12.xml
+++ /dev/null
@@ -1,97 +0,0 @@
-<!--
- 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.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-        android:name="rootGroup"
-        android:height="64dp"
-        android:width="64dp"
-        android:viewportHeight="600"
-        android:viewportWidth="600"
-        android:alpha="0.5" >
-
-    <group
-        android:name="rotationGroup"
-        android:pivotX="300.0"
-        android:pivotY="300.0"
-        android:rotation="45.0" >
-        <path
-            android:name="pie1"
-            android:fillColor="#00000000"
-            android:pathData="M300,70 a230,230 0 1,0 1,0 z"
-            android:strokeColor="#FF777777"
-            android:strokeWidth="70"
-            android:trimPathEnd=".75"
-            android:trimPathOffset="0"
-            android:trimPathStart="0" />
-        <path
-            android:name="v"
-            android:fillColor="#000000"
-            android:pathData="M300,70 l 0,-70 70,70 0,0 -70,70z" />
-
-        <group
-            android:name="translateToCenterGroup"
-            android:rotation="0.0"
-            android:translateX="200.0"
-            android:translateY="200.0" >
-            <group
-                android:name="rotationGroup2"
-                android:pivotX="0.0"
-                android:pivotY="0.0"
-                android:rotation="-45.0" >
-                <path
-                    android:name="twoLines1"
-                    android:pathData="@string/twoLinePathData"
-                    android:strokeColor="#FFFF0000"
-                    android:strokeWidth="20" />
-
-                <group
-                    android:name="translateGroupHalf"
-                    android:translateX="65.0"
-                    android:translateY="80.0" >
-                    <group
-                        android:name="rotationGroup3"
-                        android:pivotX="-65.0"
-                        android:pivotY="-80.0"
-                        android:rotation="-45.0" >
-                        <path
-                            android:name="twoLines2"
-                            android:fillColor="#FF00FF00"
-                            android:pathData="@string/twoLinePathData"
-                            android:strokeColor="#FF00FF00"
-                            android:strokeWidth="20" />
-
-                        <group
-                            android:name="translateGroup"
-                            android:translateX="65.0"
-                            android:translateY="80.0" >
-                            <group
-                                android:name="rotationGroupBlue"
-                                android:pivotX="-65.0"
-                                android:pivotY="-80.0"
-                                android:rotation="-45.0" >
-                                <path
-                                    android:name="twoLines3"
-                                    android:pathData="@string/twoLinePathData"
-                                    android:strokeColor="#FF0000FF"
-                                    android:strokeWidth="20" />
-                            </group>
-                        </group>
-                    </group>
-                </group>
-            </group>
-        </group>
-    </group>
-
-</vector>
\ No newline at end of file
diff --git a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable13.xml b/samples/SupportVectorDrawable/static/res/drawable/vector_drawable13.xml
deleted file mode 100644
index 097e028..0000000
--- a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable13.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<!--
- 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.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-        android:height="64dp"
-        android:width="64dp"
-        android:viewportHeight="400"
-        android:viewportWidth="600" >
-
-    <group>
-        <path
-            android:name="pie1"
-            android:fillColor="#ffffffff"
-            android:pathData="M300,200 h-150 a150,150 0 1,0 150,-150 z"
-            android:strokeColor="#FF00FF00"
-            android:strokeWidth="1" />
-        <path
-            android:name="half"
-            android:fillColor="#FFFF0000"
-            android:pathData="M275,175 v-150 a150,150 0 0,0 -150,150 z"
-            android:strokeColor="#FF0000FF"
-            android:strokeWidth="5" />
-    </group>
-
-</vector>
\ No newline at end of file
diff --git a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable14.xml b/samples/SupportVectorDrawable/static/res/drawable/vector_drawable14.xml
deleted file mode 100644
index 102ae7a..0000000
--- a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable14.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<!--
- 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.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-        android:height="64dp"
-        android:width="64dp"
-        android:viewportHeight="500"
-        android:viewportWidth="800" >
-
-    <group
-        android:pivotX="90"
-        android:pivotY="100"
-        android:rotation="20">
-        <path
-            android:name="pie2"
-            android:pathData="M200,350 l 50,-25
-           a25,12 -30 0,1 100,-50 l 50,-25
-           a25,25 -30 0,1 100,-50 l 50,-25
-           a25,37 -30 0,1 100,-50 l 50,-25
-           a25,50 -30 0,1 100,-50 l 50,-25"
-            android:fillColor="#00000000"
-            android:strokeColor="#FF00FF00"
-            android:strokeWidth="10" />
-    </group>
-
-</vector>
\ No newline at end of file
diff --git a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable15.xml b/samples/SupportVectorDrawable/static/res/drawable/vector_drawable15.xml
deleted file mode 100644
index bdfcf81..0000000
--- a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable15.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<!--
- 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.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-        android:height="64dp"
-        android:width="64dp"
-        android:viewportHeight="400"
-        android:viewportWidth="500" >
-
-    <group
-        android:pivotX="250"
-        android:pivotY="200"
-        android:rotation="180">
-        <path
-            android:name="house"
-            android:fillColor="#ff440000"
-            android:pathData="M100,200 C100,100 250,100 250,200 S400,300 400,200"
-            android:strokeColor="#FFFF0000"
-            android:strokeWidth="10" />
-    </group>
-
-</vector>
\ No newline at end of file
diff --git a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable16.xml b/samples/SupportVectorDrawable/static/res/drawable/vector_drawable16.xml
deleted file mode 100644
index ed1efa0..0000000
--- a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable16.xml
+++ /dev/null
@@ -1,47 +0,0 @@
-<!--
- 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.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-        android:height="64dp"
-        android:width="64dp"
-        android:viewportHeight="200"
-        android:viewportWidth="200" >
-
-    <group>
-        <path
-            android:name="background1"
-            android:pathData="M 0,0 l 100,0 l 0, 100 l -100, 0 z"
-            android:fillColor="#FF000000"/>
-        <path
-            android:name="background2"
-            android:pathData="M 100,100 l 100,0 l 0, 100 l -100, 0 z"
-            android:fillColor="#FF000000"/>
-    </group>
-    <group
-        android:pivotX="100"
-        android:pivotY="100"
-        android:rotation="90"
-        android:scaleX="0.75"
-        android:scaleY="0.5"
-        android:translateX="0.0"
-        android:translateY="100.0">
-        <path
-            android:name="twoLines"
-            android:pathData="M 100,10 v 90 M 10,100 h 90"
-            android:strokeColor="#FF00FF00"
-            android:strokeWidth="10" />
-    </group>
-
-</vector>
\ No newline at end of file
diff --git a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable17.xml b/samples/SupportVectorDrawable/static/res/drawable/vector_drawable17.xml
deleted file mode 100644
index ba15f41..0000000
--- a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable17.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<!-- 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.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-            android:width="64dp"
-            android:height="64dp" android:viewportWidth="1200"
-          android:viewportHeight="600">
-
-    <group>
-        <path
-                android:name="house"
-                android:pathData="M200,300 Q400,50 600,300 T1000,300"
-                android:fillColor="#00000000"
-                android:strokeColor="#FFFF0000"
-                android:strokeWidth="10"/>
-    </group>
-
-</vector>
diff --git a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable18.xml b/samples/SupportVectorDrawable/static/res/drawable/vector_drawable18.xml
deleted file mode 100644
index ee2122a..0000000
--- a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable18.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<!--
- 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.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-        android:height="64dp"
-        android:width="64dp"
-        android:viewportHeight="400"
-        android:viewportWidth="500" >
-
-    <group>
-        <path
-            android:name="house"
-            android:pathData="M100,200 C100,100 250,100 250,200 S400,300 400,200"
-            android:fillColor="#00000000"
-            android:strokeColor="#FFFFFF00"
-            android:strokeWidth="10" />
-    </group>
-
-</vector>
\ No newline at end of file
diff --git a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable19.xml b/samples/SupportVectorDrawable/static/res/drawable/vector_drawable19.xml
deleted file mode 100644
index b98e1de..0000000
--- a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable19.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<!--
- 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.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-        android:height="64dp"
-        android:width="64dp"
-        android:viewportHeight="800"
-        android:viewportWidth="1000" >
-
-    <group>
-        <path
-            android:name="house"
-            android:pathData="M10,300 Q400,550 600,300 T1000,300"
-            android:pivotX="90"
-            android:pivotY="100"
-            android:fillColor="#00000000"
-            android:strokeColor="#FFFF0000"
-            android:strokeWidth="60" />
-    </group>
-
-</vector>
\ No newline at end of file
diff --git a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable20.xml b/samples/SupportVectorDrawable/static/res/drawable/vector_drawable20.xml
deleted file mode 100644
index 1c86818..0000000
--- a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable20.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<!--
- 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.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-        android:height="64dp"
-        android:width="64dp"
-        android:viewportHeight="480"
-        android:viewportWidth="480" >
-
-    <group>
-        <path
-            android:name="edit"
-            android:fillColor="#FF00FFFF"
-            android:pathData="M406.667,180c0,0 -100 -100 -113.334 -113.333
-    c-13.333 -13.334 -33.333,0 -33.333,0l-160,160c0,0 -40,153.333 -40,173.333c0,13.333,13.333,13.333,13.333,13.333l173.334 -40
-    c0,0,146.666 -146.666,160 -160C420,200,406.667,180,406.667,180z M226.399,356.823L131.95,378.62l-38.516 -38.522
-    c7.848 -34.675,20.152 -82.52,23.538 -95.593l3.027,2.162l106.667,106.666L226.399,356.823z"
-            android:strokeColor="#FF000000"
-            android:strokeWidth="10" />
-    </group>
-
-</vector>
\ No newline at end of file
diff --git a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable21.xml b/samples/SupportVectorDrawable/static/res/drawable/vector_drawable21.xml
deleted file mode 100644
index 247f6bc..0000000
--- a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable21.xml
+++ /dev/null
@@ -1,47 +0,0 @@
-<!--
- 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.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-        android:height="64dp"
-        android:width="64dp"
-        android:viewportHeight="200"
-        android:viewportWidth="200" >
-
-    <group>
-        <path
-            android:name="background1"
-            android:pathData="M 0,0 l 100,0 l 0, 100 l -100, 0 z"
-            android:fillColor="#FF000000"/>
-        <path
-            android:name="background2"
-            android:pathData="M 100,100 l 100,0 l 0, 100 l -100, 0 z"
-            android:fillColor="#FF000000"/>
-    </group>
-    <group
-        android:pivotX="0"
-        android:pivotY="0"
-        android:rotation="90"
-        android:scaleX="0.75"
-        android:scaleY="0.5"
-        android:translateX="100.0"
-        android:translateY="100.0">
-        <path
-            android:name="twoLines"
-            android:pathData="M 100,10 v 90 M 10,100 h 90"
-            android:strokeColor="#FF00FF00"
-            android:strokeWidth="10" />
-    </group>
-
-</vector>
\ No newline at end of file
diff --git a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable22.xml b/samples/SupportVectorDrawable/static/res/drawable/vector_drawable22.xml
deleted file mode 100644
index 39d891f..0000000
--- a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable22.xml
+++ /dev/null
@@ -1,68 +0,0 @@
-<!--
- 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.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-        android:height="64dp"
-        android:width="64dp"
-        android:viewportHeight="400"
-        android:viewportWidth="400" >
-
-    <group android:name="backgroundGroup" >
-        <path
-            android:name="background1"
-            android:fillColor="#80000000"
-            android:pathData="M 0,0 l 200,0 l 0, 200 l -200, 0 z" />
-        <path
-            android:name="background2"
-            android:fillColor="#80000000"
-            android:pathData="M 200,200 l 200,0 l 0, 200 l -200, 0 z" />
-    </group>
-    <group
-        android:name="translateToCenterGroup"
-        android:translateX="50.0"
-        android:translateY="90.0" >
-        <path
-            android:name="twoLines"
-            android:pathData="M 0,0 v 100 M 0,0 h 100"
-            android:strokeColor="#FFFF0000"
-            android:strokeWidth="20" />
-
-        <group
-            android:name="rotationGroup"
-            android:pivotX="0.0"
-            android:pivotY="0.0"
-            android:rotation="-45.0" >
-            <path
-                android:name="twoLines1"
-                android:pathData="M 0,0 v 100 M 0,0 h 100"
-                android:strokeColor="#FF00FF00"
-                android:strokeWidth="20" />
-
-            <group
-                android:name="translateGroup"
-                android:translateX="130.0"
-                android:translateY="160.0" >
-                <group android:name="scaleGroup" >
-                    <path
-                        android:name="twoLines2"
-                        android:pathData="M 0,0 v 100 M 0,0 h 100"
-                        android:strokeColor="#FF0000FF"
-                        android:strokeWidth="20" />
-                </group>
-            </group>
-        </group>
-    </group>
-
-</vector>
\ No newline at end of file
diff --git a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable23.xml b/samples/SupportVectorDrawable/static/res/drawable/vector_drawable23.xml
deleted file mode 100644
index 4a1c062..0000000
--- a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable23.xml
+++ /dev/null
@@ -1,82 +0,0 @@
-<!--
- 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.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-        android:height="64dp"
-        android:width="64dp"
-        android:viewportHeight="400"
-        android:viewportWidth="400" >
-
-    <group android:name="backgroundGroup" >
-        <path
-            android:name="background1"
-            android:fillColor="#80000000"
-            android:pathData="M 0,0 l 200,0 l 0, 200 l -200, 0 z" />
-        <path
-            android:name="background2"
-            android:fillColor="#80000000"
-            android:pathData="M 200,200 l 200,0 l 0, 200 l -200, 0 z" />
-    </group>
-    <group
-        android:name="translateToCenterGroup"
-        android:translateX="50.0"
-        android:translateY="90.0" >
-        <path
-            android:name="twoLines"
-            android:pathData="@string/twoLinePathData"
-            android:strokeColor="#FFFF0000"
-            android:strokeWidth="20" />
-
-        <group
-            android:name="rotationGroup"
-            android:pivotX="0.0"
-            android:pivotY="0.0"
-            android:rotation="-45.0" >
-            <path
-                android:name="twoLines1"
-                android:pathData="@string/twoLinePathData"
-                android:strokeColor="#FF00FF00"
-                android:strokeWidth="20" />
-
-            <group
-                android:name="translateGroup"
-                android:translateX="130.0"
-                android:translateY="160.0" >
-                <group android:name="scaleGroup" >
-                    <path
-                        android:name="twoLines3"
-                        android:pathData="@string/twoLinePathData"
-                        android:strokeColor="#FF0000FF"
-                        android:strokeWidth="20" />
-                </group>
-            </group>
-
-            <group
-                android:name="translateGroupHalf"
-                android:translateX="65.0"
-                android:translateY="80.0" >
-                <group android:name="scaleGroup" >
-                    <path
-                        android:name="twoLines2"
-                        android:pathData="@string/twoLinePathData"
-                        android:fillColor="?android:attr/colorForeground"
-                        android:strokeColor="?android:attr/colorForeground"
-                        android:strokeWidth="20" />
-                </group>
-            </group>
-        </group>
-    </group>
-
-</vector>
\ No newline at end of file
diff --git a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable24.xml b/samples/SupportVectorDrawable/static/res/drawable/vector_drawable24.xml
deleted file mode 100644
index a7a8bd3..0000000
--- a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable24.xml
+++ /dev/null
@@ -1,82 +0,0 @@
-<!--
- 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.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-        android:height="64dp"
-        android:width="64dp"
-        android:viewportHeight="400"
-        android:viewportWidth="400" >
-
-    <group android:name="backgroundGroup">
-        <path
-            android:name="background1"
-            android:fillColor="#FF000000"
-            android:pathData="M 0,0 l 200,0 l 0, 200 l -200, 0 z" />
-        <path
-            android:name="background2"
-            android:fillColor="#FF000000"
-            android:pathData="M 200,200 l 200,0 l 0, 200 l -200, 0 z" />
-    </group>
-    <group
-        android:name="translateToCenterGroup"
-        android:translateX="50.0"
-        android:translateY="90.0" >
-        <path
-            android:name="twoLines"
-            android:pathData="@string/twoLinePathData"
-            android:strokeColor="#FFFF0000"
-            android:strokeWidth="20" />
-
-        <group
-            android:name="rotationGroup"
-            android:pivotX="0.0"
-            android:pivotY="0.0"
-            android:rotation="-45.0">
-            <path
-                android:name="twoLines1"
-                android:pathData="@string/twoLinePathData"
-                android:strokeColor="#FF00FF00"
-                android:strokeWidth="20" />
-
-            <group
-                android:name="translateGroup"
-                android:translateX="130.0"
-                android:translateY="160.0">
-                <group android:name="scaleGroup" >
-                    <path
-                        android:name="twoLines3"
-                        android:pathData="@string/twoLinePathData"
-                        android:strokeColor="#FF0000FF"
-                        android:strokeWidth="20" />
-                </group>
-            </group>
-
-            <group
-                android:name="translateGroupHalf"
-                android:translateX="65.0"
-                android:translateY="80.0">
-                <group android:name="scaleGroup" >
-                    <path
-                        android:name="twoLines2"
-                        android:pathData="@string/twoLinePathData"
-                        android:fillColor="?android:attr/colorForeground"
-                        android:strokeColor="?android:attr/colorForeground"
-                        android:strokeWidth="20" />
-                </group>
-            </group>
-        </group>
-    </group>
-
-</vector>
\ No newline at end of file
diff --git a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable25.xml b/samples/SupportVectorDrawable/static/res/drawable/vector_drawable25.xml
deleted file mode 100644
index 7c9e771..0000000
--- a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable25.xml
+++ /dev/null
@@ -1,82 +0,0 @@
-<!--
- 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.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-        android:height="64dp"
-        android:width="64dp"
-        android:viewportHeight="400"
-        android:viewportWidth="400" >
-
-    <group
-        android:name="FirstLevelGroup"
-        android:translateX="100.0"
-        android:translateY="0.0" >
-        <group
-            android:name="SecondLevelGroup1"
-            android:translateX="-100.0"
-            android:translateY="50.0" >
-            <path
-                android:fillColor="#FF00FF00"
-                android:pathData="@string/rectangle200" />
-
-            <group
-                android:name="ThridLevelGroup1"
-                android:translateX="-100.0"
-                android:translateY="50.0" >
-                <path
-                    android:fillColor="#FF0000FF"
-                    android:pathData="@string/rectangle200" />
-            </group>
-            <group
-                android:name="ThridLevelGroup2"
-                android:translateX="100.0"
-                android:translateY="50.0" >
-                <path
-                    android:fillColor="#FF000000"
-                    android:pathData="@string/rectangle200" />
-            </group>
-        </group>
-        <group
-            android:name="SecondLevelGroup2"
-            android:translateX="100.0"
-            android:translateY="50.0" >
-            <path
-                android:fillColor="#FF0000FF"
-                android:pathData="@string/rectangle200" />
-
-            <group
-                android:name="ThridLevelGroup3"
-                android:translateX="-100.0"
-                android:translateY="50.0" >
-                <path
-                    android:fillColor="#FFFF0000"
-                    android:pathData="@string/rectangle200" />
-            </group>
-            <group
-                android:name="ThridLevelGroup4"
-                android:translateX="100.0"
-                android:translateY="50.0" >
-                <path
-                    android:fillColor="#FF00FF00"
-                    android:pathData="@string/rectangle200" />
-            </group>
-        </group>
-
-        <path
-            android:fillColor="#FFFF0000"
-            android:pathData="@string/rectangle200" />
-    </group>
-
-</vector>
\ No newline at end of file
diff --git a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable26.xml b/samples/SupportVectorDrawable/static/res/drawable/vector_drawable26.xml
deleted file mode 100644
index eda06d8..0000000
--- a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable26.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-<!--
- 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.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:height="64dp"
-    android:viewportHeight="200"
-    android:viewportWidth="200"
-    android:width="64dp" >
-
-    <group>
-        <path
-            android:name="background1"
-            android:fillColor="#FF000000"
-            android:pathData="M 0,0 l 100,0 l 0, 100 l -100, 0 z" />
-        <path
-            android:name="background2"
-            android:fillColor="#FF000000"
-            android:pathData="M 100,100 l 100,0 l 0, 100 l -100, 0 z" />
-    </group>
-    <group
-        android:translateX="50"
-        android:translateY="50" >
-        <path
-            android:name="twoLines"
-            android:pathData="M 100,20 l 0 80 l -30 -80"
-            android:strokeColor="#FF00FF00"
-            android:strokeLineCap="butt"
-            android:strokeLineJoin="miter"
-            android:strokeMiterLimit="5"
-            android:strokeWidth="20" />
-    </group>
-
-</vector>
\ No newline at end of file
diff --git a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable27.xml b/samples/SupportVectorDrawable/static/res/drawable/vector_drawable27.xml
deleted file mode 100644
index cd46dd9..0000000
--- a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable27.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-<!--
- 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.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:height="64dp"
-    android:viewportHeight="200"
-    android:viewportWidth="200"
-    android:width="64dp" >
-
-    <group>
-        <path
-            android:name="background1"
-            android:fillColor="#FF000000"
-            android:pathData="M 0,0 l 100,0 l 0, 100 l -100, 0 z" />
-        <path
-            android:name="background2"
-            android:fillColor="#FF000000"
-            android:pathData="M 100,100 l 100,0 l 0, 100 l -100, 0 z" />
-    </group>
-    <group
-        android:translateX="50"
-        android:translateY="50" >
-        <path
-            android:name="twoLines"
-            android:pathData="M 100,20 l 0 80 l -30 -80"
-            android:strokeColor="#FF00FF00"
-            android:strokeLineCap="round"
-            android:strokeLineJoin="round"
-            android:strokeMiterLimit="10"
-            android:strokeWidth="20" />
-    </group>
-
-</vector>
\ No newline at end of file
diff --git a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable28.xml b/samples/SupportVectorDrawable/static/res/drawable/vector_drawable28.xml
deleted file mode 100644
index 812af6b..0000000
--- a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable28.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<!--
- 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.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:height="64dp"
-    android:viewportHeight="200"
-    android:viewportWidth="200"
-    android:width="64dp"
-    android:autoMirrored="true" >
-
-    <group>
-        <path
-            android:name="background1"
-            android:fillColor="#FF000000"
-            android:pathData="M 0,0 l 100,0 l 0, 100 l -100, 0 z" />
-        <path
-            android:name="background2"
-            android:fillColor="#FF000000"
-            android:pathData="M 100,100 l 100,0 l 0, 100 l -100, 0 z" />
-    </group>
-    <group
-        android:translateX="50"
-        android:translateY="50" >
-        <path
-            android:name="twoLines"
-            android:pathData="M 100,20 l 0 80 l -30 -80"
-            android:strokeColor="#FF00FF00"
-            android:strokeLineCap="square"
-            android:strokeLineJoin="bevel"
-            android:strokeMiterLimit="10"
-            android:strokeWidth="20" />
-    </group>
-
-</vector>
\ No newline at end of file
diff --git a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable29.xml b/samples/SupportVectorDrawable/static/res/drawable/vector_drawable29.xml
deleted file mode 100644
index b24d31c..0000000
--- a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable29.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<!--
- 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.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-        android:height="48dp"
-        android:width="48dp"
-        android:viewportHeight="1"
-        android:viewportWidth="1" >
-
-    <group>
-        <path
-            android:name="box1"
-            android:pathData="l0.0.0.5.0.0.5-0.5.0.0-.5z"
-            android:fillColor="#ff00ff00"/>
-    </group>
-</vector>
diff --git a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable30.xml b/samples/SupportVectorDrawable/static/res/drawable/vector_drawable30.xml
deleted file mode 100644
index 24f7372..0000000
--- a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable30.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<!--
- 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.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-        android:height="48dp"
-        android:width="48dp"
-        android:viewportHeight="48"
-        android:viewportWidth="48" >
-
-    <group>
-        <path
-            android:name="plus1"
-            android:pathData="M20 16h-4v8h-8v4h8v8h4v-8h8v-4h-8zm9-3.84v3.64l5-1v21.2h4v-26z"
-            android:fillColor="#ff00ff00"/>
-    </group>
-</vector>
diff --git a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable_scale0.xml b/samples/SupportVectorDrawable/static/res/drawable/vector_drawable_scale0.xml
deleted file mode 100644
index 828f0d9..0000000
--- a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable_scale0.xml
+++ /dev/null
@@ -1,57 +0,0 @@
-<!--
- 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.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:height="64dp"
-    android:viewportHeight="200"
-    android:viewportWidth="200"
-    android:width="64dp" >
-
-    <group>
-        <path
-            android:name="background1"
-            android:fillColor="@color/color0"
-            android:pathData="M 0,0 l 100,0 l 0, 100 l -100, 0 z" />
-        <path
-            android:name="background2"
-            android:fillColor="@color/color2"
-            android:pathData="M 100,100 l 100,0 l 0, 100 l -100, 0 z" />
-    </group>
-    <group
-        android:pivotX="0"
-        android:pivotY="0"
-        android:rotation="90" >
-        <group
-            android:scaleX="1.5"
-            android:scaleY="1" >
-            <group
-                android:pivotX="0"
-                android:pivotY="0"
-                android:rotation="-90" >
-                <group
-                    android:scaleX="1.5"
-                    android:scaleY="1" >
-                    <path
-                        android:name="twoLines"
-                        android:fillColor="#FFFF0000"
-                        android:pathData="@string/triangle100"
-                        android:strokeColor="#FF00FF00"
-                        android:strokeWidth="10" />
-                </group>
-            </group>
-        </group>
-    </group>
-
-</vector>
\ No newline at end of file
diff --git a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable_scale1.xml b/samples/SupportVectorDrawable/static/res/drawable/vector_drawable_scale1.xml
deleted file mode 100644
index 530c73b..0000000
--- a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable_scale1.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-<!--
- 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.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:height="64dp"
-    android:viewportHeight="200"
-    android:viewportWidth="200"
-    android:width="64dp" >
-
-    <group>
-        <path
-            android:name="background1"
-            android:fillColor="#FF000000"
-            android:pathData="M 0,0 l 100,0 l 0, 100 l -100, 0 z" />
-        <path
-            android:name="background2"
-            android:fillColor="#FF000000"
-            android:pathData="M 100,100 l 100,0 l 0, 100 l -100, 0 z" />
-    </group>
-    <group
-        android:scaleX="-1"
-        android:scaleY="-1" >
-        <group
-            android:scaleX="-1"
-            android:scaleY="-1" >
-            <group
-                android:pivotX="100"
-                android:pivotY="100"
-                android:rotation="45" >
-                <path
-                    android:name="twoLines"
-                    android:fillColor="#FFFF0000"
-                    android:pathData="M 100, 0 l 0, 100, -100, 0 z"
-                    android:strokeColor="#FF00FF00"
-                    android:strokeWidth="10" />
-            </group>
-        </group>
-    </group>
-
-</vector>
\ No newline at end of file
diff --git a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable_scale2.xml b/samples/SupportVectorDrawable/static/res/drawable/vector_drawable_scale2.xml
deleted file mode 100644
index 200eb61..0000000
--- a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable_scale2.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-<!--
- 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.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:height="64dp"
-    android:viewportHeight="200"
-    android:viewportWidth="200"
-    android:width="64dp" >
-
-    <group>
-        <path
-            android:name="background1"
-            android:fillColor="#FF000000"
-            android:pathData="M 0,0 l 100,0 l 0, 100 l -100, 0 z" />
-        <path
-            android:name="background2"
-            android:fillColor="#FF000000"
-            android:pathData="M 100,100 l 100,0 l 0, 100 l -100, 0 z" />
-    </group>
-    <group
-        android:scaleX="2"
-        android:scaleY="0.5" >
-        <group
-            android:pivotX="100"
-            android:pivotY="100"
-            android:rotation="45" >
-            <path
-                android:name="twoLines"
-                android:fillColor="#FFFF0000"
-                android:pathData="M 100, 0 l 0, 100, -100, 0 z"
-                android:strokeColor="#FF00FF00"
-                android:strokeWidth="10" />
-        </group>
-    </group>
-
-</vector>
\ No newline at end of file
diff --git a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable_scale3.xml b/samples/SupportVectorDrawable/static/res/drawable/vector_drawable_scale3.xml
deleted file mode 100644
index a40fc9c..0000000
--- a/samples/SupportVectorDrawable/static/res/drawable/vector_drawable_scale3.xml
+++ /dev/null
@@ -1,62 +0,0 @@
-<!--
- 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.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:height="64dp"
-    android:viewportHeight="200"
-    android:viewportWidth="200"
-    android:width="64dp" >
-
-    <group>
-        <path
-            android:name="background1"
-            android:fillColor="#FF000000"
-            android:pathData="M 0,0 l 100,0 l 0, 100 l -100, 0 z" />
-        <path
-            android:name="background2"
-            android:fillColor="#FF000000"
-            android:pathData="M 100,100 l 100,0 l 0, 100 l -100, 0 z" />
-    </group>
-    <group
-        android:pivotX="0"
-        android:pivotY="0"
-        android:rotation="45" >
-        <group
-            android:pivotX="0"
-            android:pivotY="0"
-            android:rotation="90" >
-            <group
-                android:scaleX="1.5"
-                android:scaleY="1" >
-                <group
-                    android:pivotX="0"
-                    android:pivotY="0"
-                    android:rotation="-90" >
-                    <group
-                        android:scaleX="1.5"
-                        android:scaleY="1" >
-                        <path
-                            android:name="twoLines"
-                            android:fillColor="#FFFF0000"
-                            android:pathData="M 100, 0 l 0, 100, -100, 0 z"
-                            android:strokeColor="#FF00FF00"
-                            android:strokeWidth="10" />
-                    </group>
-                </group>
-            </group>
-        </group>
-    </group>
-
-</vector>
\ No newline at end of file
diff --git a/samples/SupportVectorDrawable/static/res/drawable/vector_test01.xml b/samples/SupportVectorDrawable/static/res/drawable/vector_test01.xml
deleted file mode 100644
index 8b891d6..0000000
--- a/samples/SupportVectorDrawable/static/res/drawable/vector_test01.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<!--
- 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.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-        android:height="128dp"
-        android:width="128dp"
-        android:viewportHeight="512"
-        android:viewportWidth="512" >
-
-    <group>
-        <path
-            android:name="002b"
-            android:pathData="M100,200c0,-100 150,-100 150,0s150,100 150,0t-200,299"
-            android:strokeColor="#FF0000FF"
-            android:strokeWidth="4"
-            android:fillColor="#00000000" />
-    </group>
-
-</vector>
\ No newline at end of file
diff --git a/samples/SupportVectorDrawable/static/res/drawable/vector_test02.xml b/samples/SupportVectorDrawable/static/res/drawable/vector_test02.xml
deleted file mode 100644
index e0af323..0000000
--- a/samples/SupportVectorDrawable/static/res/drawable/vector_test02.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<!--
- 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.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-        android:height="128dp"
-        android:width="128dp"
-        android:viewportHeight="512"
-        android:viewportWidth="512" >
-
-    <group>
-        <path
-            android:name="002b"
-            android:pathData="M100,200c0,-100 150,-100 150,0s150,100 150,0T-200,299"
-            android:strokeColor="#FF0000FF"
-            android:strokeWidth="4"
-            android:fillColor="#00000000" />
-    </group>
-
-</vector>
\ No newline at end of file
diff --git a/samples/SupportVectorDrawable/static/res/raw/vector_drawable01.xml b/samples/SupportVectorDrawable/static/res/raw/vector_drawable01.xml
deleted file mode 100644
index baa3fc7..0000000
--- a/samples/SupportVectorDrawable/static/res/raw/vector_drawable01.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<!--
- 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.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-        xmlns:auto="http://schemas.android.com/apk/res-auto"
-        android:height="48dp"
-        android:width="48dp"
-        android:viewportHeight="480"
-        android:viewportWidth="480" >
-
-    <group>
-        <path
-            android:name="box1"
-            android:pathData="m20,200l100,90l180-180l-35-35l-145,145l-60-60l-40,40z"
-            android:fillColor="?android:attr/colorControlActivated"
-            android:strokeColor="?android:attr/colorControlActivated"
-            android:strokeLineCap="round"
-            android:strokeLineJoin="round" />
-    </group>
-</vector>
diff --git a/samples/SupportVectorDrawable/static/res/values/colors.xml b/samples/SupportVectorDrawable/static/res/values/colors.xml
deleted file mode 100644
index 6eb3036..0000000
--- a/samples/SupportVectorDrawable/static/res/values/colors.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<!-- 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.
--->
-<resources>
-    <color name="color0">#a6e4ea</color>
-    <color name="color1">#ff3838</color>
-    <color name="color2">#ffff51</color>
-    <color name="color3">#0ed300</color>
-</resources>
diff --git a/samples/SupportVectorDrawable/static/res/values/strings.xml b/samples/SupportVectorDrawable/static/res/values/strings.xml
deleted file mode 100644
index 065e7d9..0000000
--- a/samples/SupportVectorDrawable/static/res/values/strings.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     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.
--->
-
-<resources>
-
-    <string name="twoLinePathData">"M 0,0 v 100 M 0,0 h 100"</string>
-    <string name="triangle"> "M300,70 l 0,-70 70,70 0,0   -70,70z"</string>
-    <string name="rectangle">"M300,70 l 0,-70 70,0  0,140 -70,0 z"</string>
-    <string name="rectangle2">"M300,70 l 0,-70 70,0  0,70z M300,70  l 70,0 0,70 -70,0z"</string>
-    <string name="equal2">    "M300,35 l 0,-35 70,0  0,35z M300,105 l 70,0 0,35 -70,0z"</string>
-    <string name="round_box">"m2.10001,-6c-1.9551,0 -0.5,0.02499 -2.10001,0.02499c-1.575,0 0.0031,-0.02499 -1.95,-0.02499c-2.543,0 -4,2.2816 -4,4.85001c0,3.52929 0.25,6.25 5.95,6.25c5.7,0 6,-2.72071 6,-6.25c0,-2.56841 -1.35699,-4.85001 -3.89999,-4.85001"</string>
-    <string name="heart">    "m4.5,-7c-1.95509,0 -3.83009,1.26759 -4.5,3c-0.66991,-1.73241 -2.54691,-3 -4.5,-3c-2.543,0 -4.5,1.93159 -4.5,4.5c0,3.5293 3.793,6.2578 9,11.5c5.207,-5.2422 9,-7.9707 9,-11.5c0,-2.56841 -1.957,-4.5 -4.5,-4.5"</string>
-    <string name="rectangle200">"M 0,0 l 200,0 l 0, 200 l -200, 0 z"</string>
-    <string name="triangle100">"M 100, 0 l 0, 100, -100, 0 z"</string>
-</resources>
diff --git a/samples/SupportVectorDrawable/static/rundemo.sh b/samples/SupportVectorDrawable/static/rundemo.sh
deleted file mode 100755
index 2695b53..0000000
--- a/samples/SupportVectorDrawable/static/rundemo.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-. $ANDROID_BUILD_TOP/build/envsetup.sh && \
-mmm -j20 . && \
-adb install -r $OUT/data/app/SupportVectorDrawable/SupportVectorDrawable.apk && \
-adb shell am start -n com.example.android.support.vectordrawable/com.example.android.support.vectordrawable.app.SimpleButtonBackground
-
-
diff --git a/samples/SupportVectorDrawable/static/src/com/example/android/support/vectordrawable/app/SimpleButtonBackground.java b/samples/SupportVectorDrawable/static/src/com/example/android/support/vectordrawable/app/SimpleButtonBackground.java
deleted file mode 100644
index 79a51ac..0000000
--- a/samples/SupportVectorDrawable/static/src/com/example/android/support/vectordrawable/app/SimpleButtonBackground.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * 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.support.vectordrawable.app;
-
-import android.app.Activity;
-import android.content.res.Resources;
-import android.graphics.PorterDuff.Mode;
-import android.graphics.drawable.Drawable.ConstantState;
-import android.os.Bundle;
-import android.support.graphics.drawable.VectorDrawableCompat;
-import android.widget.Button;
-import android.widget.LinearLayout;
-import android.widget.ScrollView;
-import android.widget.TextView;
-import com.example.android.support.vectordrawable.R;
-
-import java.text.DecimalFormat;
-
-public class SimpleButtonBackground extends Activity {
-    private static final String LOG_TAG = "SimpleButtonBackground";
-
-    private static final String LOGCAT = "VectorDrawable1";
-    protected int[] icon = {
-            R.drawable.vector_drawable_scale0,
-            R.drawable.vector_drawable_scale1,
-            R.drawable.vector_drawable_scale2,
-            R.drawable.vector_drawable_scale3,
-            R.drawable.vector_drawable01,
-            R.drawable.vector_drawable02,
-            R.drawable.vector_drawable03,
-            R.drawable.vector_drawable04,
-            R.drawable.vector_drawable05,
-            R.drawable.vector_drawable06,
-            R.drawable.vector_drawable07,
-            R.drawable.vector_drawable08,
-            R.drawable.vector_drawable09,
-            R.drawable.vector_drawable10,
-            R.drawable.vector_drawable11,
-            R.drawable.vector_drawable12,
-            R.drawable.vector_drawable13,
-            R.drawable.vector_drawable14,
-            R.drawable.vector_drawable15,
-            R.drawable.vector_drawable16,
-            R.drawable.vector_drawable17,
-            R.drawable.vector_drawable18,
-            R.drawable.vector_drawable19,
-            R.drawable.vector_drawable20,
-            R.drawable.vector_drawable21,
-            R.drawable.vector_drawable22,
-            R.drawable.vector_drawable23,
-            R.drawable.vector_drawable24,
-            R.drawable.vector_drawable25,
-            R.drawable.vector_drawable26,
-            R.drawable.vector_drawable27,
-            R.drawable.vector_drawable28,
-            R.drawable.vector_drawable29,
-            R.drawable.vector_drawable30,
-            R.drawable.vector_test01,
-            R.drawable.vector_test02
-    };
-
-    private static final int EXTRA_TESTS = 2;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        ScrollView scrollView = new ScrollView(this);
-        LinearLayout container = new LinearLayout(this);
-        scrollView.addView(container);
-        container.setOrientation(LinearLayout.VERTICAL);
-        Resources res = this.getResources();
-        container.setBackgroundColor(0xFF888888);
-        VectorDrawableCompat []d = new VectorDrawableCompat[icon.length];
-        long time =  android.os.SystemClock.currentThreadTimeMillis();
-        for (int i = 0; i < icon.length; i++) {
-             d[i] = VectorDrawableCompat.create(res, icon[i], getTheme());
-        }
-        time =  android.os.SystemClock.currentThreadTimeMillis()-time;
-
-        // Testing Tint on one particular case.
-        if (d.length > 3) {
-            d[3].setTint(0x8000FF00);
-            d[3].setTintMode(Mode.MULTIPLY);
-        }
-
-        // Testing Constant State like operation by creating the first 2 icons
-        // from the 3rd one's constant state.
-        VectorDrawableCompat []extras = new VectorDrawableCompat[EXTRA_TESTS];
-        ConstantState state = d[0].getConstantState();
-        extras[0] = (VectorDrawableCompat) state.newDrawable();
-        extras[1] = (VectorDrawableCompat) state.newDrawable();
-
-        // This alpha change is expected to affect both extra 0, 1, and d0.
-        extras[0].setAlpha(128);
-
-        d[0].mutate();
-        d[0].setAlpha(255);
-
-        // Just show the average create time as the first view.
-        TextView t = new TextView(this);
-        DecimalFormat df = new DecimalFormat("#.##");
-        t.setText("avgL=" + df.format(time / (icon.length)) + " ms");
-        container.addView(t);
-
-        addDrawableButtons(container, extras);
-
-        addDrawableButtons(container, d);
-
-        setContentView(scrollView);
-    }
-
-    private void addDrawableButtons(LinearLayout container, VectorDrawableCompat[] d) {
-        // Add the VD into consequent views.
-        for (int i = 0; i < d.length; i++) {
-            Button button = new Button(this);
-            button.setWidth(200);
-            // Note that setBackgroundResource() will fail b/c createFromXmlInner() failed
-            // to recognize <vector> pre-L.
-            button.setBackgroundDrawable(d[i]);
-            container.addView(button);
-        }
-    }
-}
diff --git a/testrunner/test_defs.xml b/testrunner/test_defs.xml
index 46ed2ab..d475889 100644
--- a/testrunner/test_defs.xml
+++ b/testrunner/test_defs.xml
@@ -64,6 +64,7 @@
 <test name="frameworks-services"
     build_path="frameworks/base/services/tests/servicestests"
     package="com.android.frameworks.servicestests"
+    runner="android.support.test.runner.AndroidJUnitRunner"
     coverage_target="framework"
     continuous="true" />