diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/component/markdown/MarkdownEditor.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/component/markdown/MarkdownEditor.kt
index 4b3cb9d2..5598b9e3 100644
--- a/app/ui/src/main/java/de/mm20/launcher2/ui/component/markdown/MarkdownEditor.kt
+++ b/app/ui/src/main/java/de/mm20/launcher2/ui/component/markdown/MarkdownEditor.kt
@@ -3,11 +3,14 @@ package de.mm20.launcher2.ui.component.markdown
import androidx.activity.compose.BackHandler
import androidx.compose.foundation.clickable
import androidx.compose.foundation.interaction.MutableInteractionSource
+import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.text.BasicTextField
import androidx.compose.material3.LocalContentColor
import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.ProvideTextStyle
import androidx.compose.material3.Typography
import androidx.compose.runtime.Composable
+import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
@@ -24,7 +27,6 @@ import androidx.compose.ui.text.buildAnnotatedString
import androidx.compose.ui.text.input.OffsetMapping
import androidx.compose.ui.text.input.TransformedText
import androidx.compose.ui.text.input.VisualTransformation
-import org.intellij.markdown.ast.ASTNode
import org.intellij.markdown.flavours.gfm.GFMFlavourDescriptor
import org.intellij.markdown.parser.MarkdownParser
@@ -33,6 +35,7 @@ fun MarkdownEditor(
value: String,
onValueChange: (String) -> Unit,
modifier: Modifier = Modifier,
+ placeholder: (@Composable () -> Unit)? = null
) {
val typography = MaterialTheme.typography
val delimiterColor = MaterialTheme.colorScheme.secondary
@@ -69,16 +72,35 @@ fun MarkdownEditor(
)
} else {
- MarkdownText(
- value,
- modifier = modifier.clickable(
- indication = null,
- interactionSource = remember { MutableInteractionSource() },
+ if (placeholder != null && value.isBlank()) {
+ Box(
+ modifier = modifier.clickable(
+ indication = null,
+ interactionSource = remember { MutableInteractionSource() },
+ ) {
+ focused = true
+ },
) {
- focused = true
- },
- onTextChange = onValueChange,
- )
+ ProvideTextStyle(MaterialTheme.typography.bodyMedium) {
+ CompositionLocalProvider(
+ LocalContentColor provides MaterialTheme.colorScheme.secondary
+ ) {
+ placeholder()
+ }
+ }
+ }
+ } else {
+ MarkdownText(
+ value,
+ modifier = modifier.clickable(
+ indication = null,
+ interactionSource = remember { MutableInteractionSource() },
+ ) {
+ focused = true
+ },
+ onTextChange = onValueChange,
+ )
+ }
}
}
diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/notes/NotesWidget.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/notes/NotesWidget.kt
index 0077609d..edd91d6c 100644
--- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/notes/NotesWidget.kt
+++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/notes/NotesWidget.kt
@@ -5,14 +5,17 @@ import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.text.BasicTextField
import androidx.compose.material3.LocalContentColor
import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.SolidColor
+import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.input.TextFieldValue
import androidx.compose.ui.unit.dp
import androidx.lifecycle.viewmodel.compose.viewModel
+import de.mm20.launcher2.ui.R
import de.mm20.launcher2.ui.component.markdown.MarkdownEditor
import de.mm20.launcher2.widgets.NotesWidget
@@ -30,5 +33,8 @@ fun NotesWidget(widget: NotesWidget) {
value = text,
onValueChange = { viewModel.setText(it) },
modifier = Modifier.fillMaxWidth().padding(16.dp),
+ placeholder = {
+ Text(stringResource(R.string.notes_widget_placeholder))
+ }
)
}
\ No newline at end of file
diff --git a/core/i18n/src/main/res/values/strings.xml b/core/i18n/src/main/res/values/strings.xml
index b55af7a9..e8ada5c1 100644
--- a/core/i18n/src/main/res/values/strings.xml
+++ b/core/i18n/src/main/res/values/strings.xml
@@ -224,6 +224,7 @@
Add widget
More
+ Write a noteā¦
By %1$s