From f258cc3440e13ed2051e2afe8eaace8e8bad9ba9 Mon Sep 17 00:00:00 2001 From: chandrashekhar reddy Date: Tue, 2 Apr 2024 16:10:17 +0530 Subject: [PATCH] Device provision show toast is device already registered --- .../hpostesting/data/repository/DatabaseRepository.kt | 4 ++++ .../hpostesting/presentation/dashboard/HomeFragment.kt | 2 +- .../deviceprovision/DeviceProvisionFragment.kt | 3 ++- .../presentation/hemocube/HemoCubeViewModel.kt | 8 ++++++-- 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/example/hpostesting/data/repository/DatabaseRepository.kt b/app/src/main/java/com/example/hpostesting/data/repository/DatabaseRepository.kt index 2859cb7..d93bce0 100644 --- a/app/src/main/java/com/example/hpostesting/data/repository/DatabaseRepository.kt +++ b/app/src/main/java/com/example/hpostesting/data/repository/DatabaseRepository.kt @@ -45,6 +45,7 @@ import com.google.firebase.storage.ktx.storage import kotlinx.coroutines.tasks.await import okhttp3.MultipartBody import okhttp3.ResponseBody +import retrofit2.HttpException import java.io.File import java.net.ConnectException import java.net.SocketTimeoutException @@ -52,6 +53,7 @@ import javax.inject.Inject import javax.inject.Named class NetworkException(message: String, cause: Throwable) : Exception(message, cause) +class ValidationException(message: String) : Exception(message) class DatabaseRepository @Inject constructor( @Named("Auth") private val molbioAuthApi: MolbioAuthApi, private val molbioResultApi: MolbioResultApi, @@ -64,6 +66,8 @@ class DatabaseRepository @Inject constructor( return try { val response = apiCall.invoke() Result.Success(response) + }catch (e: HttpException) { + Result.Error(ValidationException("Device Already Registered /"+e.message)) } catch (e: SocketTimeoutException) { Result.Error(NetworkException("Network timeout", e)) } catch (e: ConnectException) { diff --git a/app/src/main/java/com/example/hpostesting/presentation/dashboard/HomeFragment.kt b/app/src/main/java/com/example/hpostesting/presentation/dashboard/HomeFragment.kt index 3cc029c..b68d072 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/dashboard/HomeFragment.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/dashboard/HomeFragment.kt @@ -125,7 +125,7 @@ class HomeFragment : Fragment() { getDeviceId() checkUnprocessedCSVData() - checkForUpdate() + // checkForUpdate() viewModel.allUserData.observe(viewLifecycleOwner) { userData -> deleteIncompleteRegistrations(userData) } diff --git a/app/src/main/java/com/example/hpostesting/presentation/deviceprovision/DeviceProvisionFragment.kt b/app/src/main/java/com/example/hpostesting/presentation/deviceprovision/DeviceProvisionFragment.kt index a48c365..f6a24b9 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/deviceprovision/DeviceProvisionFragment.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/deviceprovision/DeviceProvisionFragment.kt @@ -161,10 +161,11 @@ class DeviceProvisionFragment : Fragment() { } is Result.Error -> { + Log.d("deviceProvisionResponse", response.exception.toString()) response.exception.let { message -> Toast.makeText( activity, - "An error occurred in device provision: $message", + "An error occurred in device provision: ${message.message}", Toast.LENGTH_LONG ).show() } diff --git a/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeViewModel.kt b/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeViewModel.kt index 0a45540..dff9007 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeViewModel.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeViewModel.kt @@ -51,6 +51,7 @@ import com.example.hpostesting.data.repository.Repository import com.example.hpostesting.domain.CheckUpdateWorker import com.example.hpostesting.domain.LogFileManager import dagger.hilt.android.lifecycle.HiltViewModel +import kotlinx.coroutines.CoroutineExceptionHandler import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import okhttp3.MediaType.Companion.toMediaTypeOrNull @@ -167,7 +168,7 @@ class HemoCubeViewModel @Inject constructor( } - fun sendDataToMolbio() = viewModelScope.launch(Dispatchers.IO) { + fun sendDataToMolbio() = viewModelScope.launch(Dispatchers.IO + coroutineExceptionHandler) { Log.d("molbio","getting in sendMolbio") val resultList = MolbioV2ResultRequest(mutableListOf()) @@ -235,7 +236,7 @@ class HemoCubeViewModel @Inject constructor( } - fun sendDataToFirebase() = viewModelScope.launch ( Dispatchers.IO ) { + fun sendDataToFirebase() = viewModelScope.launch ( Dispatchers.IO + coroutineExceptionHandler ) { val pendingData = hemoCubeDao.getFirebasePending() pendingData.forEach{ userData -> @@ -680,4 +681,7 @@ class HemoCubeViewModel @Inject constructor( "yyyy-MM-dd HH:mm:ss", Locale.getDefault() ).format(Calendar.getInstance().time) } + val coroutineExceptionHandler = CoroutineExceptionHandler{_, throwable -> + throwable.printStackTrace() + } }