package Ġnet . ow lf amily . android . data exchange Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġio . reactivex . subjects . Behavior Subject Ċ import Ġio . reactivex . subjects . Publish Subject ĊĊ Ċ /** Ġget Ġor Ġcreate Ġarguments Ġ*/ Ċ fun ĠFragment . get OrCreate Arguments (): ĠBundle Ġ{ ĊĠĠĠ Ġvar Ġresult Ġ= Ġarguments ĊĠĠĠ Ġif ( result Ġ== Ġnull ){ ĊĠĠĠĠĠĠĠ Ġresult Ġ= ĠBundle () ĊĠĠĠĠĠĠĠ Ġarguments Ġ= Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġresult Ċ } Ċ Ċ /** Ċ Ġ* Ġfor Ġcal lee . Ċ Ġ* Ġfind Ġand Ġreturn Ġ' id ' Ġof Ġcaller Ċ Ġ*/ Ċ fun ĠFragment . getData Exchange Caller Id (): ĠString ? Ġ{ ĊĠĠĠ Ġreturn Ġarguments ?. get Bundle ( Data Exchange Helper . data Exchange Bundle Id )?. getString ( ĊĠĠĠĠĠĠĠ ĠData Exchange Helper . data Exchange Caller Id ĊĠĠĠ Ġ) Ċ } Ċ Ċ /** Ċ Ġ* Ġfor Ġcal lee . Ċ Ġ* Ġfind Ġand Ġreturn Ġ' archive ItemId ' Ġthat Ġspecified Ġfrom Ġcaller Ċ Ġ*/ Ċ fun ĠFragment . getData Exchange Archive ItemId (): ĠString ? Ġ{ ĊĠĠĠ Ġreturn Ġarguments ?. get Bundle ( Data Exchange Helper . data Exchange Bundle Id )?. getString ( ĊĠĠĠĠĠĠĠ ĠData Exchange Helper . data Exchange Archive ItemId ĊĠĠĠ Ġ) Ċ } Ċ Ċ /** Ċ Ġ* Ġvariation Ġof Ġ[ getData Exchange UniqueId ] Ċ Ġ*/ Ċ fun ĠFragment . get OrCreate Data Exchange UniqueId (): ĠString Ġ{ ĊĠĠĠ Ġreturn ĠgetData Exchange UniqueId ( true ) !! Ċ } Ċ Ċ /** Ċ Ġ* Ġ@ param Ġcreate If Empty Ġtrue Ġ- Ġcreate Ġif Ġ' id ' Ġnot Ġexists Ċ Ġ* Ġ@ return Ġthe Ġ' id ' Ġof Ġ[ Fragment ] Ġinstance . Ġthis Ġwill Ġbe Ġused Ġfor Ġ' key ' Ġof Ġ[ Archive ] Ġin Ġ[ Data Exchange ViewModel ] Ċ Ġ*/ Ċ fun ĠFragment . getData Exchange UniqueId ( create If Empty : Boolean Ġ= Ġtrue ): ĠString ? Ġ{ ĊĠĠĠ Ġvar Ġbundle Ġ= Ġarguments ?. get Bundle ( Data Exchange Helper . data Exchange Bundle Id ) ĊĠĠĠ Ġbundle ?. getString ( Data Exchange Helper . data Exchange UniqueId )?. let Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġit ĊĠĠĠ Ġ} ĊĠĠĠ Ġif (! create If Empty ) Ġ{ Ġreturn Ġnull Ġ} ĊĊĠĠĠ Ġif ( bundle Ġ== Ġnull ){ ĊĠĠĠĠĠĠĠ Ġbundle Ġ= ĠBundle () ĊĠĠĠĠĠĠĠ Ġget OrCreate Arguments (). put Bundle ( Data Exchange Helper . data Exchange Bundle Id , Ġbundle ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġid Ġ= ĠData Exchange Helper . create Random ID () ĊĠĠĠ Ġbundle . putString ( Data Exchange Helper . data Exchange UniqueId , id ) ĊĠĠĠ Ġreturn Ġid Ċ } ĊĊ Ċ /** Ċ Ġ* Ġ@ return Ġ[ Data Exchange ViewModel ] Ġinstance Ġof ĠActivity Ċ Ġ*/ Ċ fun ĠFragment . getData Exchange ViewModel (): ĠData Exchange ViewModel Ġ{ ĊĠĠĠ Ġreturn ĠViewModel Provider ( require Activity ()). get ( Data Exchange ViewModel :: class . java ) Ċ } ĊĊ Ċ /** Ċ Ġ* Ġ@ return Ġsubject Ġof Ġ[ Archive ] Ġfrom Ġparent Ġ[ Data Exchange ViewModel ] Ċ Ġ* Ġ@ param Ġowner Id Ġowner Ġid Ġof ĠItem Ċ Ġ*/ Ċ fun ĠFragment . get Archive Subject ( owner Id : String ): ĠBehavior Subject < Archive > Ġ{ ĊĠĠĠ Ġval Ġvm Ġ= ĠgetData Exchange ViewModel () ĊĠĠĠ Ġreturn Ġvm . get OrCreate Archive ( owner Id ) Ċ } Ċ /** Ċ Ġ* Ġfor Ġcaller Ġ( Ġowner Ġof ĠArchive Ġ). Ċ Ġ* Ġfind Ġarguments Ġautomatically Ġfor Ġ[ get Archive Subject ] Ċ Ġ*/ Ċ fun ĠFragment . get Owned Archive Subject (): ĠBehavior Subject < Archive > Ġ{ ĊĠĠĠ Ġreturn Ġget Archive Subject ( get OrCreate Data Exchange UniqueId ()) Ċ } Ċ /** Ċ Ġ* Ġfor Ġcal lee . Ċ Ġ* Ġfind Ġarguments Ġautomatically Ġfor Ġ[ get Archive Subject ] Ċ Ġ*/ Ċ fun ĠFragment . get Caller Archive Subject (): ĠBehavior Subject < Archive >? Ġ{ ĊĠĠĠ ĠgetData Exchange Caller Id ()?. let Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget Archive Subject ( it ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġnull Ċ } ĊĊ Ċ /** Ċ Ġ* Ġremove Ġsubject Ġof Ġ[ Archive ] Ġfrom Ġparent Ġ[ Data Exchange ViewModel ] Ċ Ġ* Ġ@ return Ġtrue Ġif Ġ[ Archive ] Ġremoved Ġfrom Ġparent Ġ[ Data Exchange ViewModel ] Ċ Ġ* Ġ@ param Ġowner Id Ġowner Ġid Ġof ĠItem Ċ Ġ*/ Ċ fun ĠFragment . remove Archive Subject ( owner Id : String ): ĠBoolean Ġ{ ĊĠĠĠ Ġval Ġvm Ġ= ĠgetData Exchange ViewModel () ĊĠĠĠ Ġreturn Ġvm . remove Archive ( owner Id ) Ċ } Ċ /** Ċ Ġ* Ġfor Ġcaller Ġ( Ġowner Ġof ĠArchive Ġ). Ċ Ġ* Ġfind Ġarguments Ġautomatically Ġfor Ġ[ remove Archive Subject ] Ċ Ġ*/ Ċ fun ĠFragment . remove Owned Archive Subject (): ĠBoolean Ġ{ ĊĠĠĠ ĠgetData Exchange UniqueId ( false )?. let Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġremove Archive Subject ( owner Id Ġ= Ġit ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġfalse Ċ } Ċ /** Ċ Ġ* Ġfor Ġcal lee . Ċ Ġ* Ġfind Ġarguments Ġautomatically Ġfor Ġ[ remove Archive Subject ] Ċ Ġ*/ Ċ fun ĠFragment . remove Caller Archive Subject (): ĠBoolean Ġ{ ĊĠĠĠ ĠgetData Exchange Caller Id ()?. let Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġremove Archive Subject ( owner Id Ġ= Ġit ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġfalse Ċ } ĊĊ Ċ /** Ċ Ġ* Ġ@ return Ġsubject Ġof Ġ[ Archive . Item ] Ġfrom Ġparent Ġ[ Archive ] Ċ Ġ* Ġ@ param Ġowner Id Ġowner Ġid Ġof ĠItem Ċ Ġ* Ġ@ param Ġarchive ItemId Ġkey Ġof ĠItem Ċ Ġ*/ Ċ fun Ġ< T > ĠFragment . get Archive Item Subject ( archive ItemId : String , Ġowner Id : String ): ĠBehavior Subject < Archive . Item < T >> Ġ{ ĊĠĠĠ Ġval Ġvm Ġ= ĠgetData Exchange ViewModel () ĊĊĠĠĠ Ġval Ġdata Pack Ġ= Ġvm . get OrCreate Archive ( owner Id ). value !! ĊĠĠĠ Ġreturn Ġdata Pack . get OrCreate Item Subject < T >( archive ItemId Ġ= Ġarchive ItemId ) Ċ } Ċ /** Ċ Ġ* Ġfor Ġcal lee . Ċ Ġ* Ġfind Ġarguments Ġautomatically Ġfor Ġ[ get Archive Item Subject ] Ċ Ġ*/ Ċ fun Ġ< T > ĠFragment . get Caller Archive Item Subject (): ĠBehavior Subject < Archive . Item < T >> ? Ġ{ ĊĠĠĠ Ġval Ġarchive ItemId Ġ= ĠgetData Exchange Archive ItemId () Ġ?: Ġreturn Ġnull ĊĠĠĠ Ġval Ġcaller Id Ġ= ĠgetData Exchange Caller Id () Ġ?: Ġreturn Ġnull ĊĠĠĠ Ġreturn Ġget Archive Item Subject ( archive ItemId Ġ= Ġarchive ItemId , Ġowner Id Ġ= Ġcaller Id ) Ċ } Ċ /** Ċ Ġ* Ġfor Ġcaller Ġ( Ġowner Ġof ĠArchive Ġ). Ċ Ġ* Ġfind Ġarguments Ġautomatically Ġfor Ġ[ get Archive Item Subject ] Ċ Ġ*/ Ċ fun Ġ< T > ĠFragment . get Owned Archive Item Subject ( archive ItemId : String ): ĠBehavior Subject < Archive . Item < T >> Ġ{ ĊĠĠĠ Ġreturn Ġget Archive Item Subject ( archive ItemId , Ġget OrCreate Data Exchange UniqueId ()) Ċ } ĊĊ Ċ /** Ċ Ġ* Ġ@ return Ġtrue Ġif Ġsubject Ġof Ġ[ Archive . Item ] Ġremoved Ġfrom Ġparent Ġ[ Archive ] Ċ Ġ* Ġ@ param Ġowner Id Ġowner Ġid Ġof ĠItem Ċ Ġ* Ġ@ param Ġarchive ItemId Ġkey Ġof ĠItem Ċ Ġ*/ Ċ fun ĠFragment . remove Archive Item Subject ( archive ItemId : String , Ġowner Id : String ): ĠBoolean Ġ{ ĊĠĠĠ Ġval Ġvm Ġ= ĠgetData Exchange ViewModel () ĊĊĠĠĠ Ġval Ġdata Pack Ġ= Ġvm . get OrCreate Archive ( owner Id ). value !! ĊĠĠĠ Ġreturn Ġdata Pack . removeItem Subject ( archive ItemId Ġ= Ġarchive ItemId ) Ċ } Ċ /** Ċ Ġ* Ġfor Ġcal lee . Ċ Ġ* Ġfind Ġarguments Ġautomatically Ġfor Ġ[ remove Archive Item Subject ] Ċ Ġ*/ Ċ fun ĠFragment . remove Caller Archive Item Subject (): ĠBoolean Ġ{ ĊĠĠĠ Ġval Ġarchive ItemId Ġ= ĠgetData Exchange Archive ItemId () Ġ?: Ġreturn Ġfalse ĊĠĠĠ Ġval Ġcaller Id Ġ= ĠgetData Exchange Caller Id () Ġ?: Ġreturn Ġfalse ĊĊĠĠĠ Ġreturn Ġremove Archive Item Subject ( archive ItemId Ġ= Ġarchive ItemId , Ġowner Id Ġ= Ġcaller Id ) Ċ } Ċ /** Ċ Ġ* Ġfor Ġcaller Ġ( Ġowner Ġof ĠArchive Ġ). Ċ Ġ* Ġfind Ġarguments Ġautomatically Ġfor Ġ[ remove Archive Item Subject ] Ċ Ġ*/ Ċ fun ĠFragment . remove Owned Archive Item Subject ( archive ItemId : String ): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġremove Archive Item Subject ( archive ItemId Ġ= Ġarchive ItemId , Ġowner Id Ġ= Ġget OrCreate Data Exchange UniqueId ()) Ċ } ĊĊ Ċ /** Ċ Ġ* Ġ@ return Ġtrue Ġif Ġsubject Ġof Ġ[ Archive . Item ] Ġexists Ġfrom Ġparent Ġ[ Archive ] Ċ Ġ* Ġ@ param Ġowner Id Ġowner Ġid Ġof ĠItem Ċ Ġ* Ġ@ param Ġarchive ItemId Ġkey Ġof ĠItem Ċ Ġ*/ Ċ fun ĠFragment . has Archive Item Subject ( archive ItemId : String , Ġowner Id : String ): ĠBoolean Ġ{ ĊĠĠĠ Ġval Ġvm Ġ= ĠgetData Exchange ViewModel () ĊĠĠĠ Ġval Ġarchive Ġ= Ġvm . get OrCreate Archive ( owner Id ). value !! ĊĠĠĠ Ġreturn Ġarchive . has Item Subject ( archive ItemId ) Ċ } Ċ /** Ċ Ġ* Ġfor Ġcal lee . Ċ Ġ* Ġfind Ġarguments Ġautomatically Ġfor Ġ[ has Archive Item Subject ] Ċ Ġ*/ Ċ fun ĠFragment . has Caller Archive Item Subject (): ĠBoolean Ġ{ ĊĠĠĠ Ġval Ġarchive ItemId Ġ= ĠgetData Exchange Archive ItemId () Ġ?: Ġreturn Ġfalse ĊĠĠĠ Ġval Ġcaller Id Ġ= ĠgetData Exchange Caller Id () Ġ?: Ġreturn Ġfalse ĊĠĠĠ Ġreturn Ġhas Archive Item Subject ( archive ItemId Ġ= Ġarchive ItemId , Ġowner Id Ġ= Ġcaller Id ) Ċ } Ċ /** Ċ Ġ* Ġfor Ġcaller Ġ( Ġowner Ġof ĠArchive Ġ). Ċ Ġ* Ġfind Ġarguments Ġautomatically Ġfor Ġ[ has Archive Item Subject ] Ċ Ġ*/ Ċ fun ĠFragment . has Owned Archive Item Subject ( archive ItemId : String ): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġhas Archive Item Subject ( archive ItemId Ġ= Ġarchive ItemId , Ġowner Id Ġ= Ġget OrCreate Data Exchange UniqueId ()) Ċ } ĊĊ Ċ /** Ċ Ġ* Ġ@ return Ġ[ net . ow lf amily . android . data exchange . Archive . item StateChanged Subject ] Ġof Ġarchive Ċ Ġ* Ġ@ param Ġowner Id Ġowner Ġid Ġof ĠItem Ċ Ġ* Ġ@ param Ġarchive ItemId Ġkey Ġof ĠItem Ċ Ġ*/ Ċ fun ĠFragment . get Archive Item StateChange Subject ( owner Id : String ): ĠPublish Subject < Pair < String , ĠArchive . Item <* >>> Ġ{ ĊĠĠĠ Ġval Ġvm Ġ= ĠgetData Exchange ViewModel () ĊĊĠĠĠ Ġval Ġdata Pack Ġ= Ġvm . get OrCreate Archive ( owner Id ). value !! ĊĠĠĠ Ġreturn Ġdata Pack . item StateChanged Subject Ċ } Ċ /** Ċ Ġ* Ġfor Ġcal lee . Ċ Ġ* Ġfind Ġarguments Ġautomatically Ġfor Ġ[ get Archive Item StateChange Subject ] Ċ Ġ*/ Ċ fun ĠFragment . get Caller Archive Item StateChange Subject (): ĠPublish Subject < Pair < String , ĠArchive . Item <* >>> ? Ġ{ ĊĠĠĠ ĠgetData Exchange Caller Id ()?. let Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget Archive Item StateChange Subject ( it ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġnull Ċ } Ċ /** Ċ Ġ* Ġfor Ġcaller Ġ( Ġowner Ġof ĠArchive Ġ). Ċ Ġ* Ġfind Ġarguments Ġautomatically Ġfor Ġ[ get Archive Item StateChange Subject ] Ċ Ġ*/ Ċ fun ĠFragment . get Owned Archive Item StateChange Subject (): ĠPublish Subject < Pair < String , ĠArchive . Item <* >>> Ġ{ ĊĠĠĠ Ġreturn Ġget Archive Item StateChange Subject ( get OrCreate Data Exchange UniqueId ()) Ċ } Ċ Ċ /** Ċ Ġ* Ġ@ return Ġ' true ' Ġif ĠItem Ġstate Ġis Ġ!= Ġ[ Archive . Item . State . Unknown ] Ċ Ġ* Ġ@ param Ġowner Id Ġowner Ġid Ġof ĠItem Ċ Ġ* Ġ@ param Ġarchive ItemId Ġkey Ġof ĠItem Ċ Ġ*/ Ċ fun ĠFragment . has Archive Item State ( owner Id : String , Ġarchive ItemId : String ): Boolean { ĊĠĠĠ Ġval Ġdata Archive Ġ= Ġget Archive Subject ( owner Id ). value Ġ?: Ġreturn Ġfalse ĊĠĠĠ Ġif ( data Archive . is Item Null Or Unknown State ( archive ItemId )){ ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġtrue Ċ } Ċ /** Ċ Ġ* Ġfor Ġcal lee . Ċ Ġ* Ġfind Ġarguments Ġautomatically Ġfor Ġ[ has Archive Item State ] Ċ Ġ*/ Ċ fun ĠFragment . has Caller Archive Item State (): Boolean { ĊĠĠĠ Ġval Ġarchive ItemId Ġ= ĠgetData Exchange Archive ItemId () Ġ?: Ġreturn Ġfalse ĊĠĠĠ Ġval Ġcaller Id Ġ= ĠgetData Exchange Caller Id () Ġ?: Ġreturn Ġfalse ĊĠĠĠ Ġreturn Ġhas Archive Item State ( owner Id Ġ= Ġcaller Id , Ġarchive ItemId Ġ= Ġarchive ItemId ) Ċ } Ċ /** Ċ Ġ* Ġfor Ġcaller Ġ( Ġowner Ġof ĠArchive Ġ). Ċ Ġ* Ġfind Ġarguments Ġautomatically Ġfor Ġ[ has Archive Item State ] Ċ Ġ*/ Ċ fun ĠFragment . has Owned Archive Item State ( archive ItemId : String ): Boolean { ĊĠĠĠ Ġreturn Ġhas Archive Item State ( owner Id Ġ= Ġget OrCreate Data Exchange UniqueId (), Ġarchive ItemId Ġ= Ġarchive ItemId ) Ċ } ĊĊĊ Ċ /** Ċ Ġ* Ġset Ġstate Ġof Ġitem Ġto Ġ[ item State ], Ġdata Ġto Ġ[ data ] Ċ Ġ* Ġ@ param Ġowner Id Ġowner Ġid Ġof ĠItem Ċ Ġ* Ġ@ param Ġarchive ItemId Ġkey Ġof ĠItem Ċ Ġ*/ Ċ fun Ġ< T > ĠFragment . set Archive Item ( owner Id : String , Ġarchive ItemId : String , Ġitem State : ĠArchive . Item . State , Ġdata : T ? Ġ= Ġnull ): Boolean { ĊĠĠĠ Ġval Ġdata Bus Vm Ġ= ĠgetData Exchange ViewModel () ĊĠĠĠ Ġdata Bus Vm . save Item ( owner Id Ġ= Ġowner Id , Ġarchive ItemId Ġ= Ġarchive ItemId , Ġitem State Ġ= Ġitem State , Ġdata Ġ= Ġdata ) ĊĠĠĠ Ġreturn Ġtrue Ċ } Ċ /** Ċ Ġ* Ġfor Ġcal lee . Ċ Ġ* Ġset Ġstate Ġof Ġitem Ġto Ġ[ item State ], Ġdata Ġto Ġ[ data ] Ċ Ġ* Ġfind Ġarguments Ġautomatically Ġfor Ġ[ set Archive Item ] Ċ Ġ*/ Ċ fun Ġ< T > ĠFragment . set Caller Archive Item ( item State : ĠArchive . Item . State , Ġdata : T ? Ġ= Ġnull ): Boolean { ĊĠĠĠ Ġval Ġarchive ItemId Ġ= ĠgetData Exchange Archive ItemId () Ġ?: Ġreturn Ġfalse ĊĠĠĠ Ġval Ġcaller Id Ġ= ĠgetData Exchange Caller Id () Ġ?: Ġreturn Ġfalse ĊĠĠĠ Ġreturn Ġset Archive Item ( owner Id Ġ= Ġcaller Id , Ġarchive ItemId Ġ= Ġarchive ItemId , Ġitem State Ġ= Ġitem State , Ġdata Ġ= Ġdata ) Ċ } Ċ /** Ċ Ġ* Ġfor Ġcaller Ġ( Ġowner Ġof Ġ[ Archive ] Ġ). Ċ Ġ* Ġset Ġstate Ġof Ġitem Ġto Ġ[ item State ] Ċ Ġ* Ġfind Ġarguments Ġautomatically Ġfor Ġ[ set Archive Item State With Null Data ] Ċ Ġ*/ Ċ fun Ġ< T > ĠFragment . set Owned Archive Item ( archive ItemId : String , Ġitem State : ĠArchive . Item . State , Ġdata : T ? Ġ= Ġnull ): Boolean { ĊĠĠĠ Ġreturn Ġset Archive Item ( owner Id Ġ= Ġget OrCreate Data Exchange UniqueId (), Ġarchive ItemId Ġ= Ġarchive ItemId , Ġitem State Ġ= Ġitem State , Ġdata Ġ= Ġdata ) Ċ } ĊĊ Ċ /** Ċ Ġ* Ġset Ġstate Ġof Ġitem Ġto Ġ[ item State ] Ċ Ġ* Ġ@ param Ġowner Id Ġowner Ġid Ġof ĠItem Ċ Ġ* Ġ@ param Ġarchive ItemId Ġkey Ġof ĠItem Ċ Ġ*/ Ċ fun ĠFragment . set Archive Item State With Null Data ( owner Id : String , Ġarchive ItemId : String , Ġitem State : ĠArchive . Item . State ): Boolean { ĊĠĠĠ Ġval Ġdata Bus Vm Ġ= ĠgetData Exchange ViewModel () ĊĠĠĠ Ġdata Bus Vm . save Item ( owner Id Ġ= Ġowner Id , Ġarchive ItemId Ġ= Ġarchive ItemId , Ġitem State Ġ= Ġitem State , Ġdata Ġ= Ġnull ) ĊĠĠĠ Ġreturn Ġtrue Ċ } Ċ /** Ċ Ġ* Ġfor Ġcal lee . Ċ Ġ* Ġset Ġstate Ġof Ġitem Ġto Ġ[ item State ] Ċ Ġ* Ġfind Ġarguments Ġautomatically Ġfor Ġ[ set Archive Item State With Null Data ] Ċ Ġ*/ Ċ fun ĠFragment . set Caller Archive Item State With Null Data ( item State : ĠArchive . Item . State ): Boolean { ĊĠĠĠ Ġval Ġarchive ItemId Ġ= ĠgetData Exchange Archive ItemId () Ġ?: Ġreturn Ġfalse ĊĠĠĠ Ġval Ġcaller Id Ġ= ĠgetData Exchange Caller Id () Ġ?: Ġreturn Ġfalse ĊĠĠĠ Ġreturn Ġset Archive Item State With Null Data ( owner Id Ġ= Ġcaller Id , Ġarchive ItemId Ġ= Ġarchive ItemId , Ġitem State Ġ= Ġitem State ) Ċ } Ċ /** Ċ Ġ* Ġfor Ġcaller Ġ( Ġowner Ġof Ġ[ Archive ] Ġ). Ċ Ġ* Ġset Ġstate Ġof Ġitem Ġto Ġ[ item State ] Ċ Ġ* Ġfind Ġarguments Ġautomatically Ġfor Ġ[ set Archive Item State With Null Data ] Ċ Ġ*/ Ċ fun ĠFragment . set Owned Archive Item State With Null Data ( archive ItemId : String , Ġitem State : ĠArchive . Item . State ): Boolean { ĊĠĠĠ Ġreturn Ġset Archive Item State With Null Data ( get OrCreate Data Exchange UniqueId (), Ġarchive ItemId , Ġitem State ) Ċ } ĊĊ Ċ /** Ċ Ġ* Ġset Ġstate Ġof Ġitem Ġto Ġ[ Archive . Item . State . Unknown ] Ċ Ġ* Ġ@ param Ġowner Id Ġowner Ġid Ġof ĠItem Ċ Ġ* Ġ@ param Ġarchive ItemId Ġkey Ġof ĠItem Ċ Ġ*/ Ċ fun ĠFragment . reset Archive Item State ( owner Id : String , Ġarchive ItemId : String ): Boolean { ĊĠĠĠ Ġreturn Ġset Archive Item State With Null Data ( owner Id = owner Id , Ġarchive ItemId Ġ= Ġarchive ItemId , Ġitem State Ġ= ĠArchive . Item . State . Unknown ) Ċ } Ċ /** Ċ Ġ* Ġfor Ġcal lee . Ċ Ġ* Ġset Ġstate Ġof Ġitem Ġto Ġ[ Archive . Item . State . Unknown ] Ċ Ġ* Ġfind Ġarguments Ġautomatically Ġfor Ġ[ reset Archive Item State ] Ċ Ġ*/ Ċ fun ĠFragment . reset Caller Archive Item State (): Boolean { ĊĠĠĠ Ġval Ġarchive ItemId Ġ= ĠgetData Exchange Archive ItemId () Ġ?: Ġreturn Ġfalse ĊĠĠĠ Ġval Ġcaller Id Ġ= ĠgetData Exchange Caller Id () Ġ?: Ġreturn Ġfalse ĊĠĠĠ Ġreturn Ġreset Archive Item State ( owner Id Ġ= Ġcaller Id , Ġarchive ItemId Ġ= Ġarchive ItemId ) Ċ } Ċ /** Ċ Ġ* Ġfor Ġcaller Ġ( Ġowner Ġof Ġ[ Archive ] Ġ). Ċ Ġ* Ġset Ġstate Ġof Ġitem Ġto Ġ[ Archive . Item . State . Unknown ] Ċ Ġ* Ġfind Ġarguments Ġautomatically Ġfor Ġ[ reset Archive Item State ] Ċ Ġ*/ Ċ fun ĠFragment . reset Owned Archive Item State ( archive ItemId : String ): Boolean { ĊĠĠĠ Ġreturn Ġreset Archive Item State ( owner Id Ġ= Ġget OrCreate Data Exchange UniqueId (), Ġarchive ItemId Ġ= Ġarchive ItemId ) Ċ }