diff --git a/android/Omnivore/app/build.gradle b/android/Omnivore/app/build.gradle index 3aea8d9fd..f6fef80af 100644 --- a/android/Omnivore/app/build.gradle +++ b/android/Omnivore/app/build.gradle @@ -17,8 +17,8 @@ android { applicationId "app.omnivore.omnivore" minSdk 26 targetSdk 33 - versionCode 21 - versionName "0.0.21" + versionCode 22 + versionName "0.0.22" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" vectorDrawables { diff --git a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/dataService/DataService.kt b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/dataService/DataService.kt index f0143e4d2..c25eb280c 100644 --- a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/dataService/DataService.kt +++ b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/dataService/DataService.kt @@ -4,6 +4,7 @@ import android.content.Context import androidx.room.Room import app.omnivore.omnivore.networking.* import app.omnivore.omnivore.persistence.AppDatabase +import kotlinx.coroutines.* import javax.inject.Inject class DataService @Inject constructor( @@ -14,4 +15,10 @@ class DataService @Inject constructor( context, AppDatabase::class.java, "omnivore-database" ).build() + + fun clearDatabase() { + CoroutineScope(Dispatchers.IO).launch { + db.clearAllTables() + } + } } diff --git a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/auth/LoginViewModel.kt b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/auth/LoginViewModel.kt index 4415c5a28..05a452995 100644 --- a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/auth/LoginViewModel.kt +++ b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/auth/LoginViewModel.kt @@ -5,6 +5,7 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.setValue import androidx.lifecycle.* import app.omnivore.omnivore.* +import app.omnivore.omnivore.dataService.DataService import app.omnivore.omnivore.graphql.generated.ValidateUsernameQuery import app.omnivore.omnivore.networking.Networker import app.omnivore.omnivore.networking.viewer @@ -14,11 +15,8 @@ import com.google.android.gms.common.api.ApiException import com.google.android.gms.tasks.Task import dagger.hilt.android.lifecycle.HiltViewModel import io.intercom.android.sdk.Intercom -import kotlinx.coroutines.Job -import kotlinx.coroutines.delay +import kotlinx.coroutines.* import kotlinx.coroutines.flow.distinctUntilChanged -import kotlinx.coroutines.launch -import kotlinx.coroutines.runBlocking import java.util.regex.Pattern import javax.inject.Inject @@ -38,7 +36,8 @@ data class PendingEmailUserCreds( class LoginViewModel @Inject constructor( private val datastoreRepo: DatastoreRepository, private val eventTracker: EventTracker, - private val networker: Networker + private val networker: Networker, + private val dataService: DataService ): ViewModel() { private var validateUsernameJob: Job? = null @@ -218,7 +217,7 @@ class LoginViewModel @Inject constructor( isLoading = false if (result.errorBody() != null) { - errorMessage = "Something went wrong. Please check your and try again" + errorMessage = "Something went wrong. Please check your entries and try again" } else { pendingEmailUserCreds = PendingEmailUserCreds(email, password) } @@ -271,6 +270,7 @@ class LoginViewModel @Inject constructor( fun logout() { viewModelScope.launch { datastoreRepo.clear() + dataService.clearDatabase() Intercom.client().logout() } }