Merge "Revert "Add information about size into WindowInfo"" into androidx-main
diff --git a/camera/integration-tests/uiwidgetstestapp/build.gradle b/camera/integration-tests/uiwidgetstestapp/build.gradle
index edc8649..2466066 100644
--- a/camera/integration-tests/uiwidgetstestapp/build.gradle
+++ b/camera/integration-tests/uiwidgetstestapp/build.gradle
@@ -101,7 +101,6 @@
     androidTestImplementation("androidx.annotation:annotation-experimental:1.4.1")
     androidTestImplementation(project(":concurrent:concurrent-futures"))
     androidTestImplementation(project(":concurrent:concurrent-futures-ktx"))
-    androidTestImplementation(project(":window:window"))
 
     // Testing framework
     androidTestImplementation(libs.testExtJunit)
diff --git a/compose/ui/ui/api/current.txt b/compose/ui/ui/api/current.txt
index a1a5b93..cc929b6 100644
--- a/compose/ui/ui/api/current.txt
+++ b/compose/ui/ui/api/current.txt
@@ -3189,10 +3189,8 @@
   }
 
   @androidx.compose.runtime.Stable public interface WindowInfo {
-    method public default long getContainerSize();
     method public default int getKeyboardModifiers();
     method public boolean isWindowFocused();
-    property public default long containerSize;
     property public abstract boolean isWindowFocused;
     property public default int keyboardModifiers;
   }
diff --git a/compose/ui/ui/api/restricted_current.txt b/compose/ui/ui/api/restricted_current.txt
index 1c68e96..2c9b7cf 100644
--- a/compose/ui/ui/api/restricted_current.txt
+++ b/compose/ui/ui/api/restricted_current.txt
@@ -3247,10 +3247,8 @@
   }
 
   @androidx.compose.runtime.Stable public interface WindowInfo {
-    method public default long getContainerSize();
     method public default int getKeyboardModifiers();
     method public boolean isWindowFocused();
-    property public default long containerSize;
     property public abstract boolean isWindowFocused;
     property public default int keyboardModifiers;
   }
diff --git a/compose/ui/ui/build.gradle b/compose/ui/ui/build.gradle
index 433b926..8905d36 100644
--- a/compose/ui/ui/build.gradle
+++ b/compose/ui/ui/build.gradle
@@ -90,7 +90,6 @@
                 api("androidx.lifecycle:lifecycle-runtime-compose:2.8.3")
                 implementation("androidx.lifecycle:lifecycle-viewmodel:2.6.1")
                 implementation("androidx.emoji2:emoji2:1.2.0")
-                implementation("androidx.window:window:1.3.0")
 
                 implementation("androidx.profileinstaller:profileinstaller:1.3.1")
 
diff --git a/compose/ui/ui/src/androidInstrumentedTest/kotlin/androidx/compose/ui/platform/WindowInfoCompositionLocalTest.kt b/compose/ui/ui/src/androidInstrumentedTest/kotlin/androidx/compose/ui/platform/WindowInfoCompositionLocalTest.kt
index 5d4e345..e543a0e 100644
--- a/compose/ui/ui/src/androidInstrumentedTest/kotlin/androidx/compose/ui/platform/WindowInfoCompositionLocalTest.kt
+++ b/compose/ui/ui/src/androidInstrumentedTest/kotlin/androidx/compose/ui/platform/WindowInfoCompositionLocalTest.kt
@@ -27,7 +27,6 @@
 import androidx.compose.ui.input.pointer.PointerKeyboardModifiers
 import androidx.compose.ui.test.junit4.AndroidComposeTestRule
 import androidx.compose.ui.test.junit4.createComposeRule
-import androidx.compose.ui.unit.IntSize
 import androidx.compose.ui.window.Dialog
 import androidx.compose.ui.window.Popup
 import androidx.compose.ui.window.PopupProperties
@@ -271,24 +270,4 @@
         rule.waitForIdle()
         assertThat(keyModifiers.packedValue).isEqualTo(0)
     }
-
-    @Test
-    fun windowInfo_containerSize() {
-        // Arrange.
-        var containerSize = IntSize.Zero
-        var recompositions = 0
-        rule.setContent {
-            BasicText("Main Window")
-            val windowInfo = LocalWindowInfo.current
-            containerSize = windowInfo.containerSize
-            recompositions++
-        }
-
-        // Act.
-        rule.waitForIdle()
-
-        // Assert.
-        assertThat(containerSize).isNotEqualTo(IntSize.Zero)
-        assertThat(recompositions).isEqualTo(1)
-    }
 }
diff --git a/compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/platform/AndroidComposeView.android.kt b/compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/platform/AndroidComposeView.android.kt
index 176a32f..82acffe 100644
--- a/compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/platform/AndroidComposeView.android.kt
+++ b/compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/platform/AndroidComposeView.android.kt
@@ -188,7 +188,6 @@
 import androidx.compose.ui.unit.Constraints
 import androidx.compose.ui.unit.Density
 import androidx.compose.ui.unit.IntOffset
