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 2dd0ec14d4c9a1d205cf0d60941ef4542523b3dc..60d454eb3e180a275d3a14e9fa727a78db372db2 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 |
@@ -53,12 +53,29 @@ public class CustomTabIntentDataProvider { |
/** |
* Extra that changes the background color for the omnibox. colorRes is an int that specifies a |
- * color |
+ * color. |
*/ |
public static final String EXTRA_CUSTOM_TABS_TOOLBAR_COLOR = |
"android.support.CUSTOM_TABS:toolbar_color"; |
/** |
+ * Extra int that specifies the style of the back button on the toolbar. Default is showing a |
+ * cross icon. |
+ */ |
+ public static final String EXTRA_CUSTOM_TABS_CLOSE_BUTTON_STYLE = |
+ "android.support.CUSTOM_TABS:close_button_style"; |
+ |
+ /** |
+ * Uses 'X'-like cross icon for close button. |
+ */ |
+ public static final int CUSTOM_TAB_CLOSE_BUTTON_CROSS = 0; |
+ |
+ /** |
+ * Uses '<'-like chevron arrow icon for close button. |
+ */ |
+ public static final int CUSTOM_TAB_CLOSE_BUTTON_ARROW = 1; |
+ |
+ /** |
* Extra int that specifies state for showing the page title. Default is showing only the domain |
* and no information about the title. |
*/ |
@@ -126,6 +143,7 @@ public class CustomTabIntentDataProvider { |
private final long mSessionId; |
private final Intent mKeepAliveServiceIntent; |
private final int mTitleVisibilityState; |
+ private final int mCloseButtonResId; |
private int mToolbarColor; |
private Bitmap mIcon; |
private PendingIntent mActionButtonPendingIntent; |
@@ -175,6 +193,17 @@ public class CustomTabIntentDataProvider { |
mAnimationBundle = IntentUtils.safeGetBundleExtra( |
intent, EXTRA_CUSTOM_TABS_EXIT_ANIMATION_BUNDLE); |
+ int closeButtonStyle = IntentUtils.safeGetIntExtra(intent, |
+ EXTRA_CUSTOM_TABS_CLOSE_BUTTON_STYLE, CUSTOM_TAB_CLOSE_BUTTON_CROSS); |
+ switch(closeButtonStyle) { |
+ case CustomTabIntentDataProvider.CUSTOM_TAB_CLOSE_BUTTON_ARROW: |
+ mCloseButtonResId = R.drawable.btn_chevron_left; |
+ break; |
+ case CustomTabIntentDataProvider.CUSTOM_TAB_CLOSE_BUTTON_CROSS: |
+ default: |
+ mCloseButtonResId = R.drawable.btn_close; |
+ } |
+ |
mTitleVisibilityState = IntentUtils.safeGetIntExtra( |
intent, EXTRA_CUSTOM_TABS_TITLE_VISIBILITY_STATE, CUSTOM_TAB_NO_TITLE); |
} |
@@ -219,6 +248,13 @@ public class CustomTabIntentDataProvider { |
} |
/** |
+ * @return The resource id of the close button shown in the custom tab toolbar. |
+ */ |
+ public int getCloseButtonIconResId() { |
+ return mCloseButtonResId; |
+ } |
+ |
+ /** |
* @return The title visibility state for the toolbar. |
* Default is {@link CustomTabIntentDataProvider#CUSTOM_TAB_NO_TITLE}. |
*/ |