Merge "BasicNotifications: Move build to gradle" into jb-mr2-dev
diff --git a/media/BasicMediaRouter/BasicMediaRouter/build.gradle b/media/BasicMediaRouter/BasicMediaRouter/build.gradle
new file mode 100644
index 0000000..87dbf18
--- /dev/null
+++ b/media/BasicMediaRouter/BasicMediaRouter/build.gradle
@@ -0,0 +1,19 @@
+buildscript {
+    repositories {
+        maven { url 'http://repo1.maven.org/maven2' }
+    }
+    dependencies {
+        classpath 'com.android.tools.build:gradle:0.5.+'
+    }
+}
+apply plugin: 'android'
+
+android {
+    compileSdkVersion 17
+    buildToolsVersion "17.0.0"
+
+    defaultConfig {
+        minSdkVersion 17
+        targetSdkVersion 17
+    }
+}
diff --git a/media/BasicMediaRouter/AndroidManifest.xml b/media/BasicMediaRouter/BasicMediaRouter/src/main/AndroidManifest.xml
similarity index 100%
rename from media/BasicMediaRouter/AndroidManifest.xml
rename to media/BasicMediaRouter/BasicMediaRouter/src/main/AndroidManifest.xml
diff --git a/media/BasicMediaRouter/src/com/example/android/media/basicmediarouter/MainActivity.java b/media/BasicMediaRouter/BasicMediaRouter/src/main/java/com/example/android/media/basicmediarouter/MainActivity.java
similarity index 100%
rename from media/BasicMediaRouter/src/com/example/android/media/basicmediarouter/MainActivity.java
rename to media/BasicMediaRouter/BasicMediaRouter/src/main/java/com/example/android/media/basicmediarouter/MainActivity.java
diff --git a/media/BasicMediaRouter/src/com/example/android/media/basicmediarouter/SamplePresentation.java b/media/BasicMediaRouter/BasicMediaRouter/src/main/java/com/example/android/media/basicmediarouter/SamplePresentation.java
similarity index 100%
rename from media/BasicMediaRouter/src/com/example/android/media/basicmediarouter/SamplePresentation.java
rename to media/BasicMediaRouter/BasicMediaRouter/src/main/java/com/example/android/media/basicmediarouter/SamplePresentation.java
diff --git a/media/BasicMediaRouter/res/drawable-hdpi/ic_launcher.png b/media/BasicMediaRouter/BasicMediaRouter/src/main/res/drawable-hdpi/ic_launcher.png
similarity index 100%
rename from media/BasicMediaRouter/res/drawable-hdpi/ic_launcher.png
rename to media/BasicMediaRouter/BasicMediaRouter/src/main/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/media/BasicMediaRouter/res/drawable-mdpi/ic_launcher.png b/media/BasicMediaRouter/BasicMediaRouter/src/main/res/drawable-mdpi/ic_launcher.png
similarity index 100%
rename from media/BasicMediaRouter/res/drawable-mdpi/ic_launcher.png
rename to media/BasicMediaRouter/BasicMediaRouter/src/main/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/media/BasicMediaRouter/res/drawable-xhdpi/ic_launcher.png b/media/BasicMediaRouter/BasicMediaRouter/src/main/res/drawable-xhdpi/ic_launcher.png
similarity index 100%
rename from media/BasicMediaRouter/res/drawable-xhdpi/ic_launcher.png
rename to media/BasicMediaRouter/BasicMediaRouter/src/main/res/drawable-xhdpi/ic_launcher.png
Binary files differ
diff --git a/media/BasicMediaRouter/res/drawable-xxhdpi/ic_launcher.png b/media/BasicMediaRouter/BasicMediaRouter/src/main/res/drawable-xxhdpi/ic_launcher.png
similarity index 100%
rename from media/BasicMediaRouter/res/drawable-xxhdpi/ic_launcher.png
rename to media/BasicMediaRouter/BasicMediaRouter/src/main/res/drawable-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/media/BasicMediaRouter/res/layout/activity_main.xml b/media/BasicMediaRouter/BasicMediaRouter/src/main/res/layout/activity_main.xml
similarity index 100%
rename from media/BasicMediaRouter/res/layout/activity_main.xml
rename to media/BasicMediaRouter/BasicMediaRouter/src/main/res/layout/activity_main.xml
diff --git a/media/BasicMediaRouter/res/layout/display.xml b/media/BasicMediaRouter/BasicMediaRouter/src/main/res/layout/display.xml
similarity index 100%
rename from media/BasicMediaRouter/res/layout/display.xml
rename to media/BasicMediaRouter/BasicMediaRouter/src/main/res/layout/display.xml
diff --git a/media/BasicMediaRouter/res/menu/main.xml b/media/BasicMediaRouter/BasicMediaRouter/src/main/res/menu/main.xml
similarity index 100%
rename from media/BasicMediaRouter/res/menu/main.xml
rename to media/BasicMediaRouter/BasicMediaRouter/src/main/res/menu/main.xml
diff --git a/media/BasicMediaRouter/res/values-v11/styles.xml b/media/BasicMediaRouter/BasicMediaRouter/src/main/res/values-v11/styles.xml
similarity index 100%
rename from media/BasicMediaRouter/res/values-v11/styles.xml
rename to media/BasicMediaRouter/BasicMediaRouter/src/main/res/values-v11/styles.xml
diff --git a/media/BasicMediaRouter/res/values-v14/styles.xml b/media/BasicMediaRouter/BasicMediaRouter/src/main/res/values-v14/styles.xml
similarity index 100%
rename from media/BasicMediaRouter/res/values-v14/styles.xml
rename to media/BasicMediaRouter/BasicMediaRouter/src/main/res/values-v14/styles.xml
diff --git a/media/BasicMediaRouter/res/values/colors.xml b/media/BasicMediaRouter/BasicMediaRouter/src/main/res/values/colors.xml
similarity index 100%
rename from media/BasicMediaRouter/res/values/colors.xml
rename to media/BasicMediaRouter/BasicMediaRouter/src/main/res/values/colors.xml
diff --git a/media/BasicMediaRouter/res/values/strings.xml b/media/BasicMediaRouter/BasicMediaRouter/src/main/res/values/strings.xml
similarity index 100%
rename from media/BasicMediaRouter/res/values/strings.xml
rename to media/BasicMediaRouter/BasicMediaRouter/src/main/res/values/strings.xml
diff --git a/media/BasicMediaRouter/res/values/styles.xml b/media/BasicMediaRouter/BasicMediaRouter/src/main/res/values/styles.xml
similarity index 100%
rename from media/BasicMediaRouter/res/values/styles.xml
rename to media/BasicMediaRouter/BasicMediaRouter/src/main/res/values/styles.xml
diff --git a/media/BasicMediaRouter/build.gradle b/media/BasicMediaRouter/build.gradle
new file mode 100644
index 0000000..495c503
--- /dev/null
+++ b/media/BasicMediaRouter/build.gradle
@@ -0,0 +1 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
diff --git a/media/BasicMediaRouter/settings.gradle b/media/BasicMediaRouter/settings.gradle
new file mode 100644
index 0000000..327efd6
--- /dev/null
+++ b/media/BasicMediaRouter/settings.gradle
@@ -0,0 +1 @@
+include ':BasicMediaRouter'
\ No newline at end of file
diff --git a/ui/accessibility/BasicAccessibility/BasicAccessibility/build.gradle b/ui/accessibility/BasicAccessibility/BasicAccessibility/build.gradle
index f8f1c8a..9eaf472 100644
--- a/ui/accessibility/BasicAccessibility/BasicAccessibility/build.gradle
+++ b/ui/accessibility/BasicAccessibility/BasicAccessibility/build.gradle
@@ -3,7 +3,7 @@
         maven { url 'http://repo1.maven.org/maven2' }
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:0.4'
+        classpath 'com.android.tools.build:gradle:0.5.+'
     }
 }
 apply plugin: 'android'
diff --git a/ui/actionbar/DoneBar/DoneBar/build.gradle b/ui/actionbar/DoneBar/DoneBar/build.gradle
new file mode 100644
index 0000000..dd97c2b
--- /dev/null
+++ b/ui/actionbar/DoneBar/DoneBar/build.gradle
@@ -0,0 +1,19 @@
+buildscript {
+    repositories {
+        maven { url 'http://repo1.maven.org/maven2' }
+    }
+    dependencies {
+        classpath 'com.android.tools.build:gradle:0.5.+'
+    }
+}
+apply plugin: 'android'
+
+android {
+    compileSdkVersion 17
+    buildToolsVersion "17.0.0"
+
+    defaultConfig {
+        minSdkVersion 14
+        targetSdkVersion 17
+    }
+}
diff --git a/ui/actionbar/DoneBar/AndroidManifest.xml b/ui/actionbar/DoneBar/DoneBar/src/main/AndroidManifest.xml
similarity index 96%
rename from ui/actionbar/DoneBar/AndroidManifest.xml
rename to ui/actionbar/DoneBar/DoneBar/src/main/AndroidManifest.xml
index 5536a9b..cce4d5e 100755
--- a/ui/actionbar/DoneBar/AndroidManifest.xml
+++ b/ui/actionbar/DoneBar/DoneBar/src/main/AndroidManifest.xml
@@ -26,7 +26,7 @@
         android:theme="@style/Theme.Sample"
         android:allowBackup="true">
 
-        <activity android:name=".MainActivity"
+        <activity android:name=".SampleDashboardActivity"
             android:label="@string/app_name">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
