am 8934e670: Merge "Limit item count in QS detail" into lmp-mr1-dev

* commit '8934e67051a7c2598ad94699037701c4c6bf83ca':
  Limit item count in QS detail
This commit is contained in:
Jorim Jaggi
2014-12-12 15:39:27 +00:00
committed by Android Git Automerger
5 changed files with 50 additions and 1 deletions

View File

@@ -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>

View File

@@ -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>

View File

@@ -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? -->

View File

@@ -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--) {

View File

@@ -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;