From f66fa1131ab5196933251a98780a74facb8be517 Mon Sep 17 00:00:00 2001 From: AnranYus Date: Sat, 15 Jun 2024 03:00:42 +0800 Subject: [PATCH] fix: can not show download result --- .../com/lsp/view/ui/compose/PostActivity.kt | 17 ++++++----------- .../com/lsp/view/ui/compose/PostViewModel.kt | 6 ++++++ 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/com/lsp/view/ui/compose/PostActivity.kt b/app/src/main/java/com/lsp/view/ui/compose/PostActivity.kt index 619d867..d55f635 100644 --- a/app/src/main/java/com/lsp/view/ui/compose/PostActivity.kt +++ b/app/src/main/java/com/lsp/view/ui/compose/PostActivity.kt @@ -106,20 +106,15 @@ class PostActivity : ComponentActivity() { val result = downloadBinder.downloadImage(viewModel.uiState.value.selectPost?.fileUrl ?: "") .await() - launch(Dispatchers.Main) { - if (result.isSuccess) { - Toast.makeText( - this@PostActivity, "Download successful", Toast.LENGTH_SHORT - ).show() - } else { - Toast.makeText( - this@PostActivity, "Download fail", Toast.LENGTH_SHORT - ).show() - } - } + viewModel.setDownloadResult(result) } } + viewModel.downloadResult.observe(this){ + val message = it.getOrThrow() + Toast.makeText(this,message.toString(),Toast.LENGTH_SHORT).show() + } + val serviceIntent = Intent(this, DownloadService::class.java) bindService(serviceIntent, connection, BIND_AUTO_CREATE) } diff --git a/app/src/main/java/com/lsp/view/ui/compose/PostViewModel.kt b/app/src/main/java/com/lsp/view/ui/compose/PostViewModel.kt index 2f06776..6e61d76 100644 --- a/app/src/main/java/com/lsp/view/ui/compose/PostViewModel.kt +++ b/app/src/main/java/com/lsp/view/ui/compose/PostViewModel.kt @@ -10,6 +10,7 @@ import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.launch +import java.io.Serializable class PostViewModel:ViewModel() { private val _uiState = MutableStateFlow(PostUiState()) @@ -19,6 +20,7 @@ class PostViewModel:ViewModel() { PostRepository() } val downloadAction = MutableLiveData() + val downloadResult = MutableLiveData>() init { initData() @@ -53,5 +55,9 @@ class PostViewModel:ViewModel() { } } + fun setDownloadResult(result: Result){ + downloadResult.postValue(result) + } + } \ No newline at end of file