package Ġcom . example . github search . ui . home Ċ Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . Transform ations Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġcom . example . github search . model . Custom Error Ċ import Ġcom . example . github search . repository . Remote UserRepository Ċ Ċ class ĠHome ViewModel Ġ: ĠViewModel () Ġ{ ĊĊĠĠĠ Ġ// Ġremote Ġdata ĊĠĠĠ Ġprivate Ġval Ġremote UserRepository Ġ= ĠRemote UserRepository . instance ĊĠĠĠ Ġprivate Ġval Ġusername Ġ= ĠMutable LiveData < String >() ĊĊĊĠĠĠ Ġ// Ġfound Ġsearch ĊĠĠĠ Ġval Ġfound Ġ= ĠTransform ations . switch Map ( username ) Ġ{ ĊĠĠĠĠĠĠĠ Ġremote UserRepository . get Found ( it ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġerror ĊĠĠĠ Ġval Ġerror : ĠLive Data < Custom Error > Ġ= Ġremote UserRepository . found Error ĊĊĠĠĠ Ġ// Ġsearch ĊĠĠĠ Ġfun Ġsearch ( username : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . username . value Ġ= Ġusername ĊĠĠĠ Ġ} Ċ } Ċ