package Ġpl . jer gro . shop ing list . view models Ċ Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġio . realm . Realm Ċ import Ġpl . jer gro . shop ing list . models . Product Ċ import Ġpl . jer gro . shop ing list . models . Shopping List Ċ Ċ class ĠShop ping List Edit ViewModel Ġ: ĠViewModel () Ġ{ ĊĠĠĠ Ġval Ġproducts List Ġ= ĠMutable LiveData < List < Product >>() ĊĠĠĠ Ġprivate Ġval Ġrealm Ġby Ġlazy Ġ{ ĠRealm . getDefaultInstance () Ġ} ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġselected Shopping List : ĠShop ping List ĊĊĠĠĠ Ġfun Ġload Product sBy Shopping List Name ( shopping List Name : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġselected Shopping List Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrealm . where ( Shopping List :: class . java ). equalTo (" name ", Ġshopping List Name ). findFirst () !! ĊĊĠĠĠĠĠĠĠ Ġproducts List . post Value ( selected Shopping List . products ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġupdate Products Indexes By List Order ( products : ĠList < Product >) Ġ{ ĊĠĠĠĠĠĠĠ Ġrealm . execute Transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproducts . forEach Indexed Ġ{ Ġindex , Ġproduct Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproduct . index Ġ= Ġindex ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġrealm . copy To Realm OrUpdate ( products ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }