/* Ċ Ġ* ĠThe ĠMIT ĠLicense Ġ( MIT ) Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 2 1 ĠTrans Way Ċ Ġ* Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ċ Ġ* Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ċ Ġ* Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ċ Ġ* Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ċ Ġ* Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ċ Ġ* Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ċ Ġ* Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR Ċ Ġ* ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , Ċ Ġ* ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE Ċ Ġ* ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER Ċ Ġ* ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , Ċ Ġ* ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN ĠTHE Ċ Ġ* ĠSOFTWARE . Ċ Ġ*/ Ċ Ċ package Ġcom . eric af en yo . b ik edi ary . widget . dialog Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . View Ċ import Ġandroidx . annotation . String Res Ċ import Ġcom . eric af en yo . b ik edi ary . R Ċ import Ġcom . eric af en yo . b ik edi ary . databinding . Dialog Alert Binding Ċ import Ġcom . w ada 8 1 1 . databinding . data Binding Ċ Ċ /** Ċ Ġ* ĠAn Ġandroid ĠAlertDialog Ġwith Ġa Ġcustom Ġview . Ċ Ġ*/ Ċ class ĠAlert Ġprivate Ġconstructor ( ĊĠ Ġprivate Ġval Ġtitle : ĠString , ĊĠ Ġprivate Ġval Ġmessage : ĠString , ĊĠ Ġprivate Ġval Ġaction : ĠString , ĊĠ Ġprivate Ġval Ġblock : Ġ(() Ġ-> ĠUnit )? Ġ= Ġnull , Ċ ) Ġ: ĠAbstract Dialog Fragment ( R . layout . dialog _ alert ) Ġ{ ĊĠ Ġprivate Ġval Ġbinding : ĠDialog Alert Binding Ġby Ġdata Binding () ĊĊĠ Ġoverride Ġfun Ġon Created ( view : ĠView ) Ġ{ ĊĠĠĠ Ġbinding . text Title . text Ġ= Ġtitle ĊĠĠĠ Ġbinding . text Message . text Ġ= Ġmessage ĊĠĠĠ Ġbinding . button . text Ġ= Ġaction ĊĠĠĠ Ġbinding . button . setOnClickListener Ġ{ ĊĠĠĠĠĠ Ġif Ġ( block Ġ!= Ġnull ) Ġblock . invoke () Ġelse Ġrequire Dialog (). dismiss () ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġclass ĠBuilder ( private Ġval Ġcontext : ĠContext ) Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġ_ title : ĠString Ġ= Ġ"" ĊĠĠĠ Ġprivate Ġvar Ġ_ message : ĠString Ġ= Ġ"" ĊĠĠĠ Ġprivate Ġvar Ġ_ action : ĠString Ġ= Ġ"" ĊĠĠĠ Ġprivate Ġvar Ġ_ block : Ġ(() Ġ-> ĠUnit )? Ġ= Ġnull ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSet Ġthe Ġalert Ġproperties Ġfrom Ġthe Ġgiven Ġ[ message ] Ġobject . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġthis Ġ[ Alert . Builder ] Ġobject Ġto Ġallow Ġfor Ġchaining Ġof Ġcalls Ġto Ġset Ġmethods ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġfrom ( message : ĠMessage ): ĠBuilder Ġ{ ĊĠĠĠĠĠ Ġthis ._ title Ġ= Ġcontext . getString ( message . title Id ) ĊĠĠĠĠĠ Ġthis ._ message Ġ= Ġcontext . getString ( message . message Id ) ĊĠĠĠĠĠ Ġthis ._ action Ġ= Ġcontext . getString ( message . action Id ) ĊĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSet Ġthe Ġtitle Ġto Ġdisplay Ġusing Ġthe Ġgiven Ġresource Ġid . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġthis Ġ[ Alert . Builder ] Ġobject Ġto Ġallow Ġfor Ġchaining Ġof Ġcalls Ġto Ġset Ġmethods ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun ĠsetTitle (@ String Res Ġtitle Id : ĠInt ): ĠBuilder Ġ{ ĊĠĠĠĠĠ Ġthis ._ title Ġ= Ġcontext . getString ( title Id ) ĊĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSet Ġthe Ġmessage Ġto Ġdisplay Ġusing Ġthe Ġgiven Ġresource Ġid . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġthis Ġ[ Alert . Builder ] Ġobject Ġto Ġallow Ġfor Ġchaining Ġof Ġcalls Ġto Ġset Ġmethods ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset Message (@ String Res ĠmessageId : ĠInt ): ĠBuilder Ġ{ ĊĠĠĠĠĠ Ġthis ._ message Ġ= Ġcontext . getString ( message Id ) ĊĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSet Ġtext Ġto Ġdisplay Ġin Ġthe Ġbutton Ġusing Ġthe Ġgiven Ġresource Ġid . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġthis Ġ[ Alert . Builder ] Ġobject Ġto Ġallow Ġfor Ġchaining Ġof Ġcalls Ġto Ġset Ġmethods ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset Action Text (@ String Res Ġaction Id : ĠInt ): ĠBuilder Ġ{ ĊĠĠĠĠĠ Ġthis ._ action Ġ= Ġcontext . getString ( action Id ) ĊĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Action ( block : Ġ(() Ġ-> ĠUnit )? Ġ= Ġnull ): ĠBuilder Ġ{ ĊĠĠĠĠĠ Ġthis ._ block Ġ= Ġblock ĊĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġbuild (): ĠAlert Ġ= ĠAlert (_ title , Ġ_ message , Ġ_ action , Ġ_ block ) ĊĠ Ġ} ĊĊĊĠ Ġ/** ĊĠĠ Ġ* ĠA Ġdata Ġclass Ġcontaining Ġproperties Ġfor Ġcreating Ġan Ġ[ Alert ] ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ property Ġtitle Id ĠOptional Ġstring Ġresource Ġid Ġof Ġthe Ġtitle Ġto Ġshow ĊĠĠ Ġ* Ġ@ property ĠmessageId ĠString Ġresource Ġid Ġof Ġthe Ġmessage Ġto Ġshow ĊĠĠ Ġ* Ġ@ property Ġaction Id ĠOptional Ġstring Ġresource Ġid Ġof Ġthe Ġbutton Ġlabel ĊĠĠ Ġ* Ġ@ property Ġclo s able ĠOptional Ġmake Ġthe Ġdialog Ġnon Ġdismiss ible Ġset Ġto Ġfalse ĊĠĠ Ġ*/ ĊĠ Ġdata Ġclass ĠMessage ( ĊĠĠĠ Ġ@ String Res Ġval ĠmessageId : ĠInt , ĊĠĠĠ Ġ@ String Res Ġval Ġtitle Id : ĠInt , ĊĠĠĠ Ġ@ String Res Ġval Ġaction Id : ĠInt Ġ= Ġandroid . R . string . ok , ĊĠĠĠ Ġval Ġclo s able : ĠBoolean Ġ= Ġtrue , ĊĠ Ġ) Ċ } Ċ