diff --git a/ui/actionbar/DoneBar/big_icon.png b/ui/actionbar/DoneBar/DoneBar/src/main/big_icon.png
similarity index 100%
rename from ui/actionbar/DoneBar/big_icon.png
rename to ui/actionbar/DoneBar/DoneBar/src/main/big_icon.png
Binary files differ
diff --git a/ui/actionbar/DoneBar/src/com/example/android/donebar/DoneBarActivity.java b/ui/actionbar/DoneBar/DoneBar/src/main/java/com/example/android/donebar/DoneBarActivity.java
old mode 100644
new mode 100755
similarity index 100%
rename from ui/actionbar/DoneBar/src/com/example/android/donebar/DoneBarActivity.java
rename to ui/actionbar/DoneBar/DoneBar/src/main/java/com/example/android/donebar/DoneBarActivity.java
diff --git a/ui/actionbar/DoneBar/src/com/example/android/donebar/DoneButtonActivity.java b/ui/actionbar/DoneBar/DoneBar/src/main/java/com/example/android/donebar/DoneButtonActivity.java
old mode 100644
new mode 100755
similarity index 100%
rename from ui/actionbar/DoneBar/src/com/example/android/donebar/DoneButtonActivity.java
rename to ui/actionbar/DoneBar/DoneBar/src/main/java/com/example/android/donebar/DoneButtonActivity.java
diff --git a/ui/actionbar/DoneBar/DoneBar/src/main/java/com/example/android/donebar/SampleDashboardActivity.java b/ui/actionbar/DoneBar/DoneBar/src/main/java/com/example/android/donebar/SampleDashboardActivity.java
new file mode 100755
index 0000000..e86e6fc
--- /dev/null
+++ b/ui/actionbar/DoneBar/DoneBar/src/main/java/com/example/android/donebar/SampleDashboardActivity.java
@@ -0,0 +1,131 @@
+/*
+ * Copyright 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.example.android.donebar;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.AdapterView;
+import android.widget.BaseAdapter;
+import android.widget.GridView;
+import android.widget.TextView;
+
+/**
+ * A simple launcher activity offering access to the individual samples in this project.
+ */
+public class SampleDashboardActivity extends Activity implements AdapterView.OnItemClickListener {
+    /**
+     * The collection of samples that will be used to populate the 'dashboard' grid.
+     */
+    private Sample[] mSamples;
+
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_sample_dashboard);
+
+        // Prepare list of samples in this dashboard.
+        mSamples = new Sample[]{
+                new Sample(R.string.done_bar_title, R.string.done_bar_description,
+                        DoneBarActivity.class),
+                new Sample(R.string.done_button_title, R.string.done_button_description,
+                        DoneButtonActivity.class),
+        };
+
+        // Use the custom adapter in the GridView and hook up a click listener to handle
+        // selection of individual samples.
+        GridView gridView = (GridView) findViewById(android.R.id.list);
+        gridView.setAdapter(new SampleAdapter());
+        gridView.setOnItemClickListener(this);
+    }
+
+    @Override
+    public void onItemClick(AdapterView<?> container, View view, int position, long id) {
+        // A sample was selected in the dashboard; open it.
+        startActivity(mSamples[position].intent);
+    }
+
+    /**
+     * A custom array-based adapter, designed for use with a {@link GridView}.
+     */
+    private class SampleAdapter extends BaseAdapter {
+        @Override
+        public int getCount() {
+            return mSamples.length;
+        }
+
+        @Override
+        public Sample getItem(int position) {
+            return mSamples[position];
+        }
+
+        @Override
+        public long getItemId(int position) {
+            // The title string ID should be unique per sample, so use it as an ID.
+            return mSamples[position].titleResId;
+        }
+
+        @Override
+        public View getView(int position, View convertView, ViewGroup container) {
+            if (convertView == null) {
+                // If there was no re-usable view that can be simply repopulated, create
+                // a new root view for this grid item.
+                convertView = getLayoutInflater().inflate(
+                        R.layout.sample_dashboard_item, container, false);
+            }
+
+            // Populate the view's children with real data about this sample.
+            ((TextView) convertView.findViewById(android.R.id.text1)).setText(
+                    mSamples[position].titleResId);
+            ((TextView) convertView.findViewById(android.R.id.text2)).setText(
+                    mSamples[position].descriptionResId);
+            return convertView;
+        }
+    }
+
+    /**
+     * A simple class that stores information about a sample: a title, description, and
+     * the intent to call
+     * {@link android.content.Context#startActivity(android.content.Intent) startActivity}
+     * with in order to open the sample.
+     */
+    private class Sample {
+        int titleResId;
+        int descriptionResId;
+        Intent intent;
+
+        /**
+         * Instantiate a new sample object with a title, description, and intent.
+         */
+        private Sample(int titleResId, int descriptionResId, Intent intent) {
+            this.intent = intent;
+            this.titleResId = titleResId;
+            this.descriptionResId = descriptionResId;
+        }
+
+        /**
+         * Instantiate a new sample object with a title, description, and {@link Activity}
+         * subclass. An intent will automatically be created for the given activity.
+         */
+        private Sample(int titleResId, int descriptionResId,
+                Class<? extends Activity> activityClass) {
+            this(titleResId, descriptionResId,
+                    new Intent(SampleDashboardActivity.this, activityClass));
+        }
+    }
+}
diff --git a/ui/actionbar/DoneBar/res/drawable-hdpi/ic_action_cancel.png b/ui/actionbar/DoneBar/DoneBar/src/main/res/drawable-hdpi/ic_action_cancel.png
similarity index 100%
rename from ui/actionbar/DoneBar/res/drawable-hdpi/ic_action_cancel.png
rename to ui/actionbar/DoneBar/DoneBar/src/main/res/drawable-hdpi/ic_action_cancel.png
Binary files differ
diff --git a/ui/actionbar/DoneBar/res/drawable-hdpi/ic_action_done.png b/ui/actionbar/DoneBar/DoneBar/src/main/res/drawable-hdpi/ic_action_done.png
similarity index 100%
rename from ui/actionbar/DoneBar/res/drawable-hdpi/ic_action_done.png
rename to ui/actionbar/DoneBar/DoneBar/src/main/res/drawable-hdpi/ic_action_done.png
Binary files differ
diff --git a/ui/actionbar/DoneBar/res/drawable-hdpi/ic_launcher.png b/ui/actionbar/DoneBar/DoneBar/src/main/res/drawable-hdpi/ic_launcher.png
similarity index 100%
rename from ui/actionbar/DoneBar/res/drawable-hdpi/ic_launcher.png
rename to ui/actionbar/DoneBar/DoneBar/src/main/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/ui/actionbar/DoneBar/res/drawable-mdpi/ic_action_cancel.png b/ui/actionbar/DoneBar/DoneBar/src/main/res/drawable-mdpi/ic_action_cancel.png
similarity index 100%
rename from ui/actionbar/DoneBar/res/drawable-mdpi/ic_action_cancel.png
rename to ui/actionbar/DoneBar/DoneBar/src/main/res/drawable-mdpi/ic_action_cancel.png
Binary files differ
diff --git a/ui/actionbar/DoneBar/res/drawable-mdpi/ic_action_done.png b/ui/actionbar/DoneBar/DoneBar/src/main/res/drawable-mdpi/ic_action_done.png
similarity index 100%
rename from ui/actionbar/DoneBar/res/drawable-mdpi/ic_action_done.png
rename to ui/actionbar/DoneBar/DoneBar/src/main/res/drawable-mdpi/ic_action_done.png
Binary files differ
diff --git a/ui/actionbar/DoneBar/res/drawable-mdpi/ic_launcher.png b/ui/actionbar/DoneBar/DoneBar/src/main/res/drawable-mdpi/ic_launcher.png
similarity index 100%
rename from ui/actionbar/DoneBar/res/drawable-mdpi/ic_launcher.png
rename to ui/actionbar/DoneBar/DoneBar/src/main/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/ui/actionbar/DoneBar/res/drawable-xhdpi/ic_action_cancel.png b/ui/actionbar/DoneBar/DoneBar/src/main/res/drawable-xhdpi/ic_action_cancel.png
similarity index 100%
rename from ui/actionbar/DoneBar/res/drawable-xhdpi/ic_action_cancel.png
rename to ui/actionbar/DoneBar/DoneBar/src/main/res/drawable-xhdpi/ic_action_cancel.png
Binary files differ
diff --git a/ui/actionbar/DoneBar/res/drawable-xhdpi/ic_action_done.png b/ui/actionbar/DoneBar/DoneBar/src/main/res/drawable-xhdpi/ic_action_done.png
similarity index 100%
rename from ui/actionbar/DoneBar/res/drawable-xhdpi/ic_action_done.png
rename to ui/actionbar/DoneBar/DoneBar/src/main/res/drawable-xhdpi/ic_action_done.png
Binary files differ
diff --git a/ui/actionbar/DoneBar/res/drawable-xhdpi/ic_launcher.png b/ui/actionbar/DoneBar/DoneBar/src/main/res/drawable-xhdpi/ic_launcher.png
similarity index 100%
rename from ui/actionbar/DoneBar/res/drawable-xhdpi/ic_launcher.png
rename to ui/actionbar/DoneBar/DoneBar/src/main/res/drawable-xhdpi/ic_launcher.png
Binary files differ
diff --git a/ui/actionbar/DoneBar/DoneBar/src/main/res/drawable-xhdpi/sample_dashboard_item_background.9.png b/ui/actionbar/DoneBar/DoneBar/src/main/res/drawable-xhdpi/sample_dashboard_item_background.9.png
new file mode 100644
index 0000000..1358628
--- /dev/null
+++ b/ui/actionbar/DoneBar/DoneBar/src/main/res/drawable-xhdpi/sample_dashboard_item_background.9.png
Binary files differ
diff --git a/ui/actionbar/DoneBar/res/drawable-xxhdpi/ic_launcher.png b/ui/actionbar/DoneBar/DoneBar/src/main/res/drawable-xxhdpi/ic_launcher.png
similarity index 100%
rename from ui/actionbar/DoneBar/res/drawable-xxhdpi/ic_launcher.png
rename to ui/actionbar/DoneBar/DoneBar/src/main/res/drawable-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/ui/actionbar/DoneBar/res/layout/actionbar_custom_view_done.xml b/ui/actionbar/DoneBar/DoneBar/src/main/res/layout/actionbar_custom_view_done.xml
similarity index 100%
rename from ui/actionbar/DoneBar/res/layout/actionbar_custom_view_done.xml
rename to ui/actionbar/DoneBar/DoneBar/src/main/res/layout/actionbar_custom_view_done.xml
diff --git a/ui/actionbar/DoneBar/res/layout/actionbar_custom_view_done_cancel.xml b/ui/actionbar/DoneBar/DoneBar/src/main/res/layout/actionbar_custom_view_done_cancel.xml
similarity index 100%
rename from ui/actionbar/DoneBar/res/layout/actionbar_custom_view_done_cancel.xml
rename to ui/actionbar/DoneBar/DoneBar/src/main/res/layout/actionbar_custom_view_done_cancel.xml
diff --git a/ui/actionbar/DoneBar/res/layout/activity_done_bar.xml b/ui/actionbar/DoneBar/DoneBar/src/main/res/layout/activity_done_bar.xml
similarity index 100%
rename from ui/actionbar/DoneBar/res/layout/activity_done_bar.xml
rename to ui/actionbar/DoneBar/DoneBar/src/main/res/layout/activity_done_bar.xml
diff --git a/ui/actionbar/DoneBar/res/layout/activity_done_button.xml b/ui/actionbar/DoneBar/DoneBar/src/main/res/layout/activity_done_button.xml
similarity index 100%
rename from ui/actionbar/DoneBar/res/layout/activity_done_button.xml
rename to ui/actionbar/DoneBar/DoneBar/src/main/res/layout/activity_done_button.xml
diff --git a/ui/actionbar/DoneBar/DoneBar/src/main/res/layout/activity_sample_dashboard.xml b/ui/actionbar/DoneBar/DoneBar/src/main/res/layout/activity_sample_dashboard.xml
new file mode 100755
index 0000000..88cdb80
--- /dev/null
+++ b/ui/actionbar/DoneBar/DoneBar/src/main/res/layout/activity_sample_dashboard.xml
@@ -0,0 +1,41 @@
+<!--
+  Copyright 2013 The Android Open Source Project
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+  -->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+
+    <TextView style="@style/Widget.SampleMessage"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="@dimen/horizontal_page_margin"
+        android:layout_marginRight="@dimen/horizontal_page_margin"
+        android:layout_marginTop="@dimen/vertical_page_margin"
+        android:layout_marginBottom="@dimen/vertical_page_margin"
+        android:text="@string/intro_message" />
+
+    <GridView android:id="@android:id/list"
+        style="@style/Widget.SampleDashboard.Grid"
+        android:layout_width="match_parent"
+        android:layout_height="0dp"
+        android:layout_weight="1"
+        android:paddingLeft="@dimen/horizontal_page_margin"
+        android:paddingRight="@dimen/horizontal_page_margin"
+        android:paddingBottom="@dimen/vertical_page_margin"
+        android:scrollbarStyle="outsideOverlay" />
+
+</LinearLayout>
diff --git a/ui/actionbar/DoneBar/res/layout/include_cancel_button.xml b/ui/actionbar/DoneBar/DoneBar/src/main/res/layout/include_cancel_button.xml
similarity index 100%
rename from ui/actionbar/DoneBar/res/layout/include_cancel_button.xml
rename to ui/actionbar/DoneBar/DoneBar/src/main/res/layout/include_cancel_button.xml
diff --git a/ui/actionbar/DoneBar/res/layout/include_done_button.xml b/ui/actionbar/DoneBar/DoneBar/src/main/res/layout/include_done_button.xml
similarity index 100%
rename from ui/actionbar/DoneBar/res/layout/include_done_button.xml
rename to ui/actionbar/DoneBar/DoneBar/src/main/res/layout/include_done_button.xml
diff --git a/ui/actionbar/DoneBar/DoneBar/src/main/res/layout/sample_dashboard_item.xml b/ui/actionbar/DoneBar/DoneBar/src/main/res/layout/sample_dashboard_item.xml
new file mode 100644
index 0000000..38987ee
--- /dev/null
+++ b/ui/actionbar/DoneBar/DoneBar/src/main/res/layout/sample_dashboard_item.xml
@@ -0,0 +1,32 @@
+<!--
+  Copyright 2013 The Android Open Source Project
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+  -->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    style="@style/Widget.SampleDashboard.Item"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+
+    <TextView android:id="@android:id/text1"
+        style="@style/Widget.SampleDashboard.Item.Title"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content" />
+
+    <TextView android:id="@android:id/text2"
+        style="@style/Widget.SampleDashboard.Item.Description"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content" />
+</LinearLayout>
diff --git a/ui/actionbar/DoneBar/res/menu/cancel.xml b/ui/actionbar/DoneBar/DoneBar/src/main/res/menu/cancel.xml
similarity index 100%
rename from ui/actionbar/DoneBar/res/menu/cancel.xml
rename to ui/actionbar/DoneBar/DoneBar/src/main/res/menu/cancel.xml
diff --git a/ui/actionbar/DoneBar/res/values/dimens.xml b/ui/actionbar/DoneBar/DoneBar/src/main/res/values-sw600dp/dimens.xml
similarity index 67%
copy from ui/actionbar/DoneBar/res/values/dimens.xml
copy to ui/actionbar/DoneBar/DoneBar/src/main/res/values-sw600dp/dimens.xml
index 952c220..22074a2 100644
--- a/ui/actionbar/DoneBar/res/values/dimens.xml
+++ b/ui/actionbar/DoneBar/DoneBar/src/main/res/values-sw600dp/dimens.xml
@@ -16,12 +16,9 @@
 
 <resources>
 
