From 7a0cbdf909beb6eecb5d5e68d380b784102d3a16 Mon Sep 17 00:00:00 2001 From: justinzeus Date: Sat, 7 Nov 2026 16:14:58 +0100 Subject: [PATCH] Retain candidate metadata across updater states --- .../wolfskin/tv/update/FakeUpdateController.kt | 8 +++++++- .../justinvisser/wolfskin/tv/update/UpdateController.kt | 2 ++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/app/src/wolfskin/java/org/justinvisser/wolfskin/tv/update/FakeUpdateController.kt b/app/src/wolfskin/java/org/justinvisser/wolfskin/tv/update/FakeUpdateController.kt index 3976489b..ebac04ed 100644 --- a/app/src/wolfskin/java/org/justinvisser/wolfskin/tv/update/FakeUpdateController.kt +++ b/app/src/wolfskin/java/org/justinvisser/wolfskin/tv/update/FakeUpdateController.kt @@ -9,16 +9,22 @@ class FakeUpdateController( initialState: UpdateUiState = UpdateUiState.Idle, initialAutoCheck: Boolean = true, initialVersion: InstalledVersion = InstalledVersion("1.1.1", 100001), + initialRelease: UpdateUiState.Available? = initialState as? UpdateUiState.Available, ) : UpdateController { private val mutableState = MutableStateFlow(initialState) private val mutableAutoCheck = MutableStateFlow(initialAutoCheck) private val mutableVersion = MutableStateFlow(initialVersion) + private val mutableRelease = MutableStateFlow(initialRelease) override val state = mutableState.asStateFlow() override val autoCheck = mutableAutoCheck.asStateFlow() override val installedVersion = mutableVersion.asStateFlow() + override val release = mutableRelease.asStateFlow() val actions = mutableListOf() - fun show(state: UpdateUiState) { mutableState.value = state } + fun show(state: UpdateUiState) { + if (state is UpdateUiState.Available) mutableRelease.value = state + mutableState.value = state + } fun showInstalled(version: InstalledVersion) { mutableVersion.value = version } override fun check(manual: Boolean) { actions += "check:$manual" } override fun download() { actions += "download" } diff --git a/app/src/wolfskin/java/org/justinvisser/wolfskin/tv/update/UpdateController.kt b/app/src/wolfskin/java/org/justinvisser/wolfskin/tv/update/UpdateController.kt index c7faa29e..ee7982d9 100644 --- a/app/src/wolfskin/java/org/justinvisser/wolfskin/tv/update/UpdateController.kt +++ b/app/src/wolfskin/java/org/justinvisser/wolfskin/tv/update/UpdateController.kt @@ -8,6 +8,8 @@ interface UpdateController { val state: StateFlow val autoCheck: StateFlow val installedVersion: StateFlow + /** Candidate facts survive download/installer transitions and verified-file restoration. */ + val release: StateFlow fun check(manual: Boolean) fun download()