package Ġcom . ome gar . libs . ome gal a unch ers Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Parcelable Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . fragment . app . Dialog Fragment Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . FragmentManager Ċ import Ġandroidx . fragment . app . Fragment Transaction Ċ import Ġcom . ome gar . libs . ome gal a unch ers . tools . Bundle Pair Ċ import Ġcom . ome gar . libs . ome gal a unch ers . tools . bundle Of Ċ import Ġcom . ome gar . libs . ome gal a unch ers . tools . equals Bundle Ċ import Ġcom . ome gar . libs . ome gal a unch ers . tools . hashCode Bundle Ċ import Ġkotlinx . android . parcel . Parcel ize Ċ import Ġjava . lang . IllegalArgumentException Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠAnt on ĠK ny az ev Ġon Ġ 3 0 . 0 4 . 1 9 . Ċ Ġ*/ Ċ @ Parcel ize Ċ class ĠDialog Fragment Launcher ( ĊĠĠĠ Ġprivate Ġval Ġfragment Class : ĠClass < Dialog Fragment >, ĊĠĠĠ Ġprivate Ġval Ġbundle : ĠBundle ? Ġ= Ġnull Ċ ) Ġ: ĠLaunch er Ġ{ ĊĊĠĠĠ Ġconstructor ( fragment Class : ĠClass < Dialog Fragment >, Ġvar arg Ġextra Params : ĠBundle Pair ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ: Ġthis ( fragment Class , Ġbundle Of (* extra Params )) ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Dialog Fragment (): ĠDialog Fragment Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfragment Ġ= Ġfragment Class . newInstance () ĊĠĠĠĠĠĠĠ Ġfragment . arguments Ġ= Ġbundle ĊĠĠĠĠĠĠĠ Ġreturn Ġfragment ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġlaunch ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( context Ġis ĠAppCompatActivity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlaunch ( context . support FragmentManager ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" Launch Ġsupport Ġonly Ġcontext Ġas ĠAppCompatActivity ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis Our Dialog Fragment ( fragment : ĠDialog Fragment ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfragment Class . is Instance ( fragment ) Ġ&& Ġfragment . arguments . equals Bundle ( bundle ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlaunch ( ĊĠĠĠĠĠĠĠ Ġtransaction : ĠFragment Transaction , ĊĠĠĠĠĠĠĠ Ġtag : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġtarget Fragment : ĠFragment ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġrequest Code : ĠInt ? Ġ= Ġnull ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcreate Dialog Fragment (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( target Fragment Ġ!= Ġnull Ġ|| Ġrequest Code Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Target Fragment ( target Fragment , Ġrequest Code Ġ?: Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow ( transaction , Ġtag ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlaunch ( ĊĠĠĠĠĠĠĠ Ġfragment Manager : ĠFragment Manager , ĊĠĠĠĠĠĠĠ Ġtag : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġtarget Fragment : ĠFragment ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġrequest Code : ĠInt ? Ġ= Ġnull ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcreate Dialog Fragment (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( target Fragment Ġ!= Ġnull Ġ|| Ġrequest Code Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Target Fragment ( target Fragment , Ġrequest Code Ġ?: Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow ( fragment Manager , Ġtag ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( java Class Ġ!= Ġother ?. java Class ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġother Ġas ĠDialog Fragment Launcher ĊĊĠĠĠĠĠĠĠ Ġif Ġ( fragment Class Ġ!= Ġother . fragment Class ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ(! bundle . equals Bundle ( other . bundle )) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġfragment Class . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġ( bundle ?. hashCode Bundle () Ġ?: Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠDefault Companion Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġcreate Launcher (): ĠDialog Fragment Launcher ĊĊĠĠĠĠĠĠĠ Ġfun Ġlaunch ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction : ĠFragment Transaction , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtag : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Fragment : ĠFragment ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Code : ĠInt ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcreate Launcher () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. launch ( transaction , Ġtag , Ġtarget Fragment , Ġrequest Code ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġlaunch ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmanager : ĠFragment Manager , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtag : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Fragment : ĠFragment ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Code : ĠInt ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcreate Launcher (). launch ( manager , Ġtag , Ġtarget Fragment , Ġrequest Code ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ @ Suppress (" UN CHECK ED _ CAST ") Ċ inline Ġfun Ġ< re ified ĠT > ĠT . create Dialog Fragment Launcher ( var arg Ġextra : ĠBundle Pair ): ĠDialog Fragment Launcher Ġ{ ĊĠĠĠ Ġval Ġdeclaring Class Ġ= ĠT :: class . java . decl aring Class ĊĠĠĠ Ġreturn ĠDialog Fragment Launcher ( decl aring Class Ġas ĠClass < Dialog Fragment >, Ġ* extra ) Ċ } ĊĊ Ċ @ Suppress (" UN CHECK ED _ CAST ") Ċ inline Ġfun Ġ< re ified ĠT > ĠT . create Dialog Fragment Launcher (): ĠDialog Fragment Launcher Ġ{ ĊĠĠĠ Ġval Ġdeclaring Class Ġ= ĠT :: class . java . decl aring Class ĊĠĠĠ Ġreturn ĠDialog Fragment Launcher ( decl aring Class Ġas ĠClass < Dialog Fragment >) Ċ }