-    <!-- Define standard dimensions to comply with Holo-style grids and rhythm. -->
+    <!-- Semantic definitions -->
 
-    <dimen name="margin_tiny">4dp</dimen>
-    <dimen name="margin_small">8dp</dimen>
-    <dimen name="margin_medium">16dp</dimen>
-    <dimen name="margin_large">32dp</dimen>
-    <dimen name="margin_huge">64dp</dimen>
+    <dimen name="horizontal_page_margin">@dimen/margin_huge</dimen>
+    <dimen name="vertical_page_margin">@dimen/margin_medium</dimen>
 
 </resources>
diff --git a/ui/actionbar/DoneBar/res/values/dimens.xml b/ui/actionbar/DoneBar/DoneBar/src/main/res/values-sw600dp/styles.xml
similarity index 67%
copy from ui/actionbar/DoneBar/res/values/dimens.xml
copy to ui/actionbar/DoneBar/DoneBar/src/main/res/values-sw600dp/styles.xml
index 952c220..401e7aa 100644
--- a/ui/actionbar/DoneBar/res/values/dimens.xml
+++ b/ui/actionbar/DoneBar/DoneBar/src/main/res/values-sw600dp/styles.xml
@@ -16,12 +16,9 @@
 
 <resources>
 
-    <!-- Define standard dimensions to comply with Holo-style grids and rhythm. -->
-
-    <dimen name="margin_tiny">4dp</dimen>
-    <dimen name="margin_small">8dp</dimen>
-    <dimen name="margin_medium">16dp</dimen>
-    <dimen name="margin_large">32dp</dimen>
-    <dimen name="margin_huge">64dp</dimen>
+    <style name="Widget.SampleMessage">
+        <item name="android:textAppearance">?android:textAppearanceLarge</item>
+        <item name="android:lineSpacingMultiplier">1.2</item>
+    </style>
 
 </resources>
diff --git a/ui/actionbar/DoneBar/res/values/dimens.xml b/ui/actionbar/DoneBar/DoneBar/src/main/res/values/dimens.xml
similarity index 84%
rename from ui/actionbar/DoneBar/res/values/dimens.xml
rename to ui/actionbar/DoneBar/DoneBar/src/main/res/values/dimens.xml
index 952c220..39e710b 100644
--- a/ui/actionbar/DoneBar/res/values/dimens.xml
+++ b/ui/actionbar/DoneBar/DoneBar/src/main/res/values/dimens.xml
@@ -24,4 +24,9 @@
     <dimen name="margin_large">32dp</dimen>
     <dimen name="margin_huge">64dp</dimen>
 
+    <!-- Semantic definitions -->
+
+    <dimen name="horizontal_page_margin">@dimen/margin_medium</dimen>
+    <dimen name="vertical_page_margin">@dimen/margin_medium</dimen>
+
 </resources>
