summaryrefslogtreecommitdiffstats
path: root/packages
diff options
context:
space:
mode:
authorJorim Jaggi <jjaggi@google.com>2014-12-12 15:39:27 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2014-12-12 15:39:27 +0000
commite741a3e9fe1d710f5531d134ae317d2b73c57292 (patch)
tree0d6d012519a8ed6f55e5fad9fd9f2824d1df19d5 /packages
parent19131b49f62e6a6b21013be1f9f25b3874728a9b (diff)
parent8934e67051a7c2598ad94699037701c4c6bf83ca (diff)
downloadframeworks_base-e741a3e9fe1d710f5531d134ae317d2b73c57292.zip
frameworks_base-e741a3e9fe1d710f5531d134ae317d2b73c57292.tar.gz
frameworks_base-e741a3e9fe1d710f5531d134ae317d2b73c57292.tar.bz2
am 8934e670: Merge "Limit item count in QS detail" into lmp-mr1-dev
* commit '8934e67051a7c2598ad94699037701c4c6bf83ca': Limit item count in QS detail
Diffstat (limited to 'packages')
-rw-r--r--packages/SystemUI/res/layout/qs_detail_items.xml4
-rw-r--r--packages/SystemUI/res/values-h560dp/config.xml23
-rw-r--r--packages/SystemUI/res/values/config.xml3
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/QSDetailItems.java20
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/tiles/BluetoothTile.java1
5 files changed, 50 insertions, 1 deletions
diff --git a/packages/SystemUI/res/layout/qs_detail_items.xml b/packages/SystemUI/res/layout/qs_detail_items.xml
index f61a43c..c22e42c 100644
--- a/packages/SystemUI/res/layout/qs_detail_items.xml
+++ b/packages/SystemUI/res/layout/qs_detail_items.xml
@@ -49,4 +49,8 @@
android:textAppearance="@style/TextAppearance.QS.DetailEmpty" />
</LinearLayout>
+ <View
+ android:id="@+id/min_height_spacer"
+ android:layout_width="match_parent"
+ android:layout_height="0dp"/>
</com.android.systemui.qs.QSDetailItems> \ No newline at end of file
diff --git a/packages/SystemUI/res/values-h560dp/config.xml b/packages/SystemUI/res/values-h560dp/config.xml
new file mode 100644
index 0000000..f210d7b
--- /dev/null
+++ b/packages/SystemUI/res/values-h560dp/config.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+ ~ Copyright (C) 2014 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources>
+ <!-- The maximum number of items to be displayed in quick settings -->
+ <integer name="quick_settings_detail_max_item_count">8</integer>
+</resources>
+
diff --git a/packages/SystemUI/res/values/config.xml b/packages/SystemUI/res/values/config.xml
index 4d76f38..5b18b24 100644
--- a/packages/SystemUI/res/values/config.xml
+++ b/packages/SystemUI/res/values/config.xml
@@ -131,6 +131,9 @@
<integer name="quick_settings_brightness_dialog_short_timeout">2000</integer>
<integer name="quick_settings_brightness_dialog_long_timeout">4000</integer>
+ <!-- The maximum number of items to be displayed in quick settings -->
+ <integer name="quick_settings_detail_max_item_count">7</integer>
+
<integer name="blinds_pop_duration_ms">10</integer>
<!-- Should "4G" be shown instead of "LTE" when the network is NETWORK_TYPE_LTE? -->
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSDetailItems.java b/packages/SystemUI/src/com/android/systemui/qs/QSDetailItems.java
index a311d6e..9155102 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QSDetailItems.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QSDetailItems.java
@@ -51,8 +51,10 @@ public class QSDetailItems extends FrameLayout {
private boolean mItemsVisible = true;
private LinearLayout mItems;
private View mEmpty;
+ private View mMinHeightSpacer;
private TextView mEmptyText;
private ImageView mEmptyIcon;
+ private int mMaxItems;
public QSDetailItems(Context context, AttributeSet attrs) {
super(context, attrs);
@@ -77,6 +79,12 @@ public class QSDetailItems extends FrameLayout {
mEmpty.setVisibility(GONE);
mEmptyText = (TextView) mEmpty.findViewById(android.R.id.title);
mEmptyIcon = (ImageView) mEmpty.findViewById(android.R.id.icon);
+ mMinHeightSpacer = findViewById(R.id.min_height_spacer);
+
+ // By default, a detail item view has fixed size.
+ mMaxItems = getResources().getInteger(
+ R.integer.quick_settings_detail_max_item_count);
+ setMinHeightInItems(mMaxItems);
}
@Override
@@ -102,6 +110,16 @@ public class QSDetailItems extends FrameLayout {
mEmptyText.setText(text);
}
+ /**
+ * Set the minimum height of this detail view, in item count.
+ */
+ public void setMinHeightInItems(int minHeightInItems) {
+ ViewGroup.LayoutParams lp = mMinHeightSpacer.getLayoutParams();
+ lp.height = minHeightInItems * getResources().getDimensionPixelSize(
+ R.dimen.qs_detail_item_height);
+ mMinHeightSpacer.setLayoutParams(lp);
+ }
+
@Override
protected void onAttachedToWindow() {
super.onAttachedToWindow();
@@ -135,7 +153,7 @@ public class QSDetailItems extends FrameLayout {
}
private void handleSetItems(Item[] items) {
- final int itemCount = items != null ? items.length : 0;
+ final int itemCount = items != null ? Math.min(items.length, mMaxItems) : 0;
mEmpty.setVisibility(itemCount == 0 ? VISIBLE : GONE);
mItems.setVisibility(itemCount == 0 ? GONE : VISIBLE);
for (int i = mItems.getChildCount() - 1; i >= itemCount; i--) {
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/BluetoothTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/BluetoothTile.java
index 1bc1d77..c15566f 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/BluetoothTile.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/BluetoothTile.java
@@ -185,6 +185,7 @@ public class BluetoothTile extends QSTile<QSTile.BooleanState> {
mItems.setEmptyState(R.drawable.ic_qs_bluetooth_detail_empty,
R.string.quick_settings_bluetooth_detail_empty_text);
mItems.setCallback(this);
+ mItems.setMinHeightInItems(0);
updateItems();
setItemsVisible(mState.value);
return mItems;