diff options
9 files changed, 108 insertions, 56 deletions
diff --git a/packages/SystemUI/res/layout/ongoing_privacy_chip.xml b/packages/SystemUI/res/layout/ongoing_privacy_chip.xml index 49c16bee7b1f..dce9ce16e9cd 100644 --- a/packages/SystemUI/res/layout/ongoing_privacy_chip.xml +++ b/packages/SystemUI/res/layout/ongoing_privacy_chip.xml @@ -21,8 +21,6 @@ android:id="@+id/privacy_chip" android:layout_height="match_parent" android:layout_width="wrap_content" - android:layout_marginLeft="@dimen/ongoing_appops_chip_margin" - android:layout_marginRight="@dimen/ongoing_appops_chip_margin" android:layout_gravity="center_vertical|end" android:gravity="center_vertical" android:orientation="horizontal" diff --git a/packages/SystemUI/res/layout/qs_carrier.xml b/packages/SystemUI/res/layout/qs_carrier.xml index b94a3163804f..8f748069aa40 100644 --- a/packages/SystemUI/res/layout/qs_carrier.xml +++ b/packages/SystemUI/res/layout/qs_carrier.xml @@ -19,6 +19,7 @@ android:id="@+id/linear_carrier" android:layout_width="wrap_content" android:layout_height="match_parent" + android:minWidth="48dp" android:orientation="horizontal" android:gravity="center_vertical|start" android:background="@android:color/transparent" diff --git a/packages/SystemUI/res/layout/quick_qs_status_icons.xml b/packages/SystemUI/res/layout/quick_qs_status_icons.xml index 29f53a47a14e..79e2dfb2a40d 100644 --- a/packages/SystemUI/res/layout/quick_qs_status_icons.xml +++ b/packages/SystemUI/res/layout/quick_qs_status_icons.xml @@ -21,8 +21,8 @@ android:layout_height="wrap_content" android:layout_marginTop="@dimen/qs_header_top_margin" android:layout_marginBottom="14dp" - android:layout_marginStart="@dimen/status_bar_padding_start" - android:layout_marginEnd="@dimen/status_bar_padding_end" + android:paddingStart="@dimen/status_bar_padding_start" + android:paddingEnd="@dimen/status_bar_padding_end" android:layout_below="@id/quick_status_bar_system_icons" android:clipChildren="false" android:clipToPadding="false" diff --git a/packages/SystemUI/res/layout/quick_settings_header_info.xml b/packages/SystemUI/res/layout/quick_settings_header_info.xml index da640fd1e164..37c6d9f2d973 100644 --- a/packages/SystemUI/res/layout/quick_settings_header_info.xml +++ b/packages/SystemUI/res/layout/quick_settings_header_info.xml @@ -19,7 +19,6 @@ android:layout_width="match_parent" android:layout_height="@dimen/qs_header_tooltip_height" android:layout_below="@id/quick_status_bar_system_icons" - android:layout_marginTop="@dimen/qs_header_top_margin" android:paddingStart="@dimen/status_bar_padding_start" android:paddingEnd="@dimen/status_bar_padding_end"> @@ -27,7 +26,7 @@ android:id="@+id/long_press_tooltip" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_gravity="start|bottom" + android:layout_gravity="start|center_vertical" android:alpha="0" android:text="@string/quick_settings_header_onboarding_text" android:textAppearance="@style/TextAppearance.QS.TileLabel" @@ -36,34 +35,48 @@ <LinearLayout android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_gravity="start|bottom" + android:layout_height="match_parent" + android:layout_gravity="start|center_vertical" android:gravity="center_vertical"> <LinearLayout android:id="@+id/status_container" android:layout_width="wrap_content" - android:layout_height="wrap_content" + android:layout_height="match_parent" android:layout_gravity="start|center_vertical" android:layout_weight="1" android:gravity="center_vertical" - android:alpha="0"> - - <ImageView - android:id="@+id/next_alarm_icon" - android:layout_width="@dimen/qs_header_alarm_icon_size" - android:layout_height="@dimen/qs_header_alarm_icon_size" - android:src="@drawable/stat_sys_alarm" - android:tint="?android:attr/textColorPrimary" - android:visibility="gone"/> + android:alpha="0" > - <TextView - android:id="@+id/next_alarm_text" + <LinearLayout + android:id = "@+id/alarm_container" android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_marginStart="@dimen/qs_header_alarm_text_margin_start" - android:textAppearance="@style/TextAppearance.QS.Status" - android:visibility="gone"/> + android:layout_height="match_parent" + android:layout_gravity="center_vertical" + android:gravity="center_vertical" + android:focusable="true" + android:clickable="true"> + + <ImageView + android:id="@+id/next_alarm_icon" + android:layout_width="@dimen/qs_header_alarm_icon_size" + android:layout_height="@dimen/qs_header_alarm_icon_size" + android:src="@drawable/ic_alarm" + android:tint="?android:attr/textColorPrimary" + android:contentDescription="@string/accessibility_quick_settings_alarm_set" + android:visibility="gone"/> + + <TextView + android:id="@+id/next_alarm_text" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:singleLine="true" + android:ellipsize="marquee" + android:marqueeRepeatLimit="marquee_forever" + android:layout_marginStart="@dimen/qs_header_alarm_text_margin_start" + android:textAppearance="@style/TextAppearance.QS.Status" + android:visibility="gone"/> + </LinearLayout> <View android:id="@+id/status_separator" @@ -71,20 +84,33 @@ android:layout_height="match_parent" android:visibility="gone"/> - <ImageView - android:id="@+id/ringer_mode_icon" - android:layout_width="@dimen/qs_header_alarm_icon_size" - android:layout_height="@dimen/qs_header_alarm_icon_size" - android:tint="?android:attr/textColorPrimary" - android:visibility="gone"/> - - <TextView - android:id="@+id/ringer_mode_text" + <LinearLayout + android:id = "@+id/ringer_container" android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_marginStart="@dimen/qs_header_alarm_text_margin_start" - android:textAppearance="@style/TextAppearance.QS.Status" - android:visibility="gone"/> + android:layout_height="match_parent" + android:layout_gravity="center_vertical" + android:gravity="center_vertical" + android:focusable="true" + android:clickable="true"> + + <ImageView + android:id="@+id/ringer_mode_icon" + android:layout_width="@dimen/qs_header_alarm_icon_size" + android:layout_height="@dimen/qs_header_alarm_icon_size" + android:tint="?android:attr/textColorPrimary" + android:visibility="gone"/> + + <TextView + android:id="@+id/ringer_mode_text" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:singleLine="true" + android:ellipsize="marquee" + android:marqueeRepeatLimit="marquee_forever" + android:layout_marginStart="@dimen/qs_header_alarm_text_margin_start" + android:textAppearance="@style/TextAppearance.QS.Status" + android:visibility="gone"/> + </LinearLayout> </LinearLayout> <View @@ -93,11 +119,13 @@ android:layout_height="match_parent" android:layout_weight="1"/> + <include layout="@layout/qs_carrier_group" android:id="@+id/carrier_group" android:layout_width="wrap_content" - android:layout_height="wrap_content" - android_layout_gravity="center vertical|end"/> + android:layout_height="match_parent" + android:layout_gravity="end|center_vertical" + android:focusable="false"/> </LinearLayout> </FrameLayout> diff --git a/packages/SystemUI/res/values-land/dimens.xml b/packages/SystemUI/res/values-land/dimens.xml index e7689399f507..90e78e85ed19 100644 --- a/packages/SystemUI/res/values-land/dimens.xml +++ b/packages/SystemUI/res/values-land/dimens.xml @@ -24,8 +24,8 @@ <dimen name="brightness_mirror_height">40dp</dimen> - <dimen name="qs_tile_margin_top">2dp</dimen> - <dimen name="qs_header_tooltip_height">24dp</dimen> + <dimen name="qs_tile_margin_top">8dp</dimen> + <dimen name="qs_tile_margin_vertical">0dp</dimen> <dimen name="battery_detail_graph_space_top">9dp</dimen> <dimen name="battery_detail_graph_space_bottom">9dp</dimen> diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml index bfdb21877277..6bb9d78a2e6d 100644 --- a/packages/SystemUI/res/values/dimens.xml +++ b/packages/SystemUI/res/values/dimens.xml @@ -437,7 +437,7 @@ <dimen name="qs_tile_padding_bottom">16dp</dimen> <dimen name="qs_tile_spacing">4dp</dimen> <dimen name="qs_panel_padding_bottom">0dp</dimen> - <dimen name="qs_panel_padding_top">30dp</dimen> + <dimen name="qs_panel_padding_top">@dimen/qs_header_tooltip_height</dimen> <dimen name="qs_detail_header_height">56dp</dimen> <dimen name="qs_detail_header_padding">0dp</dimen> <dimen name="qs_detail_image_width">56dp</dimen> @@ -461,8 +461,8 @@ <dimen name="qs_detail_item_icon_width">32dp</dimen> <dimen name="qs_detail_item_icon_marginStart">0dp</dimen> <dimen name="qs_detail_item_icon_marginEnd">20dp</dimen> - <dimen name="qs_header_tooltip_height">18dp</dimen> - <dimen name="qs_header_alarm_icon_size">18dp</dimen> + <dimen name="qs_header_tooltip_height">48dp</dimen> + <dimen name="qs_header_alarm_icon_size">@dimen/status_bar_icon_drawing_size</dimen> <dimen name="qs_header_mobile_icon_size">@dimen/status_bar_icon_drawing_size</dimen> <dimen name="qs_header_alarm_text_margin_start">6dp</dimen> <dimen name="qs_header_separator_width">8dp</dimen> @@ -473,7 +473,7 @@ <dimen name="qs_footer_padding_end">16dp</dimen> <dimen name="qs_footer_icon_size">16dp</dimen> <dimen name="qs_paged_tile_layout_padding_bottom">0dp</dimen> - <dimen name="qs_header_top_margin">12dp</dimen> + <dimen name="qs_header_top_margin">15dp</dimen> <dimen name="qs_notif_collapsed_space">64dp</dimen> @@ -1031,8 +1031,6 @@ <dimen name="ongoing_appops_dialog_title_size">20sp</dimen> <!-- Text size for Ongoing App Ops dialog items --> <dimen name="ongoing_appops_dialog_item_size">16sp</dimen> - <!-- Side margins around the Ongoing App Ops chip--> - <dimen name="ongoing_appops_chip_margin">0dp</dimen> <!-- Height of the Ongoing App Ops chip --> <dimen name="ongoing_appops_chip_height">32dp</dimen> <!-- Padding between background of Ongoing App Ops chip and content --> diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSCarrierGroup.java b/packages/SystemUI/src/com/android/systemui/qs/QSCarrierGroup.java index 7de8b74f30cc..e352b58ea552 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSCarrierGroup.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSCarrierGroup.java @@ -19,6 +19,8 @@ package com.android.systemui.qs; import static com.android.systemui.util.InjectionInflationController.VIEW_CONTEXT; import android.content.Context; +import android.content.Intent; +import android.provider.Settings; import android.telephony.SubscriptionManager; import android.util.AttributeSet; import android.util.Log; @@ -30,6 +32,7 @@ import androidx.annotation.VisibleForTesting; import com.android.keyguard.CarrierTextController; import com.android.systemui.Dependency; import com.android.systemui.R; +import com.android.systemui.plugins.ActivityStarter; import com.android.systemui.statusbar.policy.NetworkController; import javax.inject.Inject; @@ -40,7 +43,7 @@ import javax.inject.Named; */ public class QSCarrierGroup extends LinearLayout implements CarrierTextController.CarrierTextCallback, - NetworkController.SignalCallback { + NetworkController.SignalCallback, View.OnClickListener { private static final String TAG = "QSCarrierGroup"; /** @@ -53,20 +56,29 @@ public class QSCarrierGroup extends LinearLayout implements private QSCarrier[] mCarrierGroups = new QSCarrier[SIM_SLOTS]; private final CellSignalState[] mInfos = new CellSignalState[SIM_SLOTS]; private CarrierTextController mCarrierTextController; + private ActivityStarter mActivityStarter; private boolean mListening; @Inject public QSCarrierGroup(@Named(VIEW_CONTEXT) Context context, AttributeSet attrs, - NetworkController networkController) { + NetworkController networkController, ActivityStarter activityStarter) { super(context, attrs); mNetworkController = networkController; + mActivityStarter = activityStarter; } @VisibleForTesting public QSCarrierGroup(Context context, AttributeSet attrs) { this(context, attrs, - Dependency.get(NetworkController.class)); + Dependency.get(NetworkController.class), + Dependency.get(ActivityStarter.class)); + } + + @Override + public void onClick(View v) { + mActivityStarter.postStartActivityDismissingKeyguard(new Intent( + Settings.ACTION_WIRELESS_SETTINGS), 0); } @Override @@ -82,6 +94,7 @@ public class QSCarrierGroup extends LinearLayout implements for (int i = 0; i < SIM_SLOTS; i++) { mInfos[i] = new CellSignalState(); + mCarrierGroups[i].setOnClickListener(this); } CharSequence separator = mContext.getString( diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java b/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java index ddefdf646159..fcaf98165016 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java @@ -300,6 +300,7 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne protected void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); mFooter.onConfigurationChanged(); + updateResources(); updateBrightnessMirror(); } diff --git a/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java b/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java index d78982183db9..2e3065aeee03 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java @@ -35,6 +35,7 @@ import android.media.AudioManager; import android.os.Handler; import android.os.Looper; import android.provider.AlarmClock; +import android.provider.Settings; import android.service.notification.ZenModeConfig; import android.text.format.DateUtils; import android.util.AttributeSet; @@ -133,9 +134,11 @@ public class QuickStatusBarHeader extends RelativeLayout implements private ImageView mNextAlarmIcon; /** {@link TextView} containing the actual text indicating when the next alarm will go off. */ private TextView mNextAlarmTextView; + private View mNextAlarmContainer; private View mStatusSeparator; private ImageView mRingerModeIcon; private TextView mRingerModeTextView; + private View mRingerContainer; private Clock mClockView; private DateView mDateView; private OngoingPrivacyChip mPrivacyChip; @@ -203,10 +206,14 @@ public class QuickStatusBarHeader extends RelativeLayout implements mStatusSeparator = findViewById(R.id.status_separator); mNextAlarmIcon = findViewById(R.id.next_alarm_icon); mNextAlarmTextView = findViewById(R.id.next_alarm_text); + mNextAlarmContainer = findViewById(R.id.alarm_container); + mNextAlarmContainer.setOnClickListener(this::onClick); mRingerModeIcon = findViewById(R.id.ringer_mode_icon); mRingerModeTextView = findViewById(R.id.ringer_mode_text); + mRingerContainer = findViewById(R.id.ringer_container); + mRingerContainer.setOnClickListener(this::onClick); mPrivacyChip = findViewById(R.id.privacy_chip); - mPrivacyChip.setOnClickListener(this); + mPrivacyChip.setOnClickListener(this::onClick); mCarrierGroup = findViewById(R.id.carrier_group); @@ -236,6 +243,8 @@ public class QuickStatusBarHeader extends RelativeLayout implements // QS will always show the estimate, and BatteryMeterView handles the case where // it's unavailable or charging mBatteryRemainingIcon.setPercentShowMode(BatteryMeterView.MODE_ESTIMATE); + mRingerModeTextView.setSelected(true); + mNextAlarmTextView.setSelected(true); } private List<String> getIgnoredIconSlots() { @@ -285,11 +294,11 @@ public class QuickStatusBarHeader extends RelativeLayout implements if (!ZenModeConfig.isZenOverridingRinger(mZenController.getZen(), mZenController.getConsolidatedPolicy())) { if (mRingerMode == AudioManager.RINGER_MODE_VIBRATE) { - mRingerModeIcon.setImageResource(R.drawable.stat_sys_ringer_vibrate); + mRingerModeIcon.setImageResource(R.drawable.ic_volume_ringer_vibrate); mRingerModeTextView.setText(R.string.qs_status_phone_vibrate); ringerVisible = true; } else if (mRingerMode == AudioManager.RINGER_MODE_SILENT) { - mRingerModeIcon.setImageResource(R.drawable.stat_sys_ringer_silent); + mRingerModeIcon.setImageResource(R.drawable.ic_volume_ringer_mute); mRingerModeTextView.setText(R.string.qs_status_phone_muted); ringerVisible = true; } @@ -546,7 +555,7 @@ public class QuickStatusBarHeader extends RelativeLayout implements @Override public void onClick(View v) { - if (v == mClockView) { + if (v == mClockView || v == mNextAlarmContainer) { mActivityStarter.postStartActivityDismissingKeyguard(new Intent( AlarmClock.ACTION_SHOW_ALARMS),0); } else if (v == mPrivacyChip) { @@ -561,6 +570,9 @@ public class QuickStatusBarHeader extends RelativeLayout implements new Intent(Intent.ACTION_REVIEW_ONGOING_PERMISSION_USAGE), 0); mHost.collapsePanels(); }); + } else if (v == mRingerContainer) { + mActivityStarter.postStartActivityDismissingKeyguard(new Intent( + Settings.ACTION_SOUND_SETTINGS), 0); } } @@ -573,7 +585,6 @@ public class QuickStatusBarHeader extends RelativeLayout implements @Override public void onZenChanged(int zen) { updateStatusText(); - } @Override @@ -731,8 +742,10 @@ public class QuickStatusBarHeader extends RelativeLayout implements public void setMargins(int sideMargins) { for (int i = 0; i < getChildCount(); i++) { View v = getChildAt(i); + // Prevents these views from getting set a margin. + // The Icon views all have the same padding set in XML to be aligned. if (v == mSystemIconsView || v == mQuickQsStatusIcons || v == mHeaderQsPanel - || v == mPrivacyChip) { + || v == mHeaderTextContainerView) { continue; } RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) v.getLayoutParams(); |