package Ġcom . w 2 solo . android . ui . account Ċ Ċ import Ġcom . w 2 solo . android . app . App Configs Ċ import Ġcom . w 2 solo . android . app . KV Keys Ċ import Ġcom . w 2 solo . android . app . account . Account Manager Ċ import Ġcom . w 2 solo . android . app . account . Token Ċ import Ġcom . w 2 solo . android . data . entity . User Ċ import Ġcom . w 2 solo . android . http . Request er Ċ import Ġcom . w 2 solo . android . module . key value . KV Ċ import Ġcom . w 2 solo . android . mvp . Base Presenter Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ Ċ class ĠLogin Presenter Impl ( view : ĠLogin Contract . View ) Ġ: ĠBase Presenter < Login Contract . View >( view ), ĊĠĠĠ ĠLogin Contract . Presenter Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġstart Login ( account : ĠString , Ġpwd : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdis posable Ġ= ĠRequest er . api Service () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. get AccessToken ( account , Ġpwd , ĠApp Configs . CLIENT _ ID , ĠApp Configs . CLIENT _ SECRET ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetUser Info ( account , Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. on Login ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġrun Disposable ( dis posable ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠgetUser Info ( account : ĠString , Ġtoken : ĠToken ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdis posable Ġ= ĠRequest er . api Service () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. get Login UserInfo (" Bearer Ġ${ token . accessToken }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Login Success ( token , Ġit . user !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġrecord Ġlast Ġlogin Ġaccount ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠK V . save Sys Value ( KV Keys . KEY _ LAST _ LOGIN _ ACCOUNT , Ġaccount ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. on Login ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġrun Disposable ( dis posable ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Login Success ( token : ĠToken , Ġuser : ĠUser ) Ġ{ ĊĠĠĠĠĠĠĠ ĠAccount Manager . getInstance (). on Login ( user , Ġtoken ) ĊĠĠĠĠĠĠĠ Ġview ?. on Login ( user ) ĊĠĠĠ Ġ} Ċ }