package Ġnet . web define . g az aut ocl ub . activities Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġandroid . util . Log Ċ import Ġcom . be ust . kl ax on . string Ċ import Ġkotlinx . coroutines . experimental . launch Ċ import Ġnet . web define . g az aut ocl ub . Android Ċ import Ġnet . web define . g az aut ocl ub . App Ċ import Ġnet . web define . g az aut ocl ub . R Ċ import Ġnet . web define . g az aut ocl ub . database . Client Ċ import Ġnet . web define . g az aut ocl ub . database . Local Preferences Ċ Ċ class ĠSpl ash Screen Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġprivate Ġval ĠACCESS _ TOKEN Ġ= Ġ" access _ token " ĊĠĠĠ Ġprivate Ġval ĠREF RESH _ TOKEN Ġ= Ġ" refresh _ token " ĊĠĠĠ Ġprivate Ġval ĠLOGIN _ ACTIVITY Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġval ĠMAIN _ ACTIVITY Ġ= Ġ 1 ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ splash _ screen ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( Local Preferences . check If Contain ( REFRESH _ TOKEN ) Ġ&& ĠLocal Preferences . getString ( REFRESH _ TOKEN , Ġ"") Ġ!= Ġ"") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġrefresh Token Ġ= ĠLocal Preferences . getString ( REFRESH _ TOKEN , Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" Splash Screen ", Ġrefresh Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlaunch ( Android ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠClient . regener ate RefreshToken ( refresh Token ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparsed Ġ= Ġresult . await () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" Splash Screen / Response ", Ġparsed . toJson String ( true )) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( parsed . containsKey (" error ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġre voke Ġrefresh Ġtoken ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLocal Preferences . delete ( REFRESH _ TOKEN ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgo To Activity ( LOGIN _ ACTIVITY ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar ĠaccessToken Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( parsed . containsKey ( ACCESS _ TOKEN )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠaccessToken Ġ= Ġparsed . string ( ACCESS _ TOKEN ) Ġ?: Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( parsed . containsKey ( REFRESH _ TOKEN )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh Token Ġ= Ġparsed . string ( REFRESH _ TOKEN ) Ġ?: Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠClient . register Client With AccessToken ( accessToken ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLocal Preferences . add String ( REFRESH _ TOKEN , Ġrefresh Token ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgo To Activity ( MAIN _ ACTIVITY , ĠaccessToken ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgo To Activity ( LOGIN _ ACTIVITY ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġgo To Activity ( activity : ĠInt , ĠaccessToken : ĠString Ġ= Ġ"") Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( activity Ġ== ĠLOGIN _ ACTIVITY ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( App . instance , ĠLogin Activity :: class . java )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse Ġif Ġ( activity Ġ== ĠMAIN _ ACTIVITY ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( App . instance , ĠMainActivity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ Ġput Extra ( ACCESS _ TOKEN , ĠaccessToken ) Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Pending Transition ( R . anim . right _ in , ĠR . anim . left _ out ) ĊĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠ Ġ} Ċ } Ċ