mirror of
https://github.com/nextcloud/talk-android
synced 2025-07-31 08:35:19 +01:00
add error handling
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
This commit is contained in:
parent
ed488d6424
commit
65d7203820
@ -1270,7 +1270,7 @@ class ChatActivity :
|
||||
}
|
||||
|
||||
is ChatViewModel.ThreadCreationUiState.Error -> {
|
||||
Log.e(TAG, "Error when creating thread")
|
||||
Log.e(TAG, "Error when creating thread", uiState.exception)
|
||||
Snackbar.make(binding.root, R.string.nc_common_error_sorry, Snackbar.LENGTH_LONG).show()
|
||||
}
|
||||
|
||||
@ -1290,7 +1290,7 @@ class ChatActivity :
|
||||
}
|
||||
|
||||
is ChatViewModel.ThreadRetrieveUiState.Error -> {
|
||||
Log.e(TAG, "Error when retrieving thread")
|
||||
Log.e(TAG, "Error when retrieving thread", uiState.exception)
|
||||
Snackbar.make(binding.root, R.string.nc_common_error_sorry, Snackbar.LENGTH_LONG).show()
|
||||
}
|
||||
|
||||
|
@ -435,15 +435,23 @@ class ChatViewModel @Inject constructor(
|
||||
|
||||
fun createThread(credentials: String, url: String) {
|
||||
viewModelScope.launch {
|
||||
val thread = chatNetworkDataSource.createThread(credentials, url)
|
||||
_threadCreationState.value = ThreadCreationUiState.Success(thread.ocs?.data)
|
||||
try {
|
||||
val thread = chatNetworkDataSource.createThread(credentials, url)
|
||||
_threadCreationState.value = ThreadCreationUiState.Success(thread.ocs?.data)
|
||||
} catch (exception: Exception) {
|
||||
_threadCreationState.value = ThreadCreationUiState.Error(exception)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun getThread(credentials: String, url: String) {
|
||||
viewModelScope.launch {
|
||||
val thread = threadsRepository.getThread(credentials, url)
|
||||
_threadRetrieveState.value = ThreadRetrieveUiState.Success(thread.ocs?.data)
|
||||
try {
|
||||
val thread = threadsRepository.getThread(credentials, url)
|
||||
_threadRetrieveState.value = ThreadRetrieveUiState.Success(thread.ocs?.data)
|
||||
} catch (exception: Exception) {
|
||||
_threadRetrieveState.value = ThreadRetrieveUiState.Error(exception)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -900,12 +908,12 @@ class ChatViewModel @Inject constructor(
|
||||
sealed class ThreadCreationUiState {
|
||||
data object None : ThreadCreationUiState()
|
||||
data class Success(val thread: ThreadInfo?) : ThreadCreationUiState()
|
||||
data class Error(val message: String) : ThreadCreationUiState()
|
||||
data class Error(val exception: Exception) : ThreadCreationUiState()
|
||||
}
|
||||
|
||||
sealed class ThreadRetrieveUiState {
|
||||
data object None : ThreadRetrieveUiState()
|
||||
data class Success(val thread: ThreadInfo?) : ThreadRetrieveUiState()
|
||||
data class Error(val message: String) : ThreadRetrieveUiState()
|
||||
data class Error(val exception: Exception) : ThreadRetrieveUiState()
|
||||
}
|
||||
}
|
||||
|
@ -10,6 +10,7 @@ package com.nextcloud.talk.threadsoverview
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import android.text.format.DateUtils
|
||||
import android.util.Log
|
||||
import androidx.activity.compose.setContent
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.layout.Arrangement
|
||||
@ -24,10 +25,13 @@ import androidx.compose.foundation.lazy.items
|
||||
import androidx.compose.material3.CircularProgressIndicator
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.Scaffold
|
||||
import androidx.compose.material3.SnackbarHost
|
||||
import androidx.compose.material3.SnackbarHostState
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.collectAsState
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
@ -41,6 +45,7 @@ import com.nextcloud.talk.activities.BaseActivity
|
||||
import com.nextcloud.talk.api.NcApi
|
||||
import com.nextcloud.talk.application.NextcloudTalkApplication
|
||||
import com.nextcloud.talk.chat.ChatActivity
|
||||
import com.nextcloud.talk.chat.ChatActivity.Companion.TAG
|
||||
import com.nextcloud.talk.components.ColoredStatusBar
|
||||
import com.nextcloud.talk.components.StandardAppBar
|
||||
import com.nextcloud.talk.contacts.loadImage
|
||||
@ -52,7 +57,6 @@ import com.nextcloud.talk.utils.ApiUtils
|
||||
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_ROOM_TOKEN
|
||||
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_THREAD_ID
|
||||
import javax.inject.Inject
|
||||
import kotlin.toString
|
||||
|
||||
@AutoInjector(NextcloudTalkApplication::class)
|
||||
class ThreadsOverviewActivity : BaseActivity() {
|
||||
@ -162,7 +166,8 @@ fun ThreadsOverviewScreen(
|
||||
)
|
||||
}
|
||||
is ThreadsOverviewViewModel.ThreadsListUiState.Error -> {
|
||||
ErrorView(message = state.message)
|
||||
Log.e(TAG, "Error when retrieving threads", uiState.exception)
|
||||
ErrorView(message = stringResource(R.string.nc_common_error_sorry))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -43,14 +43,18 @@ class ThreadsOverviewViewModel @Inject constructor(
|
||||
|
||||
fun getThreads(credentials: String, url: String) {
|
||||
viewModelScope.launch {
|
||||
val threads = threadsRepository.getThreads(credentials, url)
|
||||
_threadsListState.value = ThreadsListUiState.Success(threads.ocs?.data)
|
||||
try {
|
||||
val threads = threadsRepository.getThreads(credentials, url)
|
||||
_threadsListState.value = ThreadsListUiState.Success(threads.ocs?.data)
|
||||
} catch (exception: Exception) {
|
||||
_threadsListState.value = ThreadsListUiState.Error(exception)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sealed class ThreadsListUiState {
|
||||
data object None : ThreadsListUiState()
|
||||
data class Success(val threadsList: List<ThreadInfo>?) : ThreadsListUiState()
|
||||
data class Error(val message: String) : ThreadsListUiState()
|
||||
data class Error(val exception: Exception) : ThreadsListUiState()
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user