diff options
author | a.derendyaev <a.derendyaev@magdv.com> | 2018-12-19 21:57:45 +0800 |
---|---|---|
committer | alk3pInjection <webmaster@raspii.tech> | 2021-09-27 21:17:05 +0800 |
commit | 41fa200574b0a00085569d47dda7dcb5bcfea0f9 (patch) | |
tree | 06b7a150eeafdd122f4f5141c829a33394dc551e | |
parent | a393339d4927ee0ec78a683d4315686adbdf466d (diff) |
[aospa][quartz] SystemUI: allow devices override audio panel location
Some devices have volume buttons on left side and it not fancy if volume panel will be at right side.
You can override panel location using overlay for SystemUI:
<!-- Allow devices override audio panel location to the left side -->
<bool name="config_audioPanelOnLeftSide">true</bool>
* Herna1994 : Fixed animation on left side panel.
* Herna1994 : Adapted to Android 10.
Signed-off-by: Hernán Castañón <herna@paranoidandroid.co>
Change-Id: I4f111ec43c436b1c5ff81afea3f5d755bc8e7668
Volume panel: Do the same with less
Change-Id: If41456f71ffd18466166e7b4120ff34d9e6f5a46
Signed-off-by: Hernán Castañón Álvarez <herna@paranoidandroid.co>
3 files changed, 32 insertions, 10 deletions
diff --git a/packages/SystemUI/res/layout/volume_dialog.xml b/packages/SystemUI/res/layout/volume_dialog.xml index 7d6547b9cd42..2296b613d56c 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> diff --git a/packages/SystemUI/res/values/lineage_config.xml b/packages/SystemUI/res/values/lineage_config.xml index d77e7e82821e..06287e9868af 100644 --- a/packages/SystemUI/res/values/lineage_config.xml +++ b/packages/SystemUI/res/values/lineage_config.xml @@ -43,4 +43,7 @@ <!-- Amount of time in seconds to wait before shifting elements around when the burn in protection is enabled for status bar and navigation bar --> <integer name="config_shift_interval">60</integer> + + <!-- 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 7aee1a7f92ae..587b10480708 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.Log; import android.util.Slog; import android.util.SparseBooleanArray; import android.view.ContextThemeWrapper; +import android.view.Gravity; import android.view.MotionEvent; import android.view.View; import android.view.View.AccessibilityDelegate; @@ -166,6 +167,7 @@ public class VolumeDialogImpl implements VolumeDialog, private ViewStub mODICaptionsTooltipViewStub; private View mODICaptionsTooltipView = null; private boolean mHasAlertSlider; + private boolean mLeftVolumeRocker; public VolumeDialogImpl(Context context) { mContext = @@ -179,6 +181,7 @@ public class VolumeDialogImpl implements VolumeDialog, mHasSeenODICaptionsTooltip = Prefs.getBoolean(context, Prefs.Key.HAS_SEEN_ODI_CAPTIONS_TOOLTIP, false); mHasAlertSlider = mContext.getResources().getBoolean(com.android.internal.R.bool.config_hasAlertSlider); + mLeftVolumeRocker = mContext.getResources().getBoolean(R.bool.config_audioPanelOnLeftSide); } @Override @@ -226,7 +229,11 @@ public class VolumeDialogImpl implements VolumeDialog, 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); @@ -235,7 +242,7 @@ public class VolumeDialogImpl implements VolumeDialog, 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) @@ -281,6 +288,11 @@ public class VolumeDialogImpl implements VolumeDialog, mRinger.setVisibility(View.GONE); } + if(!isAudioPanelOnLeftSide()) { + mRinger.setForegroundGravity(Gravity.RIGHT); + } else { + mRinger.setForegroundGravity(Gravity.LEFT); + } mSettingsView = mDialog.findViewById(R.id.settings_container); mSettingsIcon = mDialog.findViewById(R.id.settings); @@ -361,7 +373,11 @@ public class VolumeDialogImpl implements VolumeDialog, 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); } @@ -371,7 +387,11 @@ public class VolumeDialogImpl implements VolumeDialog, 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); } } @@ -772,7 +792,7 @@ public class VolumeDialogImpl implements VolumeDialog, 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); @@ -1489,6 +1509,10 @@ public class VolumeDialogImpl implements VolumeDialog, } } + private boolean isAudioPanelOnLeftSide() { + return mLeftVolumeRocker; + } + private static class VolumeRow { private View view; private TextView header; |