package Ġcom . example . android . l ifec yc les . ar ap _ os aka . zip LiveData Ċ Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mediator LiveData Ċ Ċ // Ġhttps :// medium . com /@ ga ur av gy al / combine - results - from - multiple - async - requests - 9 0 b 6 b 4 5 9 7 8 f 7 Ċ fun Ġ< A , ĠB > Ġzip LiveData ( a : ĠLive Data < A >, Ġb : ĠLive Data < B >): ĠLive Data < Pair < A , ĠB >> Ġ{ ĊĠĠĠ Ġreturn ĠMed iator LiveData < Pair < A , ĠB >> (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġlast A : ĠA ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġlast B : ĠB ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġfun Ġupdate () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlocal Last A Ġ= Ġlast A ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlocal Last B Ġ= Ġlast B ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( local Last A Ġ!= Ġnull Ġ&& Ġlocal Last B Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . value Ġ= ĠPair ( local Last A , Ġlocal Last B ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġadd Source ( a ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlast A Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġadd Source ( b ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlast B Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