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; |
} |
}; |