From 67df94350caec99ce8ff14d60376a75d56793eb9 Mon Sep 17 00:00:00 2001 From: Bryan Van Deusen Date: Thu, 8 Oct 2026 20:14:24 -0400 Subject: [PATCH] DRY pass #3: the "from the text" mark is one composable (#5373) The label picker and the editor's tag row each wrote the same Text: the label_from_tag string, labelSmall, onSurfaceVariant, 8dp start padding. Chips.kt's FromTextMark() is now both. Co-Authored-By: Claude Opus 5.5 --- .../main/java/com/fabledsword/inkwell/ui/Chips.kt | 13 +++++++++++++ .../java/com/fabledsword/inkwell/ui/EditorChrome.kt | 7 +------ .../com/fabledsword/inkwell/ui/EditorPickers.kt | 9 +-------- 3 files changed, 15 insertions(+), 14 deletions(-) diff --git a/android/app/src/main/java/com/fabledsword/inkwell/ui/Chips.kt b/android/app/src/main/java/com/fabledsword/inkwell/ui/Chips.kt index 6169030..4fdd96f 100644 --- a/android/app/src/main/java/com/fabledsword/inkwell/ui/Chips.kt +++ b/android/app/src/main/java/com/fabledsword/inkwell/ui/Chips.kt @@ -9,8 +9,10 @@ import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp +import com.fabledsword.inkwell.R /** The corner of every chip on a card: tags, reminders, who shared it. */ internal val CHIP_RADIUS = 6.dp @@ -36,3 +38,14 @@ internal fun TintChip( .padding(horizontal = 6.dp, vertical = 2.dp), ) } + +/** Marks a tag the note's text carries, beside its name, wherever tags are listed. */ +@Composable +internal fun FromTextMark() { + Text( + text = stringResource(R.string.label_from_tag), + style = MaterialTheme.typography.labelSmall, + color = MaterialTheme.colorScheme.onSurfaceVariant, + modifier = Modifier.padding(start = 8.dp), + ) +} diff --git a/android/app/src/main/java/com/fabledsword/inkwell/ui/EditorChrome.kt b/android/app/src/main/java/com/fabledsword/inkwell/ui/EditorChrome.kt index b456de2..60de71a 100644 --- a/android/app/src/main/java/com/fabledsword/inkwell/ui/EditorChrome.kt +++ b/android/app/src/main/java/com/fabledsword/inkwell/ui/EditorChrome.kt @@ -381,12 +381,7 @@ fun EditorLabelRow( .padding(horizontal = 10.dp, vertical = 4.dp), ) if (label.viaTag) { - Text( - text = stringResource(R.string.label_from_tag), - style = MaterialTheme.typography.labelSmall, - color = MaterialTheme.colorScheme.onSurfaceVariant, - modifier = Modifier.padding(start = 8.dp), - ) + FromTextMark() } else if (!readOnly) { IconButton(onClick = { // Only the MANUAL labels are sent: the core replaces diff --git a/android/app/src/main/java/com/fabledsword/inkwell/ui/EditorPickers.kt b/android/app/src/main/java/com/fabledsword/inkwell/ui/EditorPickers.kt index 68009c3..d38da28 100644 --- a/android/app/src/main/java/com/fabledsword/inkwell/ui/EditorPickers.kt +++ b/android/app/src/main/java/com/fabledsword/inkwell/ui/EditorPickers.kt @@ -120,14 +120,7 @@ fun LabelSheet( style = MaterialTheme.typography.bodyLarge, modifier = Modifier.padding(start = 4.dp), ) - if (fromTag) { - Text( - text = stringResource(R.string.label_from_tag), - style = MaterialTheme.typography.labelSmall, - color = MaterialTheme.colorScheme.onSurfaceVariant, - modifier = Modifier.padding(start = 8.dp), - ) - } + if (fromTag) FromTextMark() } } }