package Ġcom . example . barcode scanner . feature . common . dialog Ċ Ċ import Ġandroid . app . Dialog Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . appcompat . app . AlertDialog Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . fragment . app . Dialog Fragment Ċ import Ġcom . example . barcode scanner . R Ċ Ċ class ĠError Dialog Fragment Ġ: ĠDialog Fragment () Ġ{ ĊĊĠĠĠ Ġinterface ĠListener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun ĠonError Dialog Positive Button Clicked () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠERROR _ MESSAGE _ KEY Ġ= Ġ" ERROR _ MESSAGE _ KEY " ĊĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( context : ĠContext , Ġerror : ĠThrowable ?): ĠError Dialog Fragment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠError Dialog Fragment (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarguments Ġ= ĠBundle (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput String ( ERROR _ MESSAGE _ KEY , Ġget ErrorMessage ( context , Ġerror )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Cancel able Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġget ErrorMessage ( context : ĠContext , Ġerror : ĠThrowable ?): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġerror ?. message Ġ?: Ġcontext . getString ( R . string . error _ dialog _ default _ message ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġlistener : ĠListener ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġon Attach ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Attach ( context ) ĊĠĠĠĠĠĠĠ Ġlistener Ġ= Ġcontext Ġas ? ĠListener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Dialog ( savedInstanceState : ĠBundle ?): ĠDialog Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= Ġarguments ?. getString ( ERROR _ MESSAGE _ KEY ). or Empty () ĊĊĠĠĠĠĠĠĠ Ġval Ġdialog Ġ= ĠAlertDialog . Builder ( require Activity (), ĠR . style . Dialog Theme ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setTitle ( R . string . error _ dialog _ title ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setMessage ( message ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Cancel able ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Positive Button ( R . string . error _ dialog _ positive _ button _ text ) Ġ{ Ġ_, Ġ_ Ġ-> Ġlistener ?. onError Dialog Positive Button Clicked () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. create () ĊĊĠĠĠĠĠĠĠ Ġdialog . setOn Show Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . get Button ( AlertDialog . BUTTON _ POSITIVE ). setTextColor ( Context Compat . getColor ( require Context (), ĠR . color . blue )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġdialog ĊĠĠĠ Ġ} Ċ }