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.