diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/tv/guide/ProgramGuide.java | 31 | ||||
-rw-r--r-- | src/com/android/tv/perf/EventNames.java | 6 |
2 files changed, 36 insertions, 1 deletions
diff --git a/src/com/android/tv/guide/ProgramGuide.java b/src/com/android/tv/guide/ProgramGuide.java index 03b47d38..435be501 100644 --- a/src/com/android/tv/guide/ProgramGuide.java +++ b/src/com/android/tv/guide/ProgramGuide.java @@ -324,12 +324,43 @@ public class ProgramGuide mGrid.setItemAlignmentOffset(0); mGrid.setItemAlignmentOffsetPercent(ProgramGrid.ITEM_ALIGN_OFFSET_PERCENT_DISABLED); + mGrid.addOnScrollListener( + new RecyclerView.OnScrollListener() { + @Override + public void onScrollStateChanged(RecyclerView recyclerView, int newState) { + if (DEBUG) { + Log.d(TAG, "ProgramGrid onScrollStateChanged. newState=" + newState); + } + if (newState == RecyclerView.SCROLL_STATE_SETTLING) { + mPerformanceMonitor.startJankRecorder( + EventNames.PROGRAM_GUIDE_SCROLL_VERTICALLY); + } else if (newState == RecyclerView.SCROLL_STATE_IDLE) { + mPerformanceMonitor.stopJankRecorder( + EventNames.PROGRAM_GUIDE_SCROLL_VERTICALLY); + } + } + } + ); + RecyclerView.OnScrollListener onScrollListener = new RecyclerView.OnScrollListener() { @Override public void onScrolled(RecyclerView recyclerView, int dx, int dy) { onHorizontalScrolled(dx); } + @Override + public void onScrollStateChanged(RecyclerView recyclerView, int newState) { + if (DEBUG) { + Log.d(TAG, "TimelineRow onScrollStateChanged. newState=" + newState); + } + if (newState == RecyclerView.SCROLL_STATE_SETTLING) { + mPerformanceMonitor.startJankRecorder( + EventNames.PROGRAM_GUIDE_SCROLL_HORIZONTALLY); + } else if (newState == RecyclerView.SCROLL_STATE_IDLE) { + mPerformanceMonitor.stopJankRecorder( + EventNames.PROGRAM_GUIDE_SCROLL_HORIZONTALLY); + } + } }; mTimelineRow.addOnScrollListener(onScrollListener); diff --git a/src/com/android/tv/perf/EventNames.java b/src/com/android/tv/perf/EventNames.java index 2189be99..0b0b0cd6 100644 --- a/src/com/android/tv/perf/EventNames.java +++ b/src/com/android/tv/perf/EventNames.java @@ -32,7 +32,8 @@ public final class EventNames { @Retention(SOURCE) @StringDef({FETCH_EPG_TASK, ON_DEVICE_SEARCH, PROGRAM_GUIDE_SHOW, PROGRAM_DATA_MANAGER_PROGRAMS_PREFETCH_TASK_DO_IN_BACKGROUND, - PROGRAM_GUIDE_SHOW_FROM_EMPTY_CACHE}) + PROGRAM_GUIDE_SHOW_FROM_EMPTY_CACHE, PROGRAM_GUIDE_SCROLL_HORIZONTALLY, + PROGRAM_GUIDE_SCROLL_VERTICALLY}) public @interface EventName {} public static final String FETCH_EPG_TASK = "FetchEpgTask"; @@ -46,6 +47,9 @@ public final class EventNames { "ProgramDataManager.ProgramsPrefetchTask.doInBackground"; public static final String PROGRAM_GUIDE_SHOW_FROM_EMPTY_CACHE = "ProgramGuide.show.fromEmptyCache"; + public static final String PROGRAM_GUIDE_SCROLL_HORIZONTALLY = + "ProgramGuide.scroll.horizontally"; + public static final String PROGRAM_GUIDE_SCROLL_VERTICALLY = "ProgramGuide.scroll.vertically"; private EventNames() {} } |