Cut displayed text on iOS as otherwise view crashes (displays only a white screen then)
This commit is contained in:
parent
e896fbb3cc
commit
1970eff09a
|
@ -15,12 +15,16 @@ import kotlinx.coroutines.launch
|
||||||
import kotlinx.coroutines.withContext
|
import kotlinx.coroutines.withContext
|
||||||
import net.codinux.banking.persistence.entities.AccountTransactionEntity
|
import net.codinux.banking.persistence.entities.AccountTransactionEntity
|
||||||
import net.codinux.banking.ui.IOorDefault
|
import net.codinux.banking.ui.IOorDefault
|
||||||
|
import net.codinux.banking.ui.PlatformType
|
||||||
import net.codinux.banking.ui.config.Colors
|
import net.codinux.banking.ui.config.Colors
|
||||||
import net.codinux.banking.ui.config.DI
|
import net.codinux.banking.ui.config.DI
|
||||||
import net.codinux.banking.ui.extensions.horizontalScroll
|
import net.codinux.banking.ui.extensions.horizontalScroll
|
||||||
import net.codinux.banking.ui.extensions.verticalScroll
|
import net.codinux.banking.ui.extensions.verticalScroll
|
||||||
import net.codinux.banking.ui.service.BankDataImporterAndExporter
|
import net.codinux.banking.ui.service.BankDataImporterAndExporter
|
||||||
|
|
||||||
|
|
||||||
|
private const val iOSMaxDisplayedDataLength = 20_000
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun ExportScreen(onClosed: () -> Unit) {
|
fun ExportScreen(onClosed: () -> Unit) {
|
||||||
var transactions: Collection<AccountTransactionEntity>
|
var transactions: Collection<AccountTransactionEntity>
|
||||||
|
@ -29,6 +33,8 @@ fun ExportScreen(onClosed: () -> Unit) {
|
||||||
|
|
||||||
var exportedDataText by remember { mutableStateOf("") }
|
var exportedDataText by remember { mutableStateOf("") }
|
||||||
|
|
||||||
|
var exportedDataTextToDisplay by remember { mutableStateOf("") }
|
||||||
|
|
||||||
val importerExporter = BankDataImporterAndExporter()
|
val importerExporter = BankDataImporterAndExporter()
|
||||||
|
|
||||||
val clipboardManager = LocalClipboardManager.current
|
val clipboardManager = LocalClipboardManager.current
|
||||||
|
@ -42,12 +48,15 @@ fun ExportScreen(onClosed: () -> Unit) {
|
||||||
|
|
||||||
withContext(Dispatchers.Main) {
|
withContext(Dispatchers.Main) {
|
||||||
exportedDataText = initiallyExportedData
|
exportedDataText = initiallyExportedData
|
||||||
|
exportedDataTextToDisplay = if (DI.platform.type == PlatformType.iOS && exportedDataText.length > iOSMaxDisplayedDataLength) exportedDataText.substring(0,
|
||||||
|
iOSMaxDisplayedDataLength) + "\r\n...\r\n(Wir mussten die Anzeige abschneiden, da iOS mit längeren Zeichenketten nicht klar kommt (iOS only bug)"
|
||||||
|
else exportedDataText
|
||||||
isLoadingExportedData = false
|
isLoadingExportedData = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
FullscreenViewBase("Umsätze exportieren", onClosed = onClosed) {
|
FullscreenViewBase("Umsätze exportieren", onClosed = onClosed) {
|
||||||
Column {
|
Column(Modifier.fillMaxWidth()) {
|
||||||
Text("Es gibt leider noch keinen \"Datei auswählen Dialog\", ist sehr schwierig plattformübergreifend umzusetzen, deshalb bitte folgenden Text kopieren und in eine Textdatei einfügen:")
|
Text("Es gibt leider noch keinen \"Datei auswählen Dialog\", ist sehr schwierig plattformübergreifend umzusetzen, deshalb bitte folgenden Text kopieren und in eine Textdatei einfügen:")
|
||||||
|
|
||||||
Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.End) {
|
Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.End) {
|
||||||
|
@ -68,8 +77,8 @@ fun ExportScreen(onClosed: () -> Unit) {
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Column(Modifier.verticalScroll().horizontalScroll()) {
|
Column(Modifier.verticalScroll().horizontalScroll()) {
|
||||||
SelectionContainer {
|
SelectionContainer(modifier = Modifier.fillMaxSize()) {
|
||||||
Text(exportedDataText, fontFamily = FontFamily.Monospace)
|
Text(exportedDataTextToDisplay, fontFamily = FontFamily.Monospace)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue