/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 9 ĠCode p unk , ĠLLC Ċ Ġ* ĠAuthor ( s ): ĠS cott ĠSl ater Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . code p unk . d oof ens ch m irt z . app Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . app . Dialog Ċ import Ġandroid . content . DialogInterface Ċ import Ġandroid . content . DialogInterface . BUTTON _ NEGATIVE Ċ import Ġandroid . content . DialogInterface . BUTTON _ NE UT R AL Ċ import Ġandroid . content . DialogInterface . BUTTON _ POSITIVE Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . appcompat . app . AlertDialog Ċ import Ġandroidx . fragment . app . Dialog Fragment Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . Fragment Activity Ċ import Ġandroidx . fragment . app . FragmentManager Ċ import Ġcom . code p unk . d oof ens ch m irt z . R Ċ import Ġcom . code p unk . d oof ens ch m irt z . inator . make Key Ċ Ċ /** Ċ Ġ* ĠA Ġgeneric Ġ[ Dialog Fragment ] Ġthat Ġuses Ġrequest Ġcodes Ġand Ġ" show Dialog Fragment For Result " Ġmethods Ċ Ġ* Ġto Ġshow Ġ[ Dialog ] s Ġin Ġa Ġmanner Ġconsistent Ġwith Ġ[ Activity . startActivity For Result ]. Ċ Ġ*/ Ċ open Ġclass ĠAlertDialog Fragment Ġ: ĊĠĠĠ ĠDialog Fragment (), ĊĠĠĠ ĠDialog Interface . OnClickListener Ġ{ ĊĊĠĠĠ Ġ// Ġregion ĠProperties ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġidentity Ġof Ġthe Ġlistener Ġassigned Ġto Ġthis Ġ[ AlertDialog Fragment ]. ĠCan Ġbe Ġone Ġof Ġthe ĊĠĠĠĠ Ġ* Ġfollowing : ĊĠĠĠĠ Ġ* Ġ- ĠThe Ġ[ Activity ] Ġto Ġwhich Ġthis Ġfragment Ġbelongs ĊĠĠĠĠ Ġ* Ġ- ĠThe Ġ[ Fragment ] Ġsupplied Ġas Ġthis Ġfragment 's Ġtarget Ġfragment ĊĠĠĠĠ Ġ* Ġ- ĠSome Ġother Ġcustom Ġlistener Ġinstance ĊĠĠĠĠ Ġ* Ġ- ĠNone , Ġi . e . Ġthis Ġdialog Ġfragment Ġhas Ġno Ġlistener ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġvar Ġlistener Identity Ġ= ĊĠĠĠĠĠĠĠ ĠListener Identity . NONE ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( field Ġ!= Ġvalue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ listener Ġ= Ġwhen Ġ( field ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠListener Identity . ACTIVITY Ġ-> Ġactivity Ġas ? ĠAlertDialog Fragment Listener ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠListener Identity . TARGET _ FRAGMENT Ġ-> Ġtarget Fragment Ġas ? ĠAlertDialog Fragment Listener ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġbacking Ġfield Ġfor Ġthe Ġ[ listener ] Ġproperty . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġ_ listener : ĠAlertDialog Fragment Listener ? Ġ= Ġnull ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġ[ AlertDialog Fragment Listener ] Ġcurrently Ġlistening Ġfor Ġevents Ġrelated Ġto Ġthis Ġfragment . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġlistener : ĠAlertDialog Fragment Listener ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ listener ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(_ listener Ġ!= Ġvalue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener Identity Ġ= Ġwhen Ġ(_ listener ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull Ġ-> ĠListener Identity . NONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠListener Identity . CUSTOM ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ listener Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġbacking Ġfield Ġfor Ġthe Ġ[ request Code ] Ġproperty . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġ_ request Code : ĠInt Ġ= Ġ 0 ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġrequest Ġcode Ġthat Ġthis Ġfragment Ġwill Ġuse Ġto Ġcommunicate Ġwith Ġ[ listener ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġvar Ġrequest Code : ĠInt ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġwhen Ġ( listener Identity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠListener Identity . TARGET _ FRAGMENT Ġ-> Ġtarget Request Code ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ_ request Code ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ request Code Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġresult Ġcode Ġthat Ġwill Ġbe Ġpassed Ġto Ġ[ listener ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġvar ĠresultCode : ĠInt Ġ= Ġ 0 ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAny Ġdata Ġthat Ġwill Ġbe Ġshared Ġwith Ġ[ listener ] Ġvia ĊĠĠĠĠ Ġ* Ġ[ AlertDialog Fragment Listener . on Dialog Result ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġdata : ĠIntent ? Ġ= Ġnull ĊĊĠĠĠ Ġ// Ġend region ĠProperties ĊĊĠĠĠ Ġ// Ġregion ĠLifecycle Ġmethods ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRest ores Ġ[ listener Identity ] Ġand Ġ[ request Code ] Ġfrom Ġ[ savedInstanceState ] Ġas Ġappropriate . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsavedInstanceState ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener Identity Ġ= Ġthis . get Serializable ( KEY _ LIST ENER _ SOURCE ) Ġas ĠListener Identity ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( listener Identity Ġ!= ĠListener Identity . TARGET _ FRAGMENT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Code Ġ= Ġthis . getInt ( KEY _ REQUEST _ CODE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠS aves Ġ[ listener Identity ] Ġand Ġ[ request Code ] Ġto Ġ[ out State ] Ġas Ġappropriate . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġon Save InstanceState ( out State : ĠBundle ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Save InstanceState ( out State ) ĊĠĠĠĠĠĠĠ Ġout State . put Serializable ( KEY _ LIST ENER _ SOURCE , Ġlistener Identity ) ĊĠĠĠĠĠĠĠ Ġif Ġ( listener Identity Ġ!= ĠListener Identity . TARGET _ FRAGMENT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout State . put Int ( KEY _ REQUEST _ CODE , Ġrequest Code ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġend region ĠLifecycle Ġmethods ĊĊĠĠĠ Ġ// Ġregion ĠInherit ed Ġmethods ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreates Ġthe Ġ[ Dialog ] Ġfor Ġthis Ġfragment , Ġcalling ĊĠĠĠĠ Ġ* Ġ[ AlertDialog Fragment Listener . on Build AlertDialog ] Ġon Ġ[ listener ] Ġif Ġone Ġexists . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun ĠonCreate Dialog ( savedInstanceState : ĠBundle ?): ĠDialog Ġ= ĊĠĠĠĠĠĠĠ ĠnewBuilder ( savedInstanceState ). also Ġ{ Ġbuilder Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener ?. on Build AlertDialog ( this , Ġrequest Code , Ġbuilder , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġ}. create () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSets Ġ[ result Code ] Ġto Ġ[ RESULT _ C ANCE LED ] Ġin Ġpreparation Ġfor Ġcalling ĊĠĠĠĠ Ġ* Ġ[ AlertDialog Fragment Listener . on Dialog Result ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġon Cancel ( dialog : ĠDialog Interface ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Cancel ( dialog ) ĊĠĠĠĠĠĠĠ ĠresultCode Ġ= ĠRESULT _ C ANCE LED ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCall Ġ[ AlertDialog Fragment Listener . on Dialog Result ] Ġon Ġ[ listener ] Ġif Ġone Ġexists . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġon Dismiss ( dialog : ĠDialog Interface ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Dismiss ( dialog ) ĊĠĠĠĠĠĠĠ Ġ// ĠDon 't Ġnotify Ġlistener Ġif Ġthe Ġdialog Ġis Ġnot Ġattached . ĠThis Ġwill Ġcatch Ġthe ĊĠĠĠĠĠĠĠ Ġ// Ġdifference Ġbetween Ġa Ġdialog Ġdis missing Ġdue Ġto Ġconfiguration Ġchange Ġvs . Ġa Ġuser Ġaction . ĊĠĠĠĠĠĠĠ Ġif Ġ( is Added ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener ?. on Dialog Result ( this , Ġrequest Code , ĠresultCode , Ġdata ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġend region ĠInherit ed Ġmethods ĊĊĠĠĠ Ġ// Ġregion ĠImplemented Ġmethods ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠImplementation Ġof Ġ[ DialogInterface . OnClickListener ]. ĠSets Ġ[ result Code ] Ġto Ġa Ġvalue ĊĠĠĠĠ Ġ* Ġappropriate Ġto Ġthe Ġclicked Ġdialog Ġbutton . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun ĠonClick ( dialog : ĠDialog Interface ?, Ġwhich : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠresultCode Ġ= Ġwhen Ġ( which ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBUTTON _ POSITIVE Ġ-> ĠRESULT _ POSITIVE ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBUTTON _ NEGATIVE Ġ-> ĠRESULT _ NEGATIVE ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBUTTON _ NE UT R AL Ġ-> ĠRESULT _ NE UT R AL ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġend region ĠImplemented Ġmethods ĊĊĠĠĠ Ġ// Ġregion ĠMethods ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠA Ġdefault Ġ[ AlertDialog . Builder ] Ġthat Ġdisplays Ġa Ġsimple Ġ" An Ġunknown Ġerror Ġoccurred " ĊĠĠĠĠ Ġ* Ġdialog Ġwith Ġa Ġsingle Ġ" OK " Ġbutton . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġopen Ġfun ĠnewBuilder ( savedInstanceState : ĠBundle ?): ĠAlertDialog . Builder Ġ= ĊĠĠĠĠĠĠĠ ĠAlertDialog . Builder ( require Context ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setTitle ( R . string . common _ error ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setMessage ( R . string . unknown _ error _ message ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Positive Button ( android . R . string . ok , Ġthis ) ĊĊĠĠĠ Ġ// Ġend region ĠMethods ĊĊĠĠĠ Ġ// Ġregion ĠComp anion Ġobject ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// Ġregion ĠProperties ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠA Ġbundle Ġkey Ġfor Ġsaving Ġthis Ġ[ AlertDialog Fragment ]' s Ġlistener Ġsource . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠKEY _ LIST ENER _ SOURCE Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAlertDialog Fragment :: class . java . make Key (" LIST ENER _ SOURCE ") ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠA Ġbundle Ġkey Ġfor Ġsaving Ġthis Ġ[ AlertDialog Fragment ]' s Ġrequest Ġcode . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠKEY _ REQUEST _ CODE Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAlertDialog Fragment :: class . java . make Key (" REQUEST _ CODE ") ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠA Ġresult Ġcode Ġcorresponding Ġto Ġa Ġpositive Ġbutton Ġclick . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠRESULT _ POSITIVE : ĠInt Ġ= ĠActivity . RESULT _ OK ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠA Ġresult Ġcode Ġcorresponding Ġto Ġa Ġnegative Ġbutton Ġclick . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠRESULT _ NEGATIVE : ĠInt Ġ= ĠActivity . RESULT _ FIRST _ USER ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠA Ġresult Ġcode Ġcorresponding Ġto Ġa Ġneutral Ġbutton Ġclick . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠRESULT _ NE UT R AL : ĠInt Ġ= ĠActivity . RESULT _ FIRST _ USER Ġ+ Ġ 1 ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠA Ġresult Ġcode Ġcorresponding Ġto Ġthe Ġdialog Ġbeing Ġcanceled . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠRESULT _ C ANCE LED : ĠInt Ġ= ĠActivity . RESULT _ C ANCE LED ĊĊĠĠĠĠĠĠĠ Ġ// Ġend region ĠProperties ĊĊĠĠĠĠĠĠĠ Ġ// Ġregion ĠMethods ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠShows Ġan Ġ[ AlertDialog Fragment ] Ġfor Ġwhich Ġyou Ġwould Ġlike Ġa Ġresult Ġwhen Ġit Ġdis mis ses ĊĠĠĠĠĠĠĠĠ Ġ* Ġ( for Ġwhatever Ġreason ). ĠIf Ġit Ġimplements Ġ[ AlertDialog Fragment Listener ], Ġthen ĊĠĠĠĠĠĠĠĠ Ġ* Ġ[ target Fragment ] Ġwill Ġautomatically Ġbe Ġset Ġas Ġthe Ġresult Ġlistener . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġshow Dialog Fragment For Result ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Fragment : ĠFragment , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Code : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtag : ĠString ĊĠĠĠĠĠĠĠ Ġ) Ġ= ĠAlertDialog Fragment (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Target Fragment ( target Fragment , Ġrequest Code ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener Identity Ġ= ĠListener Identity . TARGET _ FRAGMENT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow ( target Fragment . require FragmentManager (), Ġtag ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠShows Ġan Ġ[ AlertDialog Fragment ] Ġfor Ġwhich Ġyou Ġwould Ġlike Ġa Ġresult Ġwhen Ġit Ġdis mis ses ĊĠĠĠĠĠĠĠĠ Ġ* Ġ( for Ġwhatever Ġreason ). ĠIf Ġit Ġimplements Ġ[ AlertDialog Fragment Listener ], Ġthen ĊĠĠĠĠĠĠĠĠ Ġ* Ġ[ activity ] Ġwill Ġautomatically Ġbe Ġset Ġas Ġthe Ġresult Ġlistener . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġshow Dialog Fragment For Result ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity : ĠFragment Activity , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Code : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtag : ĠString ĊĠĠĠĠĠĠĠ Ġ) Ġ= ĠAlertDialog Fragment (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . request Code Ġ= Ġrequest Code ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener Identity Ġ= ĠListener Identity . ACTIVITY ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow ( activity . support FragmentManager , Ġtag ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠShows Ġan Ġ[ AlertDialog Fragment ] Ġfor Ġwhich Ġyou Ġwould Ġlike Ġa Ġresult Ġwhen Ġit Ġdis mis ses ĊĠĠĠĠĠĠĠĠ Ġ* Ġ( for Ġwhatever Ġreason ). ĠThis Ġversion Ġof Ġ[ show Dialog Fragment For Result ] Ġspecifically ĊĠĠĠĠĠĠĠĠ Ġ* Ġsupp lies Ġa Ġ[ listener ] Ġwith Ġthe Ġcave at Ġthat , Ġafter Ġconfiguration Ġchange , Ġa Ġhandle ĊĠĠĠĠĠĠĠĠ Ġ* Ġto Ġthis Ġfragment Ġmust Ġbe Ġobtained Ġagain Ġ( i . e . Ġvia Ġ[ FragmentManager . find Fragment By Tag ], ĊĠĠĠĠĠĠĠĠ Ġ* Ġetc .) Ġand Ġthe Ġlistener Ġmust Ġmanually Ġbe Ġre - set . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Suppress (" UNUSED ") ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġshow Dialog Fragment For Result ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment Manager : ĠFragment Manager , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Code : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtag : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener : ĠAlertDialog Fragment Listener ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ) Ġ= ĠAlertDialog Fragment (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . request Code Ġ= Ġrequest Code ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . listener Ġ= Ġlistener ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow ( fragment Manager , Ġtag ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġend region ĠMethods ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġend region ĠComp anion Ġobject ĊĊĠĠĠ Ġ// Ġregion ĠNested / inner Ġclasses ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAn Ġenum Ġclass Ġdescribing Ġthe Ġidentity Ġof Ġany Ġ[ AlertDialog Fragment Listener ] Ġset Ġon Ġthis ĊĠĠĠĠ Ġ* Ġfragment . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġenum Ġclass ĠListener Identity Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠA Ġvalue Ġindicating Ġthat Ġthis Ġfragment Ġhas Ġno Ġ[ AlertDialog Fragment Listener ]. ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ ĠNONE , ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠA Ġvalue Ġindicating Ġthat Ġthis Ġfragment 's Ġ[ AlertDialog Fragment Listener ] Ġis Ġpotentially ĊĠĠĠĠĠĠĠĠ Ġ* Ġits Ġhost Ġ[ Activity ]. ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ ĠACT IVITY , ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠA Ġvalue Ġindicating Ġthat Ġthis Ġfragment 's Ġ[ AlertDialog Fragment Listener ] Ġis Ġpotentially ĊĠĠĠĠĠĠĠĠ Ġ* Ġits Ġtarget Ġ[ Fragment ]. ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ ĠTARGET _ FRAGMENT , ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠA Ġvalue Ġindicating Ġthat Ġthis Ġfragment 's Ġ[ AlertDialog Fragment Listener ] Ġwas Ġspecifically ĊĠĠĠĠĠĠĠĠ Ġ* Ġset Ġvia Ġ[ show Dialog Fragment For Result ]. ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ ĠCUSTOM ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAn Ġinterface Ġthat Ġclasses Ġcan Ġimplement Ġto Ġlisten Ġfor Ġevents Ġrelated Ġto Ġshowing Ġand ĊĠĠĠĠ Ġ* Ġrespon ding Ġto Ġthis Ġ[ AlertDialog Fragment ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinterface ĠAlertDialog Fragment Listener Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// Ġregion ĠMethods ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠCalled Ġwhen Ġ[ AlertDialog Fragment ] Ġis Ġbuilding Ġits Ġ[ AlertDialog ]. ĠList eners Ġof Ġthis ĊĠĠĠĠĠĠĠĠ Ġ* Ġevent Ġshould Ġuse Ġ[ request Code ] Ġto Ġdifferent iate Ġwhat Ġkind Ġof Ġalert Ġdialog Ġshould Ġbe ĊĠĠĠĠĠĠĠĠ Ġ* Ġbuilt . ĠWhen Ġcreating Ġdialog Ġbuttons , Ġit 's Ġbest Ġto Ġuse Ġ[ fragment ] Ġas Ġthe ĊĠĠĠĠĠĠĠĠ Ġ* Ġ[ DialogInterface . OnClickListener ] Ġfor Ġthose Ġbuttons Ġso Ġthe ĠAlertDialog Fragment Ġcan ĊĠĠĠĠĠĠĠĠ Ġ* Ġrespond Ġappropriately Ġand Ġcall Ġ[ on Dialog Result ] Ġwith Ġthe Ġcorrect Ġresult Ġcode . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġon Build AlertDialog ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment : ĠAlertDialog Fragment , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Code : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder : ĠAlertDialog . Builder , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠCalled Ġwhen Ġthe Ġ[ AlertDialog Fragment ] Ġencounter s Ġa Ġresult , Ġwhether Ġfrom Ġthe Ġdialog ĊĠĠĠĠĠĠĠĠ Ġ* Ġbeing Ġdis missed Ġin Ġany Ġway , Ġor Ġone Ġof Ġthe Ġdialog Ġbuttons Ġbeing Ġpressed . ĠList eners Ġof ĊĠĠĠĠĠĠĠĠ Ġ* Ġthis Ġevent Ġshould Ġuse Ġ[ request Code ] Ġto Ġdifferent iate Ġwhat Ġkind Ġof Ġalert Ġdialog Ġis ĊĠĠĠĠĠĠĠĠ Ġ* Ġpassing Ġalong Ġits Ġresult . ĠThe Ġ[ data ] Ġargument Ġmay Ġoptionally Ġcontain Ġadditional ĊĠĠĠĠĠĠĠĠ Ġ* Ġinformation Ġ( for Ġexample , Ġan Ġitem Ġthat Ġwas Ġselected Ġin Ġa Ġlist , Ġetc .) ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġon Dialog Result ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment : ĠAlertDialog Fragment , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Code : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠresultCode : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata : ĠIntent ? ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġend region ĠMethods ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġend region ĠNested / inner Ġclasses Ċ Ċ } Ċ