Skip to content

Commit e59e462

Browse files
committed
♻️ [kmp/browser] TaskbarAppModel现在使用MutableStateFlow替代mutableState,避免线程安全问题
1 parent 7e9305d commit e59e462

3 files changed

Lines changed: 9 additions & 5 deletions

File tree

next/kmp/browser/src/commonMain/kotlin/org/dweb_browser/browser/desk/model/TaskbarAppModel.kt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import androidx.compose.ui.unit.dp
1313
import kotlinx.atomicfu.atomic
1414
import kotlinx.coroutines.Job
1515
import kotlinx.coroutines.delay
16+
import kotlinx.coroutines.flow.MutableStateFlow
1617
import kotlinx.coroutines.launch
1718
import org.dweb_browser.core.help.types.MMID
1819
import org.dweb_browser.helper.SafeHashMap
@@ -32,8 +33,12 @@ internal class TaskbarAppModel(
3233
var isShowClose: Boolean = false,
3334
var state: TaskbarAppModelState = TaskbarAppModelState(),
3435
) {
35-
var running by mutableStateOf(running)
36-
var opening by mutableStateOf(false)
36+
val runningFlow = MutableStateFlow(false)
37+
val running get() = runningFlow.value
38+
39+
val openingFlow = MutableStateFlow(false)
40+
val opening get() = openingFlow.value
41+
3742

3843
@Composable
3944
fun rememberAniProp() = remember {

next/kmp/browser/src/commonMain/kotlin/org/dweb_browser/browser/desk/render/TaskbarV2View.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -284,9 +284,9 @@ abstract class ITaskbarV2View(protected val taskbarController: TaskbarV2Controll
284284
isFocus = true
285285
}
286286

287-
app.opening = true
287+
app.openingFlow.value = true
288288
taskbarController.openAppOrActivate(app.mmid).invokeOnCompletion {
289-
app.opening = false
289+
app.openingFlow.value = false
290290
}
291291
},
292292
quitApp = {

next/kmp/dwebview/src/iosMain/kotlin/org/dweb_browser/dwebview/engine/setupOverrideUrlLoadingHooks.ios.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ fun setupOverrideUrlLoadingHooks(
99
) = mutableListOf<OverrideUrlLoadingParams.() -> UrlLoadingPolicy>().also { hooks ->
1010
dwebNavigationDelegate.decidePolicyForNavigationActionHooks.add {
1111
val url = decidePolicyForNavigationAction.request.URL.toString()
12-
decidePolicyForNavigationAction.request.mainDocumentURL
1312
@Suppress("UNNECESSARY_SAFE_CALL") val params = OverrideUrlLoadingParams(
1413
url,
1514
decidePolicyForNavigationAction.targetFrame?.isMainFrame()

0 commit comments

Comments
 (0)