From 45233d6b102083880808abe65698c160f71f30fb Mon Sep 17 00:00:00 2001 From: Jason Monk Date: Thu, 9 Jun 2016 09:59:56 -0400 Subject: [PATCH] QS: Fix crash when removing pages in RTL Change-Id: Ic8f082a3dc61fbf12f576d4cffb8ab31e669cb7c Fixes: 29122756 --- .../com/android/systemui/qs/PagedTileLayout.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/qs/PagedTileLayout.java b/packages/SystemUI/src/com/android/systemui/qs/PagedTileLayout.java index cf96457ce09c6..71bd7982675ce 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/PagedTileLayout.java +++ b/packages/SystemUI/src/com/android/systemui/qs/PagedTileLayout.java @@ -109,18 +109,18 @@ public class PagedTileLayout extends ViewPager implements QSTileLayout { if (mListening) { if (mPosition != position) { // Clear out the last pages from listening. - mPages.get(mPosition).setListening(false); + setPageListening(mPosition, false); if (mOffPage) { - mPages.get(mPosition + 1).setListening(false); + setPageListening(mPosition + 1, false); } // Set the new pages to listening - mPages.get(position).setListening(true); + setPageListening(position, true); if (offPage) { - mPages.get(position + 1).setListening(true); + setPageListening(position + 1, true); } } else if (mOffPage != offPage) { // Whether we are showing position + 1 has changed. - mPages.get(mPosition + 1).setListening(offPage); + setPageListening(mPosition + 1, offPage); } } // Save the current state. @@ -128,6 +128,11 @@ public class PagedTileLayout extends ViewPager implements QSTileLayout { mOffPage = offPage; } + private void setPageListening(int position, boolean listening) { + if (position >= mPages.size()) return; + mPages.get(position).setListening(listening); + } + @Override public boolean hasOverlappingRendering() { return false;