/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 ĠPaul ĠR y bits ky i , Ġpa ul . ry bits ky i . work @ gmail . com Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . paul ry bits ky i . game d ge . feature . splash Ċ Ċ import Ġandroidx . lifecycle . viewModel Scope Ċ import Ġcom . paul ry bits ky i . game d ge . commons . ui . base . Base ViewModel Ċ import Ġcom . paul ry bits ky i . game d ge . commons . ui . base . events . commons . General Command Ċ import Ġcom . paul ry bits ky i . game d ge . core . Error Mapper Ċ import Ġcom . paul ry bits ky i . game d ge . core . Logger Ċ import Ġcom . paul ry bits ky i . game d ge . core . utils . onError Ċ import Ġcom . paul ry bits ky i . game d ge . core . utils . on Success Ċ import Ġcom . paul ry bits ky i . game d ge . core . utils . result Or Error Ċ import Ġcom . paul ry bits ky i . game d ge . domain . auth . use cases . Refresh Auth UseCase Ċ import Ġcom . paul ry bits ky i . game d ge . domain . commons . extensions . execute Ċ import Ġdagger . h ilt . android . lifecycle . H ilt ViewModel Ċ import Ġkotlinx . coroutines . flow . Flow Ċ import Ġkotlinx . coroutines . flow . collect Ċ import Ġkotlinx . coroutines . launch Ċ import Ġjavax . inject . Inject Ċ Ċ @ H ilt ViewModel Ċ internal Ġclass ĠSpl ash ViewModel Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġrefresh Auth UseCase : ĠRefresh Auth UseCase , ĊĠĠĠ Ġprivate Ġval Ġerror Mapper : ĠError Mapper , ĊĠĠĠ Ġprivate Ġval Ġlogger : ĠLogger Ċ ) Ġ: ĠBase ViewModel () Ġ{ ĊĊĊĠĠĠ Ġfun Ġinit () Ġ{ ĊĠĠĠĠĠĠĠ Ġrun Initialization Flow () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġrun Initialization Flow () Ġ= ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠ Ġrefresh Auth () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. on Success Ġ{ Ġon Initialization Flow Succeeded () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. onError Ġ{ Ġon Initialization Flow Failed ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. collect () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġsuspend Ġfun Ġrefresh Auth (): ĠFlow < *> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġrefresh Auth UseCase . execute () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. result Or Error () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġon Initialization Flow Succeeded () Ġ{ ĊĠĠĠĠĠĠĠ Ġroute ( Splash Route . Dashboard ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġon Initialization Flow Failed ( error : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . error ( log Tag , Ġ" Failed Ġto Ġinitialize .", Ġerror ) ĊĠĠĠĠĠĠĠ Ġdispatch Command ( General Command . Show Long Toast ( error Mapper . map To Message ( error ))) ĊĠĠĠĠĠĠĠ Ġroute ( Splash Route . Exit ) ĊĠĠĠ Ġ} ĊĊ Ċ }