-import androidx.compose.ui.unit.IntSize
 import androidx.compose.ui.unit.LayoutDirection
 import androidx.compose.ui.util.fastIsFinite
 import androidx.compose.ui.util.fastLastOrNull
@@ -210,7 +209,6 @@
 import androidx.lifecycle.findViewTreeLifecycleOwner
 import androidx.savedstate.SavedStateRegistryOwner
 import androidx.savedstate.findViewTreeSavedStateRegistryOwner
-import androidx.window.layout.WindowMetricsCalculator
 import java.lang.reflect.Method
 import java.util.function.Consumer
 import kotlin.coroutines.CoroutineContext
@@ -577,10 +575,7 @@
     // on a different position, but also in the position of each of the grandparents as all these
     // positions add up to final global position)
     private val globalLayoutListener =
-        ViewTreeObserver.OnGlobalLayoutListener {
-            updatePositionCacheAndDispatch()
-            updateWindowMetrics()
-        }
+        ViewTreeObserver.OnGlobalLayoutListener { updatePositionCacheAndDispatch() }
 
     // executed when a scrolling container like ScrollView of RecyclerView performed the scroll,
     // this could affect our global position
@@ -1708,7 +1703,6 @@
     override fun onAttachedToWindow() {
         super.onAttachedToWindow()
         _windowInfo.isWindowFocused = hasWindowFocus()
-        updateWindowMetrics()
         invalidateLayoutNodeMeasurement(root)
         invalidateLayers(root)
         snapshotObserver.startObserving()
@@ -2228,11 +2222,6 @@
         viewToWindowMatrix.invertTo(windowToViewMatrix)
     }
 
-    private fun updateWindowMetrics() {
-        val metrics = WindowMetricsCalculator.getOrCreate().computeCurrentWindowMetrics(context)
-        _windowInfo.containerSize = metrics.bounds.toComposeIntSize()
-    }
-
     override fun onCheckIsTextEditor(): Boolean {
         val parentSession =
             textInputSessionMutex.currentSession
@@ -2265,7 +2254,6 @@
     override fun onConfigurationChanged(newConfig: Configuration) {
         super.onConfigurationChanged(newConfig)
         density = Density(context)
-        updateWindowMetrics()
         if (newConfig.fontWeightAdjustmentCompat != currentFontWeightAdjustment) {
             currentFontWeightAdjustment = newConfig.fontWeightAdjustmentCompat
             fontFamilyResolver = createFontFamilyResolver(context)
@@ -2855,5 +2843,3 @@
     )
     return ViewCompatShims.getContentCaptureSession(this)
 }
-
-private fun Rect.toComposeIntSize() = IntSize(width = width(), height = height())
diff --git a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/platform/WindowInfo.kt b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/platform/WindowInfo.kt
index 6cba4e3..d92f726 100644
--- a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/platform/WindowInfo.kt
+++ b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/platform/WindowInfo.kt
@@ -24,7 +24,6 @@
 import androidx.compose.runtime.snapshotFlow
 import androidx.compose.ui.input.pointer.EmptyPointerKeyboardModifiers
 import androidx.compose.ui.input.pointer.PointerKeyboardModifiers
-import androidx.compose.ui.unit.IntSize
 
 /** Provides information about the Window that is hosting this compose hierarchy. */
 @Stable
@@ -42,10 +41,6 @@
     @Suppress("OPT_IN_MARKER_ON_WRONG_TARGET")
     val keyboardModifiers: PointerKeyboardModifiers
         get() = WindowInfoImpl.GlobalKeyboardModifiers.value
-
-    /** Size of the window's content container in pixels. */
-    val containerSize: IntSize
-        get() = IntSize.Zero
 }
 
 @Composable
@@ -59,13 +54,12 @@
 
 internal class WindowInfoImpl : WindowInfo {
     private val _isWindowFocused = mutableStateOf(false)
-    private val _containerSize = mutableStateOf(IntSize.Zero)
 
     override var isWindowFocused: Boolean
-        get() = _isWindowFocused.value
         set(value) {
             _isWindowFocused.value = value
         }
+        get() = _isWindowFocused.value
 
     @Suppress("OPT_IN_MARKER_ON_WRONG_TARGET")
     override var keyboardModifiers: PointerKeyboardModifiers
@@ -74,12 +68,6 @@
             GlobalKeyboardModifiers.value = value
         }
 
-    override var containerSize: IntSize
-        get() = _containerSize.value
-        set(value) {
-            _containerSize.value = value
-        }
-
     companion object {
         // One instance across all windows makes sense, since the state of KeyboardModifiers is
         // common for all windows.