From 9c1b73021cd6c58f098135ec6970fe3f5eb73417 Mon Sep 17 00:00:00 2001 From: Roman Birg Date: Thu, 25 Feb 2016 09:08:19 -0800 Subject: SystemUI: reset tile page after inactivity Reset the quick settings page back to the first page when the user hasn't expanded their statusbar for 10s. Ref: CYNGNOS-2132 Change-Id: Ia195f8c85c8e399ab5e4808fe0ccc343853a1577 Signed-off-by: Roman Birg --- .../src/com/android/systemui/qs/QSDragPanel.java | 49 +++++++++------------- 1 file changed, 19 insertions(+), 30 deletions(-) (limited to 'packages/SystemUI/src/com') diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSDragPanel.java b/packages/SystemUI/src/com/android/systemui/qs/QSDragPanel.java index 0615842..86fc49e 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSDragPanel.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSDragPanel.java @@ -89,6 +89,9 @@ public class QSDragPanel extends QSPanel implements View.OnDragListener, View.On private static final int MAX_ROW_COUNT = 3; + // how long to wait before resetting the page + private static final int PAGE_RESET_DELAY = 10000; + protected final ArrayList mPages = new ArrayList<>(); protected QSViewPager mViewPager; @@ -119,6 +122,16 @@ public class QSDragPanel extends QSPanel implements View.OnDragListener, View.On private Point mDisplaySize; private int[] mTmpLoc; + private Runnable mResetPage = new Runnable() { + @Override + public void run() { + if (!mListening) { + // only reset when the user isn't interacting at all + mViewPager.setCurrentItem(0); + } + } + }; + public QSDragPanel(Context context) { this(context, null); } @@ -369,6 +382,12 @@ public class QSDragPanel extends QSPanel implements View.OnDragListener, View.On public void setListening(boolean listening) { if (mListening == listening) return; mListening = listening; + // reset the page when inactive for a while + if (listening) { + removeCallbacks(mResetPage); + } else { + postDelayed(mResetPage, PAGE_RESET_DELAY); + } for (TileRecord r : mRecords) { r.tile.setListening(mListening); } @@ -481,36 +500,6 @@ public class QSDragPanel extends QSPanel implements View.OnDragListener, View.On mDetailRemoveButton.setText(R.string.quick_settings_remove); } - /** - * @return returns the number of pages that has at least 1 visible tile - */ - protected int getVisibleTilePageCount() { - // if all tiles are invisible on the page, do not count it - int pages = 0; - - int lastPage = -1; - boolean allTilesInvisible = true; - - for (TileRecord record : mRecords) { - DragTileRecord dr = (DragTileRecord) record; - if (dr.destinationPage != lastPage) { - if (!allTilesInvisible) { - pages++; - } - lastPage = dr.destinationPage; - allTilesInvisible = true; - } - if (allTilesInvisible && dr.tile.getState().visible) { - allTilesInvisible = false; - } - } - // last tile may have set this - if (!allTilesInvisible) { - pages++; - } - return pages; - } - public void setTiles(final Collection> tilesCollection) { final List> tiles = new ArrayList<>(tilesCollection); if (DEBUG_TILES) { -- cgit v1.1