From a7be788760ce019d25eab8748160b5c3536b4dc1 Mon Sep 17 00:00:00 2001 From: Nicolas CHAUVIN Date: Sun, 9 Aug 2026 21:53:17 +0200 Subject: [PATCH 1/2] feat(mobile): expose note history in the uniffi facade --- mobile/src/lib.rs | 66 ++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 57 insertions(+), 9 deletions(-) diff --git a/mobile/src/lib.rs b/mobile/src/lib.rs index 75294dc..6114e1a 100644 --- a/mobile/src/lib.rs +++ b/mobile/src/lib.rs @@ -10,7 +10,7 @@ use std::path::PathBuf; use std::sync::Arc; -use note_core::NoteMeta; +use note_core::{Note, NoteMeta}; use plain_note_client::commands::{self, FolderRow}; use plain_note_client::store::{self, LocalStore}; use plain_note_client::{config, remote}; @@ -41,6 +41,13 @@ pub struct NoteContent { pub pinned: bool, } +/// One entry in a note's history timeline (opaque id + when it was reached). +#[derive(Debug, uniffi::Record)] +pub struct NoteVersionInfo { + pub version_id: String, + pub timestamp: i64, +} + /// A folder with its resolved display path. #[derive(Debug, uniffi::Record)] pub struct FolderInfo { @@ -122,6 +129,17 @@ fn summary(m: NoteMeta) -> NoteSummary { } } +fn content(n: Note) -> NoteContent { + NoteContent { + id: n.id.as_str().to_string(), + title: n.title, + text: n.text, + folder: n.folder, + tags: n.tags, + pinned: n.pinned, + } +} + /// The mobile app handle: a local store, the enrollment config path, and the /// operations over them. #[derive(uniffi::Object)] @@ -171,14 +189,31 @@ impl NoteApp { /// Fetch a note's full content by id. pub fn get_note(&self, id: String) -> Result { let n = commands::get(&self.store, &id).map_err(map)?; - Ok(NoteContent { - id: n.id.as_str().to_string(), - title: n.title, - text: n.text, - folder: n.folder, - tags: n.tags, - pinned: n.pinned, - }) + Ok(content(n)) + } + + /// The note's version timeline, newest first. + pub fn history(&self, id: String) -> Result> { + Ok(commands::history(&self.store, &id) + .map_err(map)? + .into_iter() + .map(|v| NoteVersionInfo { + version_id: v.version_id, + timestamp: v.timestamp, + }) + .collect()) + } + + /// The note's content at a given version. + pub fn note_at(&self, id: String, version_id: String) -> Result { + let n = commands::note_at(&self.store, &id, &version_id).map_err(map)?; + Ok(content(n)) + } + + /// Restore a note to a past version (a new forward edit). + pub fn restore_version(&self, id: String, version_id: String) -> Result<()> { + commands::restore_version(&self.store, now(), &id, &version_id).map_err(map)?; + Ok(()) } pub fn set_title(&self, id: String, title: String) -> Result<()> { @@ -470,6 +505,19 @@ mod tests { assert!(app.list_trashed().unwrap().is_empty()); } + #[test] + fn history_note_at_and_restore_via_facade() { + let app = temp_app(); + let id = app.create_note().unwrap(); + app.set_title(id.clone(), "V1".into()).unwrap(); + let h = app.history(id.clone()).unwrap(); + assert!(!h.is_empty()); + let oldest = h.last().unwrap().version_id.clone(); + let snap = app.note_at(id.clone(), oldest.clone()).unwrap(); + assert_eq!(snap.id, id); + app.restore_version(id.clone(), oldest).unwrap(); + } + #[test] fn folder_rename_move_and_delete() { let app = temp_app(); From 520aa28434cac4dd5983de3c3870929cfe3a8a5c Mon Sep 17 00:00:00 2001 From: Nicolas CHAUVIN Date: Sun, 9 Aug 2026 21:53:17 +0200 Subject: [PATCH 2/2] feat(android): add note history screen with preview and restore --- .../dev/plainnote/app/data/NoteRepository.kt | 16 ++ .../dev/plainnote/app/ui/HistoryScreen.kt | 183 ++++++++++++++++++ .../java/dev/plainnote/app/ui/NotesScreen.kt | 6 + .../dev/plainnote/app/ui/NotesViewModel.kt | 51 +++++ .../plainnote/app/ui/HistoryScreenshotTest.kt | 71 +++++++ .../plainnote/app/ui/NotesViewModelTest.kt | 36 ++++ .../app/src/test/roborazzi/history_dark.png | Bin 0 -> 37608 bytes .../app/src/test/roborazzi/history_light.png | Bin 0 -> 37598 bytes 8 files changed, 363 insertions(+) create mode 100644 android/app/src/main/java/dev/plainnote/app/ui/HistoryScreen.kt create mode 100644 android/app/src/test/java/dev/plainnote/app/ui/HistoryScreenshotTest.kt create mode 100644 android/app/src/test/roborazzi/history_dark.png create mode 100644 android/app/src/test/roborazzi/history_light.png diff --git a/android/app/src/main/java/dev/plainnote/app/data/NoteRepository.kt b/android/app/src/main/java/dev/plainnote/app/data/NoteRepository.kt index 4bb2d81..7ac50a7 100644 --- a/android/app/src/main/java/dev/plainnote/app/data/NoteRepository.kt +++ b/android/app/src/main/java/dev/plainnote/app/data/NoteRepository.kt @@ -5,6 +5,7 @@ import dev.plainnote.core.FolderInfo import dev.plainnote.core.NoteApp import dev.plainnote.core.NoteContent import dev.plainnote.core.NoteSummary +import dev.plainnote.core.NoteVersionInfo import java.io.File /** @@ -45,6 +46,15 @@ interface NoteRepository { fun getNote(id: String): NoteContent + /** A note's version timeline, newest first. */ + fun history(id: String): List + + /** A note's content at a given version. */ + fun noteAt(id: String, versionId: String): NoteContent + + /** Restore a note to a past version (a new forward edit). */ + fun restoreVersion(id: String, versionId: String) + fun setTitle(id: String, title: String) fun setBody(id: String, text: String) @@ -106,6 +116,12 @@ class NativeNoteRepository(context: Context) : NoteRepository { override fun getNote(id: String): NoteContent = app.getNote(id) + override fun history(id: String): List = app.history(id) + + override fun noteAt(id: String, versionId: String): NoteContent = app.noteAt(id, versionId) + + override fun restoreVersion(id: String, versionId: String) = app.restoreVersion(id, versionId) + override fun setTitle(id: String, title: String) = app.setTitle(id, title) override fun setBody(id: String, text: String) = app.setBody(id, text) diff --git a/android/app/src/main/java/dev/plainnote/app/ui/HistoryScreen.kt b/android/app/src/main/java/dev/plainnote/app/ui/HistoryScreen.kt new file mode 100644 index 0000000..703614f --- /dev/null +++ b/android/app/src/main/java/dev/plainnote/app/ui/HistoryScreen.kt @@ -0,0 +1,183 @@ +@file:OptIn(androidx.compose.material3.ExperimentalMaterial3Api::class) + +package dev.plainnote.app.ui + +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.itemsIndexed +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.automirrored.filled.ArrowBack +import androidx.compose.material.icons.filled.ChevronRight +import androidx.compose.material3.AssistChip +import androidx.compose.material3.AssistChipDefaults +import androidx.compose.material3.Button +import androidx.compose.material3.HorizontalDivider +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton +import androidx.compose.material3.ListItem +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Surface +import androidx.compose.material3.Text +import androidx.compose.material3.TextButton +import androidx.compose.material3.TopAppBar +import androidx.compose.runtime.Composable +import androidx.compose.runtime.collectAsState +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import androidx.compose.ui.window.Dialog +import androidx.compose.ui.window.DialogProperties +import dev.plainnote.core.NoteContent +import dev.plainnote.core.NoteVersionInfo +import java.time.Instant +import java.time.ZoneId +import java.time.format.DateTimeFormatter +import java.util.Locale + +private val HISTORY_FMT: DateTimeFormatter = + DateTimeFormatter.ofPattern("d MMM yyyy, HH:mm", Locale.FRENCH) + +/** Format a unix-millis timestamp as a local, human date. */ +fun formatVersionTime(ts: Long): String = + Instant.ofEpochMilli(ts).atZone(ZoneId.systemDefault()).format(HISTORY_FMT) + +/** The version timeline (newest first). The current version is labelled and not + * selectable; older versions open a read-only preview. */ +@Composable +fun HistoryTimeline( + versions: List, + onSelect: (String) -> Unit, + modifier: Modifier = Modifier, +) { + if (versions.isEmpty()) { + Box(modifier.fillMaxSize().padding(24.dp), contentAlignment = Alignment.Center) { + Text( + "Aucune version antérieure.", + color = MaterialTheme.colorScheme.onSurfaceVariant, + ) + } + return + } + LazyColumn(modifier.fillMaxSize()) { + itemsIndexed(versions) { index, v -> + val current = index == 0 + ListItem( + headlineContent = { Text(formatVersionTime(v.timestamp)) }, + trailingContent = { + if (current) { + AssistChip( + onClick = {}, + enabled = false, + label = { Text("Actuel") }, + colors = AssistChipDefaults.assistChipColors( + disabledLabelColor = MaterialTheme.colorScheme.primary, + ), + ) + } else { + Icon(Icons.Filled.ChevronRight, contentDescription = null) + } + }, + modifier = Modifier.clickable(enabled = !current) { onSelect(v.versionId) }, + ) + HorizontalDivider() + } + } +} + +/** Read-only preview of one past version, with Restore / Back. */ +@Composable +fun VersionPreview( + note: NoteContent, + onRestore: () -> Unit, + onBack: () -> Unit, + modifier: Modifier = Modifier, +) { + Column(modifier.fillMaxSize()) { + Surface(color = MaterialTheme.colorScheme.primaryContainer) { + Text( + "Version en lecture seule — le texte actuel n'est pas modifié.", + style = MaterialTheme.typography.bodySmall, + color = MaterialTheme.colorScheme.onPrimaryContainer, + modifier = Modifier.fillMaxWidth().padding(16.dp, 10.dp), + ) + } + Text( + note.title.ifEmpty { "(sans titre)" }, + style = MaterialTheme.typography.headlineSmall, + modifier = Modifier.fillMaxWidth().padding(16.dp, 16.dp, 16.dp, 4.dp), + ) + DocView(note.text, Modifier.weight(1f).fillMaxWidth()) + Row( + Modifier.fillMaxWidth().padding(12.dp), + horizontalArrangement = Arrangement.End, + ) { + TextButton(onClick = onBack) { Text("Retour") } + Button(onClick = onRestore) { Text("Restaurer cette version") } + } + } +} + +/** Full-screen history surface: timeline, then a version preview, wired to the + * ViewModel. Renders nothing until history is opened. */ +@Composable +fun HistorySheet(vm: NotesViewModel) { + val history by vm.history.collectAsState() + val preview by vm.versionPreview.collectAsState() + val versions = history ?: return + var selected by remember { mutableStateOf(null) } + + Dialog( + onDismissRequest = { selected = null; vm.closeHistory() }, + properties = DialogProperties(usePlatformDefaultWidth = false), + ) { + Surface(Modifier.fillMaxSize()) { + val current = preview + Scaffold( + topBar = { + TopAppBar( + title = { Text(if (current != null) "Aperçu" else "Historique") }, + navigationIcon = { + IconButton(onClick = { + if (current != null) { + selected = null + vm.closePreview() + } else { + vm.closeHistory() + } + }) { + Icon(Icons.AutoMirrored.Filled.ArrowBack, contentDescription = "Retour") + } + }, + ) + }, + ) { padding -> + Box(Modifier.padding(padding)) { + if (current != null) { + VersionPreview( + note = current, + onRestore = { selected?.let { vm.restoreVersion(it) } }, + onBack = { selected = null; vm.closePreview() }, + ) + } else { + HistoryTimeline( + versions = versions, + onSelect = { selected = it; vm.previewVersion(it) }, + ) + } + } + } + } + } +} diff --git a/android/app/src/main/java/dev/plainnote/app/ui/NotesScreen.kt b/android/app/src/main/java/dev/plainnote/app/ui/NotesScreen.kt index 376ef91..ea808c9 100644 --- a/android/app/src/main/java/dev/plainnote/app/ui/NotesScreen.kt +++ b/android/app/src/main/java/dev/plainnote/app/ui/NotesScreen.kt @@ -34,6 +34,7 @@ import androidx.compose.material.icons.filled.Close import androidx.compose.material.icons.filled.Code import androidx.compose.material.icons.filled.Delete import androidx.compose.material.icons.filled.Edit +import androidx.compose.material.icons.filled.History import androidx.compose.material.icons.filled.DriveFileMove import androidx.compose.material.icons.filled.Folder import androidx.compose.material.icons.filled.Label @@ -769,6 +770,9 @@ private fun NoteEditor(vm: NotesViewModel, note: NoteContent) { IconButton(onClick = { editing = true }) { Icon(Icons.Filled.Edit, contentDescription = "Éditer") } + IconButton(onClick = { vm.openHistory() }) { + Icon(Icons.Filled.History, contentDescription = "Historique") + } } IconButton(onClick = { vm.delete(note.id) }) { Icon(Icons.Filled.Delete, contentDescription = "Supprimer") @@ -847,6 +851,8 @@ private fun NoteEditor(vm: NotesViewModel, note: NoteContent) { onAdd = { t -> tags = tags + t; vm.addTag(note.id, t); showTag = false }, ) } + + HistorySheet(vm) } @Composable diff --git a/android/app/src/main/java/dev/plainnote/app/ui/NotesViewModel.kt b/android/app/src/main/java/dev/plainnote/app/ui/NotesViewModel.kt index f861083..25b7ce6 100644 --- a/android/app/src/main/java/dev/plainnote/app/ui/NotesViewModel.kt +++ b/android/app/src/main/java/dev/plainnote/app/ui/NotesViewModel.kt @@ -8,6 +8,7 @@ import dev.plainnote.app.data.NoteRepository import dev.plainnote.core.FolderInfo import dev.plainnote.core.NoteContent import dev.plainnote.core.NoteSummary +import dev.plainnote.core.NoteVersionInfo import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Job @@ -307,6 +308,56 @@ class NotesViewModel( } } + // --- version history (see docs/design/note-history.md) --- + + /** Non-null while the history timeline is open (newest first). */ + private val _history = MutableStateFlow?>(null) + val history = _history.asStateFlow() + + /** Non-null while previewing a past version (read-only). */ + private val _versionPreview = MutableStateFlow(null) + val versionPreview = _versionPreview.asStateFlow() + + fun openHistory() = viewModelScope.launch(io) { + val id = _editing.value?.id ?: return@launch + try { + _history.value = repo.history(id) + } catch (e: Exception) { + report(e) + } + } + + fun closeHistory() { + _history.value = null + _versionPreview.value = null + } + + fun previewVersion(versionId: String) = viewModelScope.launch(io) { + val id = _editing.value?.id ?: return@launch + try { + _versionPreview.value = repo.noteAt(id, versionId) + } catch (e: Exception) { + report(e) + } + } + + fun closePreview() { + _versionPreview.value = null + } + + fun restoreVersion(versionId: String) = viewModelScope.launch(io) { + val id = _editing.value?.id ?: return@launch + try { + repo.restoreVersion(id, versionId) + _editing.value = repo.getNote(id) // refresh the open editor + _versionPreview.value = null + _history.value = null + reloadNotes() + } catch (e: Exception) { + report(e) + } + } + fun clearStatus() { _status.value = null } diff --git a/android/app/src/test/java/dev/plainnote/app/ui/HistoryScreenshotTest.kt b/android/app/src/test/java/dev/plainnote/app/ui/HistoryScreenshotTest.kt new file mode 100644 index 0000000..1d1d06e --- /dev/null +++ b/android/app/src/test/java/dev/plainnote/app/ui/HistoryScreenshotTest.kt @@ -0,0 +1,71 @@ +package dev.plainnote.app.ui + +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Surface +import androidx.compose.ui.Modifier +import androidx.compose.ui.test.junit4.createComposeRule +import androidx.compose.ui.test.onRoot +import androidx.compose.ui.unit.dp +import androidx.test.ext.junit.runners.AndroidJUnit4 +import com.github.takahirom.roborazzi.RobolectricDeviceQualifiers +import com.github.takahirom.roborazzi.captureRoboImage +import dev.plainnote.core.NoteVersionInfo +import java.util.TimeZone +import org.junit.Before +import org.junit.Rule +import org.junit.Test +import org.junit.runner.RunWith +import org.robolectric.annotation.Config +import org.robolectric.annotation.GraphicsMode + +/** + * Screenshot regression (L3): render the read-only [HistoryTimeline] through + * Robolectric and diff against golden PNGs. The timezone is pinned to UTC so the + * formatted dates are deterministic across machines. + * + * Record: `./gradlew :app:recordRoborazziDebug`. + */ +@RunWith(AndroidJUnit4::class) +@GraphicsMode(GraphicsMode.Mode.NATIVE) +@Config(sdk = [34], qualifiers = RobolectricDeviceQualifiers.Pixel5) +class HistoryScreenshotTest { + + @get:Rule + val compose = createComposeRule() + + private val sample = listOf( + NoteVersionInfo("v5", 1_712_150_640_000L), + NoteVersionInfo("v4", 1_712_064_240_000L), + NoteVersionInfo("v3", 1_711_900_000_000L), + NoteVersionInfo("v2", 1_711_000_000_000L), + NoteVersionInfo("v1", 1_709_460_000_000L), + ) + + @Before + fun pinTimezone() { + TimeZone.setDefault(TimeZone.getTimeZone("UTC")) + } + + private fun capture(dark: Boolean, path: String) { + compose.setContent { + MaterialTheme(colorScheme = if (dark) DarkColors else LightColors) { + Surface { + HistoryTimeline( + sample, + onSelect = {}, + Modifier.fillMaxWidth().height(360.dp), + ) + } + } + } + compose.onRoot().captureRoboImage(path) + } + + @Test + fun history_light() = capture(dark = false, path = "src/test/roborazzi/history_light.png") + + @Test + fun history_dark() = capture(dark = true, path = "src/test/roborazzi/history_dark.png") +} diff --git a/android/app/src/test/java/dev/plainnote/app/ui/NotesViewModelTest.kt b/android/app/src/test/java/dev/plainnote/app/ui/NotesViewModelTest.kt index cd85778..5f6d319 100644 --- a/android/app/src/test/java/dev/plainnote/app/ui/NotesViewModelTest.kt +++ b/android/app/src/test/java/dev/plainnote/app/ui/NotesViewModelTest.kt @@ -7,6 +7,7 @@ import dev.plainnote.app.data.NoteRepository import dev.plainnote.core.FolderInfo import dev.plainnote.core.NoteContent import dev.plainnote.core.NoteSummary +import dev.plainnote.core.NoteVersionInfo import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.test.StandardTestDispatcher @@ -16,6 +17,7 @@ import kotlinx.coroutines.test.runTest import kotlinx.coroutines.test.setMain import org.junit.After import org.junit.Assert.assertEquals +import org.junit.Assert.assertNull import org.junit.Assert.assertTrue import org.junit.Before import org.junit.Test @@ -33,6 +35,8 @@ private class FakeRepo( var syncCount = 0 var pairCount = 0 var setBodyCount = 0 + var restoreCount = 0 + val versions = mutableListOf() override fun listNotes(folder: String?): List = emptyList() override fun search(query: String): List = emptyList() @@ -50,6 +54,14 @@ private class FakeRepo( override fun getNote(id: String): NoteContent = NoteContent(id, "", "", "", emptyList(), false) + override fun history(id: String): List = versions.toList() + override fun noteAt(id: String, versionId: String): NoteContent = + NoteContent(id, "titre@$versionId", "corps@$versionId", "", emptyList(), false) + + override fun restoreVersion(id: String, versionId: String) { + restoreCount++ + } + override fun setTitle(id: String, title: String) {} override fun setBody(id: String, text: String) { setBodyCount++ @@ -125,6 +137,30 @@ class NotesViewModelTest { assertEquals(1, repo.pairCount) } + @Test + fun history_preview_and_restore() = runTest(dispatcher) { + val repo = FakeRepo() + repo.versions.add(NoteVersionInfo("v-new", 2000)) + repo.versions.add(NoteVersionInfo("v-old", 1000)) + val vm = viewModel(repo) + vm.open("n") + advanceUntilIdle() + + vm.openHistory() + advanceUntilIdle() + assertEquals(2, vm.history.value?.size) + + vm.previewVersion("v-old") + advanceUntilIdle() + assertEquals("n", vm.versionPreview.value?.id) + + vm.restoreVersion("v-old") + advanceUntilIdle() + assertEquals(1, repo.restoreCount) + assertNull("history closes after restore", vm.history.value) + assertNull("preview closes after restore", vm.versionPreview.value) + } + @Test fun rapid_edits_debounce_to_a_single_auto_sync() = runTest(dispatcher) { val repo = FakeRepo(enrolled = true) diff --git a/android/app/src/test/roborazzi/history_dark.png b/android/app/src/test/roborazzi/history_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..26c174e9695e48e2ba41fd9283c8b7d5b108e913 GIT binary patch literal 37608 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 literal 0 HcmV?d00001 diff --git a/android/app/src/test/roborazzi/history_light.png b/android/app/src/test/roborazzi/history_light.png new file mode 100644 index 0000000000000000000000000000000000000000..8d3bf6f09ebfe2337d6c198e140a109afe6a16fc GIT binary patch literal 37598 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 pt;;|E?LV8sKl|eU_|d>^npS1p2yk$7