Loading packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptStateProviderImpl.java +22 −18 Original line number Diff line number Diff line Loading @@ -16,6 +16,9 @@ package com.android.systemui.statusbar.notification.interruption; import static android.provider.Settings.Global.HEADS_UP_NOTIFICATIONS_ENABLED; import static android.provider.Settings.Global.HEADS_UP_OFF; import static com.android.systemui.statusbar.StatusBarState.SHADE; import static com.android.systemui.statusbar.notification.interruption.NotificationInterruptStateProviderImpl.NotificationInterruptEvent.FSI_SUPPRESSED_NO_HUN_OR_KEYGUARD; import static com.android.systemui.statusbar.notification.interruption.NotificationInterruptStateProviderImpl.NotificationInterruptEvent.FSI_SUPPRESSED_SUPPRESSIVE_BUBBLE_METADATA; Loading @@ -24,12 +27,10 @@ import static com.android.systemui.statusbar.notification.interruption.Notificat import android.app.Notification; import android.app.NotificationManager; import android.content.ContentResolver; import android.database.ContentObserver; import android.hardware.display.AmbientDisplayConfiguration; import android.os.Handler; import android.os.PowerManager; import android.provider.Settings; import android.service.notification.StatusBarNotification; import androidx.annotation.NonNull; Loading @@ -48,6 +49,8 @@ import com.android.systemui.statusbar.policy.BatteryController; import com.android.systemui.statusbar.policy.DeviceProvisionedController; import com.android.systemui.statusbar.policy.HeadsUpManager; import com.android.systemui.statusbar.policy.KeyguardStateController; import com.android.systemui.util.settings.GlobalSettings; import com.android.systemui.util.time.SystemClock; import java.util.ArrayList; import java.util.List; Loading @@ -66,7 +69,6 @@ public class NotificationInterruptStateProviderImpl implements NotificationInter private final List<NotificationInterruptSuppressor> mSuppressors = new ArrayList<>(); private final StatusBarStateController mStatusBarStateController; private final KeyguardStateController mKeyguardStateController; private final ContentResolver mContentResolver; private final PowerManager mPowerManager; private final AmbientDisplayConfiguration mAmbientDisplayConfiguration; private final BatteryController mBatteryController; Loading @@ -77,6 +79,8 @@ public class NotificationInterruptStateProviderImpl implements NotificationInter private final UiEventLogger mUiEventLogger; private final UserTracker mUserTracker; private final DeviceProvisionedController mDeviceProvisionedController; private final SystemClock mSystemClock; private final GlobalSettings mGlobalSettings; @VisibleForTesting protected boolean mUseHeadsUp = false; Loading Loading @@ -111,7 +115,6 @@ public class NotificationInterruptStateProviderImpl implements NotificationInter @Inject public NotificationInterruptStateProviderImpl( ContentResolver contentResolver, PowerManager powerManager, AmbientDisplayConfiguration ambientDisplayConfiguration, BatteryController batteryController, Loading @@ -124,8 +127,9 @@ public class NotificationInterruptStateProviderImpl implements NotificationInter KeyguardNotificationVisibilityProvider keyguardNotificationVisibilityProvider, UiEventLogger uiEventLogger, UserTracker userTracker, DeviceProvisionedController deviceProvisionedController) { mContentResolver = contentResolver; DeviceProvisionedController deviceProvisionedController, SystemClock systemClock, GlobalSettings globalSettings) { mPowerManager = powerManager; mBatteryController = batteryController; mAmbientDisplayConfiguration = ambientDisplayConfiguration; Loading @@ -137,15 +141,16 @@ public class NotificationInterruptStateProviderImpl implements NotificationInter mKeyguardNotificationVisibilityProvider = keyguardNotificationVisibilityProvider; mUiEventLogger = uiEventLogger; mUserTracker = userTracker; mDeviceProvisionedController = deviceProvisionedController; mSystemClock = systemClock; mGlobalSettings = globalSettings; ContentObserver headsUpObserver = new ContentObserver(mainHandler) { @Override public void onChange(boolean selfChange) { boolean wasUsing = mUseHeadsUp; mUseHeadsUp = ENABLE_HEADS_UP && Settings.Global.HEADS_UP_OFF != Settings.Global.getInt( mContentResolver, Settings.Global.HEADS_UP_NOTIFICATIONS_ENABLED, Settings.Global.HEADS_UP_OFF); final boolean wasUsing = mUseHeadsUp; final boolean settingEnabled = HEADS_UP_OFF != mGlobalSettings.getInt(HEADS_UP_NOTIFICATIONS_ENABLED, HEADS_UP_OFF); mUseHeadsUp = ENABLE_HEADS_UP && settingEnabled; mLogger.logHeadsUpFeatureChanged(mUseHeadsUp); if (wasUsing != mUseHeadsUp) { if (!mUseHeadsUp) { Loading @@ -157,16 +162,15 @@ public class NotificationInterruptStateProviderImpl implements NotificationInter }; if (ENABLE_HEADS_UP) { mContentResolver.registerContentObserver( Settings.Global.getUriFor(Settings.Global.HEADS_UP_NOTIFICATIONS_ENABLED), mGlobalSettings.registerContentObserver( mGlobalSettings.getUriFor(HEADS_UP_NOTIFICATIONS_ENABLED), true, headsUpObserver); mContentResolver.registerContentObserver( Settings.Global.getUriFor(SETTING_HEADS_UP_TICKER), true, mGlobalSettings.registerContentObserver( mGlobalSettings.getUriFor(SETTING_HEADS_UP_TICKER), true, headsUpObserver); } headsUpObserver.onChange(true); // set up mDeviceProvisionedController = deviceProvisionedController; } @Override Loading Loading @@ -603,7 +607,7 @@ public class NotificationInterruptStateProviderImpl implements NotificationInter } final long when = notification.when; final long now = System.currentTimeMillis(); final long now = mSystemClock.currentTimeMillis(); final long age = now - when; if (age < MAX_HUN_WHEN_AGE_MS) { Loading packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptStateProviderImplTest.java +13 −3 Original line number Diff line number Diff line Loading @@ -27,6 +27,8 @@ import static android.app.NotificationManager.Policy.SUPPRESSED_EFFECT_AMBIENT; import static android.app.NotificationManager.Policy.SUPPRESSED_EFFECT_FULL_SCREEN_INTENT; import static android.app.NotificationManager.Policy.SUPPRESSED_EFFECT_PEEK; import static android.app.NotificationManager.VISIBILITY_NO_OVERRIDE; import static android.provider.Settings.Global.HEADS_UP_NOTIFICATIONS_ENABLED; import static android.provider.Settings.Global.HEADS_UP_ON; import static com.android.systemui.statusbar.NotificationEntryHelper.modifyRanking; import static com.android.systemui.statusbar.StatusBarState.KEYGUARD; Loading Loading @@ -74,6 +76,8 @@ import com.android.systemui.statusbar.policy.BatteryController; import com.android.systemui.statusbar.policy.DeviceProvisionedController; import com.android.systemui.statusbar.policy.HeadsUpManager; import com.android.systemui.statusbar.policy.KeyguardStateController; import com.android.systemui.util.settings.FakeGlobalSettings; import com.android.systemui.util.time.FakeSystemClock; import org.junit.Before; import org.junit.Test; Loading Loading @@ -120,6 +124,8 @@ public class NotificationInterruptStateProviderImplTest extends SysuiTestCase { UserTracker mUserTracker; @Mock DeviceProvisionedController mDeviceProvisionedController; FakeSystemClock mSystemClock; FakeGlobalSettings mGlobalSettings; private NotificationInterruptStateProviderImpl mNotifInterruptionStateProvider; Loading @@ -129,10 +135,12 @@ public class NotificationInterruptStateProviderImplTest extends SysuiTestCase { when(mUserTracker.getUserId()).thenReturn(ActivityManager.getCurrentUser()); mUiEventLoggerFake = new UiEventLoggerFake(); mSystemClock = new FakeSystemClock(); mGlobalSettings = new FakeGlobalSettings(); mGlobalSettings.putInt(HEADS_UP_NOTIFICATIONS_ENABLED, HEADS_UP_ON); mNotifInterruptionStateProvider = new NotificationInterruptStateProviderImpl( mContext.getContentResolver(), mPowerManager, mAmbientDisplayConfiguration, mBatteryController, Loading @@ -145,7 +153,9 @@ public class NotificationInterruptStateProviderImplTest extends SysuiTestCase { mKeyguardNotificationVisibilityProvider, mUiEventLoggerFake, mUserTracker, mDeviceProvisionedController); mDeviceProvisionedController, mSystemClock, mGlobalSettings); mNotifInterruptionStateProvider.mUseHeadsUp = true; } Loading Loading @@ -426,7 +436,7 @@ public class NotificationInterruptStateProviderImplTest extends SysuiTestCase { } private long makeWhenHoursAgo(long hoursAgo) { return System.currentTimeMillis() - (1000 * 60 * 60 * hoursAgo); return mSystemClock.currentTimeMillis() - (1000 * 60 * 60 * hoursAgo); } @Test Loading packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptStateProviderWrapperTest.kt +3 −2 Original line number Diff line number Diff line Loading @@ -39,7 +39,6 @@ class NotificationInterruptStateProviderWrapperTest : VisualInterruptionDecision get() = NotificationInterruptStateProviderWrapper( NotificationInterruptStateProviderImpl( context.contentResolver, powerManager, ambientDisplayConfiguration, batteryController, Loading @@ -52,7 +51,9 @@ class NotificationInterruptStateProviderWrapperTest : VisualInterruptionDecision keyguardNotificationVisibilityProvider, uiEventLogger, userTracker, deviceProvisionedController deviceProvisionedController, systemClock, globalSettings, ) .also { it.mUseHeadsUp = true } ) Loading packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/interruption/VisualInterruptionDecisionProviderTestBase.kt +8 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,8 @@ import android.graphics.drawable.Icon import android.hardware.display.FakeAmbientDisplayConfiguration import android.os.Handler import android.os.PowerManager import android.provider.Settings.Global.HEADS_UP_NOTIFICATIONS_ENABLED import android.provider.Settings.Global.HEADS_UP_ON import com.android.internal.logging.testing.UiEventLoggerFake import com.android.systemui.SysuiTestCase import com.android.systemui.res.R Loading @@ -47,6 +49,8 @@ import com.android.systemui.statusbar.policy.HeadsUpManager import com.android.systemui.statusbar.policy.KeyguardStateController import com.android.systemui.util.mockito.any import com.android.systemui.util.mockito.mock import com.android.systemui.util.settings.FakeGlobalSettings import com.android.systemui.util.time.FakeSystemClock import com.android.systemui.utils.leaks.FakeBatteryController import com.android.systemui.utils.leaks.LeakCheckedTest import junit.framework.Assert.assertTrue Loading @@ -61,6 +65,7 @@ abstract class VisualInterruptionDecisionProviderTestBase : SysuiTestCase() { protected val batteryController = FakeBatteryController(leakCheck) protected val deviceProvisionedController: DeviceProvisionedController = mock() protected val flags: NotifPipelineFlags = mock() protected val globalSettings = FakeGlobalSettings() protected val headsUpManager: HeadsUpManager = mock() protected val keyguardNotificationVisibilityProvider: KeyguardNotificationVisibilityProvider = mock() Loading @@ -69,6 +74,7 @@ abstract class VisualInterruptionDecisionProviderTestBase : SysuiTestCase() { protected val mainHandler: Handler = mock() protected val powerManager: PowerManager = mock() protected val statusBarStateController = FakeStatusBarStateController() protected val systemClock = FakeSystemClock() protected val uiEventLogger = UiEventLoggerFake() protected val userTracker = FakeUserTracker() Loading @@ -76,6 +82,8 @@ abstract class VisualInterruptionDecisionProviderTestBase : SysuiTestCase() { @Before fun setUp() { globalSettings.putInt(HEADS_UP_NOTIFICATIONS_ENABLED, HEADS_UP_ON) val user = UserInfo(ActivityManager.getCurrentUser(), "Current user", /* flags = */ 0) userTracker.set(listOf(user), /* currentUserIndex = */ 0) Loading packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CentralSurfacesImplTest.java +20 −9 Original line number Diff line number Diff line Loading @@ -20,6 +20,8 @@ import static android.app.NotificationManager.IMPORTANCE_HIGH; import static android.app.NotificationManager.Policy.SUPPRESSED_EFFECT_PEEK; import static android.app.StatusBarManager.WINDOW_STATE_HIDDEN; import static android.app.StatusBarManager.WINDOW_STATE_SHOWING; import static android.provider.Settings.Global.HEADS_UP_NOTIFICATIONS_ENABLED; import static android.provider.Settings.Global.HEADS_UP_ON; import static com.android.systemui.statusbar.StatusBarState.KEYGUARD; import static com.android.systemui.statusbar.StatusBarState.SHADE; Loading Loading @@ -51,7 +53,6 @@ import android.app.NotificationChannel; import android.app.WallpaperManager; import android.app.trust.TrustManager; import android.content.BroadcastReceiver; import android.content.ContentResolver; import android.content.IntentFilter; import android.hardware.devicestate.DeviceStateManager; import android.hardware.display.AmbientDisplayConfiguration; Loading Loading @@ -180,11 +181,16 @@ import com.android.systemui.util.WallpaperController; import com.android.systemui.util.concurrency.FakeExecutor; import com.android.systemui.util.concurrency.MessageRouterImpl; import com.android.systemui.util.kotlin.JavaAdapter; import com.android.systemui.util.settings.FakeGlobalSettings; import com.android.systemui.util.settings.GlobalSettings; import com.android.systemui.util.time.FakeSystemClock; import com.android.systemui.util.time.SystemClock; import com.android.systemui.volume.VolumeComponent; import com.android.wm.shell.bubbles.Bubbles; import com.android.wm.shell.startingsurface.StartingSurface; import dagger.Lazy; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; Loading @@ -198,8 +204,6 @@ import java.util.Optional; import javax.inject.Provider; import dagger.Lazy; @SmallTest @RunWith(AndroidTestingRunner.class) @RunWithLooper(setAsMainLooper = true) Loading Loading @@ -319,6 +323,7 @@ public class CentralSurfacesImplTest extends SysuiTestCase { private ShadeController mShadeController; private final FakeSystemClock mFakeSystemClock = new FakeSystemClock(); private final FakeGlobalSettings mFakeGlobalSettings = new FakeGlobalSettings(); private final FakeExecutor mMainExecutor = new FakeExecutor(mFakeSystemClock); private final FakeExecutor mUiBgExecutor = new FakeExecutor(mFakeSystemClock); private final FakeFeatureFlags mFeatureFlags = new FakeFeatureFlags(); Loading Loading @@ -349,8 +354,10 @@ public class CentralSurfacesImplTest extends SysuiTestCase { mPowerManager = new PowerManager(mContext, mPowerManagerService, thermalService, Handler.createAsync(Looper.myLooper())); mFakeGlobalSettings.putInt(HEADS_UP_NOTIFICATIONS_ENABLED, HEADS_UP_ON); mNotificationInterruptStateProvider = new TestableNotificationInterruptStateProviderImpl(mContext.getContentResolver(), new TestableNotificationInterruptStateProviderImpl( mPowerManager, mAmbientDisplayConfiguration, mStatusBarStateController, Loading @@ -363,7 +370,9 @@ public class CentralSurfacesImplTest extends SysuiTestCase { mock(KeyguardNotificationVisibilityProvider.class), mock(UiEventLogger.class), mUserTracker, mDeviceProvisionedController); mDeviceProvisionedController, mFakeSystemClock, mFakeGlobalSettings); mContext.addMockSystemService(TrustManager.class, mock(TrustManager.class)); mContext.addMockSystemService(FingerprintManager.class, mock(FingerprintManager.class)); Loading Loading @@ -1162,7 +1171,6 @@ public class CentralSurfacesImplTest extends SysuiTestCase { NotificationInterruptStateProviderImpl { TestableNotificationInterruptStateProviderImpl( ContentResolver contentResolver, PowerManager powerManager, AmbientDisplayConfiguration ambientDisplayConfiguration, StatusBarStateController controller, Loading @@ -1175,9 +1183,10 @@ public class CentralSurfacesImplTest extends SysuiTestCase { KeyguardNotificationVisibilityProvider keyguardNotificationVisibilityProvider, UiEventLogger uiEventLogger, UserTracker userTracker, DeviceProvisionedController deviceProvisionedController) { DeviceProvisionedController deviceProvisionedController, SystemClock systemClock, GlobalSettings globalSettings) { super( contentResolver, powerManager, ambientDisplayConfiguration, batteryController, Loading @@ -1190,7 +1199,9 @@ public class CentralSurfacesImplTest extends SysuiTestCase { keyguardNotificationVisibilityProvider, uiEventLogger, userTracker, deviceProvisionedController deviceProvisionedController, systemClock, globalSettings ); mUseHeadsUp = true; } Loading Loading
packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptStateProviderImpl.java +22 −18 Original line number Diff line number Diff line Loading @@ -16,6 +16,9 @@ package com.android.systemui.statusbar.notification.interruption; import static android.provider.Settings.Global.HEADS_UP_NOTIFICATIONS_ENABLED; import static android.provider.Settings.Global.HEADS_UP_OFF; import static com.android.systemui.statusbar.StatusBarState.SHADE; import static com.android.systemui.statusbar.notification.interruption.NotificationInterruptStateProviderImpl.NotificationInterruptEvent.FSI_SUPPRESSED_NO_HUN_OR_KEYGUARD; import static com.android.systemui.statusbar.notification.interruption.NotificationInterruptStateProviderImpl.NotificationInterruptEvent.FSI_SUPPRESSED_SUPPRESSIVE_BUBBLE_METADATA; Loading @@ -24,12 +27,10 @@ import static com.android.systemui.statusbar.notification.interruption.Notificat import android.app.Notification; import android.app.NotificationManager; import android.content.ContentResolver; import android.database.ContentObserver; import android.hardware.display.AmbientDisplayConfiguration; import android.os.Handler; import android.os.PowerManager; import android.provider.Settings; import android.service.notification.StatusBarNotification; import androidx.annotation.NonNull; Loading @@ -48,6 +49,8 @@ import com.android.systemui.statusbar.policy.BatteryController; import com.android.systemui.statusbar.policy.DeviceProvisionedController; import com.android.systemui.statusbar.policy.HeadsUpManager; import com.android.systemui.statusbar.policy.KeyguardStateController; import com.android.systemui.util.settings.GlobalSettings; import com.android.systemui.util.time.SystemClock; import java.util.ArrayList; import java.util.List; Loading @@ -66,7 +69,6 @@ public class NotificationInterruptStateProviderImpl implements NotificationInter private final List<NotificationInterruptSuppressor> mSuppressors = new ArrayList<>(); private final StatusBarStateController mStatusBarStateController; private final KeyguardStateController mKeyguardStateController; private final ContentResolver mContentResolver; private final PowerManager mPowerManager; private final AmbientDisplayConfiguration mAmbientDisplayConfiguration; private final BatteryController mBatteryController; Loading @@ -77,6 +79,8 @@ public class NotificationInterruptStateProviderImpl implements NotificationInter private final UiEventLogger mUiEventLogger; private final UserTracker mUserTracker; private final DeviceProvisionedController mDeviceProvisionedController; private final SystemClock mSystemClock; private final GlobalSettings mGlobalSettings; @VisibleForTesting protected boolean mUseHeadsUp = false; Loading Loading @@ -111,7 +115,6 @@ public class NotificationInterruptStateProviderImpl implements NotificationInter @Inject public NotificationInterruptStateProviderImpl( ContentResolver contentResolver, PowerManager powerManager, AmbientDisplayConfiguration ambientDisplayConfiguration, BatteryController batteryController, Loading @@ -124,8 +127,9 @@ public class NotificationInterruptStateProviderImpl implements NotificationInter KeyguardNotificationVisibilityProvider keyguardNotificationVisibilityProvider, UiEventLogger uiEventLogger, UserTracker userTracker, DeviceProvisionedController deviceProvisionedController) { mContentResolver = contentResolver; DeviceProvisionedController deviceProvisionedController, SystemClock systemClock, GlobalSettings globalSettings) { mPowerManager = powerManager; mBatteryController = batteryController; mAmbientDisplayConfiguration = ambientDisplayConfiguration; Loading @@ -137,15 +141,16 @@ public class NotificationInterruptStateProviderImpl implements NotificationInter mKeyguardNotificationVisibilityProvider = keyguardNotificationVisibilityProvider; mUiEventLogger = uiEventLogger; mUserTracker = userTracker; mDeviceProvisionedController = deviceProvisionedController; mSystemClock = systemClock; mGlobalSettings = globalSettings; ContentObserver headsUpObserver = new ContentObserver(mainHandler) { @Override public void onChange(boolean selfChange) { boolean wasUsing = mUseHeadsUp; mUseHeadsUp = ENABLE_HEADS_UP && Settings.Global.HEADS_UP_OFF != Settings.Global.getInt( mContentResolver, Settings.Global.HEADS_UP_NOTIFICATIONS_ENABLED, Settings.Global.HEADS_UP_OFF); final boolean wasUsing = mUseHeadsUp; final boolean settingEnabled = HEADS_UP_OFF != mGlobalSettings.getInt(HEADS_UP_NOTIFICATIONS_ENABLED, HEADS_UP_OFF); mUseHeadsUp = ENABLE_HEADS_UP && settingEnabled; mLogger.logHeadsUpFeatureChanged(mUseHeadsUp); if (wasUsing != mUseHeadsUp) { if (!mUseHeadsUp) { Loading @@ -157,16 +162,15 @@ public class NotificationInterruptStateProviderImpl implements NotificationInter }; if (ENABLE_HEADS_UP) { mContentResolver.registerContentObserver( Settings.Global.getUriFor(Settings.Global.HEADS_UP_NOTIFICATIONS_ENABLED), mGlobalSettings.registerContentObserver( mGlobalSettings.getUriFor(HEADS_UP_NOTIFICATIONS_ENABLED), true, headsUpObserver); mContentResolver.registerContentObserver( Settings.Global.getUriFor(SETTING_HEADS_UP_TICKER), true, mGlobalSettings.registerContentObserver( mGlobalSettings.getUriFor(SETTING_HEADS_UP_TICKER), true, headsUpObserver); } headsUpObserver.onChange(true); // set up mDeviceProvisionedController = deviceProvisionedController; } @Override Loading Loading @@ -603,7 +607,7 @@ public class NotificationInterruptStateProviderImpl implements NotificationInter } final long when = notification.when; final long now = System.currentTimeMillis(); final long now = mSystemClock.currentTimeMillis(); final long age = now - when; if (age < MAX_HUN_WHEN_AGE_MS) { Loading
packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptStateProviderImplTest.java +13 −3 Original line number Diff line number Diff line Loading @@ -27,6 +27,8 @@ import static android.app.NotificationManager.Policy.SUPPRESSED_EFFECT_AMBIENT; import static android.app.NotificationManager.Policy.SUPPRESSED_EFFECT_FULL_SCREEN_INTENT; import static android.app.NotificationManager.Policy.SUPPRESSED_EFFECT_PEEK; import static android.app.NotificationManager.VISIBILITY_NO_OVERRIDE; import static android.provider.Settings.Global.HEADS_UP_NOTIFICATIONS_ENABLED; import static android.provider.Settings.Global.HEADS_UP_ON; import static com.android.systemui.statusbar.NotificationEntryHelper.modifyRanking; import static com.android.systemui.statusbar.StatusBarState.KEYGUARD; Loading Loading @@ -74,6 +76,8 @@ import com.android.systemui.statusbar.policy.BatteryController; import com.android.systemui.statusbar.policy.DeviceProvisionedController; import com.android.systemui.statusbar.policy.HeadsUpManager; import com.android.systemui.statusbar.policy.KeyguardStateController; import com.android.systemui.util.settings.FakeGlobalSettings; import com.android.systemui.util.time.FakeSystemClock; import org.junit.Before; import org.junit.Test; Loading Loading @@ -120,6 +124,8 @@ public class NotificationInterruptStateProviderImplTest extends SysuiTestCase { UserTracker mUserTracker; @Mock DeviceProvisionedController mDeviceProvisionedController; FakeSystemClock mSystemClock; FakeGlobalSettings mGlobalSettings; private NotificationInterruptStateProviderImpl mNotifInterruptionStateProvider; Loading @@ -129,10 +135,12 @@ public class NotificationInterruptStateProviderImplTest extends SysuiTestCase { when(mUserTracker.getUserId()).thenReturn(ActivityManager.getCurrentUser()); mUiEventLoggerFake = new UiEventLoggerFake(); mSystemClock = new FakeSystemClock(); mGlobalSettings = new FakeGlobalSettings(); mGlobalSettings.putInt(HEADS_UP_NOTIFICATIONS_ENABLED, HEADS_UP_ON); mNotifInterruptionStateProvider = new NotificationInterruptStateProviderImpl( mContext.getContentResolver(), mPowerManager, mAmbientDisplayConfiguration, mBatteryController, Loading @@ -145,7 +153,9 @@ public class NotificationInterruptStateProviderImplTest extends SysuiTestCase { mKeyguardNotificationVisibilityProvider, mUiEventLoggerFake, mUserTracker, mDeviceProvisionedController); mDeviceProvisionedController, mSystemClock, mGlobalSettings); mNotifInterruptionStateProvider.mUseHeadsUp = true; } Loading Loading @@ -426,7 +436,7 @@ public class NotificationInterruptStateProviderImplTest extends SysuiTestCase { } private long makeWhenHoursAgo(long hoursAgo) { return System.currentTimeMillis() - (1000 * 60 * 60 * hoursAgo); return mSystemClock.currentTimeMillis() - (1000 * 60 * 60 * hoursAgo); } @Test Loading
packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptStateProviderWrapperTest.kt +3 −2 Original line number Diff line number Diff line Loading @@ -39,7 +39,6 @@ class NotificationInterruptStateProviderWrapperTest : VisualInterruptionDecision get() = NotificationInterruptStateProviderWrapper( NotificationInterruptStateProviderImpl( context.contentResolver, powerManager, ambientDisplayConfiguration, batteryController, Loading @@ -52,7 +51,9 @@ class NotificationInterruptStateProviderWrapperTest : VisualInterruptionDecision keyguardNotificationVisibilityProvider, uiEventLogger, userTracker, deviceProvisionedController deviceProvisionedController, systemClock, globalSettings, ) .also { it.mUseHeadsUp = true } ) Loading
packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/interruption/VisualInterruptionDecisionProviderTestBase.kt +8 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,8 @@ import android.graphics.drawable.Icon import android.hardware.display.FakeAmbientDisplayConfiguration import android.os.Handler import android.os.PowerManager import android.provider.Settings.Global.HEADS_UP_NOTIFICATIONS_ENABLED import android.provider.Settings.Global.HEADS_UP_ON import com.android.internal.logging.testing.UiEventLoggerFake import com.android.systemui.SysuiTestCase import com.android.systemui.res.R Loading @@ -47,6 +49,8 @@ import com.android.systemui.statusbar.policy.HeadsUpManager import com.android.systemui.statusbar.policy.KeyguardStateController import com.android.systemui.util.mockito.any import com.android.systemui.util.mockito.mock import com.android.systemui.util.settings.FakeGlobalSettings import com.android.systemui.util.time.FakeSystemClock import com.android.systemui.utils.leaks.FakeBatteryController import com.android.systemui.utils.leaks.LeakCheckedTest import junit.framework.Assert.assertTrue Loading @@ -61,6 +65,7 @@ abstract class VisualInterruptionDecisionProviderTestBase : SysuiTestCase() { protected val batteryController = FakeBatteryController(leakCheck) protected val deviceProvisionedController: DeviceProvisionedController = mock() protected val flags: NotifPipelineFlags = mock() protected val globalSettings = FakeGlobalSettings() protected val headsUpManager: HeadsUpManager = mock() protected val keyguardNotificationVisibilityProvider: KeyguardNotificationVisibilityProvider = mock() Loading @@ -69,6 +74,7 @@ abstract class VisualInterruptionDecisionProviderTestBase : SysuiTestCase() { protected val mainHandler: Handler = mock() protected val powerManager: PowerManager = mock() protected val statusBarStateController = FakeStatusBarStateController() protected val systemClock = FakeSystemClock() protected val uiEventLogger = UiEventLoggerFake() protected val userTracker = FakeUserTracker() Loading @@ -76,6 +82,8 @@ abstract class VisualInterruptionDecisionProviderTestBase : SysuiTestCase() { @Before fun setUp() { globalSettings.putInt(HEADS_UP_NOTIFICATIONS_ENABLED, HEADS_UP_ON) val user = UserInfo(ActivityManager.getCurrentUser(), "Current user", /* flags = */ 0) userTracker.set(listOf(user), /* currentUserIndex = */ 0) Loading
packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CentralSurfacesImplTest.java +20 −9 Original line number Diff line number Diff line Loading @@ -20,6 +20,8 @@ import static android.app.NotificationManager.IMPORTANCE_HIGH; import static android.app.NotificationManager.Policy.SUPPRESSED_EFFECT_PEEK; import static android.app.StatusBarManager.WINDOW_STATE_HIDDEN; import static android.app.StatusBarManager.WINDOW_STATE_SHOWING; import static android.provider.Settings.Global.HEADS_UP_NOTIFICATIONS_ENABLED; import static android.provider.Settings.Global.HEADS_UP_ON; import static com.android.systemui.statusbar.StatusBarState.KEYGUARD; import static com.android.systemui.statusbar.StatusBarState.SHADE; Loading Loading @@ -51,7 +53,6 @@ import android.app.NotificationChannel; import android.app.WallpaperManager; import android.app.trust.TrustManager; import android.content.BroadcastReceiver; import android.content.ContentResolver; import android.content.IntentFilter; import android.hardware.devicestate.DeviceStateManager; import android.hardware.display.AmbientDisplayConfiguration; Loading Loading @@ -180,11 +181,16 @@ import com.android.systemui.util.WallpaperController; import com.android.systemui.util.concurrency.FakeExecutor; import com.android.systemui.util.concurrency.MessageRouterImpl; import com.android.systemui.util.kotlin.JavaAdapter; import com.android.systemui.util.settings.FakeGlobalSettings; import com.android.systemui.util.settings.GlobalSettings; import com.android.systemui.util.time.FakeSystemClock; import com.android.systemui.util.time.SystemClock; import com.android.systemui.volume.VolumeComponent; import com.android.wm.shell.bubbles.Bubbles; import com.android.wm.shell.startingsurface.StartingSurface; import dagger.Lazy; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; Loading @@ -198,8 +204,6 @@ import java.util.Optional; import javax.inject.Provider; import dagger.Lazy; @SmallTest @RunWith(AndroidTestingRunner.class) @RunWithLooper(setAsMainLooper = true) Loading Loading @@ -319,6 +323,7 @@ public class CentralSurfacesImplTest extends SysuiTestCase { private ShadeController mShadeController; private final FakeSystemClock mFakeSystemClock = new FakeSystemClock(); private final FakeGlobalSettings mFakeGlobalSettings = new FakeGlobalSettings(); private final FakeExecutor mMainExecutor = new FakeExecutor(mFakeSystemClock); private final FakeExecutor mUiBgExecutor = new FakeExecutor(mFakeSystemClock); private final FakeFeatureFlags mFeatureFlags = new FakeFeatureFlags(); Loading Loading @@ -349,8 +354,10 @@ public class CentralSurfacesImplTest extends SysuiTestCase { mPowerManager = new PowerManager(mContext, mPowerManagerService, thermalService, Handler.createAsync(Looper.myLooper())); mFakeGlobalSettings.putInt(HEADS_UP_NOTIFICATIONS_ENABLED, HEADS_UP_ON); mNotificationInterruptStateProvider = new TestableNotificationInterruptStateProviderImpl(mContext.getContentResolver(), new TestableNotificationInterruptStateProviderImpl( mPowerManager, mAmbientDisplayConfiguration, mStatusBarStateController, Loading @@ -363,7 +370,9 @@ public class CentralSurfacesImplTest extends SysuiTestCase { mock(KeyguardNotificationVisibilityProvider.class), mock(UiEventLogger.class), mUserTracker, mDeviceProvisionedController); mDeviceProvisionedController, mFakeSystemClock, mFakeGlobalSettings); mContext.addMockSystemService(TrustManager.class, mock(TrustManager.class)); mContext.addMockSystemService(FingerprintManager.class, mock(FingerprintManager.class)); Loading Loading @@ -1162,7 +1171,6 @@ public class CentralSurfacesImplTest extends SysuiTestCase { NotificationInterruptStateProviderImpl { TestableNotificationInterruptStateProviderImpl( ContentResolver contentResolver, PowerManager powerManager, AmbientDisplayConfiguration ambientDisplayConfiguration, StatusBarStateController controller, Loading @@ -1175,9 +1183,10 @@ public class CentralSurfacesImplTest extends SysuiTestCase { KeyguardNotificationVisibilityProvider keyguardNotificationVisibilityProvider, UiEventLogger uiEventLogger, UserTracker userTracker, DeviceProvisionedController deviceProvisionedController) { DeviceProvisionedController deviceProvisionedController, SystemClock systemClock, GlobalSettings globalSettings) { super( contentResolver, powerManager, ambientDisplayConfiguration, batteryController, Loading @@ -1190,7 +1199,9 @@ public class CentralSurfacesImplTest extends SysuiTestCase { keyguardNotificationVisibilityProvider, uiEventLogger, userTracker, deviceProvisionedController deviceProvisionedController, systemClock, globalSettings ); mUseHeadsUp = true; } Loading