diff --git a/app/build.gradle b/app/build.gradle index d1d10d4b..7767d07a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -50,6 +50,7 @@ dependencies { androidTestImplementation "androidx.test.ext:junit:$rootProject.extJunitVersion" androidTestImplementation "androidx.test.espresso:espresso-core:$rootProject.espressoCoreVersion" implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$rootProject.lifeCycleVersion" + implementation "com.google.android.gms:play-services-auth:$rootProject.playServicesVersion" } def getDeeplApiKey() { diff --git a/app/src/main/java/ru/easycode/words504/languages/data/cloud/SignInDataSource.kt b/app/src/main/java/ru/easycode/words504/languages/data/cloud/SignInDataSource.kt new file mode 100644 index 00000000..bcd9643f --- /dev/null +++ b/app/src/main/java/ru/easycode/words504/languages/data/cloud/SignInDataSource.kt @@ -0,0 +1,24 @@ +package ru.easycode.words504.languages.data.cloud + +import android.content.Context +import com.google.android.gms.auth.api.signin.GoogleSignIn +import com.google.android.gms.auth.api.signin.GoogleSignInAccount +import ru.easycode.words504.domain.HandleError + +interface SignInDataSource { + + suspend fun checkSignIn(): GoogleSignInAccount + + class Base( + private val context: Context, + private val errorHandler: HandleError + ) : SignInDataSource { + override suspend fun checkSignIn(): GoogleSignInAccount { + try { + return GoogleSignIn.getLastSignedInAccount(context)!! + } catch (e: Exception) { + throw errorHandler.handle(e) + } + } + } +} diff --git a/build.gradle b/build.gradle index b3724826..a1c561f1 100644 --- a/build.gradle +++ b/build.gradle @@ -23,4 +23,5 @@ ext { constraintlayoutVersion = '2.1.4' extJunitVersion = '1.1.5' espressoCoreVersion = '3.5.1' + playServicesVersion = '20.4.1' }