package Ġcom . fat ball fish . pal ms ch ool . ui . login Ċ Ċ import Ġandroidx . h ilt . lifecycle . ViewModel Inject Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . Transform ations Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġcom . fat ball fish . pal ms ch ool . logic . Repository Ċ import Ġcom . fat ball fish . pal ms ch ool . logic . model . user . Sms Captcha CreateRequest Ċ import Ġcom . fat ball fish . pal ms ch ool . logic . model . user . Sms Captcha Validate Request Ċ import Ġcom . fat ball fish . pal ms ch ool . logic . util . MD 5 Utils Ċ import Ġcom . fat ball fish . pal ms ch ool . ui . Token ViewModel Ċ Ċ class ĠS ms Captcha Create ViewModel Ġ@ ViewModel Inject Ġconstructor ( repository : ĠRepository ) Ġ: ĊĠĠĠ ĠToken ViewModel ( repository ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġrequest LiveData Ġ= ĠMutable LiveData < Sms Captcha CreateRequest >() ĊĠĠĠ Ġvar Ġphone Ġ= Ġ"" ĊĠĠĠ Ġval Ġsms Captcha Create LiveData Ġ= ĊĠĠĠĠĠĠĠ ĠTransform ations . switch Map ( request LiveData ) Ġ{ Ġsms Captcha CreateRequest Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . sms Captcha Create ( sms Captcha CreateRequest ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsms Captcha Create ( phone : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . phone Ġ= Ġphone ĊĠĠĠĠĠĠĠ Ġrequest LiveData . value Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠS ms Captcha CreateRequest ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġphone ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠS ms Captcha Validate ViewModel Ġ@ ViewModel Inject Ġconstructor ( repository : ĠRepository ) Ġ: ĊĠĠĠ ĠToken ViewModel ( repository ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġrequest LiveData Ġ= ĠMutable LiveData < Sms Captcha Validate Request >() ĊĠĠĠ Ġvar Ġhash Ġ= Ġ"" ĊĠĠĠ Ġval Ġsms Captcha Validate LiveData Ġ= ĊĠĠĠĠĠĠĠ ĠTransform ations . switch Map ( request LiveData ) Ġ{ Ġsms Captcha Validate Request Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . sms Captcha Valid ata ( sms Captcha Validate Request ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsms Captcha Validate ( code : ĠString , Ġrand : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhash Ġ= ĠMD 5 Utils . string To MD 5 ( code , Ġrand ) ĊĠĠĠĠĠĠĠ Ġthis . hash Ġ= Ġhash ĊĠĠĠĠĠĠĠ Ġrequest LiveData . value Ġ= ĠS ms Captcha Validate Request ( hash ) ĊĠĠĠ Ġ} Ċ }