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