mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2025-10-09 23:12:32 +02:00
Fixes screen mispositioning when rotating full screen video/image dialogs.
This commit is contained in:
@@ -54,7 +54,6 @@ import androidx.compose.material3.Surface
|
|||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.LaunchedEffect
|
import androidx.compose.runtime.LaunchedEffect
|
||||||
import androidx.compose.runtime.MutableState
|
import androidx.compose.runtime.MutableState
|
||||||
import androidx.compose.runtime.SideEffect
|
|
||||||
import androidx.compose.runtime.mutableStateOf
|
import androidx.compose.runtime.mutableStateOf
|
||||||
import androidx.compose.runtime.remember
|
import androidx.compose.runtime.remember
|
||||||
import androidx.compose.ui.Alignment
|
import androidx.compose.ui.Alignment
|
||||||
@@ -106,7 +105,7 @@ fun ZoomableImageDialog(
|
|||||||
onDismissRequest = onDismiss,
|
onDismissRequest = onDismiss,
|
||||||
properties =
|
properties =
|
||||||
DialogProperties(
|
DialogProperties(
|
||||||
usePlatformDefaultWidth = true,
|
usePlatformDefaultWidth = false,
|
||||||
decorFitsSystemWindows = false,
|
decorFitsSystemWindows = false,
|
||||||
),
|
),
|
||||||
) {
|
) {
|
||||||
@@ -118,27 +117,26 @@ fun ZoomableImageDialog(
|
|||||||
val activityWindow = getActivityWindow()
|
val activityWindow = getActivityWindow()
|
||||||
val dialogWindow = getDialogWindow()
|
val dialogWindow = getDialogWindow()
|
||||||
val parentView = LocalView.current.parent as View
|
val parentView = LocalView.current.parent as View
|
||||||
SideEffect {
|
|
||||||
if (activityWindow != null && dialogWindow != null) {
|
if (activityWindow != null && dialogWindow != null) {
|
||||||
val attributes = WindowManager.LayoutParams()
|
val attributes = WindowManager.LayoutParams()
|
||||||
attributes.copyFrom(activityWindow.attributes)
|
attributes.copyFrom(activityWindow.attributes)
|
||||||
attributes.type = dialogWindow.attributes.type
|
attributes.type = dialogWindow.attributes.type
|
||||||
dialogWindow.attributes = attributes
|
dialogWindow.attributes = attributes
|
||||||
parentView.layoutParams =
|
parentView.layoutParams =
|
||||||
FrameLayout.LayoutParams(
|
FrameLayout.LayoutParams(
|
||||||
activityWindow.decorView.width,
|
activityWindow.decorView.width,
|
||||||
activityWindow.decorView.height,
|
activityWindow.decorView.height,
|
||||||
)
|
)
|
||||||
view.layoutParams =
|
view.layoutParams =
|
||||||
FrameLayout.LayoutParams(
|
FrameLayout.LayoutParams(
|
||||||
activityWindow.decorView.width,
|
activityWindow.decorView.width,
|
||||||
activityWindow.decorView.height,
|
activityWindow.decorView.height,
|
||||||
)
|
)
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Surface(modifier = Modifier.fillMaxSize()) {
|
Surface(Modifier.fillMaxSize()) {
|
||||||
Box(modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.TopCenter) {
|
Box(Modifier.fillMaxSize(), Alignment.TopCenter) {
|
||||||
DialogContent(allImages, imageUrl, onDismiss, accountViewModel)
|
DialogContent(allImages, imageUrl, onDismiss, accountViewModel)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user