diff --git a/ui/actionbar/DoneBar/res/values/strings.xml b/ui/actionbar/DoneBar/DoneBar/src/main/res/values/strings.xml
similarity index 100%
rename from ui/actionbar/DoneBar/res/values/strings.xml
rename to ui/actionbar/DoneBar/DoneBar/src/main/res/values/strings.xml
diff --git a/ui/actionbar/DoneBar/DoneBar/src/main/res/values/styles.xml b/ui/actionbar/DoneBar/DoneBar/src/main/res/values/styles.xml
new file mode 100644
index 0000000..f3841bd
--- /dev/null
+++ b/ui/actionbar/DoneBar/DoneBar/src/main/res/values/styles.xml
@@ -0,0 +1,71 @@
+<!--
+  Copyright 2013 The Android Open Source Project
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+  -->
+
+<resources>
+
+    <!-- Activity themes -->
+
+    <style name="Theme.Base" parent="android:Theme.Holo.Light" />
+
+    <style name="Theme.Sample" parent="Theme.Base" />
+
+    <!-- Widget styling -->
+
+    <style name="Widget" />
+
+    <style name="Widget.SampleContentContainer">
+        <item name="android:paddingTop">@dimen/vertical_page_margin</item>
+        <item name="android:paddingBottom">@dimen/vertical_page_margin</item>
+        <item name="android:paddingLeft">@dimen/horizontal_page_margin</item>
+        <item name="android:paddingRight">@dimen/horizontal_page_margin</item>
+    </style>
+
+    <style name="Widget.SampleMessage">
+        <item name="android:textAppearance">?android:textAppearanceMedium</item>
+        <item name="android:lineSpacingMultiplier">1.1</item>
+    </style>
+
+    <style name="Widget.SampleDashboard.Grid" parent="Widget">
+        <item name="android:stretchMode">columnWidth</item>
+        <item name="android:columnWidth">200dp</item>
+        <item name="android:numColumns">auto_fit</item>
+        <item name="android:drawSelectorOnTop">true</item>
+        <item name="android:horizontalSpacing">@dimen/margin_medium</item>
+        <item name="android:verticalSpacing">@dimen/margin_medium</item>
+    </style>
+
+    <style name="Widget.SampleDashboard.Item" parent="Widget">
+        <item name="android:background">@drawable/sample_dashboard_item_background</item>
+        <item name="android:paddingTop">@dimen/margin_small</item>
+        <item name="android:paddingLeft">@dimen/margin_medium</item>
+        <item name="android:paddingRight">@dimen/margin_medium</item>
+        <item name="android:paddingBottom">@dimen/margin_medium</item>
+    </style>
+
+    <style name="Widget.SampleDashboard.Item.Title" parent="Widget">
+        <item name="android:layout_marginBottom">@dimen/margin_tiny</item>
+        <item name="android:textAppearance">?android:textAppearanceLarge</item>
+        <item name="android:textColor">#09c</item>
+        <item name="android:textStyle">bold</item>
+        <item name="android:textSize">24sp</item>
+    </style>
+
+    <style name="Widget.SampleDashboard.Item.Description" parent="Widget">
+        <item name="android:textAppearance">?android:textAppearanceSmall</item>
+        <item name="android:fontFamily">sans-serif-light</item>
+    </style>
+
+</resources>
diff --git a/ui/actionbar/DoneBar/build.gradle b/ui/actionbar/DoneBar/build.gradle
new file mode 100644
index 0000000..495c503
--- /dev/null
+++ b/ui/actionbar/DoneBar/build.gradle
@@ -0,0 +1 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
diff --git a/ui/actionbar/DoneBar/res/layout/activity_main.xml b/ui/actionbar/DoneBar/res/layout/activity_main.xml
deleted file mode 100755
index e342ca3..0000000
--- a/ui/actionbar/DoneBar/res/layout/activity_main.xml
+++ /dev/null
@@ -1,58 +0,0 @@
-<!--
-  Copyright 2013 The Android Open Source Project
-
-  Licensed under the Apache License, Version 2.0 (the "License");
-  you may not use this file except in compliance with the License.
-  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
-  -->
-
-<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent">
-
-    <LinearLayout style="@style/Widget.SampleContentContainer"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:orientation="vertical">
-
-        <TextView style="@style/Widget.SampleMessage"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:text="@string/intro_message" />
-
-        <Button style="@style/Widget.SampleButton"
-            android:id="@+id/done_bar_link"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginTop="@dimen/margin_large"
-            android:layout_marginBottom="@dimen/margin_small"
-            android:text="@string/done_bar_title" />
-
-        <TextView style="@style/Widget.SampleMessage"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:text="@string/done_bar_description" />
-
-        <Button style="@style/Widget.SampleButton"
-            android:id="@+id/done_button_link"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginTop="@dimen/margin_large"
-            android:layout_marginBottom="@dimen/margin_small"
-            android:text="@string/done_button_title" />
-
-        <TextView style="@style/Widget.SampleMessage"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:text="@string/done_button_description" />
-
-    </LinearLayout>
-</ScrollView>
diff --git a/ui/actionbar/DoneBar/res/values-sw600dp/styles.xml b/ui/actionbar/DoneBar/res/values-sw600dp/styles.xml
deleted file mode 100644
index 8b7fa45..0000000
--- a/ui/actionbar/DoneBar/res/values-sw600dp/styles.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<!--
-  Copyright 2013 The Android Open Source Project
-
-  Licensed under the Apache License, Version 2.0 (the "License");
-  you may not use this file except in compliance with the License.
-  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
-  -->
-
-<resources>
-
-    <style name="Widget.SampleContentContainer">
-        <item name="android:paddingTop">@dimen/margin_medium</item>
-        <item name="android:paddingBottom">@dimen/margin_medium</item>
-        <item name="android:paddingLeft">@dimen/margin_huge</item>
-        <item name="android:paddingRight">@dimen/margin_huge</item>
-    </style>
-
-    <style name="Widget.SampleMessage">
-        <item name="android:textAppearance">?android:textAppearanceLarge</item>
-        <item name="android:lineSpacingMultiplier">1.2</item>
-    </style>
-
-    <style name="Widget.SampleButton" parent="android:Widget.Holo.Light.Button">
-        <item name="android:textAppearance">?android:textAppearanceLarge</item>
-        <item name="android:paddingTop">@dimen/margin_medium</item>
-        <item name="android:paddingBottom">@dimen/margin_medium</item>
-        <item name="android:paddingLeft">@dimen/margin_large</item>
-        <item name="android:paddingRight">@dimen/margin_large</item>
-    </style>
-
-</resources>
diff --git a/ui/actionbar/DoneBar/res/values/styles.xml b/ui/actionbar/DoneBar/res/values/styles.xml
deleted file mode 100644
index 80895ef..0000000
--- a/ui/actionbar/DoneBar/res/values/styles.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<!--
-  Copyright 2013 The Android Open Source Project
-
-  Licensed under the Apache License, Version 2.0 (the "License");
-  you may not use this file except in compliance with the License.
-  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
-  -->
-
-<resources>
-
-    <!-- Activity themes -->
-
-    <style name="Theme.Base" parent="android:Theme.Holo.Light" />
-
-    <style name="Theme.Sample" parent="Theme.Base" />
-
-    <!-- Widget styling -->
-
-    <style name="Widget" />
-
-    <style name="Widget.SampleContentContainer">
-        <item name="android:padding">@dimen/margin_medium</item>
-    </style>
-
-    <style name="Widget.SampleMessage">
-        <item name="android:textAppearance">?android:textAppearanceMedium</item>
-        <item name="android:lineSpacingMultiplier">1.1</item>
-    </style>
-
-    <style name="Widget.SampleButton" parent="android:Widget.Holo.Light.Button">
-        <item name="android:textAppearance">?android:textAppearanceMedium</item>
-    </style>
-
-</resources>
diff --git a/ui/actionbar/DoneBar/settings.gradle b/ui/actionbar/DoneBar/settings.gradle
new file mode 100644
index 0000000..28b5ccd
--- /dev/null
+++ b/ui/actionbar/DoneBar/settings.gradle
@@ -0,0 +1 @@
+include ':DoneBar'
diff --git a/ui/actionbar/DoneBar/src/com/example/android/donebar/MainActivity.java b/ui/actionbar/DoneBar/src/com/example/android/donebar/MainActivity.java
deleted file mode 100755
index ff188df..0000000
--- a/ui/actionbar/DoneBar/src/com/example/android/donebar/MainActivity.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.example.android.donebar;
-
-import android.app.Activity;
-import android.content.Intent;
-import android.os.Bundle;
-import android.view.View;
-
-/**
- * A simple launcher activity describing the alternative action bar presentations and allowing the
- * user to navigate to a demo of each.
- */
-public class MainActivity extends Activity {
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.activity_main);
-
-        findViewById(R.id.done_bar_link).setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View view) {
-                startActivity(new Intent(MainActivity.this, DoneBarActivity.class));
-            }
-        });
-
-        findViewById(R.id.done_button_link).setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View view) {
-                startActivity(new Intent(MainActivity.this, DoneButtonActivity.class));
-            }
-        });
-    }
-}
diff --git a/ui/actionbarcompat/Basic/big_icon.png b/ui/actionbarcompat/Basic/big_icon.png
new file mode 100644
index 0000000..20f585a
--- /dev/null
+++ b/ui/actionbarcompat/Basic/big_icon.png
Binary files differ
diff --git a/ui/actionbarcompat/Basic/build.gradle b/ui/actionbarcompat/Basic/build.gradle
new file mode 100644
index 0000000..b99b102
--- /dev/null
+++ b/ui/actionbarcompat/Basic/build.gradle
@@ -0,0 +1,16 @@
+apply plugin: 'android'
+
+dependencies {
+    compile "com.android.support:support-v4:18.0.+"
+    compile "com.android.support:appcompat-v7:18.0.+"
+}
+
+android {
+    compileSdkVersion 17
+    buildToolsVersion "17.0.0"
+
+    defaultConfig {
+        minSdkVersion 7
+        targetSdkVersion 16
+    }
+}
diff --git a/ui/actionbarcompat/Basic/src/main/AndroidManifest.xml b/ui/actionbarcompat/Basic/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..f0243ac
--- /dev/null
+++ b/ui/actionbarcompat/Basic/src/main/AndroidManifest.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.example.android.actionbarcompat.basic"
+    android:versionCode="1"
+    android:versionName="1.0">
+
+    <!-- ActionBarCompat provides an Action Bar from API v7 onwards -->
+    <uses-sdk
+        android:minSdkVersion="7"
+        android:targetSdkVersion="17" />
+
+    <application
+        android:icon="@drawable/ic_launcher"
+        android:label="@string/app_name"
+        android:theme="@style/Theme.AppCompat"
+        android:allowBackup="true">
+
+        <activity android:name=".MainActivity">
+            <!-- Launcher Intent filter -->
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+    </application>
+
+</manifest>
\ No newline at end of file
diff --git a/ui/actionbarcompat/Basic/src/main/res/drawable-hdpi/ic_action_location.png b/ui/actionbarcompat/Basic/src/main/res/drawable-hdpi/ic_action_location.png
new file mode 100644
index 0000000..a42b3ea
--- /dev/null
+++ b/ui/actionbarcompat/Basic/src/main/res/drawable-hdpi/ic_action_location.png
Binary files differ
diff --git a/ui/actionbarcompat/Basic/src/main/res/drawable-hdpi/ic_action_refresh.png b/ui/actionbarcompat/Basic/src/main/res/drawable-hdpi/ic_action_refresh.png
new file mode 100644
index 0000000..c9d295d
--- /dev/null
+++ b/ui/actionbarcompat/Basic/src/main/res/drawable-hdpi/ic_action_refresh.png
Binary files differ
diff --git a/ui/actionbarcompat/Basic/src/main/res/drawable-hdpi/ic_action_settings.png b/ui/actionbarcompat/Basic/src/main/res/drawable-hdpi/ic_action_settings.png
new file mode 100644
index 0000000..d3f981d
--- /dev/null
+++ b/ui/actionbarcompat/Basic/src/main/res/drawable-hdpi/ic_action_settings.png
Binary files differ
diff --git a/ui/actionbarcompat/Basic/src/main/res/drawable-hdpi/ic_launcher.png b/ui/actionbarcompat/Basic/src/main/res/drawable-hdpi/ic_launcher.png
new file mode 100644
index 0000000..5bb19fb
--- /dev/null
+++ b/ui/actionbarcompat/Basic/src/main/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/ui/actionbarcompat/Basic/src/main/res/drawable-mdpi/ic_action_location.png b/ui/actionbarcompat/Basic/src/main/res/drawable-mdpi/ic_action_location.png
new file mode 100644
index 0000000..eaf9774
--- /dev/null
+++ b/ui/actionbarcompat/Basic/src/main/res/drawable-mdpi/ic_action_location.png
Binary files differ
diff --git a/ui/actionbarcompat/Basic/src/main/res/drawable-mdpi/ic_action_refresh.png b/ui/actionbarcompat/Basic/src/main/res/drawable-mdpi/ic_action_refresh.png
new file mode 100644
index 0000000..eef97e9
--- /dev/null
+++ b/ui/actionbarcompat/Basic/src/main/res/drawable-mdpi/ic_action_refresh.png
Binary files differ
diff --git a/ui/actionbarcompat/Basic/src/main/res/drawable-mdpi/ic_action_settings.png b/ui/actionbarcompat/Basic/src/main/res/drawable-mdpi/ic_action_settings.png
new file mode 100644
index 0000000..fc2bf8c
--- /dev/null
+++ b/ui/actionbarcompat/Basic/src/main/res/drawable-mdpi/ic_action_settings.png
Binary files differ
diff --git a/ui/actionbarcompat/Basic/src/main/res/drawable-mdpi/ic_launcher.png b/ui/actionbarcompat/Basic/src/main/res/drawable-mdpi/ic_launcher.png
new file mode 100644
index 0000000..5737b36
--- /dev/null
+++ b/ui/actionbarcompat/Basic/src/main/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/ui/actionbarcompat/Basic/src/main/res/drawable-xhdpi/ic_action_location.png b/ui/actionbarcompat/Basic/src/main/res/drawable-xhdpi/ic_action_location.png
new file mode 100644
index 0000000..5f11cce
--- /dev/null
+++ b/ui/actionbarcompat/Basic/src/main/res/drawable-xhdpi/ic_action_location.png
Binary files differ
diff --git a/ui/actionbarcompat/Basic/src/main/res/drawable-xhdpi/ic_action_refresh.png b/ui/actionbarcompat/Basic/src/main/res/drawable-xhdpi/ic_action_refresh.png
new file mode 100644
index 0000000..1027c9a
--- /dev/null
+++ b/ui/actionbarcompat/Basic/src/main/res/drawable-xhdpi/ic_action_refresh.png
Binary files differ
diff --git a/ui/actionbarcompat/Basic/src/main/res/drawable-xhdpi/ic_action_settings.png b/ui/actionbarcompat/Basic/src/main/res/drawable-xhdpi/ic_action_settings.png
new file mode 100644
index 0000000..1b9acf2
--- /dev/null
+++ b/ui/actionbarcompat/Basic/src/main/res/drawable-xhdpi/ic_action_settings.png
Binary files differ
diff --git a/ui/actionbarcompat/Basic/src/main/res/drawable-xhdpi/ic_launcher.png b/ui/actionbarcompat/Basic/src/main/res/drawable-xhdpi/ic_launcher.png
new file mode 100644
index 0000000..31df043
--- /dev/null
+++ b/ui/actionbarcompat/Basic/src/main/res/drawable-xhdpi/ic_launcher.png
Binary files differ
diff --git a/ui/actionbarcompat/Basic/src/main/res/drawable-xxhdpi/ic_launcher.png b/ui/actionbarcompat/Basic/src/main/res/drawable-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000..5087435
--- /dev/null
+++ b/ui/actionbarcompat/Basic/src/main/res/drawable-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/ui/actionbar/DoneBar/res/values/dimens.xml b/ui/actionbarcompat/Basic/src/main/res/layout/activity_main.xml
similarity index 63%
copy from ui/actionbar/DoneBar/res/values/dimens.xml
copy to ui/actionbarcompat/Basic/src/main/res/layout/activity_main.xml
index 952c220..47619e0 100644
--- a/ui/actionbar/DoneBar/res/values/dimens.xml
+++ b/ui/actionbarcompat/Basic/src/main/res/layout/activity_main.xml
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
 <!--
   Copyright 2013 The Android Open Source Project
 
