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'