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 551989f3aa400..f1eb82a9ca14e 100644
--- a/packages/SystemUI/res/values/dimens.xml
+++ b/packages/SystemUI/res/values/dimens.xml
@@ -136,7 +136,7 @@
32dp
- 80dp
+ 104dp
116dp
@@ -175,8 +175,6 @@
16dp
48dp
12dp
- 32dp
- 22dp
14sp
16sp
16dp
@@ -213,7 +211,6 @@
0dp
14sp
36sp
- 0dp
2dp
4dp
24dp
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java b/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java
index 630f9881d4a4d..bab63f178aaab 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() {
@@ -363,7 +361,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() {
@@ -371,8 +369,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 25f0813f868da..887adbe2e4ad8 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 275232786dfd9..3bf4756e34575 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;
protected 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()