package Ġb z . k ak ad u . social login Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġcom . hu awei . h ms . support . hw id . Hu awei Id Auth Manager Ċ import Ġcom . hu awei . h ms . support . hw id . request . Hu awei Id Auth Params Ċ import Ġcom . hu awei . h ms . support . hw id . request . Hu awei Id Auth Params Helper Ċ Ċ class ĠHu awei Module ( override Ġval Ġlistener : ĠI Login Listener ) Ġ: ĠIS ocial Module Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġlogin ( activity : ĠActivity ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġauth Params Ġ= ĠHu awei Id Auth Params Helper ( Hu awei Id Auth Params . DEFAULT _ AUTH _ REQUEST _ PARAM ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setId Token () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Email () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. create Params () ĊĠĠĠĠĠĠĠ Ġval Ġservice Ġ= ĠHu awei Id Auth Manager . getService ( activity , Ġauth Params ) ĊĠĠĠĠĠĠĠ Ġactivity . startActivity For Result ( service . signIn Intent , ĠREQUEST _ H UA WE I _ LOGIN ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( request Code Ġ== ĠREQUEST _ H UA WE I _ LOGIN Ġ&& Ġdata Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHu awei Id Auth Manager . parse Auth Result From Intent ( data ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add On Success Listener Ġ{ Ġhu awei Id Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener . on Login Result ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLogin Result ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Success Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogin Type Ġ= ĠSocial Login . Login Type . H UA WE I , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġhu awei Id . union Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoken Ġ= Ġhu awei Id . id Token , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfirstName Ġ= Ġhu awei Id . given Name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . take If Ġ{ Ġit . isNotBlank () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġhu awei Id . displayName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlastName Ġ= Ġhu awei Id . family Name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġavatar Ġ= Ġhu awei Id . avatar Uri String , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemail Ġ= Ġhu awei Id . email ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add On Failure Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener . on Login Result ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLogin Result ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Success Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogin Type Ġ= ĠSocial Login . Login Type . H UA WE I , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠerrorMessage Ġ= Ġit . message ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġlogout ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġauth Params Ġ= ĠHu awei Id Auth Params Helper ( Hu awei Id Auth Params . DEFAULT _ AUTH _ REQUEST _ PARAM ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setId Token () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Email () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. create Params () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġservice Ġ= ĠHu awei Id Auth Manager . getService ( context , Ġauth Params ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġservice . sign Out () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġconst Ġval ĠREQUEST _ H UA WE I _ LOGIN Ġ= Ġ 2 1 5