/* Ċ Ġ* ĠCopyright Ġ 2 0 2 2 ĠP era ĠWallet , ĠL DA Ċ Ġ* Ġ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 . al gor and . android . ui . settings . selection . currency selection Ċ Ċ import Ġandroidx . h ilt . lifecycle . ViewModel Inject Ċ import Ġandroidx . lifecycle . viewModel Scope Ċ import Ġcom . al gor and . android . core . Base ViewModel Ċ import Ġcom . al gor and . android . models . ui . Currency Selection Preview Ċ import Ġcom . al gor and . android . ui . settings . selection . Currency ListItem Ċ import Ġcom . al gor and . android . use case . Currency Selection Preview UseCase Ċ import Ġcom . al gor and . android . use case . Currency UseCase Ċ import Ġcom . al gor and . android . utils . analytics . log Currency Change Ċ import Ġcom . google . firebase . analytics . Firebase Analytics Ċ import Ġkotlinx . coroutines . Job Ċ import Ġkotlinx . coroutines . flow . Flow Ċ import Ġkotlinx . coroutines . flow . Mutable State Flow Ċ import Ġkotlinx . coroutines . flow . collect Latest Ċ import Ġkotlinx . coroutines . launch Ċ Ċ class ĠCurrency Selection ViewModel Ġ@ ViewModel Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġfirebase Analytics : ĠFirebase Analytics , ĊĠĠĠ Ġprivate Ġval Ġcurrency UseCase : ĠCurrency UseCase , ĊĠĠĠ Ġprivate Ġval Ġcurrency Selection Preview UseCase : ĠCurrency Selection Preview UseCase Ċ ) Ġ: ĠBase ViewModel () Ġ{ ĊĊĠĠĠ Ġval Ġcurrency Selection Preview Flow : ĠFlow < Currency Selection Preview ?> ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ currency Selection Preview Flow ĊĠĠĠ Ġprivate Ġval Ġ_ currency Selection Preview Flow Ġ= ĠMutable State Flow < Currency Selection Preview ? >( null ) ĊĊĠĠĠ Ġprivate Ġvar Ġpreview Job : ĠJob ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġvar Ġsearch Keyword Ġ= Ġ"" ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġinit Preview Flow () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Preview Flow () Ġ{ ĊĠĠĠĠĠĠĠ Ġpreview Job Ġ= Ġget Preview Job () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrefresh Preview () Ġ{ ĊĠĠĠĠĠĠĠ Ġpreview Job ?. cancel () ĊĠĠĠĠĠĠĠ Ġpreview Job Ġ= Ġget Preview Job () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate Search Keyword ( search Keyword : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . search Keyword Ġ= Ġsearch Keyword ĊĠĠĠĠĠĠĠ Ġrefresh Preview () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Preview Job (): ĠJob Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrency Selection Preview UseCase . getC urrency Selection Preview Flow ( search Keyword ). collect Latest Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ currency Selection Preview Flow . value Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Currency Selected ( currency ListItem : ĠCurrency ListItem ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcurrency UseCase . setSelected Currency ( currency ListItem . currency Id ) ĊĠĠĠĠĠĠĠ Ġlog Currency Change ( currency ListItem . currency Id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġlog Currency Change ( new Currency Id : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfirebase Analytics . log Currency Change ( new Currency Id ) ĊĠĠĠ Ġ} Ċ } Ċ