Merge "Volume dialog doesn't show on ambient/aod." into oc-dr1-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
382644aa74
@@ -639,6 +639,15 @@ public class StatusBar extends SystemUI implements DemoMode,
|
||||
// Fingerprint (as computed by getLoggingFingerprint() of the last logged state.
|
||||
private int mLastLoggedStateFingerprint;
|
||||
|
||||
public boolean isStartedGoingToSleep() {
|
||||
return mStartedGoingToSleep;
|
||||
}
|
||||
|
||||
/**
|
||||
* If set, the device has started going to sleep but isn't fully non-interactive yet.
|
||||
*/
|
||||
protected boolean mStartedGoingToSleep;
|
||||
|
||||
private final OnChildLocationsChangedListener mNotificationLocationsChangedListener =
|
||||
new OnChildLocationsChangedListener() {
|
||||
@Override
|
||||
@@ -5106,6 +5115,7 @@ public class StatusBar extends SystemUI implements DemoMode,
|
||||
recomputeDisableFlags(true /* animate */);
|
||||
}
|
||||
|
||||
|
||||
WakefulnessLifecycle.Observer mWakefulnessObserver = new WakefulnessLifecycle.Observer() {
|
||||
@Override
|
||||
public void onFinishedGoingToSleep() {
|
||||
@@ -5139,6 +5149,11 @@ public class StatusBar extends SystemUI implements DemoMode,
|
||||
updateIsKeyguard();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStartedGoingToSleep() {
|
||||
dismissVolumeDialog();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStartedWakingUp() {
|
||||
mDeviceInteractive = true;
|
||||
@@ -5186,6 +5201,10 @@ public class StatusBar extends SystemUI implements DemoMode,
|
||||
}
|
||||
};
|
||||
|
||||
public int getWakefulnessState() {
|
||||
return mWakefulnessLifecycle.getWakefulness();
|
||||
}
|
||||
|
||||
private void vibrateForCameraGesture() {
|
||||
// Make sure to pass -1 for repeat so VibratorService doesn't stop us when going to sleep.
|
||||
mVibrator.vibrate(mCameraLaunchGestureVibePattern, -1 /* repeat */);
|
||||
|
||||
@@ -49,6 +49,8 @@ import com.android.internal.annotations.GuardedBy;
|
||||
import com.android.systemui.Dumpable;
|
||||
import com.android.systemui.R;
|
||||
import com.android.systemui.SysUiServiceProvider;
|
||||
import com.android.systemui.keyguard.ScreenLifecycle;
|
||||
import com.android.systemui.keyguard.WakefulnessLifecycle;
|
||||
import com.android.systemui.plugins.VolumeDialogController;
|
||||
import com.android.systemui.qs.tiles.DndTile;
|
||||
import com.android.systemui.statusbar.phone.StatusBar;
|
||||
@@ -336,11 +338,17 @@ public class VolumeDialogControllerImpl implements VolumeDialogController, Dumpa
|
||||
}
|
||||
}
|
||||
|
||||
boolean onVolumeChangedW(int stream, int flags) {
|
||||
private boolean shouldShowUI(int flags) {
|
||||
updateStatusBar();
|
||||
return mStatusBar != null
|
||||
&& mStatusBar.getWakefulnessState() != WakefulnessLifecycle.WAKEFULNESS_ASLEEP
|
||||
&& mStatusBar.getWakefulnessState() != WakefulnessLifecycle.WAKEFULNESS_GOING_TO_SLEEP
|
||||
&& mStatusBar.isDeviceInteractive()
|
||||
&& (flags & AudioManager.FLAG_SHOW_UI) != 0;
|
||||
}
|
||||
|
||||
final boolean showUI = (mStatusBar != null && mStatusBar.isDeviceInteractive()) &&
|
||||
((flags & AudioManager.FLAG_SHOW_UI) != 0);
|
||||
boolean onVolumeChangedW(int stream, int flags) {
|
||||
final boolean showUI = shouldShowUI(flags);
|
||||
final boolean fromKey = (flags & AudioManager.FLAG_FROM_KEY) != 0;
|
||||
final boolean showVibrateHint = (flags & AudioManager.FLAG_SHOW_VIBRATE_HINT) != 0;
|
||||
final boolean showSilentHint = (flags & AudioManager.FLAG_SHOW_SILENT_HINT) != 0;
|
||||
@@ -935,7 +943,7 @@ public class VolumeDialogControllerImpl implements VolumeDialogController, Dumpa
|
||||
@Override
|
||||
public void onRemoteVolumeChanged(Token token, int flags) {
|
||||
final int stream = mRemoteStreams.get(token);
|
||||
final boolean showUI = (flags & AudioManager.FLAG_SHOW_UI) != 0;
|
||||
final boolean showUI = shouldShowUI(flags);
|
||||
boolean changed = updateActiveStreamW(stream);
|
||||
if (showUI) {
|
||||
changed |= checkRoutedToBluetoothW(AudioManager.STREAM_MUSIC);
|
||||
|
||||
@@ -26,6 +26,7 @@ import android.content.Context;
|
||||
import android.media.AudioManager;
|
||||
import android.support.test.filters.SmallTest;
|
||||
import com.android.systemui.SysuiTestCase;
|
||||
import com.android.systemui.keyguard.WakefulnessLifecycle;
|
||||
import com.android.systemui.statusbar.phone.StatusBar;
|
||||
|
||||
import org.junit.Before;
|
||||
@@ -48,6 +49,7 @@ public class VolumeDialogControllerImplTest extends SysuiTestCase {
|
||||
@Test
|
||||
public void testVolumeChangeW_deviceNotInteractiveAOD() {
|
||||
when(mStatusBar.isDeviceInteractive()).thenReturn(false);
|
||||
when(mStatusBar.getWakefulnessState()).thenReturn(WakefulnessLifecycle.WAKEFULNESS_AWAKE);
|
||||
mVolumeController.onVolumeChangedW(0, AudioManager.FLAG_SHOW_UI);
|
||||
verify(mCallback, never()).onShowRequested(Events.SHOW_REASON_VOLUME_CHANGED);
|
||||
}
|
||||
@@ -55,6 +57,18 @@ public class VolumeDialogControllerImplTest extends SysuiTestCase {
|
||||
@Test
|
||||
public void testVolumeChangeW_deviceInteractive() {
|
||||
when(mStatusBar.isDeviceInteractive()).thenReturn(true);
|
||||
when(mStatusBar.getWakefulnessState()).thenReturn(WakefulnessLifecycle.WAKEFULNESS_AWAKE);
|
||||
mVolumeController.onVolumeChangedW(0, AudioManager.FLAG_SHOW_UI);
|
||||
verify(mCallback, times(1)).onShowRequested(Events.SHOW_REASON_VOLUME_CHANGED);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testVolumeChangeW_deviceInteractive_StartedSleeping() {
|
||||
when(mStatusBar.isDeviceInteractive()).thenReturn(true);
|
||||
when(mStatusBar.getWakefulnessState()).thenReturn(WakefulnessLifecycle.WAKEFULNESS_AWAKE);
|
||||
mVolumeController.onVolumeChangedW(0, AudioManager.FLAG_SHOW_UI);
|
||||
when(mStatusBar.isDeviceInteractive()).thenReturn(false);
|
||||
when(mStatusBar.getWakefulnessState()).thenReturn(WakefulnessLifecycle.WAKEFULNESS_GOING_TO_SLEEP);
|
||||
mVolumeController.onVolumeChangedW(0, AudioManager.FLAG_SHOW_UI);
|
||||
verify(mCallback, times(1)).onShowRequested(Events.SHOW_REASON_VOLUME_CHANGED);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user