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 7640b438f4289e71c0cb2e6c0b57c96cc1c76160..59f794c67ee34af41e6badf6049dc2653567c9b0 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 |
@@ -12,6 +12,7 @@ |
import android.view.View; |
import org.chromium.base.ApiCompatibilityUtils; |
+import org.chromium.base.metrics.RecordUserAction; |
import org.chromium.chrome.R; |
import org.chromium.chrome.browser.ChromeActivity; |
import org.chromium.chrome.browser.NativePageHost; |
@@ -30,7 +31,7 @@ |
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.bottomsheet.SheetContentStateChangeObserver; |
import org.chromium.chrome.browser.widget.displaystyle.UiConfig; |
/** |
@@ -85,31 +86,45 @@ public void onDestroy() { |
mContextMenuManager, mTileGroupDelegate); |
mRecyclerView.init(uiConfig, mContextMenuManager, adapter); |
- mBottomSheetObserver = new EmptyBottomSheetObserver() { |
+ mBottomSheet = activity.getBottomSheet(); |
+ mBottomSheetObserver = new SheetContentStateChangeObserver(this, mBottomSheet) { |
@Override |
- public void onSheetOpened() { |
+ public void onContentShown() { |
+ SuggestionsMetrics.recordSurfaceVisible(); |
+ mSuggestionsUiDelegate.getEventReporter().onSurfaceOpened(); |
+ |
mRecyclerView.scrollToPosition(0); |
adapter.refreshSuggestions(); |
- mSuggestionsUiDelegate.getEventReporter().onSurfaceOpened(); |
- SuggestionsMetrics.recordSurfaceVisible(); |
} |
@Override |
- public void onSheetClosed() { |
+ public void onContentHidden() { |
SuggestionsMetrics.recordSurfaceHidden(); |
} |
+ @Override |
+ public void onContentStateChanged(int sheetState) { |
+ if (sheetState == BottomSheet.SHEET_STATE_HALF) { |
+ RecordUserAction.record("Suggestions.SurfaceHalfVisible"); |
+ } else if (sheetState == BottomSheet.SHEET_STATE_FULL) { |
+ RecordUserAction.record("Suggestions.SurfaceFullyVisible"); |
+ } |
+ } |
+ |
+ @Override |
+ public void onSheetBackgrounded() { |
+ onContentHidden(); |
+ } |
+ |
+ @Override |
+ public void onSheetForegrounded() { |
+ SuggestionsMetrics.recordSurfaceVisible(); |
+ onContentStateChanged(getCurrentState()); |
+ } |
}; |
- mBottomSheet = activity.getBottomSheet(); |
mBottomSheet.addObserver(mBottomSheetObserver); |
- if (mBottomSheet.isSheetOpen()) { |
- adapter.refreshSuggestions(); |
- mSuggestionsUiDelegate.getEventReporter().onSurfaceOpened(); |
- SuggestionsMetrics.recordSurfaceVisible(); |
- } |
- |
mShadowView = (FadingShadowView) mView.findViewById(R.id.shadow); |
mShadowView.init( |
ApiCompatibilityUtils.getColor(mView.getResources(), R.color.toolbar_shadow_color), |