From 4bb7b1a3e3603004269e7ad6c120aaa28dd69e97 Mon Sep 17 00:00:00 2001 From: Jason Monk Date: Fri, 27 May 2016 15:19:15 -0400 Subject: [PATCH] QS: Update layout to show gear all the time Because evidently, when you've gotta change something, you've really gotta change something. Bug: 28673919 Change-Id: I085a0424c134a7f80316397b04a6b120440d32c8 --- .../SystemUI/res/drawable/ic_mode_edit.xml | 24 ++++++++++++ .../res/drawable/ic_settings_20dp.xml | 24 ++++++++++++ .../res/layout/qs_paged_tile_layout.xml | 13 ------- packages/SystemUI/res/layout/qs_panel.xml | 2 +- .../quick_status_bar_expanded_header.xml | 22 ++++++++--- .../SystemUI/res/values-sw600dp/dimens.xml | 2 - .../res/values-w550dp-land/dimens.xml | 2 - packages/SystemUI/res/values/dimens.xml | 5 +-- .../src/com/android/systemui/qs/QSPanel.java | 8 ++-- .../com/android/systemui/qs/QuickQSPanel.java | 38 +++++-------------- .../statusbar/phone/QuickStatusBarHeader.java | 30 ++++----------- 11 files changed, 87 insertions(+), 83 deletions(-) create mode 100644 packages/SystemUI/res/drawable/ic_mode_edit.xml create mode 100644 packages/SystemUI/res/drawable/ic_settings_20dp.xml diff --git a/packages/SystemUI/res/drawable/ic_mode_edit.xml b/packages/SystemUI/res/drawable/ic_mode_edit.xml new file mode 100644 index 0000000000000..8a7368632b062 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_mode_edit.xml @@ -0,0 +1,24 @@ + + + + diff --git a/packages/SystemUI/res/drawable/ic_settings_20dp.xml b/packages/SystemUI/res/drawable/ic_settings_20dp.xml new file mode 100644 index 0000000000000..3170f86811ed5 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_settings_20dp.xml @@ -0,0 +1,24 @@ + + + + diff --git a/packages/SystemUI/res/layout/qs_paged_tile_layout.xml b/packages/SystemUI/res/layout/qs_paged_tile_layout.xml index ee55ec2d3ce2e..8b6060f5eb8b6 100644 --- a/packages/SystemUI/res/layout/qs_paged_tile_layout.xml +++ b/packages/SystemUI/res/layout/qs_paged_tile_layout.xml @@ -37,19 +37,6 @@ android:importantForAccessibility="yes" android:focusable="true" /> - - diff --git a/packages/SystemUI/res/layout/qs_panel.xml b/packages/SystemUI/res/layout/qs_panel.xml index 751f18100c7fa..26c733950bf05 100644 --- a/packages/SystemUI/res/layout/qs_panel.xml +++ b/packages/SystemUI/res/layout/qs_panel.xml @@ -26,7 +26,7 @@ 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 5d629401dff3d..678ec4e172f1c 100644 --- a/packages/SystemUI/res/layout/quick_status_bar_expanded_header.xml +++ b/packages/SystemUI/res/layout/quick_status_bar_expanded_header.xml @@ -37,7 +37,7 @@ android:clipToPadding="false" android:orientation="horizontal" android:layout_alignParentEnd="true" - android:layout_marginTop="28dp" + android:layout_marginTop="4dp" android:layout_marginEnd="12dp"> + + @@ -169,7 +181,7 @@ android:id="@+id/quick_qs_panel" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginTop="28dp" + android:layout_marginTop="52dp" android:layout_marginStart="12dp" android:layout_marginEnd="12dp" android:layout_alignParentEnd="true" diff --git a/packages/SystemUI/res/values-sw600dp/dimens.xml b/packages/SystemUI/res/values-sw600dp/dimens.xml index 6c5a313f5931b..7e63cbf8bb884 100644 --- a/packages/SystemUI/res/values-sw600dp/dimens.xml +++ b/packages/SystemUI/res/values-sw600dp/dimens.xml @@ -94,8 +94,6 @@ 128dp 25dp - 0dp - 488dp diff --git a/packages/SystemUI/res/values-w550dp-land/dimens.xml b/packages/SystemUI/res/values-w550dp-land/dimens.xml index 4160c83683ccb..eaca9d718fd20 100644 --- a/packages/SystemUI/res/values-w550dp-land/dimens.xml +++ b/packages/SystemUI/res/values-w550dp-land/dimens.xml @@ -18,6 +18,4 @@ 544dp - - 32dp diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml index cbb3c0ab52c74..677dbe566eab0 100644 --- a/packages/SystemUI/res/values/dimens.xml +++ b/packages/SystemUI/res/values/dimens.xml @@ -130,7 +130,7 @@ 32dp - 80dp + 104dp 116dp @@ -169,8 +169,6 @@ 16dp 48dp 12dp - 32dp - 22dp 14sp 16sp 16dp @@ -199,7 +197,6 @@ 28dp 14sp 36sp - 0dp 2dp 4dp diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java b/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java index 0e8d76ac50bd5..12113548a9826 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java @@ -103,8 +103,6 @@ public class QSPanel extends LinearLayout implements Tunable, Callback { mTileLayout = (QSTileLayout) LayoutInflater.from(mContext).inflate( R.layout.qs_paged_tile_layout, this, false); addView((View) mTileLayout); - findViewById(android.R.id.edit).setOnClickListener(view -> - mHost.startRunnableDismissingKeyguard(() -> showEdit(view))); } public boolean isShowingCustomize() { @@ -354,7 +352,7 @@ public class QSPanel extends LinearLayout implements Tunable, Callback { } - private void showEdit(final View v) { + public void showEdit(final View v) { v.post(new Runnable() { @Override public void run() { @@ -362,8 +360,8 @@ public class QSPanel extends LinearLayout implements Tunable, Callback { if (!mCustomizePanel.isCustomizing()) { int[] loc = new int[2]; v.getLocationInWindow(loc); - int x = loc[0]; - int y = loc[1]; + int x = loc[0] + v.getWidth() / 2; + int y = loc[1] + v.getHeight() / 2; mCustomizePanel.show(x, y); } } diff --git a/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanel.java b/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanel.java index 4accc8b7d1ef9..9adcfbf48a92a 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanel.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanel.java @@ -140,12 +140,11 @@ public class QuickQSPanel extends QSPanel { }; public int getNumQuickTiles(Context context) { - return TunerService.get(context).getValue(NUM_QUICK_TILES, 5); + return TunerService.get(context).getValue(NUM_QUICK_TILES, 6); } private static class HeaderTileLayout extends LinearLayout implements QSTileLayout { - private final Space mEndSpacer; protected final ArrayList mRecords = new ArrayList<>(); public HeaderTileLayout(Context context) { @@ -154,34 +153,15 @@ public class QuickQSPanel extends QSPanel { setClipToPadding(false); setGravity(Gravity.CENTER_VERTICAL); setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); - - mEndSpacer = new Space(context); - mEndSpacer.setLayoutParams(generateLayoutParams()); - updateDownArrowMargin(); - addView(mEndSpacer); - setOrientation(LinearLayout.HORIZONTAL); - } - - @Override - protected void onConfigurationChanged(Configuration newConfig) { - super.onConfigurationChanged(newConfig); - updateDownArrowMargin(); - } - - private void updateDownArrowMargin() { - LayoutParams params = (LayoutParams) mEndSpacer.getLayoutParams(); - params.setMarginStart(mContext.getResources().getDimensionPixelSize( - R.dimen.qs_expand_margin)); - mEndSpacer.setLayoutParams(params); } @Override public void addTile(TileRecord tile) { - addView(tile.tileView, getChildCount() - 1 /* Leave icon at end */, - generateLayoutParams()); - // Add a spacer. - addView(new Space(mContext), getChildCount() - 1 /* Leave icon at end */, - generateSpaceParams()); + if (getChildCount() != 0) { + // Add a spacer. + addView(new Space(mContext), getChildCount(), generateSpaceParams()); + } + addView(tile.tileView, getChildCount(), generateLayoutParams()); mRecords.add(tile); } @@ -205,8 +185,10 @@ public class QuickQSPanel extends QSPanel { int childIndex = getChildIndex(tile.tileView); // Remove the tile. removeViewAt(childIndex); - // Remove its spacer as well. - removeViewAt(childIndex); + if (getChildCount() != 0) { + // Remove its spacer as well. + removeViewAt(childIndex); + } mRecords.remove(tile); } 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 8bb1f24983fcd..36884955990b5 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStatusBarHeader.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStatusBarHeader.java @@ -81,18 +81,16 @@ public class QuickStatusBarHeader extends BaseStatusBarHeader implements protected MultiUserSwitch mMultiUserSwitch; private ImageView mMultiUserAvatar; - private float mDateTimeTranslation; - private float mDateTimeAlarmTranslation; private float mDateScaleFactor; protected float mGearTranslation; private TouchAnimator mSecondHalfAnimator; private TouchAnimator mFirstHalfAnimator; private TouchAnimator mDateSizeAnimator; - private TouchAnimator mAlarmTranslation; protected TouchAnimator mSettingsAlpha; private float mExpansionAmount; private QSTileHost mHost; + private View mEdit; public QuickStatusBarHeader(Context context, AttributeSet attrs) { super(context, attrs); @@ -104,6 +102,10 @@ public class QuickStatusBarHeader extends BaseStatusBarHeader implements mEmergencyOnly = (TextView) findViewById(R.id.header_emergency_calls_only); + mEdit = findViewById(android.R.id.edit); + findViewById(android.R.id.edit).setOnClickListener(view -> + mHost.startRunnableDismissingKeyguard(() -> mQsPanel.showEdit(view))); + mDateTimeAlarmGroup = (ViewGroup) findViewById(R.id.date_time_alarm_group); mDateTimeAlarmGroup.findViewById(R.id.empty_time_view).setVisibility(View.GONE); mDateTimeGroup = (ViewGroup) findViewById(R.id.date_time_group); @@ -153,16 +155,11 @@ public class QuickStatusBarHeader extends BaseStatusBarHeader implements mGearTranslation = mContext.getResources().getDimension(R.dimen.qs_header_gear_translation); - mDateTimeTranslation = mContext.getResources().getDimension( - R.dimen.qs_date_anim_translation); - mDateTimeAlarmTranslation = mContext.getResources().getDimension( - R.dimen.qs_date_alarm_anim_translation); float dateCollapsedSize = mContext.getResources().getDimension( R.dimen.qs_date_collapsed_text_size); float dateExpandedSize = mContext.getResources().getDimension( R.dimen.qs_date_text_size); mDateScaleFactor = dateExpandedSize / dateCollapsedSize; - updateDateTimePosition(); mSecondHalfAnimator = new TouchAnimator.Builder() .addFloat(mAlarmStatus, "alpha", 0, 1) @@ -184,10 +181,9 @@ public class QuickStatusBarHeader extends BaseStatusBarHeader implements protected void updateSettingsAnimator() { mSettingsAlpha = new TouchAnimator.Builder() - .addFloat(mSettingsContainer, "translationY", -mGearTranslation, 0) + .addFloat(mEdit, "translationY", -mGearTranslation, 0) .addFloat(mMultiUserSwitch, "translationY", -mGearTranslation, 0) - .addFloat(mSettingsButton, "rotation", -90, 0) - .addFloat(mSettingsContainer, "alpha", 0, 1) + .addFloat(mEdit, "alpha", 0, 1) .addFloat(mMultiUserSwitch, "alpha", 0, 1) .setStartDelay(QSAnimator.EXPANDED_TILE_DELAY) .build(); @@ -246,7 +242,6 @@ public class QuickStatusBarHeader extends BaseStatusBarHeader implements mSecondHalfAnimator.setPosition(headerExpansionFraction); mFirstHalfAnimator.setPosition(headerExpansionFraction); mDateSizeAnimator.setPosition(headerExpansionFraction); - mAlarmTranslation.setPosition(headerExpansionFraction); mSettingsAlpha.setPosition(headerExpansionFraction); updateAlarmVisibilities(); @@ -267,15 +262,6 @@ public class QuickStatusBarHeader extends BaseStatusBarHeader implements mAlarmStatusCollapsed.setVisibility(mAlarmShowing ? View.VISIBLE : View.INVISIBLE); } - private void updateDateTimePosition() { - // This one has its own because we have to rebuild it every time the alarm state changes. - mAlarmTranslation = new TouchAnimator.Builder() - .addFloat(mDateTimeAlarmGroup, "translationY", 0, mAlarmShowing - ? mDateTimeAlarmTranslation : mDateTimeTranslation) - .build(); - mAlarmTranslation.setPosition(mExpansionAmount); - } - public void setListening(boolean listening) { if (listening == mListening) { return; @@ -287,7 +273,6 @@ public class QuickStatusBarHeader extends BaseStatusBarHeader implements @Override public void updateEverything() { - updateDateTimePosition(); updateVisibilities(); setClickable(false); } @@ -296,7 +281,6 @@ public class QuickStatusBarHeader extends BaseStatusBarHeader implements updateAlarmVisibilities(); mEmergencyOnly.setVisibility(mExpanded && mShowEmergencyCallsOnly ? View.VISIBLE : View.INVISIBLE); - mSettingsContainer.setVisibility(mExpanded ? View.VISIBLE : View.INVISIBLE); mSettingsContainer.findViewById(R.id.tuner_icon).setVisibility( TunerService.isTunerEnabled(mContext) ? View.VISIBLE : View.INVISIBLE); mMultiUserSwitch.setVisibility(mExpanded && mMultiUserSwitch.hasMultipleUsers()