Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +19 −0 Original line number Diff line number Diff line Loading @@ -640,6 +640,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 Loading Loading @@ -5117,6 +5126,7 @@ public class StatusBar extends SystemUI implements DemoMode, recomputeDisableFlags(true /* animate */); } WakefulnessLifecycle.Observer mWakefulnessObserver = new WakefulnessLifecycle.Observer() { @Override public void onFinishedGoingToSleep() { Loading Loading @@ -5150,6 +5160,11 @@ public class StatusBar extends SystemUI implements DemoMode, updateIsKeyguard(); } @Override public void onStartedGoingToSleep() { dismissVolumeDialog(); } @Override public void onStartedWakingUp() { mDeviceInteractive = true; Loading Loading @@ -5197,6 +5212,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 */); Loading packages/SystemUI/src/com/android/systemui/volume/VolumeDialogControllerImpl.java +12 −4 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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); Loading packages/SystemUI/tests/src/com/android/systemui/volume/VolumeDialogControllerImplTest.java +14 −0 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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); } Loading @@ -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); } Loading Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +19 −0 Original line number Diff line number Diff line Loading @@ -640,6 +640,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 Loading Loading @@ -5117,6 +5126,7 @@ public class StatusBar extends SystemUI implements DemoMode, recomputeDisableFlags(true /* animate */); } WakefulnessLifecycle.Observer mWakefulnessObserver = new WakefulnessLifecycle.Observer() { @Override public void onFinishedGoingToSleep() { Loading Loading @@ -5150,6 +5160,11 @@ public class StatusBar extends SystemUI implements DemoMode, updateIsKeyguard(); } @Override public void onStartedGoingToSleep() { dismissVolumeDialog(); } @Override public void onStartedWakingUp() { mDeviceInteractive = true; Loading Loading @@ -5197,6 +5212,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 */); Loading
packages/SystemUI/src/com/android/systemui/volume/VolumeDialogControllerImpl.java +12 −4 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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); Loading
packages/SystemUI/tests/src/com/android/systemui/volume/VolumeDialogControllerImplTest.java +14 −0 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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); } Loading @@ -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); } Loading