Index: chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java |
index 0ce31ff5fe2ce49382896b117e33fac8e3983def..d459ccc1d953758a39a6c0e7950d4a4c301520d7 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java |
@@ -25,6 +25,7 @@ import org.chromium.base.ApiCompatibilityUtils; |
import org.chromium.base.Log; |
import org.chromium.base.VisibleForTesting; |
import org.chromium.chrome.R; |
+import org.chromium.chrome.browser.ChromeActivity; |
import org.chromium.chrome.browser.util.IntentUtils; |
import org.chromium.chrome.browser.widget.TintedDrawable; |
@@ -91,6 +92,7 @@ public class CustomTabIntentDataProvider { |
private Drawable mCloseButtonIcon; |
private List<Pair<String, PendingIntent>> mMenuEntries = new ArrayList<>(); |
private Bundle mAnimationBundle; |
+ private boolean mShowShareItem; |
// OnFinished listener for PendingIntents. Used for testing only. |
private PendingIntent.OnFinished mOnFinished; |
@@ -144,6 +146,8 @@ public class CustomTabIntentDataProvider { |
intent, CustomTabsIntent.EXTRA_EXIT_ANIMATION_BUNDLE); |
mTitleVisibilityState = |
IntentUtils.safeGetIntExtra(intent, EXTRA_TITLE_VISIBILITY_STATE, NO_TITLE); |
+ mShowShareItem = IntentUtils.safeGetBooleanExtra(intent, |
+ CustomTabsIntent.EXTRA_DEFAULT_SHARE_MENU_ITEM, false); |
} |
/** |
@@ -211,6 +215,13 @@ public class CustomTabIntentDataProvider { |
} |
/** |
+ * @return Whether the default share item should be shown in the menu. |
+ */ |
+ public boolean shouldShowShareMenuItem() { |
+ return mShowShareItem; |
+ } |
+ |
+ /** |
* @return Whether the client app has provided sufficient info for the toolbar to show the |
* action button. |
*/ |
@@ -241,12 +252,12 @@ public class CustomTabIntentDataProvider { |
* @param menuIndex The index that the menu item is shown in the result of |
* {@link #getMenuTitles()} |
*/ |
- public void clickMenuItemWithUrl(Context context, int menuIndex, String url) { |
+ public void clickMenuItemWithUrl(ChromeActivity activity, int menuIndex, String url) { |
Intent addedIntent = new Intent(); |
addedIntent.setData(Uri.parse(url)); |
try { |
PendingIntent pendingIntent = mMenuEntries.get(menuIndex).second; |
- pendingIntent.send(context, 0, addedIntent, mOnFinished, null); |
+ pendingIntent.send(activity, 0, addedIntent, mOnFinished, null); |
} catch (CanceledException e) { |
Log.e(TAG, "Custom tab in Chrome failed to send pending intent."); |
} |