package Ġcom . art f . shopping list compose . util . ext Ċ Ċ import Ġandroidx . annotation . MainThread Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mediator LiveData Ċ Ċ @ MainThread Ċ fun Ġ< X , ĠY > Ġmap NonNull ( ĊĠĠĠ Ġsource : ĠLive Data < X >, ĊĠĠĠ Ġmap Function : Ġ( it : ĠX ) Ġ-> ĠY ? Ċ ): ĠLive Data < Y > Ġ{ ĊĠĠĠ Ġval Ġresult Ġ= ĠMed iator LiveData < Y >() ĊĠĠĠ Ġresult . add Source ( source ) Ġ{ Ġx Ġ-> ĊĠĠĠĠĠĠĠ Ġx ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap Function ( x )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . value Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġresult Ċ }