NoteWidget: ensure that linked file is properly reloaded on resume
This commit is contained in:
parent
9f0d441538
commit
3fada7ae97
@ -100,9 +100,12 @@ fun NotesWidget(
|
||||
val isLastWidget by viewModel.isLastNoteWidget.collectAsState(null)
|
||||
|
||||
LaunchedEffect(widget) {
|
||||
lifecycleOwner.lifecycle.repeatOnLifecycle(Lifecycle.State.RESUMED) {
|
||||
viewModel.updateWidget(context, widget)
|
||||
}
|
||||
LaunchedEffect(Unit) {
|
||||
lifecycleOwner.lifecycle.repeatOnLifecycle(Lifecycle.State.RESUMED) {
|
||||
viewModel.onResume(context)
|
||||
}
|
||||
}
|
||||
|
||||
val exportLauncher = rememberLauncherForActivityResult(
|
||||
@ -489,7 +492,9 @@ fun SelectableNoteContent(
|
||||
onClick = onSelect,
|
||||
onLongClick = { expanded = !expanded },
|
||||
)
|
||||
.animateContentSize() then if (expanded) Modifier.heightIn(min = 100.dp) else Modifier.height(100.dp),
|
||||
.animateContentSize() then if (expanded) Modifier.heightIn(min = 100.dp) else Modifier.height(
|
||||
100.dp
|
||||
),
|
||||
) {
|
||||
MarkdownText(
|
||||
modifier = Modifier
|
||||
|
||||
@ -3,6 +3,7 @@ package de.mm20.launcher2.ui.launcher.widgets.notes
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.net.Uri
|
||||
import android.util.Log
|
||||
import androidx.compose.runtime.mutableStateOf
|
||||
import androidx.compose.ui.text.input.TextFieldValue
|
||||
import androidx.lifecycle.ViewModel
|
||||
@ -51,6 +52,23 @@ class NotesWidgetVM(
|
||||
linkedFileReadError.value = false
|
||||
linkedFileSavingState.value = LinkedFileSavingState.Saved
|
||||
if (file != null) {
|
||||
reloadLinkedFile(context)
|
||||
} else {
|
||||
noteText.value = TextFieldValue(widget.config.storedText)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun onResume(context: Context) {
|
||||
val widget = widget.value ?: return
|
||||
if (widget.config.linkedFile != null) {
|
||||
reloadLinkedFile(context)
|
||||
}
|
||||
}
|
||||
|
||||
private fun reloadLinkedFile(context: Context) {
|
||||
val widget = widget.value ?: return
|
||||
val file = widget.config.linkedFile ?: return
|
||||
val uri = Uri.parse(file)
|
||||
viewModelScope.launch(Dispatchers.IO) {
|
||||
try {
|
||||
@ -94,10 +112,6 @@ class NotesWidgetVM(
|
||||
)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
noteText.value = TextFieldValue(widget.config.storedText)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private var updateJob: Job? = null
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user