Update the tests to destroy the activity.

Bug: 329219676
Bug: 327636437
Bug: 329219676
Bug: 319463414
Test: Removed failing tests
Change-Id: Idf49b129fb88e68472e75188b9485e6ea8968431
diff --git a/compose/foundation/foundation-layout/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/layout/WindowInsetsDeviceTest.kt b/compose/foundation/foundation-layout/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/layout/WindowInsetsDeviceTest.kt
index e99233e..6800c39 100644
--- a/compose/foundation/foundation-layout/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/layout/WindowInsetsDeviceTest.kt
+++ b/compose/foundation/foundation-layout/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/layout/WindowInsetsDeviceTest.kt
@@ -46,6 +46,8 @@
 import androidx.core.view.WindowInsetsCompat
 import androidx.core.view.WindowInsetsControllerCompat
 import androidx.core.view.children
+import androidx.lifecycle.DefaultLifecycleObserver
+import androidx.lifecycle.LifecycleOwner
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.MediumTest
 import androidx.test.filters.SdkSuppress
@@ -64,10 +66,22 @@
 class WindowInsetsDeviceTest {
     @get:Rule
     val rule = createAndroidComposeRule<WindowInsetsActivity>()
+    private lateinit var finishLatch: CountDownLatch
+    private val finishLatchGetter
+        get() = finishLatch
+    private val observer = object : DefaultLifecycleObserver {
+        override fun onDestroy(owner: LifecycleOwner) {
+            finishLatchGetter.countDown()
+        }
+    }
 
     @Before
     fun setup() {
         rule.activity.createdLatch.await(1, TimeUnit.SECONDS)
+        finishLatch = CountDownLatch(1)
+        rule.runOnUiThread {
+            rule.activity.lifecycle.addObserver(observer)
+        }
     }
 
     @After
@@ -75,6 +89,7 @@
         rule.runOnUiThread {
             rule.activity.finish()
         }
+        assertThat(finishLatch.await(1, TimeUnit.SECONDS)).isTrue()
     }
 
     @OptIn(ExperimentalLayoutApi::class)
@@ -91,8 +106,12 @@
         val innerComposable: @Composable () -> Unit = {
             imeInset2 = WindowInsets.ime.getBottom(LocalDensity.current)
             Box(
-                Modifier.fillMaxSize().imePadding().imeNestedScroll()
-                    .nestedScroll(connection, dispatcher).background(
+                Modifier
+                    .fillMaxSize()
+                    .imePadding()
+                    .imeNestedScroll()
+                    .nestedScroll(connection, dispatcher)
+                    .background(
                         Color.Cyan
                     )
             )
diff --git a/compose/foundation/foundation-layout/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/layout/WindowInsetsPaddingTest.kt b/compose/foundation/foundation-layout/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/layout/WindowInsetsPaddingTest.kt
index 7e408e5..c72c7d7 100644
--- a/compose/foundation/foundation-layout/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/layout/WindowInsetsPaddingTest.kt
+++ b/compose/foundation/foundation-layout/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/layout/WindowInsetsPaddingTest.kt
@@ -53,11 +53,15 @@
 import androidx.core.view.DisplayCutoutCompat
 import androidx.core.view.WindowInsetsCompat
 import androidx.core.view.forEach
+import androidx.lifecycle.DefaultLifecycleObserver
+import androidx.lifecycle.LifecycleOwner
 import androidx.test.ext.junit.rules.ActivityScenarioRule
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.MediumTest
 import androidx.test.filters.SdkSuppress
 import com.google.common.truth.Truth.assertThat
+import java.util.concurrent.CountDownLatch
+import java.util.concurrent.TimeUnit
 import kotlin.math.roundToInt
 import org.junit.After
 import org.junit.Before
@@ -73,9 +77,22 @@
 
     private lateinit var insetsView: InsetsView
 
+    private lateinit var finishLatch: CountDownLatch
+    private val finishLatchGetter
+        get() = finishLatch
+    private val observer = object : DefaultLifecycleObserver {
+        override fun onDestroy(owner: LifecycleOwner) {
+            finishLatchGetter.countDown()
+        }
+    }
+
     @Before
     fun setup() {
         WindowInsetsHolder.setUseTestInsets(true)
+        finishLatch = CountDownLatch(1)
+        rule.runOnUiThread {
+            rule.activity.lifecycle.addObserver(observer)
+        }
     }
 
     @After
@@ -84,6 +101,7 @@
         rule.runOnUiThread {
             rule.activity.finish()
         }
+        assertThat(finishLatch.await(1, TimeUnit.SECONDS)).isTrue()
     }
 
     @Test
diff --git a/compose/foundation/foundation-layout/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/layout/WindowInsetsSizeTest.kt b/compose/foundation/foundation-layout/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/layout/WindowInsetsSizeTest.kt
index 7c113ab..7fdd264 100644
--- a/compose/foundation/foundation-layout/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/layout/WindowInsetsSizeTest.kt
+++ b/compose/foundation/foundation-layout/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/layout/WindowInsetsSizeTest.kt
@@ -36,10 +36,14 @@
 import androidx.core.graphics.Insets as AndroidXInsets
 import androidx.core.view.DisplayCutoutCompat
 import androidx.core.view.WindowInsetsCompat
+import androidx.lifecycle.DefaultLifecycleObserver
+import androidx.lifecycle.LifecycleOwner
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.MediumTest
 import androidx.test.filters.SdkSuppress
 import com.google.common.truth.Truth.assertThat
+import java.util.concurrent.CountDownLatch
+import java.util.concurrent.TimeUnit
 import org.junit.After
 import org.junit.Before
 import org.junit.Rule
@@ -54,9 +58,22 @@
 
     private lateinit var insetsView: InsetsView
 
+    private lateinit var finishLatch: CountDownLatch
+    private val finishLatchGetter
+        get() = finishLatch
+    private val observer = object : DefaultLifecycleObserver {
+        override fun onDestroy(owner: LifecycleOwner) {
+            finishLatchGetter.countDown()
+        }
+    }
+
     @Before
     fun setup() {
         WindowInsetsHolder.setUseTestInsets(true)
+        finishLatch = CountDownLatch(1)
+        rule.runOnUiThread {
+            rule.activity.lifecycle.addObserver(observer)
+        }
     }
 
     @After
@@ -65,6 +82,7 @@
         rule.runOnUiThread {
             rule.activity.finish()
         }
+        assertThat(finishLatch.await(1, TimeUnit.SECONDS)).isTrue()
     }
 
     @OptIn(ExperimentalLayoutApi::class)