|
@@ -21,10 +21,8 @@ import androidx.compose.foundation.layout.fillMaxSize
|
|
|
import androidx.compose.foundation.layout.fillMaxWidth
|
|
|
import androidx.compose.foundation.layout.padding
|
|
|
import androidx.compose.foundation.layout.safeDrawing
|
|
|
-import androidx.compose.foundation.layout.statusBarsPadding
|
|
|
import androidx.compose.foundation.layout.windowInsetsPadding
|
|
|
import androidx.compose.material3.ExperimentalMaterial3Api
|
|
|
-import androidx.compose.material3.MaterialTheme
|
|
|
import androidx.compose.material3.Scaffold
|
|
|
import androidx.compose.material3.SnackbarDuration
|
|
|
import androidx.compose.material3.SnackbarHost
|
|
@@ -33,13 +31,15 @@ import androidx.compose.material3.SnackbarResult
|
|
|
import androidx.compose.material3.TopAppBarDefaults
|
|
|
import androidx.compose.material3.rememberTopAppBarState
|
|
|
import androidx.compose.runtime.Composable
|
|
|
+import androidx.compose.runtime.getValue
|
|
|
+import androidx.compose.runtime.mutableStateOf
|
|
|
import androidx.compose.runtime.remember
|
|
|
import androidx.compose.runtime.rememberCoroutineScope
|
|
|
+import androidx.compose.runtime.setValue
|
|
|
import androidx.compose.ui.Modifier
|
|
|
import androidx.compose.ui.input.nestedscroll.nestedScroll
|
|
|
import androidx.compose.ui.platform.LocalConfiguration
|
|
|
import androidx.compose.ui.platform.LocalContext
|
|
|
-import androidx.compose.ui.platform.LocalDensity
|
|
|
import androidx.compose.ui.unit.dp
|
|
|
import androidx.compose.ui.viewinterop.AndroidView
|
|
|
import androidx.core.net.toUri
|
|
@@ -68,6 +68,7 @@ fun WebViewScreen(
|
|
|
val backPressDispatcher = LocalOnBackPressedDispatcherOwner.current
|
|
|
val topAppBarState = rememberTopAppBarState()
|
|
|
val scrollBehavior = TopAppBarDefaults.pinnedScrollBehavior(topAppBarState)
|
|
|
+ var isHandlingBackPress by remember { mutableStateOf(false) }
|
|
|
|
|
|
ObserveAsEvents(flow = action) { onAction ->
|
|
|
when (onAction) {
|
|
@@ -126,11 +127,16 @@ fun WebViewScreen(
|
|
|
}
|
|
|
|
|
|
BackHandler {
|
|
|
+ if (isHandlingBackPress) return@BackHandler
|
|
|
+ isHandlingBackPress = true
|
|
|
+
|
|
|
if (mediaWebView.canGoBack()) {
|
|
|
mediaWebView.goBack()
|
|
|
} else {
|
|
|
backPressDispatcher?.onBackPressedDispatcher?.onBackPressed()
|
|
|
}
|
|
|
+
|
|
|
+ isHandlingBackPress = false
|
|
|
}
|
|
|
|
|
|
Scaffold(
|