package Ġcom . tel en . easy line up . dashboard Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Transform ations Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġcom . tel en . easy line up . domain . Constants Ċ import Ġcom . tel en . easy line up . domain . application . Application Port Ċ import Ġcom . tel en . easy line up . domain . model . Dashboard Tile Ċ import Ġcom . tel en . easy line up . domain . model . Sh irt Number Entry Ċ import Ġio . reactivex . Comp letable Ċ import Ġio . reactivex . Single Ċ import Ġio . reactivex . dis pos ables . Composite Disposable Ċ import Ġio . reactivex . subjects . Publish Subject Ċ import Ġorg . k oin . core . K oin Component Ċ import Ġorg . k oin . core . inject Ċ import Ġtim ber . log . Tim ber Ċ Ċ sealed Ġclass ĠEvent Case Ċ data Ġclass ĠGet Team Emails Success ( val Ġemails : ĠList < String >): ĠEvent Case () Ċ data Ġclass ĠGet Team Ph ones Success ( val Ġph ones : ĠList < String >): ĠEvent Case () Ċ object ĠTeam Emails Empty : ĠEvent Case () Ċ object ĠTeam Ph ones Empty : ĠEvent Case () Ċ Ċ const Ġval ĠINDEX _ SEND _ MESSAGES Ġ= Ġ 0 Ċ const Ġval ĠINDEX _ SEND _ EMAIL S Ġ= Ġ 1 Ċ const Ġval ĠINDEX _ SEND _ OTHER Ġ= Ġ 2 Ċ Ċ class ĠDashboard ViewModel : ĠViewModel (), ĠK oin Component Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġdomain : ĠApplication Port Ġby Ġinject () ĊĊĠĠĠ Ġval Ġevent Handler Ġ= ĠPublish Subject . create < Event Case >() ĊĠĠĠ Ġval Ġdis pos ables Ġ= ĠComposite Disposable () ĊĊĠĠĠ Ġfun Ġregister Tiles LiveData (): ĠLive Data < List < Dashboard Tile >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠTransform ations . switch Map ( domain . observe Teams ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdomain . get Tiles () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsave Tiles ( tiles : ĠList < Dashboard Tile >): ĠComp letable Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdomain . update Tiles ( tiles ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow New Report Issue Button Feature ( context : ĠContext ): ĠSingle < Boolean > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġprefs Ġ= Ġcontext . get SharedPreferences ( Constants . APPLICATION _ PREFER ENCES , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġshow Ġ= Ġprefs . getBoolean ( Constants . PRE F _ FEATURE _ SHOW _ REPORT _ ISSUE _ BUTTON , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġif ( show ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprefs . edit (). put Boolean ( Constants . PRE F _ FEATURE _ SHOW _ REPORT _ ISSUE _ BUTTON , Ġfalse ). apply () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠSingle . just ( show ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Sh irt Number History ( number : ĠInt ): ĠSingle < List < Sh irt Number Entry >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdomain . get Sh irt Number History ( number ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Emails () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdis posable Ġ= Ġdomain . get Team Emails () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( it . isNotEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent Handler . onNext ( Get Team Emails Success ( it )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent Handler . onNext ( Team Emails Empty ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . e ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġthis . dis pos ables . add ( dis posable ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Ph ones () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdis posable Ġ= Ġdomain . get Team Ph ones () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( it . isNotEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent Handler . onNext ( Get Team Ph ones Success ( it )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent Handler . onNext ( Team Ph ones Empty ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . e ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġthis . dis pos ables . add ( dis posable ) ĊĠĠĠ Ġ} Ċ }