package Ġcom . ang cy o . dialog Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . app . Dialog Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . graphics . drawable . Color Drawable Ċ import Ġandroid . view . Gravity Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . annotation . Layout Res Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġcom . ang cy o . dialog . Loading Dialog . dialog Pool Ċ import Ġcom . ang cy o . library . L Ċ import Ġcom . ang cy o . library . ex . else Null Ċ import Ġcom . ang cy o . library . toast QQ Ċ import Ġcom . ang cy o . transition . dsl Transition Ċ import Ġcom . ang cy o . widget . Dsl ViewHolder Ċ import Ġcom . ang cy o . widget . base . dsl ViewHolder Ċ import Ġjava . lang . ref . Weak Reference Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* Ġ å¿«éĢŁ éħįç½® åĬłè½½ å¯¹ è¯Ŀ æ¡Ĩ Ċ Ġ* ĠEmail : ang cy o @ 1 2 6 . com Ċ Ġ* Ġ@ author Ġang cy o Ċ Ġ* Ġ@ date Ġ 2 0 2 0 / 0 2 / 0 7 Ċ Ġ*/ Ċ object ĠLoading Dialog Ġ{ ĊĠĠĠ Ġval Ġdialog Pool Ġ= ĠStack < Weak Reference < Dialog >>() Ċ } Ċ Ċ // < editor - fold Ġdesc =" éļĲèĹı å¯¹ è¯Ŀ æ¡Ĩ "> Ċ Ċ /** éļĲèĹı æľĢåĲİ ä¸Ģä¸ª dialog */ Ċ fun Ġhide Loading ( ĊĠĠĠ Ġtransition : ĠBoolean Ġ= Ġfalse , ĊĠĠĠ Ġdelay : ĠLong Ġ= Ġ 8 8 8 , ĊĠĠĠ Ġon End : Ġ() Ġ-> ĠUnit Ġ= Ġ{}, ĊĠĠĠ Ġaction : ĠD sl ViewHolder . () Ġ-> ĠUnit Ġ= Ġ{} Ċ ) Ġ{ ĊĠĠĠ Ġif Ġ( dialog Pool . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġdialog Pool . pop (). get ()?. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( transition ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// æī§è¡Į è½¬æį¢ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwindow ?. decor View ?. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog ViewHolder Ġ= Ġd sl ViewHolder () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd sl Transition ( this Ġas ĠViewGroup ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Capture End Values Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog ViewHolder . action () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog ViewHolder . post Delay ( delay ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// å¦Ĥæŀľ æŃ¤ æĹ¶çļĦ Activity æıĲ åīį ç»ĵæĿŁ , Ġå°Ĩ ä¼ļ å´ © æº ĥ . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon End () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠL . w ( e ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. else Null Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon End () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon End () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠL . w ( e ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** å°Ĩ å¯¹ è¯Ŀ æ¡Ĩ çļĦ æĸĩæľ¬ æĶ¹åıĺ , Ġ çĦ¶åĲİ å»¶ è¿ Ł åħ³éĹŃ */ Ċ fun Ġhide Loading ( text : ĠCharSequence ?) Ġ{ ĊĠĠĠ Ġif Ġ( text . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġhide Loading () ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġhide Loading ( true ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv ( R . id . lib _ text _ view )?. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . text Ġ= Ġtext ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtranslation X Ġ= Ġ-( view ( R . id . lib _ loading _ view )?. meas ured Width ?. toFloat () Ġ?: Ġ 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinvisible ( R . id . lib _ loading _ view ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgone ( R . id . lib _ close _ view ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ // </ editor - fold Ġdesc =" éļĲèĹı å¯¹ è¯Ŀ æ¡Ĩ "> Ċ Ċ // < editor - fold Ġdesc =" ä¸ŃéĹ´ è½¬ èı Ĭ èĬ± çļĦ å¯¹ è¯Ŀ æ¡Ĩ "> Ċ Ċ /** æĺ¾ç¤º åľ¨ ä¸ŃéĹ´ è½¬ èı Ĭ èĬ± */ Ċ fun ĠActivity . loading ( ĊĠĠĠ Ġtext : ĠCharSequence ? Ġ= Ġnull , ĊĠĠĠ Ġ@ Layout Res Ġlayout Id : ĠInt Ġ= ĠR . layout . lib _ dialog _ flow _ loading _ layout , ĊĠĠĠ Ġshow Close View : ĠBoolean Ġ= Ġtrue , ĊĠĠĠ Ġconfig : ĠD sl Dialog Config . () Ġ-> ĠUnit Ġ= Ġ{}, ĊĠĠĠ Ġon Cancel : Ġ( dialog : ĠDialog ) Ġ-> ĠUnit Ġ= Ġ{} Ċ ): ĠDialog ? Ġ{ ĊĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġactivity Ġ= Ġthis ĊĠĠĠĠĠĠĠ ĠD sl Dialog Config ( activity ). run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . on Dismiss Listener Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Pool . removeAll Ġ{ Ġref Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġref . get () Ġ== Ġdialog ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// åıĸæ¶Ī çĽĳåĲ¬ , Ġdismiss ä¸į è§¦åıĳ cancel ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . on Cancel Listener Ġ= Ġon Cancel ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// å¸ĥå±Ģ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . dialog Layout Id Ġ= Ġlayout Id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ä¸į åħģè®¸ å¤ĸéĥ¨ çĤ¹åĩ» åħ³éĹŃ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . c anceled On Touch Outside Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// åİ» æİī é»ĺè®¤ çļĦ dialog èĥĮæĻ¯ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Bg Drawable Ġ= ĠColor Drawable ( Color . TRANSP ARENT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// åİ» æİī åıĺ æļ Ĺ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġamount Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// åĬ¨çĶ» æł·å¼ı ĊĠĠĠĠĠĠĠĠĠĠĠ Ġanim Style Res Id Ġ= ĠR . style . Lib Dialog Alpha Animation ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// åĪĿå§ĭåĮĸ å¸ĥå±Ģ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Dialog Init Listener Ġ= Ġ{ Ġdialog , Ġdialog ViewHolder Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog ViewHolder . tv ( R . id . lib _ text _ view )?. text Ġ= Ġtext ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog ViewHolder . visible ( R . id . lib _ close _ view , Ġshow Close View ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog ViewHolder . click ( R . id . lib _ close _ view ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . cancel () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfig () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( activity Ġis ĠAppCompatActivity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Compat Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Pool . push ( Weak Reference ( this )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠ ĠL . w ( e ) ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** æĺ¾ç¤º åľ¨ ä¸ŃéĹ´ è½¬ èı Ĭ èĬ± */ Ċ fun ĠFragment . loading ( ĊĠĠĠ Ġtext : ĠCharSequence ? Ġ= Ġnull , ĊĠĠĠ Ġ@ Layout Res Ġlayout Id : ĠInt Ġ= ĠR . layout . lib _ dialog _ flow _ loading _ layout , ĊĠĠĠ Ġshow Close View : ĠBoolean Ġ= Ġtrue , ĊĠĠĠ Ġconfig : ĠD sl Dialog Config . () Ġ-> ĠUnit Ġ= Ġ{}, ĊĠĠĠ Ġon Cancel : Ġ( dialog : ĠDialog ) Ġ-> ĠUnit Ġ= Ġ{} Ċ ): ĠDialog ? Ġ{ ĊĠĠĠ Ġreturn Ġactivity ?. loading ( text , Ġlayout Id , Ġshow Close View , Ġconfig , Ġon Cancel ) Ċ } Ċ Ċ // </ editor - fold Ġdesc =" ä¸ŃéĹ´ è½¬ èı Ĭ èĬ± çļĦ å¯¹ è¯Ŀ æ¡Ĩ "> Ċ Ċ // < editor - fold Ġdesc =" åºķ éĥ¨ å¼¹ åĩº æĺ¾ç¤º çļĦ loading å¯¹ è¯Ŀ æ¡Ĩ "> Ċ Ċ /** åľ¨ åºķ éĥ¨ æĺ¾ç¤º çļĦ åĬłè½½ å¯¹ è¯Ŀ æ¡Ĩ */ Ċ fun ĠFragment . loading Bottom ( ĊĠĠĠ Ġtext : ĠCharSequence ? Ġ= Ġ" åĬłè½½ ä¸Ń ...", ĊĠĠĠ Ġshow Close View : ĠBoolean Ġ= Ġtrue , ĊĠĠĠ Ġon Cancel : Ġ( dialog : ĠDialog ) Ġ-> ĠUnit Ġ= Ġ{} Ċ ): ĠDialog ? Ġ{ ĊĠĠĠ Ġreturn Ġactivity ?. loading ( ĊĠĠĠĠĠĠĠ Ġtext , ĊĠĠĠĠĠĠĠ ĠR . layout . lib _ dialog _ bottom _ loading _ layout , ĊĠĠĠĠĠĠĠ Ġshow Close View , ĊĠĠĠĠĠĠĠ Ġconfig Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Gravity Ġ= ĠGr avity . BOTTOM ĊĠĠĠĠĠĠĠĠĠĠĠ Ġanim Style Res Id Ġ= ĠR . style . Lib Dialog Bottom Translate Animation ĊĠĠĠĠĠĠĠĠĠĠĠ Ġamount Ġ= Ġ 0 . 2 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Width Ġ= Ġ- 1 ĊĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠ Ġon Cancel Ġ= Ġon Cancel ĊĠĠĠ Ġ) Ċ } Ċ Ċ /** å¿«éĢŁ åľ¨ [ Fragment ] æĺ¾ç¤º åºķ éĥ¨ loading , Ġ éĢļå¸¸ çĶ¨äºİ åĮħ è£ ¹ ä¸Ģä¸ª ç½ĳç»ľ è¯·æ±Ĥ */ Ċ fun ĠFragment . load Loading Bottom ( ĊĠĠĠ Ġtip : ĠCharSequence ? Ġ= Ġ" å¤ĦçĲĨ ä¸Ń ...", ĊĠĠĠ Ġsuccess Tip : ĠCharSequence ? Ġ= Ġ" å¤ĦçĲĨ å®ĮæĪĲ !", ĊĠĠĠ Ġshow Error Toast : ĠBoolean Ġ= Ġfalse , ĊĠĠĠ Ġshow Close View : ĠBoolean Ġ= Ġtrue , ĊĠĠĠ Ġaction : Ġ( cancel : ĠBoolean , Ġload End : Ġ( data : ĠAny ?, Ġerror : ĠThrowable ?) Ġ-> ĠUnit ) Ġ-> ĠUnit Ċ ): ĠDialog ? Ġ{ ĊĠĠĠ Ġval Ġdialog Ġ= Ġloading Bottom ( tip , Ġshow Close View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġaction ( true ) Ġ{ Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// no Ġop ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġaction ( false ) Ġ{ Ġdata , Ġerror Ġ-> ĊĠĠĠĠĠĠĠ Ġerror ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( show Error Toast ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoast QQ ( message ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdata ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhide Loading ( success Tip ) ĊĠĠĠĠĠĠĠ Ġ}. else Null Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhide Loading ( error ?. message ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġdialog Ċ } Ċ Ċ /** å¿«éĢŁ åľ¨ [ Fragment ] æĺ¾ç¤º loading , Ġ éĢļå¸¸ çĶ¨äºİ åĮħ è£ ¹ ä¸Ģä¸ª ç½ĳç»ľ è¯·æ±Ĥ */ Ċ fun ĠFragment . load Loading ( ĊĠĠĠ Ġtip : ĠCharSequence ? Ġ= Ġnull , ĊĠĠĠ Ġaction : Ġ( cancel : ĠBoolean , Ġload End : Ġ( data : ĠAny ?, Ġerror : ĠThrowable ?) Ġ-> ĠUnit ) Ġ-> ĠUnit Ċ ) Ġ{ ĊĊĠĠĠ Ġloading ( tip ) Ġ{ ĊĠĠĠĠĠĠĠ Ġaction ( true ) Ġ{ Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// no Ġop ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġaction ( false ) Ġ{ Ġ_, Ġerror Ġ-> ĊĠĠĠĠĠĠĠ Ġhide Loading () ĊĠĠĠĠĠĠĠ Ġerror ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoast QQ ( message ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ // </ editor - fold Ġdesc =" åºķ éĥ¨ å¼¹ åĩº æĺ¾ç¤º çļĦ loading å¯¹ è¯Ŀ æ¡Ĩ "> Ċ Ċ /** å¿«éĢŁ æĺ¾ç¤º [ loading ] å¯¹ è¯Ŀ æ¡Ĩ */ Ċ data Ġclass ĠLoading Config ( ĊĠĠĠ Ġvar Ġloading Text : ĠCharSequence ? Ġ= Ġnull , ĊĠĠĠ Ġ@ Layout Res ĊĠĠĠ Ġvar Ġloading Layout Id : ĠInt Ġ= ĠR . layout . lib _ dialog _ flow _ loading _ layout , ĊĠĠĠ Ġvar Ġloading Show Close View : ĠBoolean Ġ= Ġtrue , ĊĠĠĠ Ġvar Ġloading Config : ĠD sl Dialog Config . () Ġ-> ĠUnit Ġ= Ġ{}, ĊĠĠĠ Ġvar Ġon Loading Cancel : Ġ( dialog : ĠDialog ) Ġ-> ĠUnit Ġ= Ġ{} Ċ ) Ċ Ċ /** å¿«éĢŁ æĺ¾ç¤º [ loading ] å¯¹ è¯Ŀ æ¡Ĩ */ Ċ fun ĠFragment . dsl Loading ( bottom : ĠBoolean Ġ= Ġfalse , Ġaction : ĠLoading Config . () Ġ-> ĠUnit Ġ= Ġ{}) Ġ= ĊĠĠĠ Ġactivity ?. dsl Loading ( bottom , Ġaction ) Ċ Ċ /** å¿«éĢŁ æĺ¾ç¤º [ loading ] å¯¹ è¯Ŀ æ¡Ĩ */ Ċ fun ĠActivity . dsl Loading ( bottom : ĠBoolean Ġ= Ġfalse , Ġaction : ĠLoading Config . () Ġ-> ĠUnit Ġ= Ġ{} ): ĠDialog ? Ġ{ ĊĠĠĠ Ġval Ġconfig Ġ= ĠLoading Config () ĊĠĠĠ Ġif Ġ( bottom ) Ġ{ ĊĠĠĠĠĠĠĠ Ġconfig . loading Layout Id Ġ= ĠR . layout . lib _ dialog _ bottom _ loading _ layout ĊĠĠĠ Ġ} ĊĠĠĠ Ġconfig . action () ĊĠĠĠ Ġreturn Ġloading ( ĊĠĠĠĠĠĠĠ Ġconfig . loading Text , ĊĠĠĠĠĠĠĠ Ġconfig . loading Layout Id , ĊĠĠĠĠĠĠĠ Ġconfig . loading Show Close View , ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( bottom ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Gravity Ġ= ĠGr avity . BOTTOM ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanim Style Res Id Ġ= ĠR . style . Lib Dialog Bottom Translate Animation ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġamount Ġ= Ġ 0 . 2 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Width Ġ= Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfig . loading Config ( this ) ĊĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfig . on Loading Cancel ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ) Ċ }