package Ġcom . mo h amed ab ul g ase m . loading overlay . internal Ċ Ċ import Ġandroid . app .* Ċ import Ġjava . util . concurrent .* Ċ import Ġcom . mo h amed ab ul g ase m . loading overlay .* Ċ Ċ internal Ġclass ĠLoading Overlay Impl ( ĊĠĠĠ Ġcontext : ĠActivity , ĊĠĠĠ Ġanimation : ĠLoading Animation , ĊĠĠĠ Ġdim Amount : ĠFloat , ĊĠĠĠ Ġis C ancellable : ĠBoolean , ĊĠĠĠ Ġon Show Listener : Ġ(() Ġ-> ĠUnit )? , ĊĠĠĠ Ġon Cancel Listener : Ġ(() Ġ-> ĠUnit )? , ĊĠĠĠ Ġon Dismiss Listener : Ġ(() Ġ-> ĠUnit )? Ċ ) Ġ: ĠLoading Overlay Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġoverlay Dialog : ĠLoading Overlay Dialog Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠLoading Overlay Dialog ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġanimation . raw Res , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġanimation . dim ens , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdim Amount , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis C ancellable , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Show Listener , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Cancel Listener , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Dismiss Listener ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow () Ġ= Ġoverlay Dialog . show () ĊĊĠĠĠ Ġoverride Ġfun Ġshow For ( ĊĠĠĠĠĠĠĠ Ġperiod : ĠLong , ĊĠĠĠĠĠĠĠ Ġunit : ĠTimeUnit , ĊĠĠĠĠĠĠĠ Ġaction : Ġ(() Ġ-> ĠUnit )? ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġoverlay Dialog . show () ĊĠĠĠĠĠĠĠ Ġrun After ( period , Ġunit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction ?. invoke () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdismiss () Ġ= Ġoverlay Dialog . dismiss () ĊĊĠĠĠ Ġoverride Ġfun Ġis Showing () Ġ= Ġoverlay Dialog . is Showing Ċ Ċ }