package Ġcom . je trad ar mobile . social login . line Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Intent Ċ 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 Ċ import Ġcom . line corp . lines dk . Line ApiResponse Code Ċ import Ġcom . line corp . lines dk . Line Credential Ċ import Ġcom . line corp . lines dk . Line Profile Ċ import Ġcom . line corp . lines dk . Scope Ċ import Ġcom . line corp . lines dk . api . Line ApiClient Builder Ċ import Ġcom . line corp . lines dk . auth . Line Authentication Params Ċ import Ġcom . line corp . lines dk . auth . Line Login Api ĊĊ Ċ class ĠLine Network ( private Ġval Ġchannel Id : Ġ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 Ġparams Ġ= ĠLine Authentication Params . Builder () ĊĠĠĠĠĠĠĠ Ġ. scopes ( listOf ( Scope . PROFILE , ĠScope . OC _ EMAIL )) ĊĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġvar Ġintent Ġ= ĠLine Login Api . get Login Intent ( activity , Ġchannel Id , Ġparams ) ĊĠĠĠ Ġif Ġ( intent . resolve Activity ( activity . package Manager ) Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠ Ġactivity . startActivity For Result ( intent , ĠREQUEST _ CODE ) ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠ Ġintent Ġ= ĠLine Login Api . get Login Intent Without Line App Auth ( activity , Ġchannel Id , Ġparams ) ĊĠĠĠĠĠ Ġactivity . startActivity For Result ( intent , ĠREQUEST _ CODE ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġlogout ( activity : ĠActivity , Ġcallback : ĠSocial Auth Callback ) Ġ{ ĊĠĠĠ Ġval Ġresponse Ġ= ĠLine ApiClient Builder ( activity , Ġchannel Id ). build (). logout () ĊĠĠĠ Ġif Ġ( response . is Success ) Ġcallback . on Logout Success ( this ) ĊĠĠĠ Ġelse Ġcallback . on Auth Error ( this , ĠSocial Auth Error . UNKNOWN ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠ Ġif Ġ( request Code Ġ!= ĠREQUEST _ CODE ) Ġreturn ĊĠĠĠ Ġval Ġresult Ġ= ĠLine Login Api . get Login Result From Intent ( data ) ĊĠĠĠ Ġwhen Ġ( result . response Code ) Ġ{ ĊĠĠĠĠĠ ĠLine ApiResponse Code . SUCCESS Ġ-> Ġlogin Callback ?. on Login Success ( this , Ġmake Token ( result . line Credential , Ġresult . line Profile )) ĊĠĠĠĠĠ ĠLine ApiResponse Code . CANCEL Ġ Ġ-> Ġlogin Callback ?. on Auth Error ( this , ĠSocial Auth Error . CANCEL LED ) ĊĠĠĠĠĠ Ġelse ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ-> Ġlogin Callback ?. on Auth Error ( this , ĠSocial Auth Error ( result . error Data . toString ())) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġmake Token ( cred : ĠLine Credential ?, Ġprofile : ĠLine Profile ?) Ġ= ĠSocial Account ( ĊĠĠĠĠĠ Ġtoken Ġ= Ġcred ?. accessToken ?. token String Ġ?: Ġ"", ĊĠĠĠĠĠ Ġnetwork Code Ġ= ĠCODE , ĊĠĠĠĠĠ ĠuserId Ġ= Ġprofile ?. userId Ġ?: Ġ"", ĊĠĠĠĠĠ ĠuserName Ġ= Ġprofile ?. displayName Ġ?: Ġ"" ĊĠ Ġ) ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġprivate Ġconst Ġval ĠREQUEST _ CODE Ġ= Ġ 0 x 0 0 1 c ĊĠĠĠ Ġconst Ġval ĠCODE Ġ= Ġ" line " ĊĠ Ġ} Ċ }