Commit 5ca1398e authored by David Maunder's avatar David Maunder Committed by Commit Bot

Dismiss Grouping snackbar upon a tab close

When a Tab has been closed after a grouping operation, the user has
moved on so we should not give them an option to undo the grouping
(which doesn't make sense anyway as the group no longer exists)

Bug: 1100248
Change-Id: I0f7137a51c84e008c2a2edf87d6c727881b569fe
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2278178Reviewed-by: default avatarDavid Trainor <dtrainor@chromium.org>
Reviewed-by: default avatarYusuf Ozuysal <yusufo@chromium.org>
Commit-Queue: David Maunder <davidjm@chromium.org>
Cr-Commit-Position: refs/heads/master@{#785978}
parent 4dd48188
......@@ -2,6 +2,7 @@ include_rules = [
"+chrome/browser/android/lifecycle",
"+chrome/browser/profiles/android/java",
"+chrome/browser/tab/java",
"+chrome/browser/tabmodel/android/java",
"+chrome/browser/tabpersistence/android/java",
"+chrome/browser/ui/android/favicon/java",
"+chrome/browser/ui/messages/android/java",
......
......@@ -7,10 +7,13 @@ package org.chromium.chrome.browser.tasks.tab_management;
import android.content.Context;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tab.TabCreationState;
import org.chromium.chrome.browser.tab.TabLaunchType;
import org.chromium.chrome.browser.tabmodel.EmptyTabModelSelectorObserver;
import org.chromium.chrome.browser.tabmodel.TabModel;
import org.chromium.chrome.browser.tabmodel.TabModelSelector;
import org.chromium.chrome.browser.tabmodel.TabModelSelectorObserver;
import org.chromium.chrome.browser.tabmodel.TabModelSelectorTabModelObserver;
import org.chromium.chrome.browser.tasks.tab_groups.EmptyTabGroupModelFilterObserver;
import org.chromium.chrome.browser.tasks.tab_groups.TabGroupModelFilter;
import org.chromium.chrome.browser.ui.messages.snackbar.Snackbar;
......@@ -32,6 +35,7 @@ public class UndoGroupSnackbarController implements SnackbarManager.SnackbarCont
private final SnackbarManager.SnackbarManageable mSnackbarManageable;
private final TabGroupModelFilter.Observer mTabGroupModelFilterObserver;
private final TabModelSelectorObserver mTabModelSelectorObserver;
private final TabModelSelectorTabModelObserver mTabModelSelectorTabModelObserver;
private class TabUndoInfo {
public final Tab tab;
......@@ -84,6 +88,22 @@ public class UndoGroupSnackbarController implements SnackbarManager.SnackbarCont
};
mTabModelSelector.addObserver(mTabModelSelectorObserver);
mTabModelSelectorTabModelObserver =
new TabModelSelectorTabModelObserver(mTabModelSelector) {
@Override
public void didAddTab(
Tab tab, @TabLaunchType int type, @TabCreationState int creationState) {
mSnackbarManageable.getSnackbarManager().dismissSnackbars(
UndoGroupSnackbarController.this);
}
@Override
public void didCloseTab(int tabId, boolean incognito) {
mSnackbarManageable.getSnackbarManager().dismissSnackbars(
UndoGroupSnackbarController.this);
}
};
}
/**
......@@ -100,6 +120,7 @@ public class UndoGroupSnackbarController implements SnackbarManager.SnackbarCont
true))
.removeTabGroupObserver(mTabGroupModelFilterObserver);
}
mTabModelSelectorTabModelObserver.destroy();
}
private void showUndoGroupSnackbar(List<TabUndoInfo> tabUndoInfo) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment