diff options
author | alk3pInjection <webmaster@raspii.tech> | 2021-09-05 09:54:54 +0800 |
---|---|---|
committer | alk3pInjection <webmaster@raspii.tech> | 2021-09-27 21:17:05 +0800 |
commit | 8bad644bf3f9560ac4324c611a80485ef5373e54 (patch) | |
tree | 96753557bcf5d1a8e17e32c075b6608fa7f5c8fb | |
parent | d05343c882a85d44620a2db9ac1044466981f3ee (diff) |
SystemUI: Revert expanding volume panel
This reverts the following commits:
3ad13ef "SystemUI: VolumeDialogImpl: Fix volume panel permanently visible"
b0675ce "VolumeDialogImpl: Get the location in window instead of on screen"
678a06b "VolumeDialogImpl: Remove insets listener on dismiss"
f3512b3 "SystemUI: Bring back expanded volume panel"
f6b7b1a "SystemUI: runtime configurable audio panel location"
Change-Id: I318f709537f3fd7453f50f83c2b41729095dc2f0
10 files changed, 180 insertions, 442 deletions
diff --git a/packages/SystemUI/res/drawable/ic_bluetooth_audio.xml b/packages/SystemUI/res/drawable/ic_bluetooth_audio.xml deleted file mode 100644 index 143259d690bb..000000000000 --- a/packages/SystemUI/res/drawable/ic_bluetooth_audio.xml +++ /dev/null @@ -1,24 +0,0 @@ -<!-- - Copyright (C) 2020 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:height="24.0dp" - android:width="24.0dp" - android:viewportWidth="24.0" - android:viewportHeight="24.0"> - <path - android:fillColor="#FF000000" - android:pathData="M12.88,16.29L11,18.17V14.41M11,5.83L12.88,7.71L11,9.58M15.71,7.71L10,2H9V9.58L4.41,5L3,6.41L8.59,12L3,17.58L4.41,19L9,14.41V22H10L15.71,16.29L11.41,12M19.53,6.71L18.26,8C18.89,9.18 19.25,10.55 19.25,12C19.25,13.45 18.89,14.82 18.26,16L19.46,17.22C20.43,15.68 21,13.87 21,11.91C21,10 20.46,8.23 19.53,6.71M14.24,12L16.56,14.33C16.84,13.6 17,12.82 17,12C17,11.18 16.84,10.4 16.57,9.68L14.24,12Z" /> -</vector> diff --git a/packages/SystemUI/res/drawable/ic_volume_ringer_vibrate.xml b/packages/SystemUI/res/drawable/ic_volume_ringer_vibrate.xml index 27028a74a2ed..314e06cc93b0 100644 --- a/packages/SystemUI/res/drawable/ic_volume_ringer_vibrate.xml +++ b/packages/SystemUI/res/drawable/ic_volume_ringer_vibrate.xml @@ -14,8 +14,8 @@ limitations under the License. --> <vector xmlns:android="http://schemas.android.com/apk/res/android" - android:height="24dp" - android:width="24dp" + android:height="19dp" + android:width="19dp" android:viewportHeight="24.0" android:viewportWidth="24.0"> diff --git a/packages/SystemUI/res/layout-land-television/volume_dialog.xml b/packages/SystemUI/res/layout-land-television/volume_dialog.xml index cd43ca8d85e0..e0d158d757b3 100644 --- a/packages/SystemUI/res/layout-land-television/volume_dialog.xml +++ b/packages/SystemUI/res/layout-land-television/volume_dialog.xml @@ -29,7 +29,7 @@ android:layout_height="wrap_content" android:layout_gravity="right" android:background="@android:color/transparent" - android:paddingRight="@dimen/volume_dialog_panel_transparent_padding_horizontal" + android:paddingRight="@dimen/volume_dialog_panel_transparent_padding_right" android:paddingTop="@dimen/volume_dialog_panel_transparent_padding" android:paddingBottom="@dimen/volume_dialog_panel_transparent_padding" android:paddingLeft="@dimen/volume_dialog_panel_transparent_padding" diff --git a/packages/SystemUI/res/layout-land/volume_dialog.xml b/packages/SystemUI/res/layout-land/volume_dialog.xml index d23688dec69f..5da7819c3d76 100644 --- a/packages/SystemUI/res/layout-land/volume_dialog.xml +++ b/packages/SystemUI/res/layout-land/volume_dialog.xml @@ -27,15 +27,15 @@ <FrameLayout android:id="@+id/volume_dialog" android:minWidth="@dimen/volume_dialog_panel_width" - android:layout_width="match_parent" + 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_horizontal" + android:paddingRight="@dimen/volume_dialog_panel_transparent_padding_right" android:paddingTop="@dimen/volume_dialog_panel_transparent_padding" android:paddingBottom="@dimen/volume_dialog_panel_transparent_padding" - android:paddingLeft="@dimen/volume_dialog_panel_transparent_padding_horizontal" + android:paddingLeft="@dimen/volume_dialog_panel_transparent_padding" android:clipToPadding="false"> <FrameLayout @@ -43,6 +43,8 @@ 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"> @@ -71,6 +73,8 @@ android:minWidth="@dimen/volume_dialog_panel_width" android:layout_height="wrap_content" android:layout_marginTop="68dp" + android:gravity="right" + android:layout_gravity="right" android:orientation="vertical" android:translationZ="@dimen/volume_dialog_elevation" android:clipChildren="false" @@ -87,56 +91,31 @@ android:paddingLeft="@dimen/volume_dialog_stream_padding"> <!-- volume rows added and removed here! :-) --> </LinearLayout> - <View - android:layout_width="match_parent" - android:layout_height="1dp" - android:background="?android:attr/listDivider"/> - <LinearLayout + <FrameLayout + android:id="@+id/settings_container" android:layout_width="match_parent" android:layout_height="wrap_content" - android:orientation="horizontal" > - <FrameLayout - android:id="@+id/expandable_indicator_container" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_weight="1"> - <com.android.systemui.statusbar.phone.ExpandableIndicator - android:id="@+id/expandable_indicator" - android:layout_width="@dimen/volume_dialog_tap_target_size" - android:layout_height="@dimen/volume_dialog_tap_target_size" - android:layout_marginRight="8dp" - android:layout_marginLeft="8dp" - android:contentDescription="@string/accessibility_volume_expand" - android:background="@drawable/ripple_drawable_20dp" - android:tint="@color/accent_tint_color_selector" - android:soundEffectsEnabled="false" - android:padding="14dp" /> - </FrameLayout> - <FrameLayout - android:id="@+id/media_output_container" - android:layout_width="wrap_content" - android:layout_height="wrap_content"> - <com.android.keyguard.AlphaOptimizedImageButton - android:id="@+id/media_output" - android:src="@drawable/ic_bluetooth_audio" - android:layout_width="@dimen/volume_dialog_tap_target_size" - android:layout_height="@dimen/volume_dialog_tap_target_size" - android:layout_marginRight="8dp" - android:layout_marginLeft="8dp" - android:contentDescription="@string/accessibility_volume_settings" - android:background="@drawable/ripple_drawable_20dp" - android:tint="@color/accent_tint_color_selector" - android:soundEffectsEnabled="false" /> - </FrameLayout> - </LinearLayout> + android:background="@drawable/rounded_bg_bottom_background"> + <com.android.keyguard.AlphaOptimizedImageButton + android:id="@+id/settings" + android:src="@drawable/ic_tune_black_16dp" + android:layout_width="@dimen/volume_dialog_tap_target_size" + android:layout_height="@dimen/volume_dialog_tap_target_size" + android:layout_gravity="center" + android:contentDescription="@string/accessibility_volume_settings" + android:background="@drawable/ripple_drawable_20dp" + android:tint="?android:attr/textColorSecondary" + android:soundEffectsEnabled="false" /> + </FrameLayout> </LinearLayout> <FrameLayout android:id="@+id/odi_captions" android:layout_width="@dimen/volume_dialog_caption_size" android:layout_height="@dimen/volume_dialog_caption_size" - android:layout_marginLeft="68dp" android:layout_marginRight="68dp" + android:gravity="right" + android:layout_gravity="right" android:clipToPadding="false" android:translationZ="@dimen/volume_dialog_elevation" android:background="@drawable/rounded_bg_full"> diff --git a/packages/SystemUI/res/layout/volume_dialog.xml b/packages/SystemUI/res/layout/volume_dialog.xml index 6ecb85456500..7d6547b9cd42 100644 --- a/packages/SystemUI/res/layout/volume_dialog.xml +++ b/packages/SystemUI/res/layout/volume_dialog.xml @@ -28,15 +28,15 @@ <LinearLayout android:id="@+id/volume_dialog" android:minWidth="@dimen/volume_dialog_panel_width" - android:layout_width="match_parent" + 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_horizontal" + android:paddingRight="@dimen/volume_dialog_panel_transparent_padding_right" android:paddingTop="@dimen/volume_dialog_panel_transparent_padding" android:paddingBottom="@dimen/volume_dialog_panel_transparent_padding" - android:paddingLeft="@dimen/volume_dialog_panel_transparent_padding_horizontal" + android:paddingLeft="@dimen/volume_dialog_panel_transparent_padding" android:orientation="vertical" android:clipToPadding="false"> @@ -45,6 +45,8 @@ 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"> @@ -72,6 +74,8 @@ 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:orientation="vertical" android:translationZ="@dimen/volume_dialog_elevation" android:clipChildren="false" @@ -88,48 +92,22 @@ android:paddingLeft="@dimen/volume_dialog_stream_padding"> <!-- volume rows added and removed here! :-) --> </LinearLayout> - <View - android:layout_width="match_parent" - android:layout_height="1dp" - android:background="?android:attr/listDivider"/> - <LinearLayout + <FrameLayout + android:id="@+id/settings_container" android:layout_width="match_parent" android:layout_height="wrap_content" - android:orientation="horizontal" > - <FrameLayout - android:id="@+id/expandable_indicator_container" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_weight="1"> - <com.android.systemui.statusbar.phone.ExpandableIndicator - android:id="@+id/expandable_indicator" - android:layout_width="@dimen/volume_dialog_tap_target_size" - android:layout_height="@dimen/volume_dialog_tap_target_size" - android:layout_marginRight="8dp" - android:layout_marginLeft="8dp" - android:contentDescription="@string/accessibility_volume_expand" - android:background="@drawable/ripple_drawable_20dp" - android:tint="@color/accent_tint_color_selector" - android:soundEffectsEnabled="false" - android:padding="14dp" /> - </FrameLayout> - <FrameLayout - android:id="@+id/media_output_container" - android:layout_width="wrap_content" - android:layout_height="wrap_content"> - <com.android.keyguard.AlphaOptimizedImageButton - android:id="@+id/media_output" - android:src="@drawable/ic_bluetooth_audio" - android:layout_width="@dimen/volume_dialog_tap_target_size" - android:layout_height="@dimen/volume_dialog_tap_target_size" - android:layout_marginRight="8dp" - android:layout_marginLeft="8dp" - android:contentDescription="@string/accessibility_volume_settings" - android:background="@drawable/ripple_drawable_20dp" - android:tint="@color/accent_tint_color_selector" - android:soundEffectsEnabled="false" /> - </FrameLayout> - </LinearLayout> + android:background="@drawable/rounded_bg_bottom_background"> + <com.android.keyguard.AlphaOptimizedImageButton + android:id="@+id/settings" + android:src="@drawable/ic_tune_black_16dp" + android:layout_width="@dimen/volume_dialog_tap_target_size" + android:layout_height="@dimen/volume_dialog_tap_target_size" + android:layout_gravity="center" + android:contentDescription="@string/accessibility_volume_settings" + android:background="@drawable/ripple_drawable_20dp" + android:tint="?android:attr/textColorSecondary" + android:soundEffectsEnabled="false" /> + </FrameLayout> </LinearLayout> <FrameLayout @@ -137,6 +115,8 @@ android:layout_width="@dimen/volume_dialog_caption_size" android:layout_height="@dimen/volume_dialog_caption_size" android:layout_marginTop="@dimen/volume_dialog_spacer" + android:gravity="right" + android:layout_gravity="right" android:clipToPadding="false" android:translationZ="@dimen/volume_dialog_elevation" android:background="@drawable/rounded_bg_full"> diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml index be2729127fdc..ed72e8ba02a0 100644 --- a/packages/SystemUI/res/values/dimens.xml +++ b/packages/SystemUI/res/values/dimens.xml @@ -438,7 +438,7 @@ <!-- The width of the panel that holds the quick settings. --> <dimen name="qs_panel_width">@dimen/notification_panel_width</dimen> - <dimen name="volume_dialog_panel_transparent_padding_horizontal">4dp</dimen> + <dimen name="volume_dialog_panel_transparent_padding_right">4dp</dimen> <dimen name="volume_dialog_panel_transparent_padding">20dp</dimen> diff --git a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java index b0ecd105b349..0d80afdee99e 100644 --- a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java +++ b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java @@ -23,7 +23,6 @@ import static android.media.AudioManager.RINGER_MODE_VIBRATE; import static android.media.AudioManager.STREAM_ACCESSIBILITY; import static android.media.AudioManager.STREAM_ALARM; import static android.media.AudioManager.STREAM_MUSIC; -import static android.media.AudioManager.STREAM_NOTIFICATION; import static android.media.AudioManager.STREAM_RING; import static android.media.AudioManager.STREAM_VOICE_CALL; import static android.view.View.ACCESSIBILITY_LIVE_REGION_POLITE; @@ -32,19 +31,13 @@ import static android.view.View.INVISIBLE; import static android.view.View.VISIBLE; import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT; -import static com.android.settingslib.media.MediaOutputSliceConstants.ACTION_MEDIA_OUTPUT; import static com.android.systemui.volume.Events.DISMISS_REASON_SETTINGS_CLICKED; -import android.animation.Animator; -import android.animation.AnimatorListenerAdapter; import android.animation.ObjectAnimator; -import android.animation.ValueAnimator; import android.annotation.SuppressLint; import android.app.ActivityManager; import android.app.Dialog; import android.app.KeyguardManager; -import android.bluetooth.BluetoothAdapter; -import android.bluetooth.BluetoothProfile; import android.content.ContentResolver; import android.content.Context; import android.content.DialogInterface; @@ -56,7 +49,6 @@ import android.content.res.Resources; import android.content.res.TypedArray; import android.graphics.Color; import android.graphics.PixelFormat; -import android.graphics.Region; import android.graphics.drawable.ColorDrawable; import android.media.AudioManager; import android.media.AudioSystem; @@ -73,17 +65,12 @@ import android.util.Log; import android.util.Slog; import android.util.SparseBooleanArray; import android.view.ContextThemeWrapper; -import android.view.Gravity; -import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; import android.view.View.AccessibilityDelegate; import android.view.ViewGroup; import android.view.ViewPropertyAnimator; import android.view.ViewStub; -import android.view.ViewTreeObserver; -import android.view.ViewTreeObserver.InternalInsetsInfo; -import android.view.ViewTreeObserver.OnComputeInternalInsetsListener; import android.view.Window; import android.view.WindowManager; import android.view.accessibility.AccessibilityEvent; @@ -92,7 +79,6 @@ import android.view.accessibility.AccessibilityNodeInfo; import android.view.animation.DecelerateInterpolator; import android.widget.FrameLayout; import android.widget.ImageButton; -import android.widget.LinearLayout; import android.widget.SeekBar; import android.widget.SeekBar.OnSeekBarChangeListener; import android.widget.TextView; @@ -108,14 +94,9 @@ import com.android.systemui.plugins.VolumeDialog; import com.android.systemui.plugins.VolumeDialogController; import com.android.systemui.plugins.VolumeDialogController.State; import com.android.systemui.plugins.VolumeDialogController.StreamState; -import com.android.systemui.statusbar.phone.ExpandableIndicator; import com.android.systemui.statusbar.policy.AccessibilityManagerWrapper; import com.android.systemui.statusbar.policy.ConfigurationController; import com.android.systemui.statusbar.policy.DeviceProvisionedController; -import com.android.systemui.tuner.TunerService; -import com.android.systemui.util.NotificationChannels; - -import lineageos.providers.LineageSettings; import java.io.PrintWriter; import java.util.ArrayList; @@ -132,9 +113,6 @@ public class VolumeDialogImpl implements VolumeDialog, ConfigurationController.ConfigurationListener { private static final String TAG = Util.logTag(VolumeDialogImpl.class); - private static final String VOLUME_PANEL_ON_LEFT = - "lineagesecure:" + LineageSettings.Secure.VOLUME_PANEL_ON_LEFT; - private static final long USER_ATTEMPT_GRACE_PERIOD = 1000; private static final int UPDATE_ANIMATION_DURATION = 80; @@ -146,24 +124,20 @@ public class VolumeDialogImpl implements VolumeDialog, static final int DIALOG_HIDE_ANIMATION_DURATION = 250; private final Context mContext; - private WindowManager mWindowManager; - private WindowManager.LayoutParams mWindowParams; private final H mHandler = new H(); private final VolumeDialogController mController; private final DeviceProvisionedController mDeviceProvisionedController; - private View mDialog; + private Window mWindow; + private CustomDialog mDialog; private ViewGroup mDialogView; - private ViewGroup mDialogMainView; private ViewGroup mDialogRowsView; private ViewGroup mRinger; private ImageButton mRingerIcon; private ViewGroup mODICaptionsView; private CaptionsToggleImageButton mODICaptionsIcon; - private View mMediaOutputView; - private ImageButton mMediaOutputIcon; - private View mExpandRowsView; - private ExpandableIndicator mExpandRows; + private View mSettingsView; + private ImageButton mSettingsIcon; private FrameLayout mZenIcon; private final List<VolumeRow> mRows = new ArrayList<>(); private ConfigurableTexts mConfigurableTexts; @@ -178,10 +152,8 @@ public class VolumeDialogImpl implements VolumeDialog, private boolean mShowA11yStream; private int mActiveStream; - private int mAllyStream; private int mPrevActiveStream; private boolean mAutomute = VolumePrefs.DEFAULT_ENABLE_AUTOMUTE; - private boolean mMusicHidden; private boolean mSilentMode = VolumePrefs.DEFAULT_ENABLE_SILENT_MODE; private State mState; private SafetyWarningDialog mSafetyWarning; @@ -192,12 +164,6 @@ public class VolumeDialogImpl implements VolumeDialog, private boolean mHasSeenODICaptionsTooltip; private ViewStub mODICaptionsTooltipViewStub; private View mODICaptionsTooltipView = null; - private TunerService mTunerService; - - // Volume panel placement left or right - private boolean mVolumePanelOnLeft; - - private boolean mExpanded; public VolumeDialogImpl(Context context) { mContext = @@ -205,17 +171,11 @@ public class VolumeDialogImpl implements VolumeDialog, mController = Dependency.get(VolumeDialogController.class); mKeyguard = (KeyguardManager) mContext.getSystemService(Context.KEYGUARD_SERVICE); mActivityManager = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE); - mWindowManager = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE); mAccessibilityMgr = Dependency.get(AccessibilityManagerWrapper.class); mDeviceProvisionedController = Dependency.get(DeviceProvisionedController.class); mShowActiveStreamOnly = showActiveStreamOnly(); mHasSeenODICaptionsTooltip = Prefs.getBoolean(context, Prefs.Key.HAS_SEEN_ODI_CAPTIONS_TOOLTIP, false); - mTunerService = Dependency.get(TunerService.class); - - if (!mShowActiveStreamOnly) { - mTunerService.addTunable(mTunable, VOLUME_PANEL_ON_LEFT); - } } @Override @@ -242,44 +202,53 @@ public class VolumeDialogImpl implements VolumeDialog, } private void initDialog() { - - // Gravitate various views left/right depending on panel placement setting. - final int panelGravity = mVolumePanelOnLeft ? Gravity.LEFT : Gravity.RIGHT; + mDialog = new CustomDialog(mContext); mConfigurableTexts = new ConfigurableTexts(mContext); mHovering = false; mShowing = false; - mExpanded = false; - mWindowParams = new WindowManager.LayoutParams(); - mWindowParams.flags &= ~WindowManager.LayoutParams.FLAG_DIM_BEHIND; - mWindowParams.flags &= ~WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR; - mWindowParams.flags |= WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE + mWindow = mDialog.getWindow(); + mWindow.requestFeature(Window.FEATURE_NO_TITLE); + mWindow.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); + mWindow.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND + | WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR); + mWindow.addFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH - | WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED; - mWindowParams.type = WindowManager.LayoutParams.TYPE_VOLUME_OVERLAY; - mWindowParams.format = PixelFormat.TRANSLUCENT; - mWindowParams.windowAnimations = -1; - mDialog = LayoutInflater.from(mContext).inflate(R.layout.volume_dialog, - (ViewGroup) null, false); - - mDialog.setOnTouchListener((v, event) -> { - if (mShowing) { - switch (event.getAction()) { - case MotionEvent.ACTION_OUTSIDE: - case MotionEvent.ACTION_DOWN: - dismissH(Events.DISMISS_REASON_TOUCH_OUTSIDE); - return true; - } - } - return false; - }); - + | WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED); + mWindow.setType(WindowManager.LayoutParams.TYPE_VOLUME_OVERLAY); + mWindow.setWindowAnimations(com.android.internal.R.style.Animation_Toast); + WindowManager.LayoutParams lp = mWindow.getAttributes(); + lp.format = PixelFormat.TRANSLUCENT; + lp.setTitle(VolumeDialogImpl.class.getSimpleName()); + lp.windowAnimations = -1; + lp.gravity = mContext.getResources().getInteger(R.integer.volume_dialog_gravity); + mWindow.setAttributes(lp); + mWindow.setLayout(WRAP_CONTENT, WRAP_CONTENT); + + mDialog.setContentView(R.layout.volume_dialog); mDialogView = mDialog.findViewById(R.id.volume_dialog); mDialogView.setAlpha(0); - mDialogView.setLayoutDirection(mVolumePanelOnLeft ? - View.LAYOUT_DIRECTION_LTR : View.LAYOUT_DIRECTION_RTL); + mDialog.setCanceledOnTouchOutside(true); + mDialog.setOnShowListener(dialog -> { + if (!isLandscape()) mDialogView.setTranslationX(mDialogView.getWidth() / 2.0f); + mDialogView.setAlpha(0); + mDialogView.animate() + .alpha(1) + .translationX(0) + .setDuration(DIALOG_SHOW_ANIMATION_DURATION) + .setInterpolator(new SystemUIInterpolators.LogDecelerateInterpolator()) + .withEndAction(() -> { + if (!Prefs.getBoolean(mContext, Prefs.Key.TOUCHED_RINGER_TOGGLE, false)) { + if (mRingerIcon != null) { + mRingerIcon.postOnAnimationDelayed( + getSinglePressFor(mRingerIcon), 1500); + } + } + }) + .start(); + }); mDialogView.setOnHoverListener((v, event) -> { int action = event.getActionMasked(); @@ -289,30 +258,16 @@ public class VolumeDialogImpl implements VolumeDialog, return true; }); - FrameLayout.LayoutParams dialogViewLP = - (FrameLayout.LayoutParams) mDialogView.getLayoutParams(); - dialogViewLP.gravity = Gravity.CENTER_VERTICAL; - mDialogView.setLayoutParams(dialogViewLP); - - mDialogMainView = mDialog.findViewById(R.id.main); - if (mDialogMainView != null) { - setLayoutGravity(mDialogMainView.getLayoutParams(), panelGravity); - } - mDialogRowsView = mDialog.findViewById(R.id.volume_dialog_rows); mRinger = mDialog.findViewById(R.id.ringer); if (mRinger != null) { mRingerIcon = mRinger.findViewById(R.id.ringer_icon); mZenIcon = mRinger.findViewById(R.id.dnd_icon); - // Apply ringer layout gravity based on panel left/right setting - // Layout type is different between landscape/portrait. - setLayoutGravity(mRinger.getLayoutParams(), panelGravity); } mODICaptionsView = mDialog.findViewById(R.id.odi_captions); if (mODICaptionsView != null) { mODICaptionsIcon = mODICaptionsView.findViewById(R.id.odi_captions_icon); - setLayoutGravity(mODICaptionsView.getLayoutParams(), panelGravity); } mODICaptionsTooltipViewStub = mDialog.findViewById(R.id.odi_captions_tooltip_stub); if (mHasSeenODICaptionsTooltip && mODICaptionsTooltipViewStub != null) { @@ -320,18 +275,8 @@ public class VolumeDialogImpl implements VolumeDialog, mODICaptionsTooltipViewStub = null; } - mMediaOutputView = mDialog.findViewById(R.id.media_output_container); - mMediaOutputIcon = mDialog.findViewById(R.id.media_output); - if (mMediaOutputIcon != null) { - setLayoutGravity(mMediaOutputIcon.getLayoutParams(), panelGravity); - } - - mExpandRowsView = mDialog.findViewById(R.id.expandable_indicator_container); - mExpandRows = mDialog.findViewById(R.id.expandable_indicator); - if (mExpandRows != null) { - setLayoutGravity(mExpandRows.getLayoutParams(), panelGravity); - mExpandRows.setRotation(mVolumePanelOnLeft ? -90 : 90); - } + mSettingsView = mDialog.findViewById(R.id.settings_container); + mSettingsIcon = mDialog.findViewById(R.id.settings); if (mRows.isEmpty()) { if (!AudioSystem.isSingleVolume(mContext)) { @@ -349,7 +294,7 @@ public class VolumeDialogImpl implements VolumeDialog, R.drawable.ic_volume_notification_mute, true, false); } addRow(STREAM_ALARM, - R.drawable.ic_volume_alarm, R.drawable.ic_volume_alarm_mute, true, false); + R.drawable.ic_alarm, R.drawable.ic_volume_alarm_mute, true, false); addRow(AudioManager.STREAM_VOICE_CALL, com.android.internal.R.drawable.ic_phone, com.android.internal.R.drawable.ic_phone, false, false); @@ -366,58 +311,8 @@ public class VolumeDialogImpl implements VolumeDialog, initRingerH(); initSettingsH(); initODICaptionsH(); - - mAllyStream = -1; - mMusicHidden = false; - } - - private final OnComputeInternalInsetsListener mInsetsListener = internalInsetsInfo -> { - internalInsetsInfo.touchableRegion.setEmpty(); - internalInsetsInfo.setTouchableInsets(InternalInsetsInfo.TOUCHABLE_INSETS_REGION); - View main = mDialog.findViewById(R.id.main); - int[] mainLocation = new int[2]; - main.getLocationInWindow(mainLocation); - int[] dialogLocation = new int[2]; - mDialogView.getLocationInWindow(dialogLocation); - internalInsetsInfo.touchableRegion.set(new Region( - mainLocation[0], - dialogLocation[1], - mainLocation[0] + main.getWidth(), - dialogLocation[1] + mDialogView.getHeight() - )); - }; - - // Helper to set layout gravity. - // Particular useful when the ViewGroup in question - // is different for portait vs landscape. - private void setLayoutGravity(Object obj, int gravity) { - if (obj instanceof FrameLayout.LayoutParams) { - ((FrameLayout.LayoutParams) obj).gravity = gravity; - } else if (obj instanceof LinearLayout.LayoutParams) { - ((LinearLayout.LayoutParams) obj).gravity = gravity; - } - } - - private float getAnimatorX() { - final float x = mDialogView.getWidth() / 2.0f; - return mVolumePanelOnLeft ? -x : x; } - private final TunerService.Tunable mTunable = new TunerService.Tunable() { - @Override - public void onTuningChanged(String key, String newValue) { - if (VOLUME_PANEL_ON_LEFT.equals(key)) { - final boolean volumePanelOnLeft = TunerService.parseIntegerSwitch(newValue, false); - if (mVolumePanelOnLeft != volumePanelOnLeft) { - mVolumePanelOnLeft = volumePanelOnLeft; - mHandler.post(() -> { - mControllerCallbackH.onConfigurationChanged(); - }); - } - } - } - }; - protected ViewGroup getDialogView() { return mDialogView; } @@ -521,7 +416,7 @@ public class VolumeDialogImpl implements VolumeDialog, row.iconMuteRes = iconMuteRes; row.important = important; row.defaultStream = defaultStream; - row.view = LayoutInflater.from(mContext).inflate(R.layout.volume_dialog_row, null); + row.view = mDialog.getLayoutInflater().inflate(R.layout.volume_dialog_row, null); row.view.setId(row.stream); row.view.setTag(row); row.header = row.view.findViewById(R.id.volume_row_header); @@ -540,11 +435,28 @@ public class VolumeDialogImpl implements VolumeDialog, if (row.stream != AudioSystem.STREAM_ACCESSIBILITY) { row.icon.setOnClickListener(v -> { Events.writeEvent(Events.EVENT_ICON_CLICK, row.stream, row.iconState); - rescheduleTimeoutH(); mController.setActiveStream(row.stream); - final boolean vmute = row.ss.level == row.ss.levelMin; - mController.setStreamVolume(stream, - vmute ? row.lastAudibleLevel : row.ss.levelMin); + if (row.stream == AudioManager.STREAM_RING) { + final boolean hasVibrator = mController.hasVibrator(); + if (mState.ringerModeInternal == AudioManager.RINGER_MODE_NORMAL) { + if (hasVibrator) { + mController.setRingerMode(AudioManager.RINGER_MODE_VIBRATE, false); + } else { + final boolean wasZero = row.ss.level == 0; + mController.setStreamVolume(stream, + wasZero ? row.lastAudibleLevel : 0); + } + } else { + mController.setRingerMode(AudioManager.RINGER_MODE_NORMAL, false); + if (row.ss.level == 0) { + mController.setStreamVolume(stream, 1); + } + } + } else { + final boolean vmute = row.ss.level == row.ss.levelMin; + mController.setStreamVolume(stream, + vmute ? row.lastAudibleLevel : row.ss.levelMin); + } row.userAttempt = 0; // reset the grace period, slider updates immediately }); } else { @@ -552,85 +464,17 @@ public class VolumeDialogImpl implements VolumeDialog, } } - private boolean isNotificationVolumeLinked() { - ContentResolver cr = mContext.getContentResolver(); - return Settings.Secure.getInt(cr, Settings.Secure.VOLUME_LINK_NOTIFICATION, 1) == 1; - } - - private static boolean isBluetoothA2dpConnected() { - BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); - return mBluetoothAdapter != null && mBluetoothAdapter.isEnabled() - && mBluetoothAdapter.getProfileConnectionState(BluetoothProfile.A2DP) - == BluetoothProfile.STATE_CONNECTED; - } - - private void setVisOrGone(int stream, boolean vis) { - if (!vis && stream == mAllyStream) { - return; - } - Util.setVisOrGone(findRow(stream).view, vis); - } - - private void updateExpandedRows(boolean expand) { - if (!expand) mController.setActiveStream(mAllyStream); - if (mMusicHidden) { - setVisOrGone(AudioManager.STREAM_MUSIC, expand); - } - setVisOrGone(AudioManager.STREAM_RING, expand); - setVisOrGone(STREAM_ALARM, expand); - if (!isNotificationVolumeLinked()) { - setVisOrGone(AudioManager.STREAM_NOTIFICATION, expand); - } - } - - private void animateExpandedRowsChange(boolean expand) { - final int startWidth = mDialogRowsView.getLayoutParams().width; - final int targetWidth; - - if (expand) { - updateExpandedRows(expand); - mDialogRowsView.measure(WRAP_CONTENT, WRAP_CONTENT); - targetWidth = mDialogRowsView.getMeasuredWidth(); - } else { - targetWidth = mContext.getResources().getDimensionPixelSize( - R.dimen.volume_dialog_panel_width); - } - - ValueAnimator animator = ValueAnimator.ofInt(startWidth, targetWidth); - animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { - @Override - public void onAnimationUpdate(ValueAnimator valueAnimator) { - mDialogRowsView.getLayoutParams().width = - (Integer) valueAnimator.getAnimatedValue(); - mDialogRowsView.requestLayout(); - } - }); - animator.addListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator animation) { - if (!expand) { - updateExpandedRows(expand); - } - } - }); - animator.setInterpolator(expand ? new SystemUIInterpolators.LogDecelerateInterpolator() - : new SystemUIInterpolators.LogAccelerateInterpolator()); - animator.setDuration(UPDATE_ANIMATION_DURATION); - animator.start(); - } - - public void updateMediaOutputH() { - if (mMediaOutputView != null) { - mMediaOutputView.setVisibility( + public void initSettingsH() { + if (mSettingsView != null) { + mSettingsView.setVisibility( mDeviceProvisionedController.isCurrentUserSetup() && - mActivityManager.getLockTaskModeState() == LOCK_TASK_MODE_NONE && - isBluetoothA2dpConnected() && mExpanded ? VISIBLE : GONE); + mActivityManager.getLockTaskModeState() == LOCK_TASK_MODE_NONE ? + VISIBLE : GONE); } - if (mMediaOutputIcon != null) { - mMediaOutputIcon .setOnClickListener(v -> { - rescheduleTimeoutH(); + if (mSettingsIcon != null) { + mSettingsIcon.setOnClickListener(v -> { Events.writeEvent(Events.EVENT_SETTINGS_CLICK); - Intent intent = new Intent(ACTION_MEDIA_OUTPUT); + Intent intent = new Intent(Settings.Panel.ACTION_VOLUME); dismissH(DISMISS_REASON_SETTINGS_CLICKED); Dependency.get(MediaOutputDialogFactory.class).dismiss(); Dependency.get(ActivityStarter.class).startActivity(intent, @@ -639,36 +483,10 @@ public class VolumeDialogImpl implements VolumeDialog, } } - public void initSettingsH() { - updateMediaOutputH(); - if (mAllyStream == -1) { - mAllyStream = mActiveStream; - } - - if (mExpandRowsView != null) { - mExpandRowsView.setVisibility( - mDeviceProvisionedController.isCurrentUserSetup() && - mActivityManager.getLockTaskModeState() == LOCK_TASK_MODE_NONE ? - VISIBLE : GONE); - } - if (mExpandRows != null) { - mExpandRows.setOnClickListener(v -> { - rescheduleTimeoutH(); - animateExpandedRowsChange(!mExpanded); - - mExpandRows.setExpanded(!mExpanded); - mExpanded = !mExpanded; - - updateMediaOutputH(); - }); - } - } - public void initRingerH() { if (mRingerIcon != null) { mRingerIcon.setAccessibilityLiveRegion(ACCESSIBILITY_LIVE_REGION_POLITE); mRingerIcon.setOnClickListener(v -> { - rescheduleTimeoutH(); Prefs.putBoolean(mContext, Prefs.Key.TOUCHED_RINGER_TOGGLE, true); final StreamState ss = mState.states.get(AudioManager.STREAM_RING); if (ss == null) { @@ -729,11 +547,11 @@ public class VolumeDialogImpl implements VolumeDialog, if (!mHasSeenODICaptionsTooltip && mODICaptionsTooltipViewStub != null) { mODICaptionsTooltipView = mODICaptionsTooltipViewStub.inflate(); mODICaptionsTooltipView.findViewById(R.id.dismiss).setOnClickListener(v -> { - rescheduleTimeoutH(); hideCaptionsTooltip(); Events.writeEvent(Events.EVENT_ODI_CAPTIONS_TOOLTIP_CLICK); }); mODICaptionsTooltipViewStub = null; + rescheduleTimeoutH(); } if (mODICaptionsTooltipView != null) { @@ -881,37 +699,9 @@ public class VolumeDialogImpl implements VolumeDialog, } initSettingsH(); + mShowing = true; mIsAnimatingDismiss = false; - mDialog.getViewTreeObserver().addOnComputeInternalInsetsListener(mInsetsListener); - - if (!mShowing && !mDialog.isShown()) { - if (!isLandscape()) { - mDialogView.setTranslationX( - (mVolumePanelOnLeft ? -1 : 1) * mDialogView.getWidth() / 2.0f); - } - mDialogView.setAlpha(0); - mDialogView.animate() - .alpha(1) - .translationX(0) - .setDuration(DIALOG_SHOW_ANIMATION_DURATION) - .setInterpolator(new SystemUIInterpolators.LogDecelerateInterpolator()) - .withStartAction(() -> { - if (!mDialog.isShown()) { - mWindowManager.addView(mDialog, mWindowParams); - } - }) - .withEndAction(() -> { - if (!Prefs.getBoolean(mContext, Prefs.Key.TOUCHED_RINGER_TOGGLE, false)) { - if (mRingerIcon != null) { - mRingerIcon.postOnAnimationDelayed( - getSinglePressFor(mRingerIcon), 1500); - } - } - mShowing = true; - }) - .start(); - } - + mDialog.show(); Events.writeEvent(Events.EVENT_SHOW_DIALOG, reason, mKeyguard.isKeyguardLocked()); mController.notifyVisible(true); mController.getCaptionsComponentState(false); @@ -953,10 +743,6 @@ public class VolumeDialogImpl implements VolumeDialog, Log.d(TAG, "mDialog.dismiss() reason: " + Events.DISMISS_REASONS[reason] + " from: " + Debug.getCaller()); } - if (!mShowing) { - // This may happen when dismissing an expanded panel, don't animate again - return; - } mHandler.removeMessages(H.DISMISS); mHandler.removeMessages(H.SHOW); if (mIsAnimatingDismiss) { @@ -976,25 +762,14 @@ public class VolumeDialogImpl implements VolumeDialog, .setDuration(DIALOG_HIDE_ANIMATION_DURATION) .setInterpolator(new SystemUIInterpolators.LogAccelerateInterpolator()) .withEndAction(() -> mHandler.postDelayed(() -> { - mIsAnimatingDismiss = false; - if (mDialog.isShown()){ - mWindowManager.removeViewImmediate(mDialog); - } - mExpanded = false; - mDialogRowsView.getLayoutParams().width = mContext.getResources() - .getDimensionPixelSize(R.dimen.volume_dialog_panel_width); - updateExpandedRows(mExpanded); - mExpandRows.setExpanded(mExpanded); - mAllyStream = -1; - mMusicHidden = false; + mDialog.dismiss(); tryToRemoveCaptionsTooltip(); - mDialog.getViewTreeObserver().removeOnComputeInternalInsetsListener( - mInsetsListener); - mController.notifyVisible(false); + mIsAnimatingDismiss = false; }, 50)); - if (!isLandscape() || !mShowActiveStreamOnly) animator.translationX(getAnimatorX()); + if (!isLandscape()) animator.translationX(mDialogView.getWidth() / 2.0f); animator.start(); checkODICaptionsTooltip(true); + mController.notifyVisible(false); synchronized (mSafetyWarningLock) { if (mSafetyWarning != null) { if (D.BUG) Log.d(TAG, "SafetyWarning dismissed"); @@ -1011,12 +786,6 @@ public class VolumeDialogImpl implements VolumeDialog, private boolean shouldBeVisibleH(VolumeRow row, VolumeRow activeRow) { boolean isActive = row.stream == activeRow.stream; - if (row.stream == AudioSystem.STREAM_MUSIC && - activeRow.stream != AudioSystem.STREAM_MUSIC && !mExpanded) { - mMusicHidden = true; - return false; - } - if (isActive) { return true; } @@ -1035,7 +804,6 @@ public class VolumeDialogImpl implements VolumeDialog, if (row.defaultStream) { return activeRow.stream == STREAM_RING - || activeRow.stream == STREAM_NOTIFICATION || activeRow.stream == STREAM_ALARM || activeRow.stream == STREAM_VOICE_CALL || activeRow.stream == STREAM_ACCESSIBILITY @@ -1055,7 +823,7 @@ public class VolumeDialogImpl implements VolumeDialog, for (final VolumeRow row : mRows) { final boolean isActive = row == activeRow; final boolean shouldBeVisible = shouldBeVisibleH(row, activeRow); - if (!mExpanded) Util.setVisOrGone(row.view, shouldBeVisible); + Util.setVisOrGone(row.view, shouldBeVisible); if (row.view.isShown()) { updateVolumeRowTintH(row, isActive); } @@ -1214,6 +982,7 @@ public class VolumeDialogImpl implements VolumeDialog, updateVolumeRowH(row); } updateRingerH(); + mWindow.setTitle(composeWindowTitle()); } CharSequence composeWindowTitle() { @@ -1236,7 +1005,7 @@ public class VolumeDialogImpl implements VolumeDialog, final StreamState ss = mState.states.get(row.stream); if (ss == null) return; row.ss = ss; - if (ss.level > ss.levelMin) { + if (ss.level > 0) { row.lastAudibleLevel = ss.level; } if (ss.level == row.requestedLevel) { @@ -1354,7 +1123,7 @@ public class VolumeDialogImpl implements VolumeDialog, } private boolean isStreamMuted(final StreamState streamState) { - return (mAutomute && streamState.level == streamState.levelMin) || streamState.muted; + return (mAutomute && streamState.level == 0) || streamState.muted; } private void updateVolumeRowTintH(VolumeRow row, boolean isActive) { @@ -1368,7 +1137,7 @@ public class VolumeDialogImpl implements VolumeDialog, final int alpha = useActiveColoring ? Color.alpha(tint.getDefaultColor()) : getAlphaAttr(android.R.attr.secondaryContentAlpha); - if (tint == row.cachedTint && mExpanded) return; + if (tint == row.cachedTint) return; row.slider.setProgressTintList(tint); row.slider.setThumbTintList(tint); row.slider.setProgressBackgroundTintList(tint); @@ -1536,7 +1305,7 @@ public class VolumeDialogImpl implements VolumeDialog, @Override public void onConfigurationChanged() { - if (mDialog.isShown()) mWindowManager.removeViewImmediate(mDialog); + mDialog.dismiss(); mConfigChanged = true; } @@ -1605,6 +1374,41 @@ public class VolumeDialogImpl implements VolumeDialog, } } + private final class CustomDialog extends Dialog implements DialogInterface { + public CustomDialog(Context context) { + super(context, R.style.qs_theme); + } + + @Override + public boolean dispatchTouchEvent(MotionEvent ev) { + rescheduleTimeoutH(); + return super.dispatchTouchEvent(ev); + } + + @Override + protected void onStart() { + super.setCanceledOnTouchOutside(true); + super.onStart(); + } + + @Override + protected void onStop() { + super.onStop(); + mHandler.sendEmptyMessage(H.RECHECK_ALL); + } + + @Override + public boolean onTouchEvent(MotionEvent event) { + if (mShowing) { + if (event.getAction() == MotionEvent.ACTION_OUTSIDE) { + dismissH(Events.DISMISS_REASON_TOUCH_OUTSIDE); + return true; + } + } + return false; + } + } + private final class VolumeSeekBarChangeListener implements OnSeekBarChangeListener { private final VolumeRow mRow; @@ -1614,7 +1418,6 @@ public class VolumeDialogImpl implements VolumeDialog, @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { - rescheduleTimeoutH(); if (mRow.ss == null) return; if (D.BUG) Log.d(TAG, AudioSystem.streamToString(mRow.stream) + " onProgressChanged " + progress + " fromUser=" + fromUser); @@ -1698,7 +1501,7 @@ public class VolumeDialogImpl implements VolumeDialog, private int iconState; // from Events private ObjectAnimator anim; // slider progress animation for non-touch-related updates private int animTargetProgress; - private int lastAudibleLevel = 2; + private int lastAudibleLevel = 1; private FrameLayout dndIcon; } } diff --git a/packages/overlays/IconPackCircularSystemUIOverlay/res/drawable/ic_volume_ringer_vibrate.xml b/packages/overlays/IconPackCircularSystemUIOverlay/res/drawable/ic_volume_ringer_vibrate.xml index c6e34fe1b47d..533d886d0188 100644 --- a/packages/overlays/IconPackCircularSystemUIOverlay/res/drawable/ic_volume_ringer_vibrate.xml +++ b/packages/overlays/IconPackCircularSystemUIOverlay/res/drawable/ic_volume_ringer_vibrate.xml @@ -15,10 +15,10 @@ limitations under the License. --> <vector xmlns:android="http://schemas.android.com/apk/res/android" - android:height="24dp" + android:height="19dp" android:viewportHeight="24" android:viewportWidth="24" - android:width="24dp" > + android:width="19dp" > <path android:fillColor="@android:color/white" android:pathData="M9,4C7.9,4,7,4.9,7,6v12c0,1.1,0.9,2,2,2h6c1.1,0,2-0.9,2-2V6c0-1.1-0.9-2-2-2H9z M15.5,6v12c0,0.28-0.22,0.5-0.5,0.5H9 c-0.28,0-0.5-0.22-0.5-0.5V6c0-0.28,0.22-0.5,0.5-0.5h6C15.28,5.5,15.5,5.72,15.5,6z" /> diff --git a/packages/overlays/IconPackFilledSystemUIOverlay/res/drawable/ic_volume_ringer_vibrate.xml b/packages/overlays/IconPackFilledSystemUIOverlay/res/drawable/ic_volume_ringer_vibrate.xml index 3df31d757dcd..9f8dbb7184f0 100644 --- a/packages/overlays/IconPackFilledSystemUIOverlay/res/drawable/ic_volume_ringer_vibrate.xml +++ b/packages/overlays/IconPackFilledSystemUIOverlay/res/drawable/ic_volume_ringer_vibrate.xml @@ -15,10 +15,10 @@ limitations under the License. --> <vector xmlns:android="http://schemas.android.com/apk/res/android" - android:height="24dp" + android:height="19dp" android:viewportHeight="24" android:viewportWidth="24" - android:width="24dp" > + android:width="19dp" > <path android:fillColor="@android:color/white" android:pathData="M19,7c-0.55,0-1,0.45-1,1v8c0,0.55,0.45,1,1,1s1-0.45,1-1V8C20,7.45,19.55,7,19,7z" /> diff --git a/packages/overlays/IconPackRoundedSystemUIOverlay/res/drawable/ic_volume_ringer_vibrate.xml b/packages/overlays/IconPackRoundedSystemUIOverlay/res/drawable/ic_volume_ringer_vibrate.xml index dd2024ad4b4d..3e40279aa629 100644 --- a/packages/overlays/IconPackRoundedSystemUIOverlay/res/drawable/ic_volume_ringer_vibrate.xml +++ b/packages/overlays/IconPackRoundedSystemUIOverlay/res/drawable/ic_volume_ringer_vibrate.xml @@ -15,10 +15,10 @@ limitations under the License. --> <vector xmlns:android="http://schemas.android.com/apk/res/android" - android:height="24dp" + android:height="19dp" android:viewportHeight="24" android:viewportWidth="24" - android:width="24dp" > + android:width="19dp" > <path android:fillColor="@android:color/white" android:pathData="M9,4C7.9,4,7,4.9,7,6v12c0,1.1,0.9,2,2,2h6c1.1,0,2-0.9,2-2V6c0-1.1-0.9-2-2-2H9z M15.5,6v12c0,0.28-0.22,0.5-0.5,0.5H9 c-0.28,0-0.5-0.22-0.5-0.5V6c0-0.28,0.22-0.5,0.5-0.5h6C15.28,5.5,15.5,5.72,15.5,6z" /> |