package Ġcom . far ma . p oc . features . settings . home . presentation Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . compose . runtime . mutable State Of Ċ import Ġandroidx . lifecycle . viewModel Scope Ċ import Ġcom . far ma . p oc . core . base . Base ViewModel Ċ import Ġcom . far ma . p oc . core . config . constants . Config Application Constants Ċ import Ġcom . far ma . p oc . core . navigation . Router Navigation Enum Ċ import Ġcom . far ma . p oc . features . settings . home . data . model . Get Settings DTO Ċ import Ġcom . far ma . p oc . features . settings . home . data . repository . Settings Repository Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . flow . collect Ċ import Ġkotlinx . coroutines . launch Ċ Ċ class ĠSettings ViewModel ( ĊĠĠĠ Ġprivate Ġval Ġsettings Repository : ĠSettings Repository , ĊĠĠĠ Ġprivate Ġval Ġcontext : ĠContext Ċ ) Ġ: ĊĠĠĠ ĠBase ViewModel ( context ) Ġ{ ĊĊĠĠĠ Ġvar Ġdataset Screen Settings Ġ= Ġmutable State Of ( Get Settings DTO ()) ĊĠĠĠ Ġvar Ġhas Flag Show Bio metric Ġ= Ġmutable State Of ( false ) ĊĊĠĠĠ Ġfun ĠgetData Screen () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsettings Repository . get Settings Data Screen ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonSuccess Data Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdataset Screen Settings . value Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Failure Data Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Recovery Data Cached Ġ{ Ġon Recovery Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! on Recovery ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas Network Error . value Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Should Loader Ġ= Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠhasError Network Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Recovery Data Cached Ġ{ Ġon Recovery Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! on Recovery ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast Network Unavailable () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Dismiss Dialog () Ġ{ ĊĠĠĠĠĠĠĠ Ġdismiss Dialog Logout . value Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġtry Recovery Data Cached ( on Recovery : Ġ( Boolean ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ ĠCor outine Scope ( Dispatch ers . Main ). launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsettings Repository . get Settings Data Cached (). collect Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Recovery ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdataset Screen Settings . value Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ?: Ġalso Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Recovery ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġactivate Bio metric ( flag Show : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ ĠConfig Application Constants . PREFER ENCES _ SECURITY . AUTHENT ICATE _ WITH _ BIO METRIC . value Ġ= Ġflag Show ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetData Store Config (). set Flag Show Bio metric ( Config Application Constants . PREFER ENCES _ SECURITY . AUTHENT ICATE _ WITH _ BIO METRIC . value ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetStatus Show Bio metric () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetData Store Config (). shared Flag Show Bio metric . collect Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas Flag Show Bio metric . value Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlogout ( logout Click : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlogout App Event . value Ġ= Ġlogout Click ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġredirect To Login () Ġ{ ĊĠĠĠĠĠĠĠ Ġrouter Navigation ?. navigate Pop ( Router Navigation Enum . LOGIN ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġredirect To Home () Ġ{ ĊĠĠĠĠĠĠĠ Ġrouter Navigation ?. navigate Pop ( Router Navigation Enum . HOME ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġredirect To Order () Ġ{ ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġredirect To Data User () Ġ{ ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġredirect To F aq () Ġ{ ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġredirect Methods Payment () Ġ{ ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġredirect Address () Ġ{ ĊĊĠĠĠ Ġ} Ċ Ċ }