package Ġcom . i ams he kh arg h . wik id h und oo . ui . search item Ċ Ċ import Ġandroidx . lifecycle . Saved State Handle Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġandroidx . lifecycle . viewModel Scope Ċ import Ġcom . i ams he kh arg h . wik id h und oo . network . response . Page Ċ import Ġcom . i ams he kh arg h . wik id h und oo . network . response . item Response . Response Search Item Ċ import Ġcom . i ams he kh arg h . wik id h und oo . repository . Wiki Repository Ċ import Ġdagger . h ilt . android . lifecycle . H ilt ViewModel Ċ import Ġkotlinx . coroutines . channels . Channel Ċ import Ġkotlinx . coroutines . flow . receive As Flow Ċ import Ġkotlinx . coroutines . launch Ċ import Ġjavax . inject . Inject Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġ<< -- Ġiam She k har GH Ġ--> > Ċ Ġ* Ġon Ġ 2 4 ĠJune Ġ 2 0 2 1 , ĠTh ursday Ċ Ġ* Ġat Ġ 1 2 : 4 3 ĠAM Ċ Ġ*/ Ċ @ H ilt ViewModel Ċ class ĠFragment Search Item ViewModel Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġstate : ĠSaved State Handle , ĊĠĠĠ Ġprivate Ġval Ġrepo : ĠWiki Repository Ċ ) Ġ: ĠViewModel () Ġ{ ĊĠĠĠ Ġval Ġpage Ġ= Ġstate . get < Page >(" page Item ") ĊĊĠĠĠ Ġprivate Ġval Ġevents Ġ= ĠChannel < Search Item Events >() ĊĠĠĠ Ġval Ġevents Flow Ġ= Ġevents . receive As Flow () ĊĊĠĠĠ Ġfun Ġget Complete Page Info () Ġ= ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠ Ġevents . send ( Search Item Events . Show ProgressBar ( true )) ĊĠĠĠĠĠĠĠ Ġval Ġres Ġ= Ġrepo . getPage Info ( page ?. page id . toString ()) ĊĠĠĠĠĠĠĠ Ġif Ġ( res . data Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevents . send ( Search Item Events . Send Page Info ( res . data )) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevents . send ( Search Item Events . Show Snackbar ( res . message Ġ?: Ġ" Could ĠNot Ġfetch ĠInfo ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġopen WebView () Ġ= ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( page Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevents . send ( Search Item Events . Open WebView ( page . page id . toString ())) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevents . send ( Search Item Events . Show Snackbar (" URL Ġlink Ġis Ġmissing . ĠSorry .")) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ sealed Ġclass ĠSearch Item Events Ġ{ ĊĠĠĠ Ġdata Ġclass ĠShow Snackbar ( val Ġtext : ĠString ) Ġ: ĠSearch Item Events () ĊĠĠĠ Ġdata Ġclass ĠSend Page Info ( val Ġpage : ĠResponse Search Item ) Ġ: ĠSearch Item Events () ĊĠĠĠ Ġdata Ġclass ĠOpen WebView ( val Ġurl : ĠString ) Ġ: ĠSearch Item Events () ĊĠĠĠ Ġdata Ġclass ĠShow ProgressBar ( val Ġvalue : ĠBoolean ) Ġ: ĠSearch Item Events () Ċ }