Index: chrome/android/java/src/org/chromium/chrome/browser/snackbar/SnackbarPopupWindow.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/snackbar/SnackbarPopupWindow.java b/chrome/android/java/src/org/chromium/chrome/browser/snackbar/SnackbarPopupWindow.java |
index 75163e604cf3a25cef0925717ef8f700814b0776..edadc3278056724dfa90b14fd1f77325c1a385ba 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/snackbar/SnackbarPopupWindow.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/snackbar/SnackbarPopupWindow.java |
@@ -27,6 +27,7 @@ class SnackbarPopupWindow extends PopupWindow { |
private final TextView mActionButtonView; |
private final ImageView mProfileImageView; |
private final int mAnimationDuration; |
+ private Snackbar mSnackbar; |
/** |
* Creates an instance of the {@link SnackbarPopupWindow}. |
@@ -61,14 +62,19 @@ class SnackbarPopupWindow extends PopupWindow { |
mActionButtonView.setEnabled(false); |
super.dismiss(); |
} |
- |
/** |
newt (away)
2016/01/27 02:13:41
newline before this
Ian Wen
2016/01/27 18:14:07
Done.
|
- * Updates the view to display data from the given snackbar. |
- * |
+ * Updates the view to display data from the given snackbar. No-op if the popup is already |
+ * showing the given snackbar. |
* @param snackbar The snackbar to display |
- * @param animate Whether or not to animate the text in or set it immediately |
+ * @return Whether update has actually been executed. |
*/ |
- void update(Snackbar snackbar, boolean animate) { |
+ boolean update(Snackbar snackbar) { |
+ return update(snackbar, true); |
+ } |
+ |
+ private boolean update(Snackbar snackbar, boolean animate) { |
+ if (mSnackbar == snackbar) return false; |
+ mSnackbar = snackbar; |
mMessageView.setMaxLines(snackbar.getSingleLine() ? 1 : Integer.MAX_VALUE); |
mMessageView.setTemplate(snackbar.getTemplateText()); |
setViewText(mMessageView, snackbar.getText(), animate); |
@@ -104,6 +110,7 @@ class SnackbarPopupWindow extends PopupWindow { |
} else { |
((ViewGroup) view).removeView(mProfileImageView); |
} |
+ return true; |
} |
private void setViewText(TextView view, CharSequence text, boolean animate) { |