package Ġcom . ex ail . arch test . test . view . model Ċ Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . Transform ations Ċ import Ġandroidx . lifecycle . ViewModel Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġedu ard sd enis jon ok s Ġ Ġon Ġ 2 0 1 9 - 0 5 - 2 9 . Ċ Ġ*/ Ċ class ĠTest Ground ViewModel Ġ: ĠViewModel () Ġ{ ĊĊĠĠĠ Ġval Ġentries Ġ= ĠlistOf (" Apple ", Ġ" Dog ", Ġ" Cat ", Ġ" M ice ", Ġ" Orange ", Ġ" Ban ana ", Ġ" Ham ster ") ĊĠĠĠ Ġval Ġselected Item Ġ= ĠMutable LiveData < Int >() ĊĠĠĠ Ġval Ġuser Text Ġ= ĠMutable LiveData < String >() ĊĠĠĠ Ġval Ġselected Item Text Ġ: ĠLive Data < String > ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġselected Item Text Ġ= ĠTransform ations . map ( selected Item ) Ġ{ Ġindex Ġ-> Ġindex ?. let { entries [ index ]} Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġplus () Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen ( val Ġvalue Ġ= Ġselected Item . value ?. plus ( 1 ) Ġ?: Ġ 0 ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġin Ġ 0 Ġuntil Ġentries . size Ġ-> Ġselected Item . value Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġselected Item . value Ġ= Ġentries . size Ġ- 1 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġminus () Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen ( val Ġvalue Ġ= Ġselected Item . value ?. minus ( 1 ) Ġ?: Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġin Ġ 0 Ġuntil Ġentries . size Ġ-> Ġselected Item . value Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġselected Item . value Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate User Text ( value : ĠInt Ġ= Ġ 0 ){ ĊĠĠĠĠĠĠĠ Ġwhen ( value ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġin Ġ 0 Ġuntil Ġentries . size Ġ-> Ġuser Text . value Ġ= Ġentries [ value ] ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }