Index: chrome/android/java/src/org/chromium/chrome/browser/snackbar/SnackbarManager.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/snackbar/SnackbarManager.java b/chrome/android/java/src/org/chromium/chrome/browser/snackbar/SnackbarManager.java |
index e2da38d6a9a4b4586c62c02f9d87ca49c11c99b4..688d122e955d5c961e2706331777500532e66119 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/snackbar/SnackbarManager.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/snackbar/SnackbarManager.java |
@@ -20,7 +20,6 @@ import org.chromium.chrome.browser.device.DeviceClassManager; |
import org.chromium.ui.UiUtils; |
import org.chromium.ui.base.DeviceFormFactor; |
-import java.util.HashSet; |
import java.util.Stack; |
/** |
@@ -56,30 +55,16 @@ public class SnackbarManager implements OnClickListener, OnGlobalLayoutListener |
*/ |
public static interface SnackbarController { |
/** |
- * Callback triggered when user clicks on button at end of snackbar. This method is only |
- * called for controller having posted the entry the user clicked on; other controllers are |
- * not notified. Also once this {@link #onAction(Object)} is called, |
- * {@link #onDismissNoAction(Object)} and {@link #onDismissForEachType(boolean)} will not be |
- * called. |
+ * Called when the user clicks the action button on the snackbar. |
* @param actionData Data object passed when showing this specific snackbar. |
*/ |
void onAction(Object actionData); |
/** |
- * Callback triggered when the snackbar is dismissed by either timeout or UI environment |
- * change. This callback will be called for each entry a controller has posted, _except_ for |
- * entries which the user has done action with, by clicking the action button. |
+ * Called when the snackbar is dismissed by tiemout or UI enviroment change. |
* @param actionData Data object associated with the dismissed snackbar entry. |
*/ |
void onDismissNoAction(Object actionData); |
- |
- /** |
- * Notify each SnackbarControllers instance only once immediately before the snackbar is |
- * dismissed. This function is likely to be used for controllers to do user metrics for |
- * dismissal. |
- * @param isTimeout Whether this dismissal is triggered by timeout. |
- */ |
- void onDismissForEachType(boolean isTimeout); |
} |
private static final int DEFAULT_SNACKBAR_DURATION_MS = 3000; |
@@ -186,14 +171,8 @@ public class SnackbarManager implements OnClickListener, OnGlobalLayoutListener |
mPopup = null; |
} |
- HashSet<SnackbarController> controllers = new HashSet<SnackbarController>(); |
- |
while (!mStack.isEmpty()) { |
Snackbar snackbar = mStack.pop(); |
- if (!controllers.contains(snackbar.getController())) { |
- snackbar.getController().onDismissForEachType(isTimeout); |
- controllers.add(snackbar.getController()); |
- } |
snackbar.getController().onDismissNoAction(snackbar.getActionData()); |
if (isTimeout && !mStack.isEmpty() && mStack.peek().getForceDisplay()) { |
@@ -221,7 +200,7 @@ public class SnackbarManager implements OnClickListener, OnGlobalLayoutListener |
} |
if (!isFound) return; |
- finishSnackbarRemoval(controller); |
+ finishSnackbarRemoval(); |
} |
/** |
@@ -242,12 +221,10 @@ public class SnackbarManager implements OnClickListener, OnGlobalLayoutListener |
} |
if (!isFound) return; |
- finishSnackbarRemoval(controller); |
+ finishSnackbarRemoval(); |
} |
- private void finishSnackbarRemoval(SnackbarController controller) { |
- controller.onDismissForEachType(false); |
- |
+ private void finishSnackbarRemoval() { |
if (mStack.isEmpty()) { |
dismissAllSnackbars(false); |
} else { |