package Ġir . dr ax . modal Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . app . Activity Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġir . dr ax . modal . model . Modal Obj Ċ Ċ class ĠModal Ġ{ ĊĊĠĠĠ Ġsealed Ġclass ĠType { ĊĠĠĠĠĠĠĠ Ġobject ĠAlert Ġ: ĠType () ĊĠĠĠĠĠĠĠ Ġobject ĠList Ġ: ĠType () ĊĠĠĠĠĠĠĠ Ġobject ĠCustom Ġ: ĠType () ĊĠĠĠĠĠĠĠ Ġobject ĠProgress Ġ: ĠType () ĊĠĠĠ Ġ} ĊĠĠĠ Ġsealed Ġclass ĠDirection { ĊĠĠĠĠĠĠĠ Ġobject ĠTop Ġ: ĠDirection () ĊĠĠĠĠĠĠĠ Ġobject ĠBottom Ġ: ĠDirection () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject { ĊĠĠĠĠĠĠĠ Ġ@ Suppress Lint (" Static Field Leak ") ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġoptions Ġ= ĠModal Obj ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġbuilder ( activity : ĠActivity ): Builder { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠBuilder ( activity . findViewById ( android . R . id . content ), Ġoptions . copy ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġbuilder ( any Visible View : ĠView ): Builder { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠBuilder ( any Visible View . root View . findViewById ( android . R . id . content ), options . copy ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġhide ( activity : ĠActivity ): Boolean { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġhide ( activity . findViewById < ViewGroup >( android . R . id . content )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġhide ( any Visible View : ĠView ): Boolean { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġhide ( any Visible View . root View . findViewById < ViewGroup >( android . R . id . content )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġhide ( root : ViewGroup ): Boolean { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbg Ġ= ĠgetLast View ( root ) Ġas ĠViewGroup ? ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( bg Ġ== Ġnull ) Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmodal = bg . getChild At ( bg . child Count - 1 ) Ġas ĠModal Builder ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodal . hide ( bg ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun ĠgetLast View ( root : ĠViewGroup ): View ? { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtmp Ġ= Ġroot . find View With Tag < View >( Modal Obj . VIEW _ TAG _ ID ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( tmp Ġ!= Ġnull ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtmp . tag =" tmp " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtmp 2 = getLast View ( root ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtmp . tag = Modal Obj . VIEW _ TAG _ ID ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtmp 2 Ġ?: Ġtmp ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġinit ( options : Modal Obj . ()-> Unit ) Ġ= Ġwith ( Companion . options ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoptions () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( Companion . options . blur Enabled ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ abstract Ġclass ĠListener { ĊĠĠĠ Ġopen Ġfun Ġon Dismiss (){} ĊĠĠĠ Ġopen Ġfun Ġon Show (){} Ċ }