package Ġcom . pe ch uro . bs uir schedule . feature . confirmation dialog Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroidx . core . view . isVisible Ċ import Ġcom . bs uir . pe ch uro . bs uir schedule . R Ċ import Ġcom . google . android . material . button . Material Button Ċ import Ġcom . pe ch uro . bs uir schedule . common . base . Base Dialog Fragment Ċ import Ġcom . pe ch uro . bs uir schedule . ext . set Safe ClickListener Ċ import Ġkotlinx . android . synt hetic . main . dialog _ confirmation .* Ċ Ċ class ĠConfirm ation Dialog Ġ: ĠBase Dialog Fragment () Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTAG Ġ= Ġ" Confirmation Dialog " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġposition ActionButton : ĠConfirm ation Dialog Button Data ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġnegative ActionButton : ĠConfirm ation Dialog Button Data ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġtitle Ġ= Ġ"" ĊĊĠĠĠĠĠĠĠ Ġfun ĠsetTitle ( title : ĠString ) Ġ= Ġapply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . title Ġ= Ġtitle ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġset Positive Action ( data : ĠConfirm ation Dialog Button Data ) Ġ= Ġapply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġposition ActionButton Ġ= Ġdata ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġset Negative Action ( data : ĠConfirm ation Dialog Button Data ) Ġ= Ġapply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnegative ActionButton Ġ= Ġdata ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġbuild () Ġ= ĠConfirm ation Dialog (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparams Ġ= ĠParams ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġposition ActionButton Ġ= Ġposition ActionButton , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnegative ActionButton Ġ= Ġnegative ActionButton , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġtitle ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġdata Ġclass ĠParams ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġposition ActionButton : ĠConfirm ation Dialog Button Data ?, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnegative ActionButton : ĠConfirm ation Dialog Button Data ?, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtitle : ĠString ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġparams : ĠParams ĊĊĠĠĠ Ġoverride Ġval Ġlayout Id : ĠInt Ġ= ĠR . layout . dialog _ confirmation ĊĊĠĠĠ Ġoverride Ġval Ġwidth Percent Ġ= Ġ 0 . 7 F ĊĊĠĠĠ Ġoverride Ġfun Ġon Attach ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠCan 't Ġrestore Ġdialog Ġstate , Ġso Ġdismiss Ġthere ĊĠĠĠĠĠĠĠ Ġif Ġ(! :: params . isInitialized ) Ġdismiss () ĊĠĠĠĠĠĠĠ Ġsuper . on Attach ( context ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġinit Views () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Views () Ġ{ ĊĠĠĠĠĠĠĠ Ġconfirmation Dialog Title . text Ġ= Ġparams . title ĊĠĠĠĠĠĠĠ Ġparams . position ActionButton ?. apply To ( confirmation Positive Button ) ĊĠĠĠĠĠĠĠ Ġparams . negative ActionButton ?. apply To ( confirmation Negative Button ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠConfirm ation Dialog Button Data . apply To ( button : ĠMaterial Button ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbutton . isVisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġbutton . text Ġ= Ġtext ĊĠĠĠĠĠĠĠ Ġbutton . set Safe ClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠonClick . invoke () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }