package Ġcom . stripe . android . view Ċ Ċ import Ġandroid . app . Application Ċ import Ġandroidx . lifecycle . Android ViewModel Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġcom . stripe . android . ApiRequest Ċ import Ġcom . stripe . android . Payment Configuration Ċ import Ġcom . stripe . android . Stripe Api Repository Ċ import Ġcom . stripe . android . Stripe Repository Ċ import Ġcom . stripe . android . model . F px Bank Statuses Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . Dispatch ers . Main Ċ import Ġkotlinx . coroutines . launch Ċ import Ġkotlinx . coroutines . with Context Ċ Ċ internal Ġclass ĠF px ViewModel Ġinternal Ġconstructor ( ĊĠĠĠ Ġapplication : ĠApplication , ĊĠĠĠ Ġprivate Ġval Ġwork Scope : ĠCor outine Scope Ġ= ĠCor outine Scope ( Dispatch ers . IO ) Ċ ) Ġ: ĠAndroid ViewModel ( application ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġcontext Ġ= Ġapplication . application Context ĊĠĠĠ Ġprivate Ġval Ġpublish able Key Ġ= ĠPayment Configuration . getInstance ( context ). publish able Key ĊĊĠĠĠ Ġprivate Ġval Ġinternal F px Bank Statuses : ĠMutable LiveData < F px Bank Statuses > Ġ= ĠMutable LiveData () ĊĊĠĠĠ Ġinternal Ġval Ġf px Bank Statuses : ĠLive Data < F px Bank Statuses > ĊĠĠĠĠĠĠĠ Ġ@ Jvm Synt hetic ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġinternal F px Bank Statuses ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġvar Ġselected Position : ĠInt ? Ġ= Ġnull ĊĊĠĠĠ Ġ@ Jvm Synt hetic ĊĠĠĠ Ġinternal Ġfun Ġload F px Bank Stat ues () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstripe Repository : ĠStripe Repository Ġ= ĠStripe Api Repository ( context , Ġpublish able Key ) ĊĠĠĠĠĠĠĠ Ġval Ġpayment Configuration Ġ= ĠPayment Configuration . getInstance ( context ) ĊĠĠĠĠĠĠĠ Ġwork Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġf px Bank Statuses Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstripe Repository . getF px Bank Status ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApi Request . Options ( payment Configuration . publish able Key )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF px Bank Statuses () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith Context ( Main ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ F px ViewModel . internal F px Bank Statuses . value Ġ= Ġf px Bank Statuses ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġclass ĠFactory ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġapplication : ĠApplication ĊĠĠĠ Ġ) Ġ: ĠViewModel Provider . Factory Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġ< T Ġ: ĠViewModel ?> Ġcreate ( model Class : ĠClass < T >): ĠT Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠF px ViewModel ( application ) Ġas ĠT ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