From db50de807304bcda6fa0028aaced667cf9ae9cf5 Mon Sep 17 00:00:00 2001 From: Jason Monk Date: Wed, 3 Feb 2016 15:34:54 -0500 Subject: [PATCH] QS Visuals work Mostly just resizing and placement of things. Change-Id: I28dbe22b0b0633bbe2bd484879e29349510dde29 --- packages/SystemUI/res/layout/qs_detail_header.xml | 18 +++++++++--- packages/SystemUI/res/layout/qs_detail_item.xml | 2 +- .../layout/quick_settings_brightness_dialog.xml | 1 + .../layout/quick_status_bar_expanded_header.xml | 16 +++++----- packages/SystemUI/res/values/dimens.xml | 2 +- .../src/com/android/systemui/qs/QuickQSPanel.java | 34 ++++++++++++++++++---- .../statusbar/phone/BaseStatusBarHeader.java | 1 + .../statusbar/phone/QuickStatusBarHeader.java | 15 +++++++++- 8 files changed, 69 insertions(+), 20 deletions(-) diff --git a/packages/SystemUI/res/layout/qs_detail_header.xml b/packages/SystemUI/res/layout/qs_detail_header.xml index 5a96dc3bd01e..153e35f1f675 100644 --- a/packages/SystemUI/res/layout/qs_detail_header.xml +++ b/packages/SystemUI/res/layout/qs_detail_header.xml @@ -18,10 +18,20 @@ xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_alignParentBottom="true" - android:padding="@dimen/qs_panel_padding" + android:paddingEnd="@dimen/qs_panel_padding" android:visibility="invisible" - android:background="@drawable/btn_borderless_rect" > + android:background="@drawable/btn_borderless_rect" + android:gravity="center"> + + - \ No newline at end of file + diff --git a/packages/SystemUI/res/layout/qs_detail_item.xml b/packages/SystemUI/res/layout/qs_detail_item.xml index ccdddf7a0a59..5bb4f5d04019 100644 --- a/packages/SystemUI/res/layout/qs_detail_item.xml +++ b/packages/SystemUI/res/layout/qs_detail_item.xml @@ -28,7 +28,7 @@ android:id="@android:id/icon" android:layout_width="24dp" android:layout_height="24dp" - android:layout_marginEnd="12dp" /> + android:layout_marginEnd="20dp" /> diff --git a/packages/SystemUI/res/layout/quick_status_bar_expanded_header.xml b/packages/SystemUI/res/layout/quick_status_bar_expanded_header.xml index 6784695e5a99..07ac6a58e351 100644 --- a/packages/SystemUI/res/layout/quick_status_bar_expanded_header.xml +++ b/packages/SystemUI/res/layout/quick_status_bar_expanded_header.xml @@ -106,7 +106,7 @@ @@ -115,7 +115,7 @@ android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_marginStart="16dp" - android:layout_marginTop="2dp" + android:layout_marginTop="4dp" android:id="@+id/clock" /> @@ -164,7 +164,7 @@ layout="@layout/qs_detail_header" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_alignParentBottom="true" + android:layout_marginTop="28dp" /> 32dp - 90dp + 80dp 116dp diff --git a/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanel.java b/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanel.java index 753efb0e05a8..e4b8a6c5f936 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanel.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanel.java @@ -23,7 +23,7 @@ import android.view.Gravity; import android.view.View; import android.widget.ImageView; import android.widget.LinearLayout; - +import android.widget.Space; import com.android.systemui.R; import java.util.ArrayList; @@ -123,11 +123,14 @@ public class QuickQSPanel extends QSPanel { @Override public void addTile(TileRecord tile) { - tile.tileView.setLayoutParams(generateLayoutParams()); - addView(tile.tileView, getChildCount() - 1 /* Leave icon at end */); + addView(tile.tileView, getChildCount() - 1 /* Leave icon at end */, + generateLayoutParams()); + // Add a spacer. + addView(new Space(mContext), getChildCount() - 1 /* Leave icon at end */, + generateSpaceParams()); } - private LayoutParams generateLayoutParams() { + private LayoutParams generateSpaceParams() { int size = mContext.getResources().getDimensionPixelSize(R.dimen.qs_quick_tile_size); LayoutParams lp = new LayoutParams(0, size); lp.weight = 1; @@ -135,9 +138,30 @@ public class QuickQSPanel extends QSPanel { return lp; } + private LayoutParams generateLayoutParams() { + int size = mContext.getResources().getDimensionPixelSize(R.dimen.qs_quick_tile_size); + LayoutParams lp = new LayoutParams(size, size); + lp.gravity = Gravity.CENTER; + return lp; + } + @Override public void removeTile(TileRecord tile) { - removeView(tile.tileView); + int childIndex = getChildIndex(tile.tileView); + // Remove the tile. + removeViewAt(childIndex); + // Remove its spacer as well. + removeViewAt(childIndex); + } + + private int getChildIndex(QSTileBaseView tileView) { + final int N = getChildCount(); + for (int i = 0; i < N; i++) { + if (getChildAt(i) == tileView) { + return i; + } + } + return -1; } @Override diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/BaseStatusBarHeader.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/BaseStatusBarHeader.java index 9a94d34f7ede..eade2a89447d 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/BaseStatusBarHeader.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/BaseStatusBarHeader.java @@ -35,6 +35,7 @@ public abstract class BaseStatusBarHeader extends RelativeLayout implements public abstract int getCollapsedHeight(); public abstract int getExpandedHeight(); + public abstract void setExpanded(boolean b); public abstract void setExpansion(float headerExpansionFraction); public abstract void setListening(boolean listening); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStatusBarHeader.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStatusBarHeader.java index 9aeb1f8951be..fe463855020a 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStatusBarHeader.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStatusBarHeader.java @@ -31,7 +31,6 @@ import android.widget.ImageView; import android.widget.Switch; import android.widget.TextView; import android.widget.Toast; - import com.android.keyguard.KeyguardStatusView; import com.android.systemui.R; import com.android.systemui.qs.QSPanel; @@ -74,6 +73,9 @@ public class QuickStatusBarHeader extends BaseStatusBarHeader implements private float mDateTimeTranslation; private MultiUserSwitch mMultiUserSwitch; private ImageView mMultiUserAvatar; + private View mQsDetailHeaderBack; + + private final int[] mTmpInt2 = new int[2]; public QuickStatusBarHeader(Context context, AttributeSet attrs) { super(context, attrs); @@ -87,6 +89,7 @@ public class QuickStatusBarHeader extends BaseStatusBarHeader implements mDateTimeTranslation = mContext.getResources().getDimension( R.dimen.qs_date_anim_translation); mDateTimeGroup = (ViewGroup) findViewById(R.id.date_time_group); + mDateTimeGroup.findViewById(R.id.empty_time_view).setVisibility(View.GONE); mExpandedGroup = (ViewGroup) findViewById(R.id.expanded_group); mHeaderQsPanel = (QuickQSPanel) findViewById(R.id.quick_qs_panel); @@ -100,6 +103,7 @@ public class QuickStatusBarHeader extends BaseStatusBarHeader implements mQsDetailHeader = findViewById(R.id.qs_detail_header); mQsDetailHeader.setAlpha(0); + mQsDetailHeaderBack = mQsDetailHeader.findViewById(com.android.internal.R.id.up); mQsDetailHeaderTitle = (TextView) mQsDetailHeader.findViewById(android.R.id.title); mQsDetailHeaderSwitch = (Switch) mQsDetailHeader.findViewById(android.R.id.toggle); mQsDetailHeaderProgress = (ImageView) findViewById(R.id.qs_detail_header_progress); @@ -367,6 +371,15 @@ public class QuickStatusBarHeader extends BaseStatusBarHeader implements } }); } + mQsDetailHeaderBack.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + v.getLocationInWindow(mTmpInt2); + mTmpInt2[0] += v.getWidth() / 2; + mTmpInt2[1] += v.getHeight() / 2; + mQsPanel.showDetailAdapter(false, null, mTmpInt2); + } + }); } else { mQsDetailHeader.setClickable(false); } -- 2.11.0