package Ġcom . invent iv . g ast rop ays dk . ui Ċ Ċ import Ġandroidx . lifecycle . viewModel Scope Ċ import Ġcom . invent iv . g ast rop ays dk . common . Base Fragment Ċ import Ġcom . invent iv . g ast rop ays dk . common . Base ViewModel Ċ import Ġcom . invent iv . g ast rop ays dk . data . Resource Ċ import Ġcom . invent iv . g ast rop ays dk . data . request . Search Criteria Ċ import Ġcom . invent iv . g ast rop ays dk . repository . Main Repository Ċ import Ġcom . invent iv . g ast rop ays dk . utils . save Settings Ċ import Ġkotlinx . coroutines . channels . Channel Ċ import Ġkotlinx . coroutines . flow . Mutable State Flow Ċ import Ġkotlinx . coroutines . flow . State Flow Ċ import Ġkotlinx . coroutines . flow . collect Ċ import Ġkotlinx . coroutines . flow . receive As Flow Ċ import Ġkotlinx . coroutines . launch Ċ Ċ internal Ġclass ĠMain ViewModel ( val Ġrepository : ĠMain Repository ) Ġ: ĠBase ViewModel () Ġ{ ĊĊĠĠĠ Ġsealed Ġclass ĠHot Event Ġ{ ĊĠĠĠĠĠĠĠ Ġobject ĠOn Back Pressed Ġ: ĠHot Event () ĊĠĠĠĠĠĠĠ Ġobject ĠClose SDK Ġ: ĠHot Event () ĊĠĠĠĠĠĠĠ Ġdata Ġclass ĠInit Tab ( val Ġtab Index : ĠInt ) Ġ: ĠHot Event () ĊĠĠĠĠĠĠĠ Ġdata Ġclass ĠPush Fragment ( val Ġfragment : ĠBase Fragment ) Ġ: ĠHot Event () ĊĠĠĠĠĠĠĠ Ġdata Ġclass ĠPop Fragment ( val Ġdepth : ĠInt ) Ġ: ĠHot Event () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsealed Ġclass ĠC old Event Ġ{ ĊĠĠĠĠĠĠĠ Ġobject ĠEmpty Ġ: ĠC old Event () ĊĠĠĠĠĠĠĠ Ġdata Ġclass ĠOn Generic WebView Click ( val Ġis Accept : ĠBoolean ) Ġ: ĠC old Event () ĊĠĠĠĠĠĠĠ Ġdata Ġclass ĠSearch Merchant ( val Ġdata : ĠSearch Criteria ) Ġ: ĠC old Event () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġhot Event Ġ= ĠChannel < Hot Event >( Channel . BUFFER ED ) ĊĠĠĠ Ġval Ġhot Flow Ġ= Ġhot Event . receive As Flow () ĊĊĠĠĠ Ġprivate Ġval Ġ_ cold Event Ġ= ĠMutable State Flow < Col d Event >( Col d Event . Empty ) ĊĠĠĠ Ġval Ġcold Event : ĠState Flow < Col d Event > Ġ= Ġ_ cold Event ĊĊĠĠĠ Ġfun Ġsearch Filtered Mer ch ants ( search Criteria : ĠSearch Criteria ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ cold Event . value Ġ= ĠC old Event . Search Merchant ( search Criteria ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclose Sdk () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhot Event . send ( Hot Event . Close SDK ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhot Event . send ( Hot Event . On Back Pressed ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġinit Tab ( tab Index : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhot Event . send ( Hot Event . Init Tab ( tab Index )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġpush Fragment ( fragment : ĠBase Fragment ) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhot Event . send ( Hot Event . Push Fragment ( fragment )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġpop Fragment ( depth : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhot Event . send ( Hot Event . Pop Fragment ( depth )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġreset Col d Event () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ cold Event . value Ġ= ĠC old Event . Empty ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Generic WebView Clicked ( is Accept : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ cold Event . value Ġ= ĠC old Event . On Generic WebView Click ( is Accept ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Settings () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . get Settings (). collect Ġ{ Ġresponse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( response ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResource . Success Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . data . save Settings () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }