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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/payments/ui/PaymentRequestHeader.java

Issue 2698703003: [Payments] Add UI elements to secure branding for payments (Closed)
Patch Set: support rotation Created 3 years, 10 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/payments/ui/PaymentRequestHeader.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/PaymentRequestHeader.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/PaymentRequestHeader.java
new file mode 100644
index 0000000000000000000000000000000000000000..429da2fc138984f9e2d8938a6c3b51afd7ab2e05
--- /dev/null
+++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/PaymentRequestHeader.java
@@ -0,0 +1,74 @@
+// Copyright 2017 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.chrome.browser.payments.ui;
+
+import android.content.Context;
+import android.graphics.Bitmap;
+import android.text.Spannable;
+import android.text.SpannableString;
+import android.text.style.ForegroundColorSpan;
+import android.util.AttributeSet;
+import android.widget.FrameLayout;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import org.chromium.base.ApiCompatibilityUtils;
+import org.chromium.chrome.R;
+import org.chromium.chrome.browser.UrlConstants;
+import org.chromium.chrome.browser.widget.TintedDrawable;
+
+/** This class represents a bar to display at the top of the payment request UI. */
+public class PaymentRequestHeader extends FrameLayout {
+ private Context mContext;
+
+ public PaymentRequestHeader(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ mContext = context;
+ }
+
+ /**
+ * Sets the bitmap of the icon on the left of the header.
+ *
+ * @param bitmap The bitmap to display.
+ */
+ public void setTitleBitmap(Bitmap bitmap) {
+ ((ImageView) findViewById(R.id.icon_view)).setImageBitmap(bitmap);
+ }
+
+ /**
+ * Sets the title and origin on the header.
+ *
+ * @param title The title to display on the header.
+ * @param origin The origin to display on the header.
+ */
+ public void setTitleAndOrigin(String title, String origin) {
+ ((TextView) findViewById(R.id.page_title)).setText(title);
+
+ TextView hostName = (TextView) findViewById(R.id.hostname);
+ if (origin.startsWith(UrlConstants.HTTPS_URL_PREFIX)) {
+ // Tint https scheme and add compound drawable for security display.
+ hostName.setText(tintUrlSchemeForSecurityDisplay(origin));
+ ApiCompatibilityUtils.setCompoundDrawablesRelativeWithIntrinsicBounds(hostName,
+ TintedDrawable.constructTintedDrawable(mContext.getResources(),
+ R.drawable.omnibox_https_valid, R.color.google_green_700),
+ null, null, null);
+
+ // Remove left padding to align left compound drawable with the title. Note that the
+ // left compound drawable has transparent boundary.
+ hostName.setPaddingRelative(0, 0, 0, 0);
+ } else {
+ hostName.setText(origin);
+ }
+ }
+
+ private CharSequence tintUrlSchemeForSecurityDisplay(String uri) {
+ SpannableString spannableUri = new SpannableString(uri);
+ int color =
+ ApiCompatibilityUtils.getColor(mContext.getResources(), R.color.google_green_700);
+ spannableUri.setSpan(new ForegroundColorSpan(color), 0,
+ spannableUri.toString().indexOf(":"), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+ return spannableUri;
+ }
+}

Powered by Google App Engine
This is Rietveld 408576698