Merge "SystemUI: allow devices override audio panel location" into r
diff --git a/packages/SystemUI/res/layout/volume_dialog.xml b/packages/SystemUI/res/layout/volume_dialog.xml
index 7d6547b..d009e27 100644
--- a/packages/SystemUI/res/layout/volume_dialog.xml
+++ b/packages/SystemUI/res/layout/volume_dialog.xml
@@ -30,8 +30,6 @@
android:minWidth="@dimen/volume_dialog_panel_width"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:gravity="right"
- android:layout_gravity="right"
android:background="@android:color/transparent"
android:paddingRight="@dimen/volume_dialog_panel_transparent_padding_right"
android:paddingTop="@dimen/volume_dialog_panel_transparent_padding"
@@ -45,8 +43,6 @@
android:layout_width="@dimen/volume_dialog_ringer_size"
android:layout_height="@dimen/volume_dialog_ringer_size"
android:layout_marginBottom="@dimen/volume_dialog_spacer"
- android:gravity="right"
- android:layout_gravity="right"
android:translationZ="@dimen/volume_dialog_elevation"
android:clipToPadding="false"
android:background="@drawable/rounded_bg_full">
@@ -65,7 +61,6 @@
<include layout="@layout/volume_dnd_icon"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginRight="@dimen/volume_dialog_stream_padding"
android:layout_marginTop="6dp"/>
</FrameLayout>
@@ -141,8 +136,7 @@
android:layout="@layout/volume_tool_tip_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_gravity="bottom | right"
android:layout_marginRight="@dimen/volume_tool_tip_right_margin"
android:layout_marginBottom="@dimen/volume_tool_tip_bottom_margin"/>
-</FrameLayout>
\ No newline at end of file
+</FrameLayout>
diff --git a/packages/SystemUI/res/values/bliss_config.xml b/packages/SystemUI/res/values/bliss_config.xml
index 5fd9367..c7e9d86 100644
--- a/packages/SystemUI/res/values/bliss_config.xml
+++ b/packages/SystemUI/res/values/bliss_config.xml
@@ -19,4 +19,6 @@
<string name="quick_settings_tiles_extra" translatable="false">
</string>
+ <!-- Allow devices override audio panel location to the left side -->
+ <bool name="config_audioPanelOnLeftSide">false</bool>
</resources>
diff --git a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java
index 06a9227..e19995c 100644
--- a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java
@@ -66,6 +66,7 @@
import android.util.SparseBooleanArray;
import android.view.ContextThemeWrapper;
import android.view.MotionEvent;
+import android.view.Gravity;
import android.view.View;
import android.view.View.AccessibilityDelegate;
import android.view.ViewGroup;
@@ -165,6 +166,8 @@
private ViewStub mODICaptionsTooltipViewStub;
private View mODICaptionsTooltipView = null;
+ private boolean mLeftVolumeRocker;
+
public VolumeDialogImpl(Context context) {
mContext =
new ContextThemeWrapper(context, R.style.qs_theme);
@@ -176,6 +179,7 @@
mShowActiveStreamOnly = showActiveStreamOnly();
mHasSeenODICaptionsTooltip =
Prefs.getBoolean(context, Prefs.Key.HAS_SEEN_ODI_CAPTIONS_TOOLTIP, false);
+ mLeftVolumeRocker = mContext.getResources().getBoolean(R.bool.config_audioPanelOnLeftSide);
}
@Override
@@ -223,7 +227,11 @@
lp.format = PixelFormat.TRANSLUCENT;
lp.setTitle(VolumeDialogImpl.class.getSimpleName());
lp.windowAnimations = -1;
- lp.gravity = mContext.getResources().getInteger(R.integer.volume_dialog_gravity);
+ if(!isAudioPanelOnLeftSide()){
+ lp.gravity = Gravity.RIGHT | Gravity.CENTER_VERTICAL;
+ } else {
+ lp.gravity = Gravity.LEFT | Gravity.CENTER_VERTICAL;
+ }
mWindow.setAttributes(lp);
mWindow.setLayout(WRAP_CONTENT, WRAP_CONTENT);
@@ -232,7 +240,7 @@
mDialogView.setAlpha(0);
mDialog.setCanceledOnTouchOutside(true);
mDialog.setOnShowListener(dialog -> {
- if (!isLandscape()) mDialogView.setTranslationX(mDialogView.getWidth() / 2.0f);
+ if (!isLandscape()) mDialogView.setTranslationX((mDialogView.getWidth() / 2.0f)*(isAudioPanelOnLeftSide() ? -1 : 1));
mDialogView.setAlpha(0);
mDialogView.animate()
.alpha(1)
@@ -263,6 +271,11 @@
if (mRinger != null) {
mRingerIcon = mRinger.findViewById(R.id.ringer_icon);
mZenIcon = mRinger.findViewById(R.id.dnd_icon);
+ if(!isAudioPanelOnLeftSide()) {
+ mRinger.setForegroundGravity(Gravity.RIGHT);
+ } else {
+ mRinger.setForegroundGravity(Gravity.LEFT);
+ }
}
mODICaptionsView = mDialog.findViewById(R.id.odi_captions);
@@ -273,6 +286,13 @@
if (mHasSeenODICaptionsTooltip && mODICaptionsTooltipViewStub != null) {
mDialogView.removeView(mODICaptionsTooltipViewStub);
mODICaptionsTooltipViewStub = null;
+ }else if (mODICaptionsTooltipViewStub != null){
+ if(!isAudioPanelOnLeftSide()) {
+ mRinger.setForegroundGravity(Gravity.BOTTOM | Gravity.RIGHT);
+ } else {
+ mRinger.setForegroundGravity(Gravity.BOTTOM | Gravity.LEFT);
+ }
+
}
mSettingsView = mDialog.findViewById(R.id.settings_container);
@@ -350,7 +370,11 @@
if (D.BUG) Slog.d(TAG, "Adding row for stream " + stream);
VolumeRow row = new VolumeRow();
initRow(row, stream, iconRes, iconMuteRes, important, defaultStream);
- mDialogRowsView.addView(row.view);
+ if(!isAudioPanelOnLeftSide()){
+ mDialogRowsView.addView(row.view, 0);
+ } else {
+ mDialogRowsView.addView(row.view);
+ }
mRows.add(row);
}
@@ -360,7 +384,11 @@
final VolumeRow row = mRows.get(i);
initRow(row, row.stream, row.iconRes, row.iconMuteRes, row.important,
row.defaultStream);
- mDialogRowsView.addView(row.view);
+ if(!isAudioPanelOnLeftSide()){
+ mDialogRowsView.addView(row.view, 0);
+ } else {
+ mDialogRowsView.addView(row.view);
+ }
updateVolumeRowH(row);
}
}
@@ -760,7 +788,7 @@
tryToRemoveCaptionsTooltip();
mIsAnimatingDismiss = false;
}, 50));
- if (!isLandscape()) animator.translationX(mDialogView.getWidth() / 2.0f);
+ if (!isLandscape()) animator.translationX((mDialogView.getWidth() / 2.0f)*(isAudioPanelOnLeftSide() ? -1 : 1));
animator.start();
checkODICaptionsTooltip(true);
mController.notifyVisible(false);
@@ -1456,6 +1484,10 @@
}
}
+ private boolean isAudioPanelOnLeftSide() {
+ return mLeftVolumeRocker;
+ }
+
private static class VolumeRow {
private View view;
private TextView header;