Index: chrome/android/java/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheetContentController.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheetContentController.java b/chrome/android/java/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheetContentController.java |
index 4d0c02c2ad0f5171412a680fc74dd272eff3765b..ea7871d00a51d3cdf8d40aed4e1f7cac25e0de95 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheetContentController.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheetContentController.java |
@@ -4,6 +4,7 @@ |
package org.chromium.chrome.browser.widget.bottomsheet; |
+import android.app.Activity; |
import android.content.Context; |
import android.content.res.Resources; |
import android.support.annotation.IntDef; |
@@ -14,12 +15,17 @@ import android.support.design.widget.BottomNavigationView.OnNavigationItemSelect |
import android.util.AttributeSet; |
import android.view.MenuItem; |
import android.view.View; |
+import android.view.ViewGroup; |
+import org.chromium.base.ActivityState; |
+import org.chromium.base.ApplicationStatus; |
+import org.chromium.base.ApplicationStatus.ActivityStateListener; |
import org.chromium.base.VisibleForTesting; |
import org.chromium.chrome.R; |
import org.chromium.chrome.browser.bookmarks.BookmarkSheetContent; |
import org.chromium.chrome.browser.download.DownloadSheetContent; |
import org.chromium.chrome.browser.history.HistorySheetContent; |
+import org.chromium.chrome.browser.snackbar.SnackbarManager; |
import org.chromium.chrome.browser.suggestions.SuggestionsBottomSheetContent; |
import org.chromium.chrome.browser.tabmodel.TabModelSelector; |
import org.chromium.chrome.browser.util.MathUtils; |
@@ -57,6 +63,8 @@ public class BottomSheetContentController extends BottomNavigationView |
+ mDistanceBelowToolbarPx; |
setTranslationY((int) Math.max(offsetY, 0f)); |
setVisibility(MathUtils.areFloatsEqual(heightFraction, 0f) ? View.GONE : View.VISIBLE); |
+ |
+ mSnackbarManager.dismissAllSnackbars(); |
} |
@Override |
@@ -88,6 +96,7 @@ public class BottomSheetContentController extends BottomNavigationView |
private BottomSheet mBottomSheet; |
private TabModelSelector mTabModelSelector; |
+ private SnackbarManager mSnackbarManager; |
private float mDistanceBelowToolbarPx; |
private int mSelectedItemId; |
private boolean mDefaultContentInitialized; |
@@ -101,9 +110,10 @@ public class BottomSheetContentController extends BottomNavigationView |
* @param bottomSheet The {@link BottomSheet} associated with this bottom nav. |
* @param controlContainerHeight The height of the control container in px. |
* @param tabModelSelector The {@link TabModelSelector} for the application. |
+ * @param activity The {@link Activity} that owns the BottomSheet. |
*/ |
public void init(BottomSheet bottomSheet, int controlContainerHeight, |
- TabModelSelector tabModelSelector) { |
+ TabModelSelector tabModelSelector, Activity activity) { |
mBottomSheet = bottomSheet; |
mBottomSheet.addObserver(mBottomSheetObserver); |
mTabModelSelector = tabModelSelector; |
@@ -114,6 +124,18 @@ public class BottomSheetContentController extends BottomNavigationView |
setOnNavigationItemSelectedListener(this); |
disableShiftingMode(); |
+ |
+ mSnackbarManager = new SnackbarManager( |
+ activity, (ViewGroup) activity.findViewById(R.id.bottom_sheet_snackbar_container)); |
+ mSnackbarManager.onStart(); |
+ |
+ ApplicationStatus.registerStateListenerForActivity(new ActivityStateListener() { |
+ @Override |
+ public void onActivityStateChange(Activity activity, int newState) { |
+ if (newState == ActivityState.STARTED) mSnackbarManager.onStart(); |
+ if (newState == ActivityState.STOPPED) mSnackbarManager.onStop(); |
+ } |
+ }, activity); |
} |
/** |
@@ -129,6 +151,7 @@ public class BottomSheetContentController extends BottomNavigationView |
public boolean onNavigationItemSelected(MenuItem item) { |
if (mSelectedItemId == item.getItemId()) return false; |
+ mSnackbarManager.dismissAllSnackbars(); |
showBottomSheetContent(item.getItemId()); |
return true; |
} |
@@ -161,14 +184,16 @@ public class BottomSheetContentController extends BottomNavigationView |
if (navItemId == R.id.action_home) { |
content = new SuggestionsBottomSheetContent( |
mTabModelSelector.getCurrentTab().getActivity(), mBottomSheet, |
- mTabModelSelector); |
+ mTabModelSelector, mSnackbarManager); |
} else if (navItemId == R.id.action_downloads) { |
content = new DownloadSheetContent(mTabModelSelector.getCurrentTab().getActivity(), |
- mTabModelSelector.getCurrentModel().isIncognito()); |
+ mTabModelSelector.getCurrentModel().isIncognito(), mSnackbarManager); |
} else if (navItemId == R.id.action_bookmarks) { |
- content = new BookmarkSheetContent(mTabModelSelector.getCurrentTab().getActivity()); |
+ content = new BookmarkSheetContent( |
+ mTabModelSelector.getCurrentTab().getActivity(), mSnackbarManager); |
} else if (navItemId == R.id.action_history) { |
- content = new HistorySheetContent(mTabModelSelector.getCurrentTab().getActivity()); |
+ content = new HistorySheetContent( |
+ mTabModelSelector.getCurrentTab().getActivity(), mSnackbarManager); |
} |
mBottomSheetContents.put(navItemId, content); |
return content; |