package Ġio . github . chen fe i 0 9 2 8 . concurrent . coroutines Ċ Ċ import Ġio . github . chen fe i 0 9 2 8 . app . Progress Dialog Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ import Ġkotlinx . coroutines . launch Ċ import Ġkotlinx . coroutines . with Context Ċ import Ġkotlin . coroutines . Coroutine Context Ċ import Ġkotlin . coroutines . Empty Coroutine Context Ċ Ċ fun ĠProgress Dialog . launch With Show ( block : Ġsuspend ĠCor outine Scope . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġcoroutine Scope . launch Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġblock () ĊĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdismiss () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġshow () Ċ } Ċ Ċ suspend Ġfun Ġ< T > ĠProgress Dialog . show WithContext ( ĊĠĠĠ Ġcontext : ĠCor outine Context Ġ= ĠEmpty Coroutine Context , Ġblock : Ġsuspend ĠCor outine Scope . () Ġ-> ĠT Ċ ): ĠT Ġ{ ĊĠĠĠ Ġshow () ĊĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġwith Context ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext Ġ= Ġcoroutine Scope . coroutine Context Ġ+ Ġcontext , Ġblock Ġ= Ġblock ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠ Ġdismiss () ĊĠĠĠ Ġ} Ċ } Ċ