@@ -12,16 +13,10 @@
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-  -->
-
-<resources>
-
-    <!-- Define standard dimensions to comply with Holo-style grids and rhythm. -->
-
-    <dimen name="margin_tiny">4dp</dimen>
-    <dimen name="margin_small">8dp</dimen>
-    <dimen name="margin_medium">16dp</dimen>
-    <dimen name="margin_large">32dp</dimen>
-    <dimen name="margin_huge">64dp</dimen>
-
-</resources>
+-->
+<TextView xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:padding="16dp"
+    android:text="@string/main_description"
+    android:gravity="center" />
\ No newline at end of file
diff --git a/ui/actionbarcompat/Basic/src/main/res/menu/main.xml b/ui/actionbarcompat/Basic/src/main/res/menu/main.xml
new file mode 100644
index 0000000..a4dc5d1
--- /dev/null
+++ b/ui/actionbarcompat/Basic/src/main/res/menu/main.xml
@@ -0,0 +1,51 @@
+<?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.
+-->
+
+<!--
+    As we're using ActionBarCompat, any action item attributes come from ActionBarCompat's XML
+    namespace instead of the android namespace. Here we've added a new support namespace added to
+    the menu element allowing us to use the 'showAsAction' attribute in a backwards compatible way.
+    Any other action item attributes used should be referenced from this namespace too
+    (actionProviderClass, actionViewClass, actionLayout).
+-->
+<menu xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:support="http://schemas.android.com/apk/res-auto" >
+
+    <!--
+        Here we create an item, setting support:showAsAction to display the item as an action if
+        there's room on the compatible Action Bar.
+    -->
+    <item
+        android:id="@+id/menu_refresh"
+        android:icon="@drawable/ic_action_refresh"
+        android:title="@string/menu_refresh"
+        support:showAsAction="ifRoom"/>
+
+    <!-- Location item is added in onCreateOptionsMenu() -->
+
+    <!--
+        Here we set the settings item to always be in the overflow menu, by setting
+        support:showAsAction to never, so it is never displayed as an action item on the compatible
+        Action Bar.
+    -->
+    <item
+        android:id="@+id/menu_settings"
+        android:icon="@drawable/ic_action_settings"
+        android:title="@string/menu_settings"
+        support:showAsAction="never"/>
+
+</menu>
\ No newline at end of file
diff --git a/ui/actionbar/DoneBar/res/values/dimens.xml b/ui/actionbarcompat/Basic/src/main/res/values/ids.xml
similarity index 66%
copy from ui/actionbar/DoneBar/res/values/dimens.xml
copy to ui/actionbarcompat/Basic/src/main/res/values/ids.xml
index 952c220..0269815 100644
--- a/ui/actionbar/DoneBar/res/values/dimens.xml
+++ b/ui/actionbarcompat/Basic/src/main/res/values/ids.xml
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
 <!--
   Copyright 2013 The Android Open Source Project
 
@@ -12,16 +13,12 @@
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-  -->
-
+-->
 <resources>
 
-    <!-- Define standard dimensions to comply with Holo-style grids and rhythm. -->
+    <!--
+        Generate an id which can be used when the location menu item is added in MainActivity
+    -->
+    <item name="menu_location" type="id"/>
 
-    <dimen name="margin_tiny">4dp</dimen>
-    <dimen name="margin_small">8dp</dimen>
-    <dimen name="margin_medium">16dp</dimen>
-    <dimen name="margin_large">32dp</dimen>
-    <dimen name="margin_huge">64dp</dimen>
-
-</resources>
+</resources>
\ No newline at end of file
diff --git a/ui/actionbarcompat/Basic/src/main/res/values/strings.xml b/ui/actionbarcompat/Basic/src/main/res/values/strings.xml
new file mode 100644
index 0000000..5421e64
--- /dev/null
+++ b/ui/actionbarcompat/Basic/src/main/res/values/strings.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  Copyright 2013 The Android Open Source Project
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<resources>
+
+    <string name="app_name">ABC Basic</string>
+    <string name="menu_refresh">Refresh</string>
+    <string name="menu_location">Location</string>
+    <string name="menu_settings">Settings</string>
+    <string name="main_description">This is a basic Activity showing an
+        Action Bar. Items that are not shown as action items on the Action Bar are displayed in
+        the action bar overflow.</string>
+
+</resources>
\ No newline at end of file
diff --git a/ui/actionbarcompat/Basic/src/main/src/com/example/android/actionbarcompat/basic/MainActivity.java b/ui/actionbarcompat/Basic/src/main/src/com/example/android/actionbarcompat/basic/MainActivity.java
new file mode 100644
index 0000000..eb63827
--- /dev/null
+++ b/ui/actionbarcompat/Basic/src/main/src/com/example/android/actionbarcompat/basic/MainActivity.java
@@ -0,0 +1,87 @@
+/*
+ * 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.actionbarcompat.basic;
+
+import android.os.Bundle;
+import android.support.v4.view.MenuItemCompat;
+import android.support.v7.app.ActionBarActivity;
+import android.view.Menu;
+import android.view.MenuItem;
+
+/**
+ * This sample shows you how to use ActionBarCompat to create a basic Activity which displays
+ * action items. It covers inflating items from a menu resource, as well as adding an item in code.
+ *
+ * This Activity extends from {@link ActionBarActivity}, which provides all of the function
+ * necessary to display a compatible Action Bar on devices running Android v2.1+.
+ */
+public class MainActivity extends ActionBarActivity {
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_main);
+    }
+
+    // BEGIN_INCLUDE(create_menu)
+    /**
+     * Use this method to instantiate your menu, and add your items to it. You
+     * should return true if you have added items to it and want the menu to be displayed.
+     */
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        // Inflate our menu from the resources by using the menu inflater.
+        getMenuInflater().inflate(R.menu.main, menu);
+
+        // It is also possible add items here. Use a generated id from
+        // resources (ids.xml) to ensure that all menu ids are distinct.
+        MenuItem locationItem = menu.add(0, R.id.menu_location, 0, R.string.menu_location);
+        locationItem.setIcon(R.drawable.ic_action_location);
+
+        // Need to use MenuItemCompat methods to call any action item related methods
+        MenuItemCompat.setShowAsAction(locationItem, MenuItem.SHOW_AS_ACTION_IF_ROOM);
+
+        return true;
+    }
+    // END_INCLUDE(create_menu)
+
+    // BEGIN_INCLUDE(menu_item_selected)
+    /**
+     * This method is called when one of the menu items to selected. These items
+     * can be on the Action Bar, the overflow menu, or the standard options menu. You
+     * should return true if you handle the selection.
+     */
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        switch (item.getItemId()) {
+            case R.id.menu_refresh:
+                // Here we might start a background refresh task
+                return true;
+
+            case R.id.menu_location:
+                // Here we might call LocationManager.requestLocationUpdates()
+                return true;
+
+            case R.id.menu_settings:
+                // Here we would open up our settings activity
+                return true;
+        }
+
+        return super.onOptionsItemSelected(item);
+    }
+    // END_INCLUDE(menu_item_selected)
+}
diff --git a/ui/actionbarcompat/ShareActionProvider/big_icon.png b/ui/actionbarcompat/ShareActionProvider/big_icon.png
new file mode 100644
index 0000000..7da0b23
--- /dev/null
+++ b/ui/actionbarcompat/ShareActionProvider/big_icon.png
Binary files differ
diff --git a/ui/actionbarcompat/ShareActionProvider/build.gradle b/ui/actionbarcompat/ShareActionProvider/build.gradle
new file mode 100644
index 0000000..b99b102
--- /dev/null
+++ b/ui/actionbarcompat/ShareActionProvider/build.gradle
@@ -0,0 +1,16 @@
+apply plugin: 'android'
+
+dependencies {
+    compile "com.android.support:support-v4:18.0.+"
+    compile "com.android.support:appcompat-v7:18.0.+"
+}
+
+android {
+    compileSdkVersion 17
+    buildToolsVersion "17.0.0"
+
+    defaultConfig {
+        minSdkVersion 7
+        targetSdkVersion 16
+    }
+}
diff --git a/ui/actionbarcompat/ShareActionProvider/src/main/AndroidManifest.xml b/ui/actionbarcompat/ShareActionProvider/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..8a5af4f
--- /dev/null
+++ b/ui/actionbarcompat/ShareActionProvider/src/main/AndroidManifest.xml
@@ -0,0 +1,52 @@
+<?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.
+-->
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.example.android.actionbarcompat.shareactionprovider"
+    android:versionCode="1"
+    android:versionName="1.0">
+
+    <!--
+        ActionBarCompat provides an Action Bar from API v7 onwards
+    -->
+    <uses-sdk
+        android:minSdkVersion="7"
+        android:targetSdkVersion="17" />
+
+    <application
+        android:icon="@drawable/ic_launcher"
+        android:label="@string/app_name"
+        android:theme="@style/Theme.AppCompat"
+        android:allowBackup="true">
+
+        <activity
+            android:name=".MainActivity">
+            <!-- Launcher Intent filter -->
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+
+        <!-- ContentProvider which serves files from this application's asset folder -->
+        <provider
+            android:name=".content.AssetProvider"
+            android:authorities="com.example.android.actionbarcompat.shareactionprovider"
+            android:grantUriPermissions="true"
+            android:exported="true" />
+
+    </application>
+
+</manifest>
\ No newline at end of file
diff --git a/ui/actionbarcompat/ShareActionProvider/src/main/assets/photo_1.jpg b/ui/actionbarcompat/ShareActionProvider/src/main/assets/photo_1.jpg
new file mode 100644
index 0000000..cd365c7
--- /dev/null
+++ b/ui/actionbarcompat/ShareActionProvider/src/main/assets/photo_1.jpg
Binary files differ
diff --git a/ui/actionbarcompat/ShareActionProvider/src/main/assets/photo_2.jpg b/ui/actionbarcompat/ShareActionProvider/src/main/assets/photo_2.jpg
new file mode 100644
index 0000000..f088c11
--- /dev/null
+++ b/ui/actionbarcompat/ShareActionProvider/src/main/assets/photo_2.jpg
Binary files differ
diff --git a/ui/actionbarcompat/ShareActionProvider/src/main/assets/photo_3.jpg b/ui/actionbarcompat/ShareActionProvider/src/main/assets/photo_3.jpg
new file mode 100644
index 0000000..d4cff6a
--- /dev/null
+++ b/ui/actionbarcompat/ShareActionProvider/src/main/assets/photo_3.jpg
Binary files differ
diff --git a/ui/actionbarcompat/ShareActionProvider/src/main/res/drawable-hdpi/ic_launcher.png b/ui/actionbarcompat/ShareActionProvider/src/main/res/drawable-hdpi/ic_launcher.png
new file mode 100644
index 0000000..48db73f
--- /dev/null
+++ b/ui/actionbarcompat/ShareActionProvider/src/main/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/ui/actionbarcompat/ShareActionProvider/src/main/res/drawable-mdpi/ic_launcher.png b/ui/actionbarcompat/ShareActionProvider/src/main/res/drawable-mdpi/ic_launcher.png
new file mode 100644
index 0000000..674b1ee
--- /dev/null
+++ b/ui/actionbarcompat/ShareActionProvider/src/main/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/ui/actionbarcompat/ShareActionProvider/src/main/res/drawable-xhdpi/ic_launcher.png b/ui/actionbarcompat/ShareActionProvider/src/main/res/drawable-xhdpi/ic_launcher.png
new file mode 100644
index 0000000..e76105d
--- /dev/null
+++ b/ui/actionbarcompat/ShareActionProvider/src/main/res/drawable-xhdpi/ic_launcher.png
Binary files differ
diff --git a/ui/actionbarcompat/ShareActionProvider/src/main/res/drawable-xxhdpi/ic_launcher.png b/ui/actionbarcompat/ShareActionProvider/src/main/res/drawable-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000..67605d8
--- /dev/null
+++ b/ui/actionbarcompat/ShareActionProvider/src/main/res/drawable-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/ui/actionbarcompat/ShareActionProvider/src/main/res/layout/activity_main.xml b/ui/actionbarcompat/ShareActionProvider/src/main/res/layout/activity_main.xml
new file mode 100644
index 0000000..902e8ab
--- /dev/null
+++ b/ui/actionbarcompat/ShareActionProvider/src/main/res/layout/activity_main.xml
@@ -0,0 +1,38 @@
+<?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.
+-->
+
+<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.v4.view.ViewPager
+        android:id="@+id/viewpager"
+        android:layout_width="match_parent"
+        android:layout_height="0dp"
+        android:layout_weight="1" />
+
+    <TextView
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:text="@string/intro_message"
+        android:padding="16dp"
+        android:textAppearance="?android:textAppearanceMedium"
+        android:lineSpacingMultiplier="1.1"
+        android:background="#fb3"/>
+
+</LinearLayout>
\ No newline at end of file
diff --git a/ui/actionbar/DoneBar/res/values/dimens.xml b/ui/actionbarcompat/ShareActionProvider/src/main/res/layout/item_image.xml
similarity index 63%
copy from ui/actionbar/DoneBar/res/values/dimens.xml
copy to ui/actionbarcompat/ShareActionProvider/src/main/res/layout/item_image.xml
index 952c220..f7940e7 100644
--- a/ui/actionbar/DoneBar/res/values/dimens.xml
+++ b/ui/actionbarcompat/ShareActionProvider/src/main/res/layout/item_image.xml
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
 <!--
   Copyright 2013 The Android Open Source Project
 
