summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author David Saff <saff@google.com> 2024-12-19 12:20:45 -0800
committer Android (Google) Code Review <android-gerrit@google.com> 2024-12-19 12:20:45 -0800
commit849aceb1f7c47e9ff35f99c4efb976bee07793c2 (patch)
treec08803cf8e9b67932b939ca66a18bddcb1991c5e
parent786cb5767fd1f78604d834edf5af4a53e3a2a81b (diff)
parent3ad486a5567859ffcc7ad6878d866fe0a03fe89d (diff)
Merge "Thread guard teardown to prevent crash" into main
-rw-r--r--packages/SystemUI/multivalentTests/src/com/android/systemui/qs/external/TileServiceRequestControllerTestComposeOn.kt12
1 files changed, 8 insertions, 4 deletions
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/external/TileServiceRequestControllerTestComposeOn.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/external/TileServiceRequestControllerTestComposeOn.kt
index f02856c2f5ae..f48027beef12 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/external/TileServiceRequestControllerTestComposeOn.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/external/TileServiceRequestControllerTestComposeOn.kt
@@ -148,7 +148,7 @@ class TileServiceRequestControllerTestComposeOn : SysuiTestCase() {
@Test
fun showAllUsers_set() =
kosmos.runTest {
- val dialog = runOnMainThreadAndWaitForIdleSync {
+ val dialog = createDialog {
underTest.requestTileAdd(
TEST_UID,
TEST_COMPONENT,
@@ -158,7 +158,6 @@ class TileServiceRequestControllerTestComposeOn : SysuiTestCase() {
Callback(),
)!!
}
- onTeardown { dialog.cancel() }
assertThat(dialog.isShowForAllUsers).isTrue()
}
@@ -166,7 +165,7 @@ class TileServiceRequestControllerTestComposeOn : SysuiTestCase() {
@Test
fun cancelOnTouchOutside_set() =
kosmos.runTest {
- val dialog = runOnMainThreadAndWaitForIdleSync {
+ val dialog = createDialog {
underTest.requestTileAdd(
TEST_UID,
TEST_COMPONENT,
@@ -176,11 +175,16 @@ class TileServiceRequestControllerTestComposeOn : SysuiTestCase() {
Callback(),
)!!
}
- onTeardown { dialog.cancel() }
assertThat(dialog.isCancelOnTouchOutside).isTrue()
}
+ fun <T : DialogInterface> createDialog(constructor: () -> T): T {
+ val dialog = runOnMainThreadAndWaitForIdleSync { constructor() }
+ onTeardown { runOnMainThreadAndWaitForIdleSync { dialog.cancel() } }
+ return dialog
+ }
+
@Test
fun positiveAction_tileAdded() =
kosmos.runTest {