package Ġcom . example . h obby fi . ui . auth Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . Intent . FLAG _ ACTIVITY _ CLEAR _ TOP Ċ import Ġandroid . content . Intent . FLAG _ ACTIVITY _ NEW _ TASK Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġcom . example . h obby fi . R Ċ import Ġcom . example . h obby fi . shared . Constants Ċ import Ġcom . example . h obby fi . ui . base . Base Activity Ċ import Ġcom . example . h obby fi . ui . main . MainActivity Ċ import Ġcom . example . h obby fi . ui . on board . On boarding Activity Ċ import Ġcom . example . h obby fi . utils . Token Utils Ċ import Ġcom . facebook . login . Login Manager Ċ import Ġkotlinx . coroutines . Experimental Cor outines Api Ċ Ċ class ĠSpl ash Screen Activity Ġ: ĠBase Activity () Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance () Ġ= ĠSpl ash Screen Activity () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Experimental Cor outines Api ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġ// Ġusing Ġthem ing Ġthe Ġsplash Ġis Ġautomatically Ġrendered ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i (" Splash Screen Activity ", Ġ" on boarding : Ġ${ pref Config . read On boarding Valid () }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( pref Config . read On boarding Valid ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( this , ĠOn boarding Activity :: class . java ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġflags Ġ= ĠFLAG _ ACTIVITY _ NEW _ TASK Ġor ĠFLAG _ ACTIVITY _ CLEAR _ TOP ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Pending Transition ( R . anim . fade _ in , ĠR . anim . fade _ out ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Facebook User Logged Ġ= ĠConstants . is Facebook User Auth d () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Facebook User Logged Ġ|| ĠToken Utils . getToken UserId From Stored Tokens ( pref Config ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. compareTo ( 0 ) Ġ!= Ġ 0 ) Ġ{ Ġ// Ġassert Ġjwt Ġdoesn 't Ġthrow Ġexception ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i (" Splash Screen ", Ġ" Authenticated . ĠMoving Ġto Ġmain Ġactivity ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( this , ĠAuth Activity :: class . java ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġflags Ġ= ĠIntent . FLAG _ ACTIVITY _ NO _ ANIM ATION ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Pending Transition ( 0 , Ġ 0 ) Ġ// Ġno Ġanim ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( this , ĠMainActivity :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Pending Transition ( R . anim . fade _ in , ĠR . anim . fade _ out ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġthrow ĠUn authenticated Exception () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġex . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i (" Splash Screen ", Ġ" Not Ġauthenticated . ĠMoving Ġto ĠAuth Activity Ġ( Login Fragment )") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLogin Manager . getInstance (). log Out () Ġ// Ġlog Ġout Ġin Ġcase Ġof Ġalready Ġbeing Ġlogged Ġin ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( this , ĠAuth Activity :: class . java ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġflags Ġ= ĠFLAG _ ACTIVITY _ NEW _ TASK Ġor ĠFLAG _ ACTIVITY _ CLEAR _ TOP ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠUn authenticated Exception Ġ: ĠException () Ċ }