package Ġse . w art ing . firebase compose . auth . internal Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroidx . activity . result . contract . Activity Result Contract Ċ import Ġandroidx . annotation . Call Super Ċ import Ġcom . google . android . gms . auth . api . signin . Google SignIn Ċ import Ġcom . google . android . gms . auth . api . signin . Google SignIn Options Ċ import Ġcom . google . android . gms . common . api . ApiException Ċ import Ġcom . google . firebase . auth . Google Auth Provider Ċ Ċ internal Ġclass ĠFirebase SignIn Result Contracts Ġ{ ĊĊĠĠĠ Ġclass ĠSign In With Google Ġ: ĊĠĠĠĠĠĠĠ ĠActivity Result Contract < String , ĠAuth enticate Result >() Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Call Super ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcreate Intent ( context : ĠContext , Ġinput : ĠString ): ĠIntent Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġg so Ġ= ĠGoogle SignIn Options . Builder ( Google SignIn Options . DEFAULT _ SIGN _ IN ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. requestId Token ( input ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. request Email () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgoogle SignIn Client Ġ= ĠGoogle SignIn . getClient ( context , Ġg so ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġgoogle SignIn Client . signIn Intent ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetS ynchronous Result ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext : ĠContext , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinput : ĠString , ĊĠĠĠĠĠĠĠ Ġ): ĠS ynchronous Result < Authenticate Result >? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġparse Result ( result Code : ĠInt , Ġintent : ĠIntent ?): ĠAuth enticate Result Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( intent Ġ!= Ġnull Ġ&& ĠresultCode Ġ== ĠActivity . RESULT _ OK ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtask Ġ= ĠGoogle SignIn . get Signed In Account From Intent ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaccount Ġ= Ġtask . getResult ( ApiException :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcredential Ġ= ĠGoogle Auth Provider . getC redential ( account . id Token !! , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAuth enticate Result . Success ( credential ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAuth enticate Result . Failed ( result Code , Ġintent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