diff --git a/wearos/build.gradle b/wearos/build.gradle index b54f9b232..331475135 100644 --- a/wearos/build.gradle +++ b/wearos/build.gradle @@ -18,6 +18,10 @@ android { buildConfigField "String", "TESTING_LEVEL", "\"production\"" } + signingConfigs { + release + } + buildTypes { debug { minifyEnabled false @@ -28,15 +32,13 @@ android { resValue "string", "app_name", "Habitica Debug" } release { + signingConfig signingConfigs.release minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' resValue "string", "app_name", "Habitica" } } - signingConfigs { - release - } flavorDimensions "buildType" productFlavors { diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewmodels/LoginViewModel.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewmodels/LoginViewModel.kt index d7a22e161..6e3739759 100644 --- a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewmodels/LoginViewModel.kt +++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewmodels/LoginViewModel.kt @@ -7,6 +7,7 @@ import androidx.activity.result.ActivityResultLauncher import androidx.core.content.edit import androidx.lifecycle.viewModelScope import com.google.android.gms.auth.GoogleAuthException +import com.google.android.gms.auth.GoogleAuthUtil import com.google.android.gms.auth.GooglePlayServicesAvailabilityException import com.google.android.gms.auth.UserRecoverableAuthException import com.google.android.gms.auth.api.signin.GoogleSignIn @@ -14,6 +15,7 @@ import com.google.android.gms.auth.api.signin.GoogleSignInAccount import com.google.android.gms.auth.api.signin.GoogleSignInOptions import com.google.android.gms.common.GoogleApiAvailability import com.google.android.gms.common.GooglePlayServicesUtil +import com.google.android.gms.common.Scopes import com.google.android.gms.common.UserRecoverableException import com.google.android.gms.common.api.ApiException import com.google.android.gms.tasks.Task @@ -28,8 +30,10 @@ import com.habitrpg.wearos.habitica.data.repositories.UserRepository import com.habitrpg.wearos.habitica.managers.LoadingManager import com.habitrpg.wearos.habitica.util.ExceptionHandlerBuilder import dagger.hilt.android.lifecycle.HiltViewModel +import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.async import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext import java.io.IOException import javax.inject.Inject @@ -76,11 +80,16 @@ class LoginViewModel @Inject constructor(userRepository: UserRepository, return@async null } }.await() + val scopesString = Scopes.PROFILE + " " + Scopes.EMAIL + val scopes = "oauth2:$scopesString" + val token = withContext(Dispatchers.IO) { + account?.account?.let { GoogleAuthUtil.getToken(activity, it, scopes) } + } val auth = UserAuthSocial() auth.network = "google" auth.authResponse = UserAuthSocialTokens() - auth.authResponse?.client_id = account?.id - auth.authResponse?.access_token = account?.idToken + auth.authResponse?.client_id = account?.email + auth.authResponse?.access_token = token val response = apiClient.loginSocial(auth) handleAuthResponse(response) }