From 7fbf573e0b7b002a914aec651208e33d443a1f1b Mon Sep 17 00:00:00 2001 From: John Spurlock Date: Tue, 18 Nov 2014 11:40:22 -0500 Subject: [PATCH] Volume: Dismiss panel on nav bar interaction. Bug: 18409164 Change-Id: I7b7f26eb823b8477a4df86a8622b4f1171ad96e6 --- .../android/systemui/statusbar/phone/PhoneStatusBar.java | 7 +++++++ .../src/com/android/systemui/volume/VolumeComponent.java | 1 + .../SystemUI/src/com/android/systemui/volume/VolumeUI.java | 7 ++++++- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java index d94f122176d03..2e8653021144e 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java @@ -2659,6 +2659,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, @Override public void setInteracting(int barWindow, boolean interacting) { + final boolean changing = ((mInteractingWindows & barWindow) != 0) != interacting; mInteractingWindows = interacting ? (mInteractingWindows | barWindow) : (mInteractingWindows & ~barWindow); @@ -2667,6 +2668,12 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, } else { resumeSuspendedAutohide(); } + // manually dismiss the volume panel when interacting with the nav bar + if (changing && interacting && barWindow == StatusBarManager.WINDOW_NAVIGATION_BAR) { + if (mVolumeComponent != null) { + mVolumeComponent.dismissNow(); + } + } checkBarModes(); } diff --git a/packages/SystemUI/src/com/android/systemui/volume/VolumeComponent.java b/packages/SystemUI/src/com/android/systemui/volume/VolumeComponent.java index 31adc9593fb25..e3f8f3de323d7 100644 --- a/packages/SystemUI/src/com/android/systemui/volume/VolumeComponent.java +++ b/packages/SystemUI/src/com/android/systemui/volume/VolumeComponent.java @@ -21,4 +21,5 @@ import com.android.systemui.statusbar.policy.ZenModeController; public interface VolumeComponent extends DemoMode { ZenModeController getZenController(); + void dismissNow(); } diff --git a/packages/SystemUI/src/com/android/systemui/volume/VolumeUI.java b/packages/SystemUI/src/com/android/systemui/volume/VolumeUI.java index 5232a174e9016..7102c2a7d4265 100644 --- a/packages/SystemUI/src/com/android/systemui/volume/VolumeUI.java +++ b/packages/SystemUI/src/com/android/systemui/volume/VolumeUI.java @@ -178,7 +178,7 @@ public class VolumeUI extends SystemUI { @Override public void dismiss() throws RemoteException { - mPanel.postDismiss(0); + dismissNow(); } @Override @@ -190,6 +190,11 @@ public class VolumeUI extends SystemUI { public void dispatchDemoCommand(String command, Bundle args) { mPanel.dispatchDemoCommand(command, args); } + + @Override + public void dismissNow() { + mPanel.postDismiss(0); + } } private final class RemoteVolumeController extends IRemoteVolumeController.Stub {