package com.nitrogooglesignin import androidx.annotation.Keep import com.facebook.proguard.annotations.DoNotStrip import com.margelo.nitro.core.NullType import com.margelo.nitro.core.Promise import com.margelo.nitro.nitrogooglesignin.HybridNitroGoogleSigninSpec import com.margelo.nitro.nitrogooglesignin.GetTokensResponse import com.margelo.nitro.nitrogooglesignin.OneTapAuthorizationResult import com.margelo.nitro.nitrogooglesignin.OneTapConfigureParams import com.margelo.nitro.nitrogooglesignin.OneTapResponse import com.margelo.nitro.nitrogooglesignin.Variant_NullType_OneTapSuccessData import com.nitrogooglesignin.GoogleSignInController /** * Nitrogen autolinking instantiates this class via JNI * (`com.margelo.nitro.nitrogooglesignin.HybridNitroGoogleSignin`). */ @Keep @DoNotStrip class HybridNitroGoogleSignin : HybridNitroGoogleSigninSpec() { override fun configure(params: OneTapConfigureParams) { GoogleSignInController.configure(params) } override fun checkPlayServices(showErrorResolutionDialog: Boolean?): Promise = Promise.async { GoogleSignInController.checkPlayServices(showErrorResolutionDialog != false) } override fun signIn(): Promise = Promise.async { GoogleSignInController.signIn() } override fun createAccount(): Promise = Promise.async { GoogleSignInController.createAccount() } override fun presentExplicitSignIn(): Promise = Promise.async { GoogleSignInController.presentExplicitSignIn() } override fun requestScopes(scopes: Array): Promise = Promise.async { GoogleSignInController.requestScopes(scopes) } override fun getCurrentUser(): Variant_NullType_OneTapSuccessData { val user = GoogleSignInController.getCurrentUser() return if (user == null) { Variant_NullType_OneTapSuccessData.create(NullType.NULL) } else { Variant_NullType_OneTapSuccessData.create(user) } } override fun getTokens(): Promise = Promise.async { GoogleSignInController.getTokens() } override fun clearCachedAccessToken(accessTokenString: String): Promise = Promise.async { GoogleSignInController.clearCachedAccessToken(accessTokenString) } override fun signOut(): Promise = Promise.async { GoogleSignInController.signOut() } override fun revokeAccess(emailOrUniqueId: String): Promise = Promise.async { GoogleSignInController.revokeAccess(emailOrUniqueId) } }