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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/snackbar/SnackbarPopupWindow.java

Issue 1635753002: Introduce Queue-Based Notification Snackbars (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: add VisibleForTesting to a method Created 4 years, 11 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/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..957a6f0cb51d7fadcaa9e41b8b98c0ba13c5b351 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}.
@@ -63,12 +64,18 @@ class SnackbarPopupWindow extends PopupWindow {
}
/**
- * 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 +111,7 @@ class SnackbarPopupWindow extends PopupWindow {
} else {
((ViewGroup) view).removeView(mProfileImageView);
}
+ return true;
}
private void setViewText(TextView view, CharSequence text, boolean animate) {

Powered by Google App Engine
This is Rietveld 408576698