package Ġcn . v ove 7 . andro _ accessibility _ api . demo Ċ Ċ import Ġandroid . os . Handler Ċ import Ġandroid . os . Looper Ċ import Ġandroid . widget . Toast Ċ import Ġkotlinx . coroutines .* Ċ import Ġkotlin . coroutines . Coroutine Context Ċ import Ġkotlin . coroutines . Empty Coroutine Context Ċ Ċ /** Ċ Ġ* Ġ# Ġutils Ċ Ġ* Ċ Ġ* ĠCreated Ġon Ġ 2 0 2 0 / 6 / 1 1 Ċ Ġ* Ġ@ author ĠV ove Ċ Ġ*/ ĊĊ Ċ fun Ġlaunch With Exp Handler ( ĊĠĠĠ Ġcontext : ĠCor outine Context Ġ= ĠEmpty Coroutine Context , ĊĠĠĠ Ġstart : ĠCor outine Start Ġ= ĠCor outine Start . DEFAULT , ĊĠĠĠ Ġblock : Ġsuspend ĠCor outine Scope . () Ġ-> ĠUnit Ċ ) Ġ= ĠGlobal Scope . launch ( context Ġ+ ĠException Handler , Ġstart , Ġblock ) ĊĊ Ċ val ĠException Handler Ġby Ġlazy Ġ{ ĊĠĠĠ ĠCor outine ExceptionHandler Ġ{ Ġ_, Ġthrowable Ġ-> ĊĠĠĠĠĠĠĠ Ġtoast ( throwable . message Ġ?: Ġ"$ throwable ") ĊĠĠĠĠĠĠĠ Ġthrowable . printStackTrace () ĊĠĠĠ Ġ} Ċ } Ċ Ċ val Ġmain Handler Ġby Ġlazy Ġ{ ĊĠĠĠ ĠHandler ( Looper . get Main Looper ()) Ċ } Ċ Ċ inline Ġfun Ġrun On Ui ( no inline Ġblock : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġif Ġ( Looper . get Main Looper () Ġ== ĠL ooper . my Looper ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġblock () ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġmain Handler . post ( block ) ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ fun Ġtoast ( m : ĠString ) Ġ= ĊĠĠĠ Ġrun On Ui Ġ{ ĊĠĠĠĠĠĠĠ ĠToast . makeText ( Demo App . INS , Ġm , ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠ Ġ} Ċ