Skip to content

Commit 9d7ae74

Browse files
committed
🐛 [kmp] 修改 MutableList 的 removeFirst 和 removeLast 写法
不能使用 removeFirst ,会和 android api level 35 的java冲突导致崩溃 https://youtrack.jetbrains.com/issue/KT-71375/Prevent-Kotlins-removeFirst-and-removeLast-from-causing-crashes-on-Android-14-and-below-after-upgrading-to-Android-API-Level-35
1 parent 4f263d7 commit 9d7ae74

File tree

3 files changed

+10
-4
lines changed

3 files changed

+10
-4
lines changed

next/kmp/sys/src/commonMain/kotlin/org/dweb_browser/sys/keychain/render/KeychainAuthentication.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,9 @@ class KeychainAuthentication(
243243
"⚠️ 注意:根密码不会上传到任何服务器,假如您忘记了根密码,保存在设备里的密码都将无法恢复,请务必保存好您的密码".split(
244244
"根密码"
245245
).toMutableList()
246-
append(parts.removeFirst())
246+
/// 不能使用 removeFirst ,会和 android api level 35 的java冲突导致崩溃
247+
/// see: https://youtrack.jetbrains.com/issue/KT-71375/Prevent-Kotlins-removeFirst-and-removeLast-from-causing-crashes-on-Android-14-and-below-after-upgrading-to-Android-API-Level-35
248+
append(parts.removeAt(0))
247249
parts.forEach { s ->
248250
withStyle(SpanStyle(textDecoration = TextDecoration.Underline)) {
249251
append("根密码")

next/kmp/window/src/commonMain/kotlin/org/dweb_browser/sys/window/core/windowAdapterManager.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,9 @@ class WindowAdapterManager : AdapterManager<CreateWindowAdapter>() {
144144
exit = SlideNavAnimations.popExitTransition,
145145
) {
146146
navigation.GoBackHandler(navigation.pageStack.size > 0) {
147-
navigation.pageStack.removeLast()
147+
/// 不能使用 removeLast ,会和 android api level 35 的java冲突导致崩溃
148+
/// see: https://youtrack.jetbrains.com/issue/KT-71375/Prevent-Kotlins-removeFirst-and-removeLast-from-causing-crashes-on-Android-14-and-below-after-upgrading-to-Android-API-Level-35
149+
navigation.pageStack.removeAt(navigation.pageStack.size - 1)
148150
visibleState.targetState = false
149151
}
150152
DisposableEffect(Unit) {

next/kmp/window/src/commonMain/kotlin/org/dweb_browser/sys/window/ext/FileSystemIcons.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,11 +61,13 @@ object FileSystemIcons {
6161
private fun getResourceIdByFilename(filename: String): String {
6262
val resourceId =
6363
fileFullnameMap[filename] ?: filename.split(".").toMutableList().let { segments ->
64-
segments.removeFirst()
64+
/// 不能使用 removeFirst ,会和 android api level 35 的java冲突导致崩溃
65+
/// see: https://youtrack.jetbrains.com/issue/KT-71375/Prevent-Kotlins-removeFirst-and-removeLast-from-causing-crashes-on-Android-14-and-below-after-upgrading-to-Android-API-Level-35
66+
segments.removeAt(0)
6567
while (segments.isNotEmpty()) {
6668
val ext = segments.joinToString(".")
6769
fileExtnameMap[ext]?.also { return@let it }
68-
segments.removeFirst()
70+
segments.removeAt(0)
6971
}
7072
return@let defaultMap.file
7173
}

0 commit comments

Comments
 (0)