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

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: isolate the collection 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..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) {

Powered by Google App Engine
This is Rietveld 408576698