/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 0 ĠCh am ich ĠApps . ĠAll Ġrights Ġreserved . Ċ Ġ*/ Ċ Ċ package Ġapp . ch am ich . feature . authentication . ui . signin Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroidx . h ilt . lifecycle . ViewModel Inject Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġandroidx . lifecycle . viewModel Scope Ċ import Ġapp . ch am ich . library . authentication . I Authenticator Ċ import Ġapp . ch am ich . library . authentication . I User Ċ import Ġapp . ch am ich . library . core . model . Resource Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . launch Ċ import Ġkotlinx . coroutines . with Context Ċ Ċ internal Ġclass ĠSign In ViewModel Ġ@ ViewModel Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġauth enticator : ĠI Authenticator , Ċ ) Ġ: ĠViewModel () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġ_ user Ġ= ĠMutable LiveData < Resource < I User >>() ĊĠĠĠ Ġval Ġuser : ĠLive Data < Resource < I User >> ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ user ĊĊĠĠĠ Ġ// ---- Ġregion ĠPublic ĠFunctions ĊĊĠĠĠ Ġfun Ġget Google SignIn Intent ( context : ĠContext ) Ġ= Ġauth enticator . get Google SignIn Intent ( context ) ĊĊĠĠĠ Ġfun Ġhandle Google SignIn ( intent : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ user . post Value ( Resource . loading ( null )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith Context ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ user . post Value ( Resource . success ( auth enticator . handle Google SignIn ( intent ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ---- Ġend region Ċ } Ċ