Trejkaz
06/23/2024, 7:35 PMTrejkaz
06/23/2024, 7:37 PMException in thread "AWT-EventQueue-0" java.lang.StringIndexOutOfBoundsException: begin 2, end 16, length 14
at java.base/java.lang.String.checkBoundsBeginEnd(Unknown Source)
at java.base/java.lang.String.substring(Unknown Source)
at androidx.compose.ui.text.AnnotatedString.subSequence(AnnotatedString.kt:116)
at androidx.compose.foundation.text.selection.SelectionManagerKt.getCurrentSelectedText(SelectionManager.kt:895)
at androidx.compose.foundation.text.selection.SelectionManager.getSelectedText$foundation(SelectionManager.kt:413)
at androidx.compose.foundation.text.selection.SelectionManager.copy$foundation(SelectionManager.kt:429)
at androidx.compose.foundation.text.selection.SelectionManager$modifier$4.invoke-ZmokQxo(SelectionManager.kt:131)
at androidx.compose.foundation.text.selection.SelectionManager$modifier$4.invoke(SelectionManager.kt:129)
at androidx.compose.ui.input.key.KeyInputNode.onKeyEvent-ZmokQxo(KeyInputModifier.kt:80)
at androidx.compose.ui.focus.FocusOwnerImpl.dispatchKeyEvent-ZmokQxo(FocusOwnerImpl.kt:200)
at androidx.compose.ui.platform.SkiaBasedOwner.sendKeyEvent-ZmokQxo(SkiaBasedOwner.skiko.kt:211)
at androidx.compose.ui.ComposeScene.sendKeyEvent-ZmokQxo(ComposeScene.skiko.kt:822)
at androidx.compose.ui.awt.ComposeBridge$onKeyEvent$1.invoke(ComposeBridge.desktop.kt:283)
at androidx.compose.ui.awt.ComposeBridge$onKeyEvent$1.invoke(ComposeBridge.desktop.kt:279)
at androidx.compose.ui.awt.ComposeBridge.catchExceptions(ComposeBridge.desktop.kt:150)
at androidx.compose.ui.awt.ComposeBridge.onKeyEvent(ComposeBridge.desktop.kt:279)
at androidx.compose.ui.awt.ComposeBridge.access$onKeyEvent(ComposeBridge.desktop.kt:64)
at androidx.compose.ui.awt.ComposeBridge$attachComposeToComponent$6.keyReleased(ComposeBridge.desktop.kt:259)
at java.desktop/java.awt.Component.processKeyEvent(Unknown Source)
at java.desktop/java.awt.Component.processEvent(Unknown Source)
at java.desktop/java.awt.Component.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
at java.desktop/java.awt.KeyboardFocusManager.redispatchEvent(Unknown Source)
at java.desktop/java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(Unknown Source)
at java.desktop/java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(Unknown Source)
at java.desktop/java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown Source)
at java.desktop/java.awt.DefaultKeyboardFocusManager.dispatchEvent(Unknown Source)
at java.desktop/java.awt.Component.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Unknown Source)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Unknown Source)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)
Trejkaz
06/23/2024, 7:43 PMStylianos Gakis
06/23/2024, 8:48 PMTrejkaz
06/24/2024, 11:08 PMStylianos Gakis
06/25/2024, 7:51 AMTrejkaz
07/22/2024, 11:56 PMTrejkaz
07/22/2024, 11:57 PMStylianos Gakis
07/23/2024, 12:35 AMTrejkaz
07/23/2024, 12:36 AMTrejkaz
07/23/2024, 12:36 AMTrejkaz
07/23/2024, 12:37 AMStylianos Gakis
07/23/2024, 12:37 AMTrejkaz
07/23/2024, 12:50 AMTrejkaz
07/23/2024, 12:51 AMTrejkaz
07/23/2024, 12:51 AMTrejkaz
07/23/2024, 12:51 AMTrejkaz
07/23/2024, 12:53 AMTrejkaz
07/23/2024, 12:53 AMimport androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.text.selection.SelectionContainer
import androidx.compose.material.MaterialTheme
import androidx.compose.material.Surface
import androidx.compose.material.Text
import androidx.compose.material.darkColors
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.mutableStateListOf
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import androidx.compose.ui.window.singleWindowApplication
import kotlinx.coroutines.delay
import kotlin.random.Random
enum class Action {
ADD, REMOVE;
companion object {
fun random() = entries[Random.nextInt(entries.size)]
}
}
fun main() = singleWindowApplication {
val rowItems = remember { mutableStateListOf<String>() }
LaunchedEffect(Unit) {
while (true) {
delay(1000)
rowItems.add("longer text item")
delay(1000)
rowItems.add(0, "shorter")
delay(1000)
rowItems.clear()
}
}
MaterialTheme(colors = darkColors()) {
Surface(modifier = Modifier.fillMaxSize()) {
Box(modifier = Modifier.padding(8.dp)) {
SelectionContainer {
LazyColumn {
items(count = rowItems.size) { rowIndex ->
val rowItem = rowItems[rowIndex]
Text(text = "Item: $rowItem")
}
}
}
}
}
}
}
Trejkaz
07/23/2024, 12:53 AMTrejkaz
07/23/2024, 12:54 AMException in thread "AWT-EventQueue-0" java.lang.StringIndexOutOfBoundsException: begin 9, end 22, length 13
at java.base/java.lang.String.checkBoundsBeginEnd(String.java:3319)
at java.base/java.lang.String.substring(String.java:1874)
at androidx.compose.ui.text.AnnotatedString.subSequence(AnnotatedString.kt:116)
at androidx.compose.foundation.text.selection.SelectionManagerKt.getCurrentSelectedText(SelectionManager.kt:895)
at androidx.compose.foundation.text.selection.SelectionManager.getSelectedText$foundation(SelectionManager.kt:413)
at androidx.compose.foundation.text.selection.SelectionManager.copy$foundation(SelectionManager.kt:429)
at androidx.compose.foundation.text.selection.SelectionManager$modifier$4.invoke-ZmokQxo(SelectionManager.kt:131)
at androidx.compose.foundation.text.selection.SelectionManager$modifier$4.invoke(SelectionManager.kt:129)
at androidx.compose.ui.input.key.KeyInputNode.onKeyEvent-ZmokQxo(KeyInputModifier.kt:80)
at androidx.compose.ui.focus.FocusOwnerImpl.dispatchKeyEvent-ZmokQxo(FocusOwnerImpl.kt:200)
at androidx.compose.ui.platform.SkiaBasedOwner.sendKeyEvent-ZmokQxo(SkiaBasedOwner.skiko.kt:211)
at androidx.compose.ui.ComposeScene.sendKeyEvent-ZmokQxo(ComposeScene.skiko.kt:822)
at androidx.compose.ui.awt.ComposeBridge$onKeyEvent$1.invoke(ComposeBridge.desktop.kt:283)
at androidx.compose.ui.awt.ComposeBridge$onKeyEvent$1.invoke(ComposeBridge.desktop.kt:279)
at androidx.compose.ui.awt.ComposeBridge.catchExceptions(ComposeBridge.desktop.kt:150)
at androidx.compose.ui.awt.ComposeBridge.onKeyEvent(ComposeBridge.desktop.kt:279)
at androidx.compose.ui.awt.ComposeBridge.access$onKeyEvent(ComposeBridge.desktop.kt:64)
at androidx.compose.ui.awt.ComposeBridge$attachComposeToComponent$6.keyPressed(ComposeBridge.desktop.kt:258)
at java.desktop/java.awt.Component.processKeyEvent(Component.java:6593)
at java.desktop/java.awt.Component.processEvent(Component.java:6412)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5011)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4843)
at java.desktop/java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1950)
at java.desktop/java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:870)
at java.desktop/java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:1139)
at java.desktop/java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:1009)
at java.desktop/java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:835)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4892)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4843)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Trejkaz
07/23/2024, 12:55 AMTrejkaz
07/23/2024, 12:55 AMStylianos Gakis
07/23/2024, 7:24 AMval textFieldValue by remember {
mutableStateOf(TextFieldValue(text = "asd", selection = TextRange(1, 2)))
}
BasicTextField(value = textFieldValue, {})
But I suppose that wouldn't make a difference since here you're reproing with Text
not TextField
.
In any case, that looks like a great repro! If you can also make sure that you are on the latest alpha-beta version of where it comes from, which atm seems to be 1.7.0-beta05 https://maven.google.com/web/index.html?q=androidx.compose.ui#androidx.compose.ui:ui-text then you got yourself a great thing to report over at https://issuetracker.google.com/issues/new?component=779818&template=1371638