package Ġio . github . ach mad h af id . lott ie _ dialog . model Ċ Ċ import Ġandroid . app . Dialog Ċ import Ġandroidx . annotation . Dim en Res Ċ import Ġandroidx . annotation . Drawable Res Ċ import Ġandroidx . annotation . String Res Ċ import Ġcom . google . android . material . button . Material Button Ċ import Ġio . github . ach mad h af id . z pack . extension . view . on Single Click Ċ import Ġio . github . ach mad h af id . z pack . extension . view . visible Ċ import Ġio . github . ach mad h af id . z pack . extension . view . with Text Res Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ import Ġkotlinx . coroutines . delay Ċ import Ġkotlinx . coroutines . launch Ċ import Ġkotlin . math . max Ċ Ċ data Ġclass ĠL ot tie Dialog Button ( ĊĠĠĠ Ġvar Ġtext : ĠCharSequence ? Ġ= Ġnull , ĊĠĠĠ Ġ@ String Res ĊĠĠĠ Ġvar Ġtext Res : ĠInt ? Ġ= Ġnull , ĊĠĠĠ Ġ@ Drawable Res ĊĠĠĠ Ġvar Ġicon Res : ĠInt ? Ġ= Ġnull , ĊĠĠĠ Ġ@ Material Button . Icon Gravity ĊĠĠĠ Ġvar Ġicon Gravity : ĠInt ? Ġ= Ġnull , ĊĠĠĠ Ġvar Ġaction Delay : ĠLong ? Ġ= Ġnull , ĊĠĠĠ Ġ@ Dim en Res ĊĠĠĠ Ġvar Ġcorner Radius Res : ĠInt ? Ġ= Ġnull , ĊĠĠĠ Ġinternal Ġvar ĠonClick Listener : Ġ(( Dialog ) Ġ-> ĠUnit )? Ġ= Ġnull Ċ ) Ġ{ ĊĠĠĠ Ġinternal Ġoperator Ġfun Ġinvoke ( ĊĠĠĠĠĠĠĠ Ġdialog : ĠDialog , ĊĠĠĠĠĠĠĠ Ġbutton : ĠMaterial Button , ĊĠĠĠĠĠĠĠ Ġcoroutine Scope : ĠCor outine Scope ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtext Res ?. let Ġ{ Ġbutton Ġwith Text Res Ġit Ġ} ĊĠĠĠĠĠĠĠ Ġtext ?. let Ġ{ Ġbutton . text Ġ= Ġit Ġ} ĊĠĠĠĠĠĠĠ Ġicon Res ?. let Ġ{ Ġbutton . setIcon Resource ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġicon Gravity ?. let Ġ{ Ġbutton . icon Gravity Ġ= Ġit Ġ} ĊĠĠĠĠĠĠĠ Ġcorner Radius Res ?. let Ġ{ Ġbutton . set Corner Radius Resource ( it ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġwith ( button ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Single Click Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Listener ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcoroutine Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelay ( max ( 0 L , Ġaction Delay Ġ?: Ġ 0 L )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit ( dialog ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvisible () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠL ot tie Dialog Button . onClick ( function : Ġ( Dialog ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ ĠonClick Listener Ġ= Ġfunction Ċ } Ċ