Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4037)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java

Issue 1263573011: Let client specify content description for custom action button (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix corresponding test Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 53c437df57281584a30631560379796a7458bca8..f76705ba617bb2f495cbea73e2e7b62d76216e23 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
@@ -80,8 +80,9 @@ public class CustomTabIntentDataProvider {
private final int mTitleVisibilityState;
private int mToolbarColor;
private Drawable mCustomButtonIcon;
+ private String mCustomButtonDescription;
+ private PendingIntent mCustomButtonPendingIntent;
private Drawable mCloseButtonIcon;
- private PendingIntent mActionButtonPendingIntent;
private List<Pair<String, PendingIntent>> mMenuEntries = new ArrayList<>();
private Bundle mAnimationBundle;
// OnFinished listener for PendingIntents. Used for testing only.
@@ -106,7 +107,7 @@ public class CustomTabIntentDataProvider {
bitmap.recycle();
bitmap = null;
} else if (bitmap != null) {
- mActionButtonPendingIntent = IntentUtils.safeGetParcelable(
+ mCustomButtonPendingIntent = IntentUtils.safeGetParcelable(
actionButtonBundle, CustomTabsIntent.KEY_PENDING_INTENT);
boolean shouldTint = IntentUtils.safeGetBooleanExtra(intent,
EXTRA_TINT_ACTION_BUTTON, false);
@@ -116,6 +117,8 @@ public class CustomTabIntentDataProvider {
} else {
mCustomButtonIcon = new BitmapDrawable(context.getResources(), bitmap);
}
+ mCustomButtonDescription = IntentUtils.safeGetString(actionButtonBundle,
+ CustomTabsIntent.KEY_DESCRIPTION);
}
}
@@ -210,7 +213,8 @@ public class CustomTabIntentDataProvider {
* action button.
*/
public boolean shouldShowActionButton() {
- return mCustomButtonIcon != null && mActionButtonPendingIntent != null;
+ return mCustomButtonIcon != null && mCustomButtonPendingIntent != null
+ && !TextUtils.isEmpty(mCustomButtonDescription);
}
/**
@@ -221,12 +225,19 @@ public class CustomTabIntentDataProvider {
}
/**
+ * @return The content description for the custom action button.
+ */
+ public String getActionButtonDescription() {
+ return mCustomButtonDescription;
+ }
+
+ /**
* @return The {@link PendingIntent} that will be sent when the user clicks the action button.
* For testing only.
*/
@VisibleForTesting
public PendingIntent getActionButtonPendingIntentForTest() {
- return mActionButtonPendingIntent;
+ return mCustomButtonPendingIntent;
}
/**
@@ -297,11 +308,11 @@ public class CustomTabIntentDataProvider {
* @param url The url to attach as additional data to the {@link PendingIntent}.
*/
public void sendButtonPendingIntentWithUrl(Context context, String url) {
- assert mActionButtonPendingIntent != null;
+ assert mCustomButtonPendingIntent != null;
Intent addedIntent = new Intent();
addedIntent.setData(Uri.parse(url));
try {
- mActionButtonPendingIntent.send(context, 0, addedIntent, mOnFinished, null);
+ mCustomButtonPendingIntent.send(context, 0, addedIntent, mOnFinished, null);
} catch (CanceledException e) {
Log.e(TAG, "CanceledException while sending pending intent in custom tab");
}

Powered by Google App Engine
This is Rietveld 408576698