Merge "Update [more] Ravenwood docs to reflect pause in development." into main
diff --git a/packages/SettingsLib/Spa/screenshot/robotests/assets/phone/light_landscape_spinner.png b/packages/SettingsLib/Spa/screenshot/robotests/assets/phone/light_landscape_spinner.png
index bb518c0..d156f95 100644
--- a/packages/SettingsLib/Spa/screenshot/robotests/assets/phone/light_landscape_spinner.png
+++ b/packages/SettingsLib/Spa/screenshot/robotests/assets/phone/light_landscape_spinner.png
Binary files differ
diff --git a/packages/SettingsLib/Spa/screenshot/robotests/assets/phone/light_portrait_spinner.png b/packages/SettingsLib/Spa/screenshot/robotests/assets/phone/light_portrait_spinner.png
index bb518c0..d156f95 100644
--- a/packages/SettingsLib/Spa/screenshot/robotests/assets/phone/light_portrait_spinner.png
+++ b/packages/SettingsLib/Spa/screenshot/robotests/assets/phone/light_portrait_spinner.png
Binary files differ
diff --git a/packages/SettingsLib/Spa/screenshot/robotests/assets/tablet/dark_portrait_footer.png b/packages/SettingsLib/Spa/screenshot/robotests/assets/tablet/dark_portrait_footer.png
index 10869f2..fe877ee 100644
--- a/packages/SettingsLib/Spa/screenshot/robotests/assets/tablet/dark_portrait_footer.png
+++ b/packages/SettingsLib/Spa/screenshot/robotests/assets/tablet/dark_portrait_footer.png
Binary files differ
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/FullScreenIntentDecisionProvider.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/FullScreenIntentDecisionProvider.kt
index 2707ed8..b77748e 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/FullScreenIntentDecisionProvider.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/FullScreenIntentDecisionProvider.kt
@@ -28,6 +28,7 @@
import com.android.systemui.statusbar.notification.interruption.FullScreenIntentDecisionProvider.DecisionImpl.FSI_KEYGUARD_OCCLUDED
import com.android.systemui.statusbar.notification.interruption.FullScreenIntentDecisionProvider.DecisionImpl.FSI_KEYGUARD_SHOWING
import com.android.systemui.statusbar.notification.interruption.FullScreenIntentDecisionProvider.DecisionImpl.FSI_LOCKED_SHADE
+import com.android.systemui.statusbar.notification.interruption.FullScreenIntentDecisionProvider.DecisionImpl.FSI_USER_SETUP_INCOMPLETE
import com.android.systemui.statusbar.notification.interruption.FullScreenIntentDecisionProvider.DecisionImpl.NO_FSI_EXPECTED_TO_HUN
import com.android.systemui.statusbar.notification.interruption.FullScreenIntentDecisionProvider.DecisionImpl.NO_FSI_NOT_IMPORTANT_ENOUGH
import com.android.systemui.statusbar.notification.interruption.FullScreenIntentDecisionProvider.DecisionImpl.NO_FSI_NO_FULL_SCREEN_INTENT
@@ -101,6 +102,7 @@
FSI_KEYGUARD_OCCLUDED(true, "keyguard is occluded"),
FSI_LOCKED_SHADE(true, "locked shade"),
FSI_DEVICE_NOT_PROVISIONED(true, "device not provisioned"),
+ FSI_USER_SETUP_INCOMPLETE(true, "user setup incomplete"),
NO_FSI_NO_HUN_OR_KEYGUARD(
false,
"no HUN or keyguard",
@@ -189,6 +191,10 @@
return FSI_DEVICE_NOT_PROVISIONED
}
+ if (!deviceProvisionedController.isCurrentUserSetup) {
+ return FSI_USER_SETUP_INCOMPLETE
+ }
+
return NO_FSI_NO_HUN_OR_KEYGUARD
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptStateProvider.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptStateProvider.java
index b0155f1..c084482 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptStateProvider.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptStateProvider.java
@@ -104,7 +104,11 @@
/**
* The device is not provisioned, launch FSI.
*/
- FSI_NOT_PROVISIONED(true);
+ FSI_NOT_PROVISIONED(true),
+ /**
+ * The current user has not completed setup, launch FSI.
+ */
+ FSI_USER_SETUP_INCOMPLETE(true);
public final boolean shouldLaunch;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptStateProviderImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptStateProviderImpl.java
index dc9eeb3..a655c72 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptStateProviderImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptStateProviderImpl.java
@@ -362,6 +362,12 @@
suppressedByDND);
}
+ // The current user hasn't completed setup, launch FSI.
+ if (!mDeviceProvisionedController.isCurrentUserSetup()) {
+ return getDecisionGivenSuppression(FullScreenIntentDecision.FSI_USER_SETUP_INCOMPLETE,
+ suppressedByDND);
+ }
+
// Detect the case determined by b/231322873 to launch FSI while device is in use,
// as blocked by the correct implementation, and report the event.
return getDecisionGivenSuppression(FullScreenIntentDecision.NO_FSI_NO_HUN_OR_KEYGUARD,
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/interruption/VisualInterruptionDecisionProviderTestBase.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/interruption/VisualInterruptionDecisionProviderTestBase.kt
index f89b9cd..66a306e 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/interruption/VisualInterruptionDecisionProviderTestBase.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/interruption/VisualInterruptionDecisionProviderTestBase.kt
@@ -53,8 +53,6 @@
import com.android.internal.logging.UiEventLogger.UiEventEnum
import com.android.internal.logging.testing.UiEventLoggerFake
import com.android.systemui.SysuiTestCase
-import com.android.systemui.broadcast.BroadcastDispatcher
-import com.android.systemui.broadcast.FakeBroadcastDispatcher
import com.android.systemui.log.LogBuffer
import com.android.systemui.log.LogcatEchoTracker
import com.android.systemui.log.core.LogLevel
@@ -150,7 +148,10 @@
@Before
fun setUp() {
- val user = UserInfo(ActivityManager.getCurrentUser(), "Current user", /* flags = */ 0)
+ val userId = ActivityManager.getCurrentUser()
+ val user = UserInfo(userId, "Current user", /* flags = */ 0)
+
+ deviceProvisionedController.currentUser = userId
userTracker.set(listOf(user), /* currentUserIndex = */ 0)
provider.start()
@@ -823,6 +824,13 @@
}
@Test
+ fun testShouldFsi_userSetupIncomplete() {
+ ensureUserSetupIncompleteFsiState()
+ assertShouldFsi(buildFsiEntry())
+ assertNoEventsLogged()
+ }
+
+ @Test
fun testShouldNotFsi_noHunOrKeyguard() {
ensureNoHunOrKeyguardFsiState()
assertShouldNotFsi(buildFsiEntry())
@@ -888,7 +896,8 @@
var statusBarState: Int? = null,
var keyguardIsShowing: Boolean = false,
var keyguardIsOccluded: Boolean = false,
- var deviceProvisioned: Boolean = true
+ var deviceProvisioned: Boolean = true,
+ var currentUserSetup: Boolean = true
)
protected fun setState(state: State): Unit =
@@ -925,6 +934,7 @@
keyguardStateController.isShowing = keyguardIsShowing
deviceProvisionedController.deviceProvisioned = deviceProvisioned
+ deviceProvisionedController.isCurrentUserSetup = currentUserSetup
}
protected fun ensureState(block: State.() -> Unit) =
@@ -999,6 +1009,18 @@
hunSettingEnabled = false
keyguardIsShowing = false
deviceProvisioned = false
+ currentUserSetup = true
+ run(block)
+ }
+
+ protected fun ensureUserSetupIncompleteFsiState(block: State.() -> Unit = {}) = ensureState {
+ isInteractive = true
+ isDreaming = false
+ statusBarState = SHADE
+ hunSettingEnabled = false
+ keyguardIsShowing = false
+ deviceProvisioned = true
+ currentUserSetup = false
run(block)
}
@@ -1009,6 +1031,7 @@
hunSettingEnabled = false
keyguardIsShowing = false
deviceProvisioned = true
+ currentUserSetup = true
run(block)
}
@@ -1216,7 +1239,7 @@
neb.setImportance(importance)
val channel =
- NotificationChannel(TEST_CHANNEL_ID, TEST_CHANNEL_NAME, importance)
+ NotificationChannel(TEST_CHANNEL_ID, TEST_CHANNEL_NAME, importance)
channel.isImportantConversation = isImportantConversation
neb.setChannel(channel)
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/policy/FakeDeviceProvisionedController.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/policy/FakeDeviceProvisionedController.kt
index aa2c2a2..ebcabf8 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/policy/FakeDeviceProvisionedController.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/policy/FakeDeviceProvisionedController.kt
@@ -39,8 +39,16 @@
callbacks.toSet().forEach { it.onUserSwitched() }
}
- fun setUserSetup(userId: Int) {
- usersSetup.add(userId)
+ fun setUserSetup(userId: Int, isSetup: Boolean = true) {
+ if (isSetup) {
+ usersSetup.add(userId)
+ } else {
+ usersSetup.remove(userId)
+ }
callbacks.toSet().forEach { it.onUserSetupChanged() }
}
+
+ fun setCurrentUserSetup(isSetup: Boolean) {
+ setUserSetup(currentUser, isSetup)
+ }
}