/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 7 ĠD uck Duck Go Ċ Ġ* Ċ Ġ* Ġ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 . duck duck go . app . tabs ĊĊ Ċ import Ġandroid . arch . lifecycle . Mutable LiveData Ċ import Ġcom . duck duck go . app . global . model . Site Ċ import Ġjavax . inject . Inject Ċ import Ġjavax . inject . Singleton ĊĊ Ċ @ Singleton Ċ class ĠTab Data Repository Ġ@ Inject Ġconstructor () Ġ{ ĊĊĠĠĠ Ġ@ Suppress (" Join Declaration And Assignment ") ĊĠĠĠ Ġval Ġtabs : ĠMutable LiveData < Tabs > Ġ= ĠMutable LiveData () ĊĊĠĠĠ Ġval Ġcurrent Tab Id : ĠString ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġtabs . value !!. current Id ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġtabs . value Ġ= ĠTabs () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġhas Tabs (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtabs . value !!. list . isNotEmpty () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd ( tab Id : ĠString , Ġdata : ĠMutable LiveData < Site >) Ġ{ ĊĠĠĠĠĠĠĠ Ġtabs . value !!. list [ tab Id ] Ġ= Ġdata ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġexisting Ġrecord Ġif Ġit Ġexists , Ġotherwise Ġcreates Ġand Ġreturns Ġa Ġnew Ġone ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġretrieve ( tab Id : ĠString ): ĠMutable LiveData < Site > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġtabs . value !!. list [ tab Id ] ĊĠĠĠĠĠĠĠ Ġif Ġ( data Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsite Ġ= ĠMutable LiveData < Site >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( tab Id , Ġsite ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġsite ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġdata ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġselect ( tab Id : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtabs . value !!. current Id Ġ= Ġtab Id ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġdata Ġclass ĠTabs ( ĊĠĠĠĠĠĠĠ Ġvar Ġcurrent Id : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġval Ġlist : ĠLinkedHashMap < String , ĠMutable LiveData < Site >> Ġ= ĠLinkedHashMap () ĊĊĠĠĠ Ġ) Ċ } Ċ