@@ -12,16 +13,8 @@
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-  -->
-
-<resources>
-
-    <!-- Define standard dimensions to comply with Holo-style grids and rhythm. -->
-
-    <dimen name="margin_tiny">4dp</dimen>
-    <dimen name="margin_small">8dp</dimen>
-    <dimen name="margin_medium">16dp</dimen>
-    <dimen name="margin_large">32dp</dimen>
-    <dimen name="margin_huge">64dp</dimen>
-
-</resources>
+-->
+<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:scaleType="fitCenter" />
diff --git a/ui/actionbar/DoneBar/res/values/dimens.xml b/ui/actionbarcompat/ShareActionProvider/src/main/res/layout/item_text.xml
similarity index 62%
copy from ui/actionbar/DoneBar/res/values/dimens.xml
copy to ui/actionbarcompat/ShareActionProvider/src/main/res/layout/item_text.xml
index 952c220..00c6a38 100644
--- a/ui/actionbar/DoneBar/res/values/dimens.xml
+++ b/ui/actionbarcompat/ShareActionProvider/src/main/res/layout/item_text.xml
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
 <!--
   Copyright 2013 The Android Open Source Project
 
@@ -12,16 +13,11 @@
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-  -->
-
-<resources>
-
-    <!-- Define standard dimensions to comply with Holo-style grids and rhythm. -->
-
-    <dimen name="margin_tiny">4dp</dimen>
-    <dimen name="margin_small">8dp</dimen>
-    <dimen name="margin_medium">16dp</dimen>
-    <dimen name="margin_large">32dp</dimen>
-    <dimen name="margin_huge">64dp</dimen>
-
-</resources>
+-->
+<TextView xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:padding="16dp"
+    android:textAppearance="?android:textAppearanceLarge"
+    android:lineSpacingMultiplier="1.1"
+    android:gravity="center"/>
diff --git a/ui/actionbarcompat/ShareActionProvider/src/main/res/menu/main_menu.xml b/ui/actionbarcompat/ShareActionProvider/src/main/res/menu/main_menu.xml
new file mode 100644
index 0000000..acd2134
--- /dev/null
+++ b/ui/actionbarcompat/ShareActionProvider/src/main/res/menu/main_menu.xml
@@ -0,0 +1,38 @@
+<?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.
+-->
+
+<!--
+  As we're using ActionBarCompat, any action item attributes come from ActionBarCompat's XML
+  namespace instead of the android namespace. Here we've added a new support namespace added to
+  the menu element allowing us to use the 'showAsAction' attribute in a backwards compatible way.
+  Any other action item attributes used should be referenced from this namespace too
+  (actionProviderClass, actionViewClass, actionLayout).
+-->
+<menu xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:support="http://schemas.android.com/apk/res-auto">
+
+    <!--
+      To use ShareActionProvider provided by ActionBarCompat, we reference the class by set the
+      support:actionProviderClass attribute with the full class name of ShareActionProvider.
+    -->
+    <item
+        android:id="@+id/menu_share"
+        android:title="@string/menu_share"
+        support:actionProviderClass="android.support.v7.widget.ShareActionProvider"
+        support:showAsAction="always" />
+
+</menu>
\ No newline at end of file
diff --git a/ui/actionbarcompat/ShareActionProvider/src/main/res/values/strings.xml b/ui/actionbarcompat/ShareActionProvider/src/main/res/values/strings.xml
new file mode 100644
index 0000000..d2b7ef8
--- /dev/null
+++ b/ui/actionbarcompat/ShareActionProvider/src/main/res/values/strings.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  Copyright 2013 The Android Open Source Project
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<resources>
+
+    <string name="app_name">ABC ShareActionProvider</string>
+    <string name="intro_message">This sample demonstrates how to show a
+        <i>ShareActionProvider</i>, updated for the selected content.</string>
+    <string name="menu_share">Share</string>
+
+    <string name="quote_1">Expectation is the root of all heartache - William Shakespeare</string>
+    <string name="quote_2">The true sign of intelligence is not knowledge but imagination - Albert
+        Einstein</string>
+    <string name="quote_3">As for me, all I know is that I know nothing - Socrates</string>
+
+</resources>
\ No newline at end of file
diff --git a/ui/actionbarcompat/ShareActionProvider/src/main/src/com/example/android/actionbarcompat/shareactionprovider/MainActivity.java b/ui/actionbarcompat/ShareActionProvider/src/main/src/com/example/android/actionbarcompat/shareactionprovider/MainActivity.java
new file mode 100644
index 0000000..c651b39
--- /dev/null
+++ b/ui/actionbarcompat/ShareActionProvider/src/main/src/com/example/android/actionbarcompat/shareactionprovider/MainActivity.java
@@ -0,0 +1,202 @@
+/*
+ * 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.actionbarcompat.shareactionprovider;
+
+import com.example.android.actionbarcompat.shareactionprovider.content.ContentItem;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.support.v4.view.MenuItemCompat;
+import android.support.v4.view.PagerAdapter;
+import android.support.v4.view.ViewPager;
+import android.support.v7.app.ActionBarActivity;
+import android.support.v7.widget.ShareActionProvider;
+import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import java.util.ArrayList;
+
+/**
+ * This sample shows you how a provide a {@link ShareActionProvider} with ActionBarCompat,
+ * backwards compatible to API v7.
+ * <p>
+ * The sample contains a {@link ViewPager} which displays content of differing types: image and
+ * text. When a new item is selected in the ViewPager, the ShareActionProvider is updated with
+ * a share intent specific to that content.
+ * <p>
+ * This Activity extends from {@link ActionBarActivity}, which provides all of the function
+ * necessary to display a compatible Action Bar on devices running Android v2.1+.
+ */
+public class MainActivity extends ActionBarActivity {
+
+    // The items to be displayed in the ViewPager
+    private final ArrayList<ContentItem> mItems = getSampleContent();
+
+    // Keep reference to the ShareActionProvider from the menu
+    private ShareActionProvider mShareActionProvider;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        // Set content view (which contains a CheeseListFragment)
+        setContentView(R.layout.activity_main);
+
+        // Retrieve the ViewPager from the content view
+        ViewPager vp = (ViewPager) findViewById(R.id.viewpager);
+
+        // Set an OnPageChangeListener so we are notified when a new item is selected
+        vp.setOnPageChangeListener(mOnPageChangeListener);
+
+        // Finally set the adapter so the ViewPager can display items
+        vp.setAdapter(mPagerAdapter);
+    }
+
+    // BEGIN_INCLUDE(get_sap)
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        // Inflate the menu resource
+        getMenuInflater().inflate(R.menu.main_menu, menu);
+
+        // Retrieve the share menu item
+        MenuItem shareItem = menu.findItem(R.id.menu_share);
+
+        // Now get the ShareActionProvider from the item
+        mShareActionProvider = (ShareActionProvider) MenuItemCompat.getActionProvider(shareItem);
+
+        return super.onCreateOptionsMenu(menu);
+    }
+    // END_INCLUDE(get_sap)
+
+    /**
+     * A PagerAdapter which instantiates views based on the ContentItem's content type.
+     */
+    private final PagerAdapter mPagerAdapter = new PagerAdapter() {
+        LayoutInflater mInflater;
+
+        @Override
+        public int getCount() {
+            return mItems.size();
+        }
+
+        @Override
+        public boolean isViewFromObject(View view, Object o) {
+            return view == o;
+        }
+
+        @Override
+        public void destroyItem(ViewGroup container, int position, Object object) {
+            // Just remove the view from the ViewPager
+            container.removeView((View) object);
+        }
+
+        @Override
+        public Object instantiateItem(ViewGroup container, int position) {
+            // Ensure that the LayoutInflater is instantiated
+            if (mInflater == null) {
+                mInflater = LayoutInflater.from(MainActivity.this);
+            }
+
+            // Get the item for the requested position
+            final ContentItem item = mItems.get(position);
+
+            // The view we need to inflate changes based on the type of content
+            switch (item.contentType) {
+                case ContentItem.CONTENT_TYPE_TEXT: {
+                    // Inflate item layout for text
+                    TextView tv = (TextView) mInflater
+                            .inflate(R.layout.item_text, container, false);
+
+                    // Set text content using it's resource id
+                    tv.setText(item.contentResourceId);
+
+                    // Add the view to the ViewPager
+                    container.addView(tv);
+                    return tv;
+                }
+                case ContentItem.CONTENT_TYPE_IMAGE: {
+                    // Inflate item layout for images
+                    ImageView iv = (ImageView) mInflater
+                            .inflate(R.layout.item_image, container, false);
+
+                    // Load the image from it's content URI
+                    iv.setImageURI(item.getContentUri());
+
+                    // Add the view to the ViewPager
+                    container.addView(iv);
+                    return iv;
+                }
+            }
+
+            return null;
+        }
+    };
+
+    /**
+     * A OnPageChangeListener used to update the ShareActionProvider's share intent when a new item
+     * is selected in the ViewPager.
+     */
+    private final ViewPager.OnPageChangeListener mOnPageChangeListener
+            = new ViewPager.OnPageChangeListener() {
+
+        @Override
+        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
+            // NO-OP
+        }
+
+        @Override
+        public void onPageSelected(int position) {
+            // BEGIN_INCLUDE(update_sap)
+            if (mShareActionProvider != null) {
+                // Get the currently selected item, and retrieve it's share intent
+                ContentItem item = mItems.get(position);
+                Intent shareIntent = item.getShareIntent(MainActivity.this);
+
+                // Now update the ShareActionProvider with the new share intent
+                mShareActionProvider.setShareIntent(shareIntent);
+            }
+            // END_INCLUDE(update_sap)
+        }
+
+        @Override
+        public void onPageScrollStateChanged(int state) {
+            // NO-OP
+        }
+    };
+
+    /**
+     * @return An ArrayList of ContentItem's to be displayed in this sample
+     */
+    static ArrayList<ContentItem> getSampleContent() {
+        ArrayList<ContentItem> items = new ArrayList<ContentItem>();
+
+        items.add(new ContentItem(ContentItem.CONTENT_TYPE_IMAGE, "photo_1.jpg"));
+        items.add(new ContentItem(ContentItem.CONTENT_TYPE_TEXT, R.string.quote_1));
+        items.add(new ContentItem(ContentItem.CONTENT_TYPE_TEXT, R.string.quote_2));
+        items.add(new ContentItem(ContentItem.CONTENT_TYPE_IMAGE, "photo_2.jpg"));
+        items.add(new ContentItem(ContentItem.CONTENT_TYPE_TEXT, R.string.quote_3));
+        items.add(new ContentItem(ContentItem.CONTENT_TYPE_IMAGE, "photo_3.jpg"));
+
+        return items;
+    }
+
+}
\ No newline at end of file
diff --git a/ui/actionbarcompat/ShareActionProvider/src/main/src/com/example/android/actionbarcompat/shareactionprovider/content/AssetProvider.java b/ui/actionbarcompat/ShareActionProvider/src/main/src/com/example/android/actionbarcompat/shareactionprovider/content/AssetProvider.java
new file mode 100644
index 0000000..b60f7d7
--- /dev/null
+++ b/ui/actionbarcompat/ShareActionProvider/src/main/src/com/example/android/actionbarcompat/shareactionprovider/content/AssetProvider.java
@@ -0,0 +1,93 @@
+/*
+ * 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.actionbarcompat.shareactionprovider.content;
+
+import android.content.ContentProvider;
+import android.content.ContentValues;
+import android.content.res.AssetFileDescriptor;
+import android.content.res.AssetManager;
+import android.database.Cursor;
+import android.net.Uri;
+import android.text.TextUtils;
+
+import java.io.FileNotFoundException;
+import java.io.IOException;
+
+/**
+ * A simple ContentProvider which can serve files from this application's assets. The majority of
+ * functionality is in {@link #openAssetFile(android.net.Uri, String)}.
+ */
+public class AssetProvider extends ContentProvider {
+
+    public static String CONTENT_URI = "com.example.android.actionbarcompat.shareactionprovider";
+
+    @Override
+    public boolean onCreate() {
+        return true;
+    }
+
+    @Override
+    public int delete(Uri uri, String selection, String[] selectionArgs) {
+        // Do not support delete requests.
+        return 0;
+    }
+
+    @Override
+    public String getType(Uri uri) {
+        // Do not support returning the data type
+        return null;
+    }
+
+    @Override
+    public Uri insert(Uri uri, ContentValues values) {
+        // Do not support insert requests.
+        return null;
+    }
+
+    @Override
+    public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs,
+            String sortOrder) {
+        // Do not support query requests.
+        return null;
+    }
+
+    @Override
+    public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
+        // Do not support update requests.
+        return 0;
+    }
+
+    @Override
+    public AssetFileDescriptor openAssetFile(Uri uri, String mode) throws FileNotFoundException {
+        // The asset file name should be the last path segment
+        final String assetName = uri.getLastPathSegment();
+
+        // If the given asset name is empty, throw an exception
+        if (TextUtils.isEmpty(assetName)) {
+            throw new FileNotFoundException();
+        }
+
+        try {
+            // Try and return a file descriptor for the given asset name
+            AssetManager am = getContext().getAssets();
+            return am.openFd(assetName);
+        } catch (IOException e) {
+            e.printStackTrace();
+            return super.openAssetFile(uri, mode);
+        }
+    }
+}
diff --git a/ui/actionbarcompat/ShareActionProvider/src/main/src/com/example/android/actionbarcompat/shareactionprovider/content/ContentItem.java b/ui/actionbarcompat/ShareActionProvider/src/main/src/com/example/android/actionbarcompat/shareactionprovider/content/ContentItem.java
new file mode 100644
index 0000000..09f8003
--- /dev/null
+++ b/ui/actionbarcompat/ShareActionProvider/src/main/src/com/example/android/actionbarcompat/shareactionprovider/content/ContentItem.java
@@ -0,0 +1,101 @@
+/*
+ * 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.actionbarcompat.shareactionprovider.content;
+
+import android.content.Context;
+import android.content.Intent;
+import android.net.Uri;
+import android.text.TextUtils;
+
+/**
+ * This class encapsulates a content item. Referencing the content's type, and the differing way
+ * to reference the content (asset URI or resource id).
+ */
+public class ContentItem {
+    // Used to signify an image content type
+    public static final int CONTENT_TYPE_IMAGE = 0;
+    // Used to signify a text/string content type
+    public static final int CONTENT_TYPE_TEXT = 1;
+
+    public final int contentType;
+    public final int contentResourceId;
+    public final String contentAssetFilePath;
+
+    /**
+     * Creates a ContentItem with the specified type, referencing a resource id.
+     *
+     * @param type - One of {@link #CONTENT_TYPE_IMAGE} or {@link #CONTENT_TYPE_TEXT}
+     * @param resourceId - Resource ID to use for this item's content
+     */
+    public ContentItem(int type, int resourceId) {
+        contentType = type;
+        contentResourceId = resourceId;
+        contentAssetFilePath = null;
+    }
+
+    /**
+     * Creates a ContentItem with the specified type, referencing an asset file path.
+     *
+     * @param type - One of {@link #CONTENT_TYPE_IMAGE} or {@link #CONTENT_TYPE_TEXT}
+     * @param assetFilePath - File path from the application's asset for this item's content
+     */
+    public ContentItem(int type, String assetFilePath) {
+        contentType = type;
+        contentAssetFilePath = assetFilePath;
+        contentResourceId = 0;
+    }
+
+    /**
+     * @return Uri to the content
+     */
+    public Uri getContentUri() {
+        if (!TextUtils.isEmpty(contentAssetFilePath)) {
+            // If this content has an asset, then return a AssetProvider Uri
+            return Uri.parse("content://" + AssetProvider.CONTENT_URI + "/" + contentAssetFilePath);
+        } else {
+            return null;
+        }
+    }
+
+    /**
+     * Returns an {@link Intent} which can be used to share this item's content with other
+     * applications.
+     *
+     * @param context - Context to be used for fetching resources if needed
+     * @return Intent to be given to a ShareActionProvider.
+     */
+    public Intent getShareIntent(Context context) {
+        Intent intent = new Intent(Intent.ACTION_SEND);
+
+        switch (contentType) {
+            case CONTENT_TYPE_IMAGE:
+                intent.setType("image/jpg");
+                // Bundle the asset content uri as the EXTRA_STREAM uri
+                intent.putExtra(Intent.EXTRA_STREAM, getContentUri());
+                break;
+
+            case CONTENT_TYPE_TEXT:
+                intent.setType("text/plain");
+                // Get the string resource and bundle it as an intent extra
+                intent.putExtra(Intent.EXTRA_TEXT, context.getString(contentResourceId));
+                break;
+        }
+
+        return intent;
+    }
+
+}
diff --git a/ui/lists/CustomChoiceList/CustomChoiceList/build.gradle b/ui/lists/CustomChoiceList/CustomChoiceList/build.gradle
new file mode 100644
index 0000000..0567910
--- /dev/null
+++ b/ui/lists/CustomChoiceList/CustomChoiceList/build.gradle
@@ -0,0 +1,20 @@
+buildscript {
+    repositories {
+        maven { url 'http://repo1.maven.org/maven2' }
+    }
+    dependencies {
+        classpath 'com.android.tools.build:gradle:0.5.+'
+    }
+}
+apply plugin: 'android'
+
+android {
+    compileSdkVersion 17
+    buildToolsVersion "17.0.0"
+
+    defaultConfig {
+        minSdkVersion 3
+        targetSdkVersion 17
+    }
+}
+
diff --git a/ui/lists/CustomChoiceList/AndroidManifest.xml b/ui/lists/CustomChoiceList/CustomChoiceList/src/main/AndroidManifest.xml
similarity index 100%
rename from ui/lists/CustomChoiceList/AndroidManifest.xml
rename to ui/lists/CustomChoiceList/CustomChoiceList/src/main/AndroidManifest.xml
diff --git a/ui/lists/CustomChoiceList/src/com/example/android/customchoicelist/CheckableLinearLayout.java b/ui/lists/CustomChoiceList/CustomChoiceList/src/main/java/com/example/android/customchoicelist/CheckableLinearLayout.java
similarity index 100%
rename from ui/lists/CustomChoiceList/src/com/example/android/customchoicelist/CheckableLinearLayout.java
rename to ui/lists/CustomChoiceList/CustomChoiceList/src/main/java/com/example/android/customchoicelist/CheckableLinearLayout.java
diff --git a/ui/lists/CustomChoiceList/src/com/example/android/customchoicelist/Cheeses.java b/ui/lists/CustomChoiceList/CustomChoiceList/src/main/java/com/example/android/customchoicelist/Cheeses.java
similarity index 100%
rename from ui/lists/CustomChoiceList/src/com/example/android/customchoicelist/Cheeses.java
rename to ui/lists/CustomChoiceList/CustomChoiceList/src/main/java/com/example/android/customchoicelist/Cheeses.java
diff --git a/ui/lists/CustomChoiceList/src/com/example/android/customchoicelist/MainActivity.java b/ui/lists/CustomChoiceList/CustomChoiceList/src/main/java/com/example/android/customchoicelist/MainActivity.java
similarity index 100%
rename from ui/lists/CustomChoiceList/src/com/example/android/customchoicelist/MainActivity.java
rename to ui/lists/CustomChoiceList/CustomChoiceList/src/main/java/com/example/android/customchoicelist/MainActivity.java
diff --git a/ui/lists/CustomChoiceList/res/color/hideable_text_color.xml b/ui/lists/CustomChoiceList/CustomChoiceList/src/main/res/color/hideable_text_color.xml
similarity index 100%
rename from ui/lists/CustomChoiceList/res/color/hideable_text_color.xml
rename to ui/lists/CustomChoiceList/CustomChoiceList/src/main/res/color/hideable_text_color.xml
diff --git a/ui/lists/CustomChoiceList/res/drawable-hdpi/ic_launcher.png b/ui/lists/CustomChoiceList/CustomChoiceList/src/main/res/drawable-hdpi/ic_launcher.png
similarity index 100%
rename from ui/lists/CustomChoiceList/res/drawable-hdpi/ic_launcher.png
rename to ui/lists/CustomChoiceList/CustomChoiceList/src/main/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/ui/lists/CustomChoiceList/res/drawable-mdpi/ic_launcher.png b/ui/lists/CustomChoiceList/CustomChoiceList/src/main/res/drawable-mdpi/ic_launcher.png
similarity index 100%
rename from ui/lists/CustomChoiceList/res/drawable-mdpi/ic_launcher.png
rename to ui/lists/CustomChoiceList/CustomChoiceList/src/main/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/ui/lists/CustomChoiceList/res/drawable-xhdpi/ic_hideable_item_checked.png b/ui/lists/CustomChoiceList/CustomChoiceList/src/main/res/drawable-xhdpi/ic_hideable_item_checked.png
similarity index 100%
rename from ui/lists/CustomChoiceList/res/drawable-xhdpi/ic_hideable_item_checked.png
rename to ui/lists/CustomChoiceList/CustomChoiceList/src/main/res/drawable-xhdpi/ic_hideable_item_checked.png
Binary files differ
diff --git a/ui/lists/CustomChoiceList/res/drawable-xhdpi/ic_hideable_item_unchecked.png b/ui/lists/CustomChoiceList/CustomChoiceList/src/main/res/drawable-xhdpi/ic_hideable_item_unchecked.png
similarity index 100%
rename from ui/lists/CustomChoiceList/res/drawable-xhdpi/ic_hideable_item_unchecked.png
rename to ui/lists/CustomChoiceList/CustomChoiceList/src/main/res/drawable-xhdpi/ic_hideable_item_unchecked.png
Binary files differ
diff --git a/ui/lists/CustomChoiceList/res/drawable-xhdpi/ic_launcher.png b/ui/lists/CustomChoiceList/CustomChoiceList/src/main/res/drawable-xhdpi/ic_launcher.png
similarity index 100%
rename from ui/lists/CustomChoiceList/res/drawable-xhdpi/ic_launcher.png
rename to ui/lists/CustomChoiceList/CustomChoiceList/src/main/res/drawable-xhdpi/ic_launcher.png
Binary files differ
diff --git a/ui/lists/CustomChoiceList/res/drawable-xxhdpi/ic_launcher.png b/ui/lists/CustomChoiceList/CustomChoiceList/src/main/res/drawable-xxhdpi/ic_launcher.png
similarity index 100%
rename from ui/lists/CustomChoiceList/res/drawable-xxhdpi/ic_launcher.png
rename to ui/lists/CustomChoiceList/CustomChoiceList/src/main/res/drawable-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/ui/lists/CustomChoiceList/res/drawable/ic_hideable_item.xml b/ui/lists/CustomChoiceList/CustomChoiceList/src/main/res/drawable/ic_hideable_item.xml
similarity index 100%
rename from ui/lists/CustomChoiceList/res/drawable/ic_hideable_item.xml
rename to ui/lists/CustomChoiceList/CustomChoiceList/src/main/res/drawable/ic_hideable_item.xml
diff --git a/ui/lists/CustomChoiceList/res/layout/activity_main.xml b/ui/lists/CustomChoiceList/CustomChoiceList/src/main/res/layout/activity_main.xml
similarity index 100%
rename from ui/lists/CustomChoiceList/res/layout/activity_main.xml
rename to ui/lists/CustomChoiceList/CustomChoiceList/src/main/res/layout/activity_main.xml
diff --git a/ui/lists/CustomChoiceList/res/layout/list_item.xml b/ui/lists/CustomChoiceList/CustomChoiceList/src/main/res/layout/list_item.xml
similarity index 100%
rename from ui/lists/CustomChoiceList/res/layout/list_item.xml
rename to ui/lists/CustomChoiceList/CustomChoiceList/src/main/res/layout/list_item.xml
diff --git a/ui/lists/CustomChoiceList/res/values-sw600dp/dimens.xml b/ui/lists/CustomChoiceList/CustomChoiceList/src/main/res/values-sw600dp/dimens.xml
similarity index 100%
rename from ui/lists/CustomChoiceList/res/values-sw600dp/dimens.xml
rename to ui/lists/CustomChoiceList/CustomChoiceList/src/main/res/values-sw600dp/dimens.xml
diff --git a/ui/lists/CustomChoiceList/res/values-sw600dp/styles.xml b/ui/lists/CustomChoiceList/CustomChoiceList/src/main/res/values-sw600dp/styles.xml
similarity index 100%
rename from ui/lists/CustomChoiceList/res/values-sw600dp/styles.xml
rename to ui/lists/CustomChoiceList/CustomChoiceList/src/main/res/values-sw600dp/styles.xml
diff --git a/ui/lists/CustomChoiceList/res/values-v11/styles.xml b/ui/lists/CustomChoiceList/CustomChoiceList/src/main/res/values-v11/styles.xml
similarity index 100%
rename from ui/lists/CustomChoiceList/res/values-v11/styles.xml
rename to ui/lists/CustomChoiceList/CustomChoiceList/src/main/res/values-v11/styles.xml
diff --git a/ui/lists/CustomChoiceList/res/values/dimens.xml b/ui/lists/CustomChoiceList/CustomChoiceList/src/main/res/values/dimens.xml
similarity index 100%
rename from ui/lists/CustomChoiceList/res/values/dimens.xml
rename to ui/lists/CustomChoiceList/CustomChoiceList/src/main/res/values/dimens.xml
diff --git a/ui/lists/CustomChoiceList/res/values/strings.xml b/ui/lists/CustomChoiceList/CustomChoiceList/src/main/res/values/strings.xml
similarity index 100%
rename from ui/lists/CustomChoiceList/res/values/strings.xml
rename to ui/lists/CustomChoiceList/CustomChoiceList/src/main/res/values/strings.xml
diff --git a/ui/lists/CustomChoiceList/res/values/styles.xml b/ui/lists/CustomChoiceList/CustomChoiceList/src/main/res/values/styles.xml
similarity index 100%
rename from ui/lists/CustomChoiceList/res/values/styles.xml
rename to ui/lists/CustomChoiceList/CustomChoiceList/src/main/res/values/styles.xml
diff --git a/ui/lists/CustomChoiceList/build.gradle b/ui/lists/CustomChoiceList/build.gradle
new file mode 100644
index 0000000..f82180e
--- /dev/null
+++ b/ui/lists/CustomChoiceList/build.gradle
@@ -0,0 +1,2 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+
diff --git a/ui/lists/CustomChoiceList/settings.gradle b/ui/lists/CustomChoiceList/settings.gradle
new file mode 100644
index 0000000..0c9c7b4
--- /dev/null
+++ b/ui/lists/CustomChoiceList/settings.gradle
@@ -0,0 +1 @@
+include ':CustomChoiceList'
diff --git a/ui/views/TextSwitcher/TextSwitcher/build.gradle b/ui/views/TextSwitcher/TextSwitcher/build.gradle
new file mode 100644
index 0000000..72904c9
--- /dev/null
+++ b/ui/views/TextSwitcher/TextSwitcher/build.gradle
@@ -0,0 +1,24 @@
+buildscript {
+    repositories {
+        maven { url 'http://repo1.maven.org/maven2' }
+    }
+    dependencies {
+        classpath 'com.android.tools.build:gradle:0.5.+'
+    }
+}
+apply plugin: 'android'
+
+dependencies {
+    compile files('libs/android-support-v4.jar')
+}
+
+android {
+    compileSdkVersion 17
+    buildToolsVersion "17.0.0"
+
+    defaultConfig {
+        minSdkVersion 4
+        targetSdkVersion 17
+    }
+}
+
diff --git a/ui/views/TextSwitcher/AndroidManifest.xml b/ui/views/TextSwitcher/TextSwitcher/src/main/AndroidManifest.xml
similarity index 100%
rename from ui/views/TextSwitcher/AndroidManifest.xml
rename to ui/views/TextSwitcher/TextSwitcher/src/main/AndroidManifest.xml
diff --git a/ui/views/TextSwitcher/src/com/example/android/ui/views/textswitcher/MainActivity.java b/ui/views/TextSwitcher/TextSwitcher/src/main/java/com/example/android/ui/views/textswitcher/MainActivity.java
similarity index 100%
rename from ui/views/TextSwitcher/src/com/example/android/ui/views/textswitcher/MainActivity.java
rename to ui/views/TextSwitcher/TextSwitcher/src/main/java/com/example/android/ui/views/textswitcher/MainActivity.java
diff --git a/ui/views/TextSwitcher/res/drawable-hdpi/ic_launcher.png b/ui/views/TextSwitcher/TextSwitcher/src/main/res/drawable-hdpi/ic_launcher.png
similarity index 100%
rename from ui/views/TextSwitcher/res/drawable-hdpi/ic_launcher.png
rename to ui/views/TextSwitcher/TextSwitcher/src/main/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/ui/views/TextSwitcher/res/drawable-mdpi/ic_launcher.png b/ui/views/TextSwitcher/TextSwitcher/src/main/res/drawable-mdpi/ic_launcher.png
similarity index 100%
rename from ui/views/TextSwitcher/res/drawable-mdpi/ic_launcher.png
rename to ui/views/TextSwitcher/TextSwitcher/src/main/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/ui/views/TextSwitcher/res/drawable-xhdpi/ic_launcher.png b/ui/views/TextSwitcher/TextSwitcher/src/main/res/drawable-xhdpi/ic_launcher.png
similarity index 100%
rename from ui/views/TextSwitcher/res/drawable-xhdpi/ic_launcher.png
rename to ui/views/TextSwitcher/TextSwitcher/src/main/res/drawable-xhdpi/ic_launcher.png
Binary files differ
diff --git a/ui/views/TextSwitcher/res/drawable-xxhdpi/ic_launcher.png b/ui/views/TextSwitcher/TextSwitcher/src/main/res/drawable-xxhdpi/ic_launcher.png
similarity index 100%
rename from ui/views/TextSwitcher/res/drawable-xxhdpi/ic_launcher.png
rename to ui/views/TextSwitcher/TextSwitcher/src/main/res/drawable-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/ui/views/TextSwitcher/res/layout/activity_main.xml b/ui/views/TextSwitcher/TextSwitcher/src/main/res/layout/activity_main.xml
similarity index 100%
rename from ui/views/TextSwitcher/res/layout/activity_main.xml
rename to ui/views/TextSwitcher/TextSwitcher/src/main/res/layout/activity_main.xml
diff --git a/ui/views/TextSwitcher/res/values-sw600dp/dimens.xml b/ui/views/TextSwitcher/TextSwitcher/src/main/res/values-sw600dp/dimens.xml
similarity index 100%
rename from ui/views/TextSwitcher/res/values-sw600dp/dimens.xml
rename to ui/views/TextSwitcher/TextSwitcher/src/main/res/values-sw600dp/dimens.xml
diff --git a/ui/views/TextSwitcher/res/values-sw720dp-land/dimens.xml b/ui/views/TextSwitcher/TextSwitcher/src/main/res/values-sw720dp-land/dimens.xml
similarity index 100%
rename from ui/views/TextSwitcher/res/values-sw720dp-land/dimens.xml
rename to ui/views/TextSwitcher/TextSwitcher/src/main/res/values-sw720dp-land/dimens.xml
diff --git a/ui/views/TextSwitcher/res/values-v11/styles.xml b/ui/views/TextSwitcher/TextSwitcher/src/main/res/values-v11/styles.xml
similarity index 100%
rename from ui/views/TextSwitcher/res/values-v11/styles.xml
rename to ui/views/TextSwitcher/TextSwitcher/src/main/res/values-v11/styles.xml
diff --git a/ui/views/TextSwitcher/res/values-v14/styles.xml b/ui/views/TextSwitcher/TextSwitcher/src/main/res/values-v14/styles.xml
similarity index 100%
rename from ui/views/TextSwitcher/res/values-v14/styles.xml
rename to ui/views/TextSwitcher/TextSwitcher/src/main/res/values-v14/styles.xml
diff --git a/ui/views/TextSwitcher/res/values/dimens.xml b/ui/views/TextSwitcher/TextSwitcher/src/main/res/values/dimens.xml
similarity index 100%
rename from ui/views/TextSwitcher/res/values/dimens.xml
rename to ui/views/TextSwitcher/TextSwitcher/src/main/res/values/dimens.xml
diff --git a/ui/views/TextSwitcher/res/values/strings.xml b/ui/views/TextSwitcher/TextSwitcher/src/main/res/values/strings.xml
similarity index 100%
rename from ui/views/TextSwitcher/res/values/strings.xml
rename to ui/views/TextSwitcher/TextSwitcher/src/main/res/values/strings.xml
diff --git a/ui/views/TextSwitcher/res/values/styles.xml b/ui/views/TextSwitcher/TextSwitcher/src/main/res/values/styles.xml
similarity index 100%
rename from ui/views/TextSwitcher/res/values/styles.xml
rename to ui/views/TextSwitcher/TextSwitcher/src/main/res/values/styles.xml
diff --git a/ui/views/TextSwitcher/build.gradle b/ui/views/TextSwitcher/build.gradle
new file mode 100644
index 0000000..495c503
--- /dev/null
+++ b/ui/views/TextSwitcher/build.gradle
@@ -0,0 +1 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
diff --git a/ui/views/TextSwitcher/settings.gradle b/ui/views/TextSwitcher/settings.gradle
new file mode 100644
index 0000000..aefb871
--- /dev/null
+++ b/ui/views/TextSwitcher/settings.gradle
@@ -0,0 +1 @@
+include ':TextSwitcher'