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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsBottomSheetContent.java

Issue 2862893002: 📰 Add visibility change triggers for bottom sheet content (Closed)
Patch Set: Fix compilation post merge Created 3 years, 7 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
« no previous file with comments | « no previous file | chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsMetrics.java » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsBottomSheetContent.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsBottomSheetContent.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsBottomSheetContent.java
index bcdcf42e32e37569f22a36ae2aa07aad25f7aa28..dcc86b233372dabb16e8a11d2e2b1989a29ce42f 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsBottomSheetContent.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsBottomSheetContent.java
@@ -33,8 +33,6 @@
import org.chromium.chrome.browser.widget.FadingShadowView;
import org.chromium.chrome.browser.widget.bottomsheet.BottomSheet;
import org.chromium.chrome.browser.widget.bottomsheet.BottomSheetContentController;
-import org.chromium.chrome.browser.widget.bottomsheet.BottomSheetObserver;
-import org.chromium.chrome.browser.widget.bottomsheet.EmptyBottomSheetObserver;
import org.chromium.chrome.browser.widget.displaystyle.UiConfig;
import org.chromium.ui.widget.Toast;
@@ -54,8 +52,7 @@
private final ContextMenuManager mContextMenuManager;
private final SuggestionsUiDelegateImpl mSuggestionsUiDelegate;
private final TileGroup.Delegate mTileGroupDelegate;
- private final BottomSheet mBottomSheet;
- private final BottomSheetObserver mBottomSheetObserver;
+ private final SuggestionsSheetVisibilityChangeObserver mBottomSheetObserver;
public SuggestionsBottomSheetContent(final ChromeActivity activity, final BottomSheet sheet,
TabModelSelector tabModelSelector, SnackbarManager snackbarManager) {
@@ -94,30 +91,41 @@ public void onDestroy() {
mContextMenuManager, mTileGroupDelegate);
mRecyclerView.init(uiConfig, mContextMenuManager, adapter);
- mBottomSheetObserver = new EmptyBottomSheetObserver() {
+ mBottomSheetObserver = new SuggestionsSheetVisibilityChangeObserver(this, activity) {
@Override
public void onSheetOpened() {
mRecyclerView.scrollToPosition(0);
- prepareSuggestionsForReveal(adapter);
-
+ adapter.refreshSuggestions();
+ mSuggestionsUiDelegate.getEventReporter().onSurfaceOpened();
mRecyclerView.getScrollEventReporter().reset();
if (ChromeFeatureList.isEnabled(
ChromeFeatureList.CONTEXTUAL_SUGGESTIONS_CAROUSEL)) {
- updateContextualSuggestions(mBottomSheet.getActiveTab().getUrl());
+ updateContextualSuggestions(sheet.getActiveTab().getUrl());
}
+
+ super.onSheetOpened();
+ }
+
+ @Override
+ public void onContentShown() {
+ SuggestionsMetrics.recordSurfaceVisible();
}
@Override
- public void onSheetClosed() {
+ public void onContentHidden() {
SuggestionsMetrics.recordSurfaceHidden();
}
+ @Override
+ public void onContentStateChanged(@BottomSheet.SheetState int contentState) {
+ if (contentState == BottomSheet.SHEET_STATE_HALF) {
+ SuggestionsMetrics.recordSurfaceHalfVisible();
+ } else if (contentState == BottomSheet.SHEET_STATE_FULL) {
+ SuggestionsMetrics.recordSurfaceFullyVisible();
+ }
+ }
};
- mBottomSheet = activity.getBottomSheet();
- mBottomSheet.addObserver(mBottomSheetObserver);
-
- if (mBottomSheet.isSheetOpen()) prepareSuggestionsForReveal(adapter);
mShadowView = (FadingShadowView) mView.findViewById(R.id.shadow);
mShadowView.init(
@@ -169,7 +177,7 @@ public int getVerticalScrollOffset() {
@Override
public void destroy() {
- mBottomSheet.removeObserver(mBottomSheetObserver);
+ mBottomSheetObserver.onDestroy();
mSuggestionsUiDelegate.onDestroy();
mTileGroupDelegate.destroy();
}
@@ -179,13 +187,6 @@ public int getType() {
return BottomSheetContentController.TYPE_SUGGESTIONS;
}
- /** Called when the UI is revlealed, prepares the list of suggestions. */
- private void prepareSuggestionsForReveal(NewTabPageAdapter adapter) {
- adapter.refreshSuggestions();
- mSuggestionsUiDelegate.getEventReporter().onSurfaceOpened();
- SuggestionsMetrics.recordSurfaceVisible();
- }
-
private void updateContextualSuggestions(String url) {
mSuggestionsUiDelegate.getSuggestionsSource().fetchContextualSuggestions(
url, new Callback<List<SnippetArticle>>() {
« no previous file with comments | « no previous file | chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsMetrics.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698