summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/res/values-land/config.xml3
-rw-r--r--packages/SystemUI/res/values/config.xml4
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/QSAnimator.java18
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/QuickQSPanel.java10
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/QuickQSPanelController.java35
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/customize/QSCustomizerController.java2
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/customize/TileAdapter.java7
7 files changed, 37 insertions, 42 deletions
diff --git a/packages/SystemUI/res/values-land/config.xml b/packages/SystemUI/res/values-land/config.xml
index 2f7fbaff4ed2..46ec23c8cf2e 100644
--- a/packages/SystemUI/res/values-land/config.xml
+++ b/packages/SystemUI/res/values-land/config.xml
@@ -20,6 +20,9 @@
<!-- These resources are around just to allow their values to be customized
for different hardware and product builds. -->
<resources>
+ <!-- The maximum number of tiles in the QuickQSPanel -->
+ <integer name="quick_qs_panel_max_columns">6</integer>
+
<!-- The maximum number of rows in the QuickSettings -->
<integer name="quick_settings_max_rows">2</integer>
diff --git a/packages/SystemUI/res/values/config.xml b/packages/SystemUI/res/values/config.xml
index 1a72fc231815..f82d1a393339 100644
--- a/packages/SystemUI/res/values/config.xml
+++ b/packages/SystemUI/res/values/config.xml
@@ -93,10 +93,10 @@
<bool name="config_navigation_bar_enable_auto_dim_no_visible_wallpaper">true</bool>
<!-- The maximum number of tiles in the QuickQSPanel -->
- <integer name="quick_qs_panel_max_columns">6</integer>
+ <integer name="quick_qs_panel_max_columns">4</integer>
<!-- The number of columns in the QuickSettings -->
- <integer name="quick_settings_num_columns">3</integer>
+ <integer name="quick_settings_num_columns">4</integer>
<!-- The number of rows in the QuickSettings -->
<integer name="quick_settings_max_rows">3</integer>
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSAnimator.java b/packages/SystemUI/src/com/android/systemui/qs/QSAnimator.java
index c52b8ca453af..e9207f1feff3 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QSAnimator.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QSAnimator.java
@@ -200,8 +200,6 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha
int count = 0;
int[] loc1 = new int[2];
int[] loc2 = new int[2];
- int lastXDiff = 0;
- int lastX = 0;
clearAnimationState();
mAllViews.clear();
@@ -231,12 +229,11 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha
QSTileView quickTileView = mQuickQSPanelController.getTileView(tile);
if (quickTileView == null) continue;
- lastX = loc1[0];
getRelativePosition(loc1, quickTileView.getIcon().getIconView(), view);
getRelativePosition(loc2, tileIcon, view);
final int xDiff = loc2[0] - loc1[0];
final int yDiff = loc2[1] - loc1[1];
- lastXDiff = loc1[0] - lastX;
+
if (count < tileLayout.getNumVisibleTiles()) {
// Move the quick tile right from its location to the new one.
@@ -267,19 +264,8 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha
mAllViews.add(tileView.getIcon());
mAllViews.add(quickTileView);
} else if (mFullRows && isIconInAnimatedRow(count)) {
- // TODO: Refactor some of this, it shares a lot with the above block.
- // Move the last tile position over by the last difference between quick tiles.
- // This makes the extra icons seems as if they are coming from positions in the
- // quick panel.
- loc1[0] += lastXDiff;
- getRelativePosition(loc2, tileIcon, view);
- final int xDiff = loc2[0] - loc1[0];
- final int yDiff = loc2[1] - loc1[1];
- firstPageBuilder.addFloat(tileView, "translationY", heightDiff, 0);
- translationXBuilder.addFloat(tileView, "translationX", -xDiff, 0);
- translationYBuilder.addFloat(tileView, "translationY", -yDiff, 0);
- translationYBuilder.addFloat(tileIcon, "translationY", -yDiff, 0);
+ firstPageBuilder.addFloat(tileView, "translationY", -heightDiff, 0);
mAllViews.add(tileIcon);
} else {
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanel.java b/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanel.java
index dde9a1fdf01b..ebe80ae96172 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanel.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanel.java
@@ -47,7 +47,7 @@ public class QuickQSPanel extends QSPanel {
public static final String NUM_QUICK_TILES = "sysui_qqs_count";
private static final String TAG = "QuickQSPanel";
// A default value so that we never return 0.
- private static int sDefaultMaxTiles = 6;
+ public static final int DEFAULT_MAX_TILES = 6;
private boolean mDisabledByPolicy;
private int mMaxTiles;
@@ -62,8 +62,8 @@ public class QuickQSPanel extends QSPanel {
@Named(QUICK_QS_PANEL) MediaHost mediaHost,
UiEventLogger uiEventLogger) {
super(context, attrs, qsLogger, mediaHost, uiEventLogger);
- sDefaultMaxTiles = getResources().getInteger(R.integer.quick_qs_panel_max_columns);
- mMaxTiles = sDefaultMaxTiles;
+ mMaxTiles = Math.min(DEFAULT_MAX_TILES,
+ getResources().getInteger(R.integer.quick_qs_panel_max_columns));
applyBottomMargin((View) mRegularTileLayout);
}
@@ -141,7 +141,7 @@ public class QuickQSPanel extends QSPanel {
}
public void setMaxTiles(int maxTiles) {
- mMaxTiles = maxTiles;
+ mMaxTiles = Math.min(maxTiles, DEFAULT_MAX_TILES);
}
@Override
@@ -167,7 +167,7 @@ public class QuickQSPanel extends QSPanel {
return Integer.parseInt(numTilesValue);
} catch (NumberFormatException e) {
// Couldn't read an int from the new setting value. Use default.
- return sDefaultMaxTiles;
+ return DEFAULT_MAX_TILES;
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanelController.java b/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanelController.java
index fa6289f896f9..54d3026878c8 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanelController.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanelController.java
@@ -16,52 +16,53 @@
package com.android.systemui.qs;
-import static com.android.systemui.qs.QuickQSPanel.NUM_QUICK_TILES;
-import static com.android.systemui.qs.QuickQSPanel.parseNumTiles;
-
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.UiEventLogger;
+import com.android.systemui.R;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.plugins.qs.QSTile;
import com.android.systemui.qs.customize.QSCustomizerController;
import com.android.systemui.qs.dagger.QSScope;
-import com.android.systemui.tuner.TunerService;
-import com.android.systemui.tuner.TunerService.Tunable;
import java.util.ArrayList;
+import java.util.List;
import javax.inject.Inject;
/** Controller for {@link QuickQSPanel}. */
@QSScope
public class QuickQSPanelController extends QSPanelControllerBase<QuickQSPanel> {
- private final Tunable mNumTiles =
- (key, newValue) -> setMaxTiles(parseNumTiles(newValue));
- private final TunerService mTunerService;
+ private List<QSTile> mAllTiles = new ArrayList<>();
+
+ private final QSPanel.OnConfigurationChangedListener mOnConfigurationChangedListener =
+ newConfig -> {
+ int newMaxTiles = getResources().getInteger(R.integer.quick_qs_panel_max_columns);
+ if (newMaxTiles != mView.getNumQuickTiles()) {
+ setMaxTiles(newMaxTiles);
+ }
+ };
@Inject
- QuickQSPanelController(QuickQSPanel view, TunerService tunerService, QSTileHost qsTileHost,
+ QuickQSPanelController(QuickQSPanel view, QSTileHost qsTileHost,
QSCustomizerController qsCustomizerController,
QSTileRevealController.Factory qsTileRevealControllerFactory,
MetricsLogger metricsLogger, UiEventLogger uiEventLogger,
DumpManager dumpManager) {
super(view, qsTileHost, qsCustomizerController, qsTileRevealControllerFactory,
metricsLogger, uiEventLogger, dumpManager);
- mTunerService = tunerService;
}
@Override
protected void onViewAttached() {
super.onViewAttached();
- mTunerService.addTunable(mNumTiles, NUM_QUICK_TILES);
-
+ mView.addOnConfigurationChangedListener(mOnConfigurationChangedListener);
}
@Override
protected void onViewDetached() {
super.onViewDetached();
- mTunerService.removeTunable(mNumTiles);
+ mView.removeOnConfigurationChangedListener(mOnConfigurationChangedListener);
}
public boolean isListening() {
@@ -75,14 +76,14 @@ public class QuickQSPanelController extends QSPanelControllerBase<QuickQSPanel>
@Override
public void setTiles() {
- ArrayList<QSTile> quickTiles = new ArrayList<>();
+ mAllTiles.clear();
for (QSTile tile : mHost.getTiles()) {
- quickTiles.add(tile);
- if (quickTiles.size() == mView.getNumQuickTiles()) {
+ mAllTiles.add(tile);
+ if (mAllTiles.size() == QuickQSPanel.DEFAULT_MAX_TILES) {
break;
}
}
- super.setTiles(quickTiles, true);
+ super.setTiles(mAllTiles.subList(0, mView.getNumQuickTiles()), true);
}
public int getNumQuickTiles() {
diff --git a/packages/SystemUI/src/com/android/systemui/qs/customize/QSCustomizerController.java b/packages/SystemUI/src/com/android/systemui/qs/customize/QSCustomizerController.java
index 9f4c58b58cab..7ba51e5e7128 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/customize/QSCustomizerController.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/customize/QSCustomizerController.java
@@ -125,7 +125,7 @@ public class QSCustomizerController extends ViewController<QSCustomizer> {
RecyclerView recyclerView = mView.getRecyclerView();
recyclerView.setAdapter(mTileAdapter);
mTileAdapter.getItemTouchHelper().attachToRecyclerView(recyclerView);
- GridLayoutManager layout = new GridLayoutManager(getContext(), 3) {
+ GridLayoutManager layout = new GridLayoutManager(getContext(), TileAdapter.NUM_COLUMNS) {
@Override
public void onInitializeAccessibilityNodeInfoForItem(RecyclerView.Recycler recycler,
RecyclerView.State state, View host, AccessibilityNodeInfoCompat info) {
diff --git a/packages/SystemUI/src/com/android/systemui/qs/customize/TileAdapter.java b/packages/SystemUI/src/com/android/systemui/qs/customize/TileAdapter.java
index dfc771beab1c..036fa8667c6f 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/customize/TileAdapter.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/customize/TileAdapter.java
@@ -61,6 +61,7 @@ public class TileAdapter extends RecyclerView.Adapter<Holder> implements TileSta
private static final long DRAG_LENGTH = 100;
private static final float DRAG_SCALE = 1.2f;
public static final long MOVE_DURATION = 150;
+ public static final int NUM_COLUMNS = 4;
private static final int TYPE_TILE = 0;
private static final int TYPE_EDIT = 1;
@@ -600,7 +601,11 @@ public class TileAdapter extends RecyclerView.Adapter<Holder> implements TileSta
@Override
public int getSpanSize(int position) {
final int type = getItemViewType(position);
- return type == TYPE_EDIT || type == TYPE_DIVIDER || type == TYPE_HEADER ? 3 : 1;
+ if (type == TYPE_EDIT || type == TYPE_DIVIDER || type == TYPE_HEADER) {
+ return NUM_COLUMNS;
+ } else {
+ return 1;
+ }
}
};