package Ġspace . n arr ate . way lan . android . ui . search Ċ Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mediator LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġspace . n arr ate . way lan . core . data . firestore . Period Ċ import Ġspace . n arr ate . way lan . core . repo . UserRepository Ċ import Ġspace . n arr ate . way lan . core . ui . Destination Ċ import Ġspace . n arr ate . way lan . core . ui . Navigator Ċ import Ġspace . n arr ate . way lan . core . util . switch Map Transform Ċ import Ġspace . n arr ate . way lan . core . util . to LiveData Ċ Ċ class ĠContext ual ViewModel ( ĊĠĠĠ Ġprivate Ġval Ġuser Repository : ĠUser Repository , ĊĠĠĠ Ġprivate Ġval Ġnavigator : ĠNavigator Ċ ) Ġ: ĠViewModel () Ġ{ ĊĊĠĠĠ Ġval Ġcontext ual Filter Model : ĠLive Data < Context ual Filter Model > Ġ= Ġnavigator . current Destination ĊĠĠĠĠĠĠĠ Ġ. switch Map Transform Ġ{ Ġdest Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠMed iator LiveData < Context ual Filter Model >() ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . add Source ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( dest ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDestination . TRE ND ING Ġ-> Ġuser Repository . trend ing List Filter Live ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDestination . REC ENT Ġ-> Ġuser Repository . recent s List Filter Live ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDestination . FA V OR ITE Ġ-> Ġuser Repository . favorites List Filter Live ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġempty List < Period >(). to LiveData ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ Ġfilter Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . value Ġ= ĠContext ual Filter Model ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdest , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfilter , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdest Ġ== ĠDestination . TRE ND ING ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult ĊĠĠĠĠĠĠĠ Ġ} Ċ }