package Ġcom . example . ph otor Ċ Ċ import Ġandroid . app . Application Ċ import Ġandroidx . lifecycle . Android ViewModel Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . Transform ations Ċ import Ġcom . example . ph otor . data . F lickr Photo Item Ċ import Ġcom . example . ph otor . data . Photo Repository Ċ import Ġcom . example . ph otor . data . Ph otor Preferences Ċ import Ġtim ber . log . Tim ber Ċ Ċ class ĠPhoto ViewModel ( private Ġval Ġapp : ĠApplication ) Ġ: ĠAndroid ViewModel ( app ) Ġ{ ĊĊĠĠĠ Ġval Ġphoto List : ĠLive Data < List < F lickr Photo Item >> ĊĠĠĠ Ġprivate Ġval Ġquery Text Ġ= ĠMutable LiveData < String >() ĊĊĠĠĠ Ġval Ġsearch Query Text ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġquery Text . value Ġ?: Ġ"" ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġquery Text . value Ġ= ĠPh otor Preferences . get Stored Query ( app ) ĊĠĠĠĠĠĠĠ Ġphoto List Ġ= ĠTransform ations . switch Map ( query Text ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . d (" query Ġtext Ġ= Ġ$ it ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . isBlank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPhoto Repository . get (). fetch Photos () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPhoto Repository . get (). search Photos ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsearch Photos ( query : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠPh otor Preferences . set Stored Query ( app , Ġquery ) ĊĠĠĠĠĠĠĠ Ġquery Text . value Ġ= Ġquery ĊĠĠĠ Ġ} Ċ } Ċ