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()