package Ġcom . fund ito . fund ito . presentation . splash Ċ Ċ import Ġandroid . animation . Value Animator Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . core . animation . do On End Ċ import Ġandroidx . lifecycle . lifecycle Scope Ċ import Ġcom . facebook . AccessToken Ċ import Ġcom . fund ito . fund ito . R Ċ import Ġcom . fund ito . fund ito . common . util . Auth Util Ċ import Ġcom . fund ito . fund ito . common . util . SP Util Ċ import Ġcom . fund ito . fund ito . common . util . startActivity Ċ import Ġcom . fund ito . fund ito . data . service . Network Client Ċ import Ġcom . fund ito . fund ito . presentation . login . Login Activity Ċ import Ġcom . fund ito . fund ito . presentation . main . MainActivity Ċ import Ġcom . google . firebase . iid . Firebase InstanceId Ċ import Ġkotlinx . android . synt hetic . main . activity _ splash .* Ċ import Ġkotlinx . coroutines . launch Ċ import Ġkotlinx . coroutines . suspend C ancellable Coroutine Ċ import Ġtim ber . log . Tim ber Ċ import Ġkotlin . coroutines . resume ĊĊ Ċ /** Ċ Ġ* ĠCreated Ġby Ġm j Ġon Ġ 2 2 , ĠDecember , Ġ 2 0 1 9 Ċ Ġ*/ Ċ class ĠSpl ash Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġanim ator : ĠValue Animator ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ splash ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĊĠĠĠĠĠĠĠ Ġanim ator Ġ= ĠValue Animator . of Float ( 0 . 3 f , 1 f ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġduration Ġ= Ġ 1 5 0 0 L ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Update Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġit . animated Value Ġas ĠFloat ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsplash _ symbol . alpha Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsplash _ symbol . scale X Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsplash _ symbol . scale Y Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdo On End Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġboot () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠĠĠĠĠ Ġanim ator ?. cancel () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġboot () Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠaccessToken Ġ= ĠAccess Token . getCurrent AccessToken () ĊĠĠĠĠĠĠĠ Ġval Ġis LoggedIn Ġ= ĠaccessToken Ġ!= Ġnull Ġ&& Ġ! accessToken . is Expired ĊĊĠĠĠĠĠĠĠ Ġif ( is LoggedIn ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġlifecycle Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkotlin . run Catch ing Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġf cm Token Ġ= Ġsuspend C ancellable Coroutine < String > Ġ{ continu ation -> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFirebase InstanceId . getInstance (). instanceId ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add On Success Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontinuation . resume ( it . token ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. add On Failure Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontinuation . cancel ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNetwork Client . userService . signIn ( accessToken . token , fc m Token ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. on Success Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . e ( it . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSP Util . accessToken Ġ= Ġit . token ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( MainActivity :: class , ĠIntent . FLAG _ ACTIVITY _ CLEAR _ TASK Ġor ĠIntent . FLAG _ ACTIVITY _ NEW _ TASK ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. on Failure Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . e ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAuth Util . logout () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Login Activity :: class , ĠIntent . FLAG _ ACTIVITY _ CLEAR _ TASK Ġor ĠIntent . FLAG _ ACTIVITY _ NEW _ TASK ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Pending Transition ( 0 , 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} else Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Login Activity :: class , ĠIntent . FLAG _ ACTIVITY _ CLEAR _ TASK Ġor ĠIntent . FLAG _ ACTIVITY _ NEW _ TASK ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Pending Transition ( 0 , 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