diff --git a/samples/ApiDemos/AndroidManifest.xml b/samples/ApiDemos/AndroidManifest.xml
index a588418b1..1fcf7ee44 100644
--- a/samples/ApiDemos/AndroidManifest.xml
+++ b/samples/ApiDemos/AndroidManifest.xml
@@ -799,6 +799,15 @@
+
+
+
+
+
+
+
diff --git a/samples/ApiDemos/res/menu/action_bar_action_provider.xml b/samples/ApiDemos/res/menu/action_bar_action_provider.xml
new file mode 100644
index 000000000..7633f9ff5
--- /dev/null
+++ b/samples/ApiDemos/res/menu/action_bar_action_provider.xml
@@ -0,0 +1,28 @@
+
+
+
diff --git a/samples/ApiDemos/res/values/bools.xml b/samples/ApiDemos/res/values/bools.xml
index 266c8cacc..5d2eaa0c3 100644
--- a/samples/ApiDemos/res/values/bools.xml
+++ b/samples/ApiDemos/res/values/bools.xml
@@ -23,4 +23,10 @@
API level. The default value is false; an alternative value
for Honeycomb MR2 is true. -->
false
+
+
+ true
+
diff --git a/samples/ApiDemos/res/values/strings.xml b/samples/ApiDemos/res/values/strings.xml
index 8950bb75d..c87c56394 100644
--- a/samples/ApiDemos/res/values/strings.xml
+++ b/samples/ApiDemos/res/values/strings.xml
@@ -722,6 +722,7 @@
App/Action Bar/Action Bar Mechanics
App/Action Bar/Action Bar Usage
App/Action Bar/Action Bar Tabs
+ App/Action Bar/Action Provider
Search
Add
@@ -730,6 +731,7 @@
Sort
Alphabetically
By size
+ Share with...
App/Action Bar/Display Options
DISPLAY_HOME_AS_UP
diff --git a/samples/ApiDemos/src/com/example/android/apis/app/ActionBarActionProviderActivity.java b/samples/ApiDemos/src/com/example/android/apis/app/ActionBarActionProviderActivity.java
new file mode 100644
index 000000000..44bc0df55
--- /dev/null
+++ b/samples/ApiDemos/src/com/example/android/apis/app/ActionBarActionProviderActivity.java
@@ -0,0 +1,78 @@
+/*
+ * Copyright (C) 2011 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.example.android.apis.app;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.net.Uri;
+import android.os.Bundle;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.widget.ShareActionProvider;
+
+import java.io.File;
+
+import com.example.android.apis.R;
+
+/**
+ * This activity demonstrates how to use an {@link android.view.ActionProvider}
+ * for adding functionality to the Action Bar. In particular this demo is adding
+ * a menu item with ShareActionProvider as its action provider. The
+ * ShareActionProvider is responsible for managing the UI for sharing actions.
+ */
+public class ActionBarActionProviderActivity extends Activity {
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ }
+
+ @Override
+ public boolean onCreateOptionsMenu(Menu menu) {
+ // Inflate your menu.
+ getMenuInflater().inflate(R.menu.action_bar_action_provider, menu);
+
+ // Set file with share history to the provider and set the share intent.
+ MenuItem actionItem = menu.findItem(R.id.menu_item_share_action_provider_action_bar);
+ ShareActionProvider actionProvider = (ShareActionProvider) actionItem.getActionProvider();
+ actionProvider.setShareHistoryFileName(ShareActionProvider.DEFAULT_SHARE_HISTORY_FILE_NAME);
+ actionProvider.setShareIntent(createShareIntent());
+
+ // Set file with share history to the provider and set the share intent.
+ MenuItem overflowItem = menu.findItem(R.id.menu_item_share_action_provider_overflow);
+ ShareActionProvider overflowProvider =
+ (ShareActionProvider) overflowItem.getActionProvider();
+ overflowProvider.setShareHistoryFileName(
+ ShareActionProvider.DEFAULT_SHARE_HISTORY_FILE_NAME);
+ overflowProvider.setShareIntent(createShareIntent());
+
+ return true;
+ }
+
+ /**
+ * Creates a sharing {@link Intent}.
+ *
+ * @return The sharing intent.
+ */
+ private Intent createShareIntent() {
+ Intent shareIntent = new Intent(Intent.ACTION_SEND);
+ shareIntent.setType("image/*");
+ Uri uri = Uri.fromFile(new File(getFilesDir(), "SomeFileToShare"));
+ shareIntent.putExtra(Intent.EXTRA_STREAM, uri.toString());
+ return shareIntent;
+ }
+}