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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/password_manager/AccountChooserDialog.java

Issue 2541693004: Add Information Tooltip for Public Suffix List Matches (Closed)
Patch Set: UI Overhaul Created 4 years 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/password_manager/AccountChooserDialog.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/AccountChooserDialog.java b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/AccountChooserDialog.java
index 4c41262fb1945784f7eb33a5ab13b333c6e4846c..f60f0112a3317e2d86d8f548a9980194777471d1 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/AccountChooserDialog.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/AccountChooserDialog.java
@@ -7,21 +7,27 @@ package org.chromium.chrome.browser.password_manager;
import android.app.Activity;
import android.content.Context;
import android.content.DialogInterface;
+import android.content.res.Resources;
import android.graphics.Bitmap;
+import android.graphics.Color;
import android.support.v7.app.AlertDialog;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.TextUtils;
import android.text.method.LinkMovementMethod;
import android.text.style.ClickableSpan;
+import android.util.TypedValue;
+import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.ListView;
+import android.widget.PopupWindow;
import android.widget.TextView;
+import org.chromium.base.ApiCompatibilityUtils;
import org.chromium.base.annotations.CalledByNative;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.signin.AccountManagementFragment;
@@ -138,6 +144,63 @@ public class AccountChooserDialog
secondaryNameView.setVisibility(View.VISIBLE);
}
+ final String originUrl = credential.getOriginUrl();
+ if (!originUrl.isEmpty()) {
+ ImageView pslInfoIconView =
+ (ImageView) convertView.findViewById(R.id.psl_info_icon);
+ pslInfoIconView.setImageResource(R.drawable.btn_info);
+ pslInfoIconView.setClickable(true);
+ pslInfoIconView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ final ImageView iconView = (ImageView) view;
+ Context context = iconView.getContext();
+ Resources resources = context.getResources();
+ iconView.setBackground(ApiCompatibilityUtils.getDrawable(
+ resources, R.drawable.psl_info_icon_background));
+
+ TextView textView = new TextView(context);
+ textView.setText(originUrl);
+ textView.setTextColor(Color.WHITE);
+ textView.setTextSize(TypedValue.COMPLEX_UNIT_PX, resources.getDimension(
+ R.dimen.psl_info_tooltip_text_size));
+ int horizontalPadding = resources.getDimensionPixelSize(
+ R.dimen.psl_info_tooltip_horizontal_padding);
+ textView.setPadding(horizontalPadding, 0, horizontalPadding, 0);
+ textView.setHeight(resources.getDimensionPixelSize(
+ R.dimen.psl_info_tooltip_height));
+ textView.setGravity(Gravity.CENTER);
+
+ PopupWindow tooltip = new PopupWindow(context);
+ tooltip.setContentView(textView);
+ tooltip.setOutsideTouchable(true);
+ tooltip.setBackgroundDrawable(ApiCompatibilityUtils.getDrawable(
+ resources, R.drawable.psl_info_tooltip_background));
+ tooltip.setOnDismissListener(new PopupWindow.OnDismissListener() {
+ @Override
+ public void onDismiss() {
+ iconView.setBackgroundResource(0);
+ }
+ });
+
+ // Measure size of textView for correct offsets.
+ textView.measure(0, 0);
+ // Shift tooltip to the left by required amount, handle RTL correctly.
Bernhard Bauer 2016/12/06 16:46:42 Could you add empty lines before comments?
jdoerrie 2016/12/06 17:39:53 Done.
+ int xOffset = ApiCompatibilityUtils.isLayoutRtl(iconView)
+ ? -iconView.getWidth()
+ : -(textView.getMeasuredWidth() - iconView.getWidth());
+ // Shift tooltip up by required amount.
+ int tooltip_margin = resources.getDimensionPixelSize(
+ R.dimen.psl_info_tooltip_margin);
+ int yOffset = -(textView.getMeasuredHeight() + iconView.getHeight()
+ + tooltip_margin);
+
+ tooltip.showAsDropDown(iconView, xOffset, yOffset);
+ textView.announceForAccessibility(textView.getText());
+ }
+ });
+ }
+
return convertView;
}
};

Powered by Google App Engine
This is Rietveld 408576698