package Ġcom . sen ierr . mort al . domain . splash . vm Ċ Ċ import Ġandroid . app . Application Ċ import Ġandroidx . lifecycle . Android ViewModel Ċ import Ġandroidx . lifecycle . viewModel Scope Ċ import Ġcom . sen ierr . base . support . arch . State ful Data Ċ import Ġcom . sen ierr . base . support . arch . ext . emit Failure Ċ import Ġcom . sen ierr . base . support . arch . ext . emit Success Ċ import Ġcom . sen ierr . mort al . domain . worker . Splash Worker Ċ import Ġcom . sen ierr . repository . Repository Ċ import Ġcom . sen ierr . repository . entity . g ank . Girl Ċ import Ġcom . sen ierr . repository . service . api . IG ank Service Ċ import Ġkotlinx . coroutines . flow . Mutable Shared Flow Ċ import Ġkotlinx . coroutines . flow . Shared Flow Ċ import Ġkotlinx . coroutines . launch Ċ Ċ /** Ċ Ġ* Ġ å¼ķ å¯¼ é¡µ Ċ Ġ* Ċ Ġ* Ġ@ author Ġzh ouch unj ie Ċ Ġ* Ġ@ date Ġ 2 0 1 9 / 7 / 9 Ċ Ġ*/ Ċ class ĠSpl ash ViewModel ( application : ĠApplication ) Ġ: ĠAndroid ViewModel ( application ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġ_ random G il Ġ= ĠMutable Shared Flow < State ful Data < Girl >>() ĊĠĠĠ Ġval Ġrandom G il : ĠShared Flow < State ful Data < Girl >> Ġ= Ġ_ random G il ĊĊĠĠĠ Ġprivate Ġval Ġg ank Service Ġ= ĠRepository . getService < IG ank Service >() ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ å¹¿åĳĬ ä½į ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġfetch Ad vert () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ å±ķç¤º å·² åĬłè½½ å¹¿åĳĬ ä½į ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcache Girl Ġ= Ġg ank Service . getCache Random G ir ls ( 1 ). first OrNull () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( cache Girl Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ random G il . emit Success ( cache Girl ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ åĲ¯åĬ¨ åĲİåı° é¢Ħ åĬłè½½ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSpl ash Worker . start ( getApplication ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ random G il . emit Failure ( e ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }