diff --git a/samples/Android.mk b/samples/Android.mk
deleted file mode 100644
index cc329fe..0000000
--- a/samples/Android.mk
+++ /dev/null
@@ -1,17 +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.
-
-LOCAL_PATH := $(call my-dir)
-
-include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/samples/Support13Demos/Android.mk b/samples/Support13Demos/Android.mk
deleted file mode 100644
index a227e10..0000000
--- a/samples/Support13Demos/Android.mk
+++ /dev/null
@@ -1,24 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-include $(CLEAR_VARS)
-
-LOCAL_USE_AAPT2 := true
-
-LOCAL_MODULE_TAGS := samples tests
-
-# Only compile source java files in this apk.
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-
-LOCAL_STATIC_ANDROID_LIBRARIES += android-support-v13
-
-LOCAL_PACKAGE_NAME := Support13Demos
-
-LOCAL_SDK_VERSION := current
-
-LOCAL_MIN_SDK_VERSION := 13
-
-LOCAL_DEX_PREOPT := false
-
-include $(BUILD_PACKAGE)
-
-# Use the folloing include to make our test apk.
-include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/samples/Support4Demos/Android.mk b/samples/Support4Demos/Android.mk
deleted file mode 100644
index 0ba19b0..0000000
--- a/samples/Support4Demos/Android.mk
+++ /dev/null
@@ -1,22 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-include $(CLEAR_VARS)
-
-LOCAL_USE_AAPT2 := true
-LOCAL_MODULE_TAGS := samples tests
-
-# Only compile source java files in this apk.
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-
-LOCAL_STATIC_ANDROID_LIBRARIES += android-support-v4
-
-LOCAL_PACKAGE_NAME := Support4Demos
-
-LOCAL_SDK_VERSION := current
-LOCAL_MIN_SDK_VERSION := 4
-
-LOCAL_DEX_PREOPT := false
-
-include $(BUILD_PACKAGE)
-
-# Use the following include to make our test apk.
-include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/samples/Support7Demos/Android.mk b/samples/Support7Demos/Android.mk
deleted file mode 100644
index fbea278..0000000
--- a/samples/Support7Demos/Android.mk
+++ /dev/null
@@ -1,36 +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_DEX_PREOPT := false
-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/SupportAnimationDemos/Android.mk b/samples/SupportAnimationDemos/Android.mk
deleted file mode 100644
index bbc786a..0000000
--- a/samples/SupportAnimationDemos/Android.mk
+++ /dev/null
@@ -1,31 +0,0 @@
-# Copyright (C) 2017 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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_USE_AAPT2 := true
-LOCAL_PACKAGE_NAME := SupportAnimationDemos
-LOCAL_MODULE_TAGS := samples
-LOCAL_SDK_VERSION := current
-LOCAL_MIN_SDK_VERSION := 16
-LOCAL_DEX_PREOPT := false
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-LOCAL_STATIC_ANDROID_LIBRARIES := \
-        android-support-dynamic-animation
-LOCAL_AAPT_FLAGS := --no-version-vectors
-include $(BUILD_PACKAGE)
diff --git a/samples/SupportAppNavigation/Android.mk b/samples/SupportAppNavigation/Android.mk
deleted file mode 100644
index ea9322f..0000000
--- a/samples/SupportAppNavigation/Android.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-include $(CLEAR_VARS)
-
-LOCAL_USE_AAPT2 := true
-
-LOCAL_MODULE_TAGS := samples tests
-
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-
-LOCAL_PACKAGE_NAME := SupportAppNavigation
-
-LOCAL_STATIC_ANDROID_LIBRARIES += android-support-v4
-
-LOCAL_SDK_VERSION := current
-
-LOCAL_MIN_SDK_VERSION := 8
-
-LOCAL_DEX_PREOPT := false
-
-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/build.gradle b/samples/SupportAppNavigation/build.gradle
new file mode 100644
index 0000000..fdbad1b
--- /dev/null
+++ b/samples/SupportAppNavigation/build.gradle
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+apply plugin: 'com.android.application'
+
+dependencies {
+    compile project(':support-v4')
+}
+
+android {
+    compileSdkVersion project.ext.currentSdk
+
+    defaultConfig {
+        minSdkVersion 14
+    }
+
+    sourceSets {
+        main.manifest.srcFile 'AndroidManifest.xml'
+        main.java.srcDirs = ['src']
+        main.res.srcDirs = ['res']
+    }
+
+    lintOptions {
+        abortOnError true
+    }
+
+    compileOptions {
+        sourceCompatibility JavaVersion.VERSION_1_7
+        targetCompatibility JavaVersion.VERSION_1_7
+    }
+}
diff --git a/samples/SupportDesignDemos/Android.mk b/samples/SupportDesignDemos/Android.mk
deleted file mode 100644
index 4c74ad2..0000000
--- a/samples/SupportDesignDemos/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_USE_AAPT2 := true
-LOCAL_PACKAGE_NAME := SupportDesignDemos
-LOCAL_MODULE_TAGS := samples
-LOCAL_SDK_VERSION := current
-LOCAL_MIN_SDK_VERSION := 7
-LOCAL_DEX_PREOPT := false
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-LOCAL_STATIC_ANDROID_LIBRARIES := \
-        android-support-v4 \
-        android-support-v7-appcompat \
-        android-support-v7-recyclerview \
-        android-support-transition \
-        android-support-design
-LOCAL_AAPT_FLAGS := --no-version-vectors
-LOCAL_PROGUARD_FLAG_FILES := proguard.flags
-include $(BUILD_PACKAGE)
diff --git a/samples/SupportLeanbackDemos/Android.mk b/samples/SupportLeanbackDemos/Android.mk
deleted file mode 100644
index 5a8d110..0000000
--- a/samples/SupportLeanbackDemos/Android.mk
+++ /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.
-
-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_USE_AAPT2 := true
-LOCAL_PACKAGE_NAME := SupportLeanbackDemos
-LOCAL_MODULE_TAGS := samples tests
-LOCAL_SDK_VERSION := current
-LOCAL_MIN_SDK_VERSION := 17
-LOCAL_DEX_PREOPT := false
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-LOCAL_STATIC_ANDROID_LIBRARIES := \
-        android-support-compat \
-        android-support-core-ui \
-        android-support-media-compat \
-        android-support-fragment \
-        android-support-v7-recyclerview \
-        android-support-v17-leanback \
-        android-support-v17-preference-leanback \
-        android-support-v7-preference \
-        android-support-v14-preference
-
-include $(BUILD_PACKAGE)
diff --git a/samples/SupportLeanbackJank/Android.mk b/samples/SupportLeanbackJank/Android.mk
deleted file mode 100644
index 21e3f31..0000000
--- a/samples/SupportLeanbackJank/Android.mk
+++ /dev/null
@@ -1,40 +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_USE_AAPT2 := true
-LOCAL_PACKAGE_NAME := SupportLeanbackJank
-LOCAL_MODULE_TAGS := samples tests
-LOCAL_SDK_VERSION := current
-LOCAL_MIN_SDK_VERSION := 17
-LOCAL_DEX_PREOPT := false
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-LOCAL_STATIC_JAVA_LIBRARIES := glide
-LOCAL_STATIC_ANDROID_LIBRARIES := \
-        android-support-compat \
-        android-support-core-ui \
-        android-support-media-compat \
-        android-support-fragment \
-        android-support-v7-recyclerview \
-        android-support-v17-leanback \
-        android-support-v17-preference-leanback \
-        android-support-v7-preference \
-        android-support-v14-preference
-
-include $(BUILD_PACKAGE)
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/SupportPercentDemos/Android.mk b/samples/SupportPercentDemos/Android.mk
deleted file mode 100644
index 54c980f..0000000
--- a/samples/SupportPercentDemos/Android.mk
+++ /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.
-
-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_USE_AAPT2 := true
-LOCAL_PACKAGE_NAME := SupportPercentDemos
-LOCAL_MODULE_TAGS := samples
-LOCAL_SDK_VERSION := current
-LOCAL_MIN_SDK_VERSION := 7
-LOCAL_DEX_PREOPT := false
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-LOCAL_STATIC_ANDROID_LIBRARIES := \
-        android-support-percent \
-        android-support-v4 \
-        android-support-v13
-include $(BUILD_PACKAGE)
diff --git a/samples/SupportPreferenceDemos/Android.mk b/samples/SupportPreferenceDemos/Android.mk
deleted file mode 100644
index f131aa0..0000000
--- a/samples/SupportPreferenceDemos/Android.mk
+++ /dev/null
@@ -1,61 +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.
-
-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 := SupportPreferenceDemos
-LOCAL_MODULE_TAGS := samples
-
-LOCAL_SDK_VERSION := current
-LOCAL_MIN_SDK_VERSION := 14
-
-LOCAL_DEX_PREOPT := false
-
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-
-LOCAL_STATIC_JAVA_LIBRARIES += \
-    android-support-v4 \
-    android-support-v7-appcompat \
-    android-support-v7-preference \
-    android-support-v7-recyclerview \
-    android-support-v14-preference \
-    android-support-v17-leanback \
-    android-support-v17-preference-leanback \
-
-LOCAL_RESOURCE_DIR = \
-    $(LOCAL_PATH)/res \
-    frameworks/support/v7/appcompat/res \
-    frameworks/support/v7/preference/res \
-    frameworks/support/v7/recyclerview/res \
-    frameworks/support/v14/preference/res \
-    frameworks/support/v17/leanback/res \
-    frameworks/support/v17/preference-leanback/res
-
-LOCAL_AAPT_FLAGS := \
-        --auto-add-overlay \
-        --extra-packages android.support.v7.appcompat \
-        --extra-packages android.support.v7.preference \
-        --extra-packages android.support.v7.recyclerview \
-        --extra-packages android.support.v14.preference \
-        --extra-packages android.support.v17.leanback \
-        --extra-packages android.support.v17.preference \
-        --no-version-vectors
-
-LOCAL_PROGUARD_FLAG_FILES := proguard.flags
-
-include $(BUILD_PACKAGE)
diff --git a/samples/SupportTransitionDemos/Android.mk b/samples/SupportTransitionDemos/Android.mk
deleted file mode 100644
index e822a0ab..0000000
--- a/samples/SupportTransitionDemos/Android.mk
+++ /dev/null
@@ -1,34 +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.
-
-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_USE_AAPT2 := true
-LOCAL_PACKAGE_NAME := SupportTransitionDemos
-LOCAL_MODULE_TAGS := samples
-LOCAL_SDK_VERSION := current
-LOCAL_MIN_SDK_VERSION := 14
-LOCAL_DEX_PREOPT := false
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-LOCAL_STATIC_ANDROID_LIBRARIES := \
-        android-support-v4 \
-        android-support-v7-appcompat \
-        android-support-transition
-LOCAL_AAPT_FLAGS := --no-version-vectors --no-version-transitions
-LOCAL_PROGUARD_FLAG_FILES := proguard.flags
-include $(BUILD_PACKAGE)
diff --git a/samples/SupportVectorDrawableDemos/Android.mk b/samples/SupportVectorDrawableDemos/Android.mk
deleted file mode 100644
index 376f841..0000000
--- a/samples/SupportVectorDrawableDemos/Android.mk
+++ /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.
-
-LOCAL_PATH := $(call my-dir)
-
-include $(CLEAR_VARS)
-
-LOCAL_USE_AAPT2 := true
-
-LOCAL_MODULE_TAGS := samples tests
-
-LOCAL_SDK_VERSION := current
-
-LOCAL_MIN_SDK_VERSION := 14
-
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-
-LOCAL_PACKAGE_NAME := SupportVectorDrawableDemos
-
-LOCAL_STATIC_ANDROID_LIBRARIES := \
-        android-support-v7-appcompat \
-        android-support-animatedvectordrawable \
-        android-support-vectordrawable \
-        android-support-v4
-
-LOCAL_AAPT_FLAGS += --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/settings.gradle b/settings.gradle
index 34af0fe..89e8b10 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -144,6 +144,9 @@
 include ':support-animation-demos'
 project(':support-animation-demos').projectDir = new File(samplesRoot, 'SupportAnimationDemos')
 
+include ':support-app-navigation'
+project(':support-app-navigation').projectDir = new File(samplesRoot, 'SupportAppNavigation')
+
 /////////////////////////////
 //
 // External
