package Ġcom . je trad ar mobile . social login . mail ru Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Build Ċ import Ġandroid . webkit . Cookie Manager Ċ import Ġcom . je trad ar mobile . social login . Social Account Ċ import Ġcom . je trad ar mobile . social login . Social Auth Callback Ċ import Ġcom . je trad ar mobile . social login . Social Auth Error Ċ import Ġcom . je trad ar mobile . social login . Social Network Ċ Ċ class ĠMail Ru Network ( ĊĠĠĠ Ġprivate Ġval ĠclientId : ĠString , ĊĠĠĠ Ġprivate Ġval Ġclient Secret : ĠString Ċ ) Ġ: ĠSocial Network Ġ{ ĊĊĠ Ġoverride Ġval Ġcode : ĠString Ġ= ĠCODE ĊĊĠ Ġprivate Ġvar Ġlogin Callback : ĠSocial Auth Callback ? Ġ= Ġnull ĊĊĠ Ġoverride Ġfun Ġlogin ( activity : ĠActivity , Ġcallback : ĠSocial Auth Callback ) Ġ{ ĊĠĠĠ Ġlogin Callback Ġ= Ġcallback ĊĊĠĠĠ Ġval Ġintent Ġ= ĠIntent ( activity , ĠMail Ru Login Activity :: class . java ). apply Ġ{ ĊĠĠĠĠĠ Ġput Extra ( Mail Ru Login Activity . CLIENT _ ID , ĠclientId ) ĊĠĠĠĠĠ Ġput Extra ( Mail Ru Login Activity . CLIENT _ SECRET , Ġclient Secret ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġactivity . startActivity For Result ( intent , ĠREQUEST _ CODE ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġlogout ( activity : ĠActivity , Ġcallback : ĠSocial Auth Callback ) Ġ{ ĊĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ< ĠBuild . VERSION _ CODES . LO L LI POP ) Ġ{ ĊĠĠĠĠĠ ĠCookie Manager . getInstance (). removeAll Cookie () ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠ ĠCookie Manager . getInstance (). removeAll Cookies Ġ{} ĊĠĠĠ Ġ} ĊĠĠĠ Ġcallback . on Logout Success ( this ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠ Ġif Ġ( request Code Ġ!= ĠREQUEST _ CODE ) Ġ{ ĊĠĠĠĠĠ Ġlogin Callback ?. on Auth Error ( this , ĠSocial Auth Error . CANCEL LED ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġwhen Ġ( result Code ) Ġ{ ĊĠĠĠĠĠ ĠActivity . RESULT _ OK Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtoken Ġ= Ġdata ?. get Parcelable Extra < Token Bean >( Mail Ru Login Activity . TOKEN _ BE AN ) ĊĠĠĠĠĠĠĠ Ġif Ġ( token Ġ== Ġnull Ġ|| Ġtoken . accessToken . isBlank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġlogin Callback ?. on Auth Error ( this , ĠSocial Auth Error . EMPTY ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġlogin Callback ?. on Login Success ( this , Ġmake Token ( token . accessToken )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġelse ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġerror Text Ġ= Ġdata ?. getString Extra ( Mail Ru Login Activity . ERROR _ MESSAGE ) Ġ?: Ġ"" ĊĠĠĠĠĠĠĠ Ġval Ġerror Ġ= Ġif Ġ( error Text . isNotEmpty ()) ĠSocial Auth Error ( error Text ) Ġelse ĠSocial Auth Error . CANCEL LED ĊĠĠĠĠĠĠĠ Ġlogin Callback ?. on Auth Error ( this , Ġerror ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġmake Token ( token : ĠString ?) Ġ= ĠSocial Account ( token Ġ?: Ġ"", ĠCODE ) ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġprivate Ġconst Ġval ĠREQUEST _ CODE Ġ= Ġ 0 x 0 0 1 e ĊĠĠĠ Ġconst Ġval ĠCODE Ġ= Ġ" mail _ ru " ĊĠ Ġ} Ċ }