package Ġcom . l uk as le ch ner . coroutine use case son android . use cases . coroutines . use case 4 Ċ Ċ import Ġandroidx . lifecycle . viewModel Scope Ċ import Ġcom . l uk as le ch ner . coroutine use case son android . base . Base ViewModel Ċ import Ġcom . l uk as le ch ner . coroutine use case son android . mock . Mock Api Ċ import Ġkotlinx . coroutines . async Ċ import Ġkotlinx . coroutines . await All Ċ import Ġkotlinx . coroutines . launch Ċ Ċ class ĠVariable Amount Of Network Requests ViewModel ( ĊĠĠĠ Ġprivate Ġval Ġmock Api : ĠMock Api Ġ= Ġmock Api () Ċ ) Ġ: ĠBase ViewModel < Ui State >() Ġ{ ĊĊĠĠĠ Ġfun Ġperform Network Requests Se quent ially () Ġ{ ĊĠĠĠĠĠĠĠ Ġui State . value Ġ= ĠUi State . Loading ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrecent Versions Ġ= Ġmock Api . get Recent Android Versions () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġversion Features Ġ= Ġrecent Versions . map Ġ{ Ġandroid Version Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmock Api . get Android Version Features ( android Version . apiVersion ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġui State . value Ġ= ĠUi State . Success ( version Features ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( exception : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġui State . value Ġ= ĠUi State . Error (" Network ĠRequest Ġfailed ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġperform Network Requests Concurrent ly () Ġ{ ĊĠĠĠĠĠĠĠ Ġui State . value Ġ= ĠUi State . Loading ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrecent Versions Ġ= Ġmock Api . get Recent Android Versions () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġversion Features Ġ= Ġrecent Versions ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġandroid Version Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġasync Ġ{ Ġmock Api . get Android Version Features ( android Version . apiVersion ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. await All () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġui State . value Ġ= ĠUi State . Success ( version Features ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( exception : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġui State . value Ġ= ĠUi State . Error (" Network ĠRequest Ġfailed ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }