package Ġcom . s ild ian . apps . to ge trail . h iker . model . view Models Ċ Ċ import Ġcom . s ild ian . apps . to ge trail . common . base ViewModels . Single Data ViewModel Ċ import Ġcom . s ild ian . apps . to ge trail . common . utils . cloud Helpers . Auth Repository Ċ import Ġcom . s ild ian . apps . to ge trail . common . utils . cloud Helpers . Storage Repository Ċ import Ġcom . s ild ian . apps . to ge trail . h iker . model . core . H iker Ċ import Ġcom . s ild ian . apps . to ge trail . h iker . model . data Repository . H iker Repository Ċ import Ġcom . s ild ian . apps . to ge trail . h iker . model . data Requests .* Ċ import Ġdagger . h ilt . android . lifecycle . H ilt ViewModel Ċ import Ġjavax . inject . Inject Ċ Ċ /**************************************************************** ******************************** * Ċ Ġ* ĠThis ĠviewModel Ġob serves Ġa Ġsingle ĠH iker Ġrelated Ġdata Ċ Ġ***************************************************************** ************************ *******/ Ċ Ċ @ H ilt ViewModel Ċ class ĠH iker ViewModel Ġ@ Inject Ġconstructor () Ġ: ĠSingle Data ViewModel < H iker >( H iker :: class . java ) Ġ{ ĊĊĠĠĠ Ġ/ ******************************** *** Repositories **************************************** *****/ ĊĊĠĠĠ Ġ@ Inject Ġlateinit Ġvar Ġauth Repository : ĠAuth Repository ĊĠĠĠ Ġ@ Inject Ġlateinit Ġvar Ġstorage Repository : ĠStorage Repository ĊĠĠĠ Ġ@ Inject Ġlateinit Ġvar Ġh iker Repository : ĠH iker Repository ĊĊĠĠĠ Ġ/ ******************************** *** Extra Ġdata **************************************** ****/ ĊĊĠĠĠ Ġprivate Ġvar Ġimage Path To Upload : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġimage Path ToDelete : ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġ/ ******************************** Extra Ġdata Ġmonitoring ******************************** ****/ ĊĊĠĠĠ Ġfun Ġupdate Image Path To Upload ( image Path : String ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . mutable Data . value ?. photoUrl ?. let Ġ{ Ġphoto Url Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( photoUrl . startsWith (" https :// ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . image Path ToDelete Ġ= Ġphoto Url ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġthis . image Path To Upload Ġ= Ġimage Path ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate Image Path ToDelete ( image Path : String ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . image Path To Upload Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġif Ġ( image Path . startsWith (" https :// ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . image Path ToDelete Ġ= Ġimage Path ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclear Image Paths () Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . image Path To Upload Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġthis . image Path ToDelete Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/ ******************************** *** Data Ġmonitoring ******************************** *******/ ĊĊĠĠĠ Ġfun Ġload H iker Real Time ( h iker Id : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġload Data Real Time ( this . h iker Repository . get H iker Reference ( h iker Id )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġload H iker ( h iker Id : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġload Data ( H iker Load Data Request ( h iker Id , Ġthis . h iker Repository )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsave H iker () Ġ{ ĊĠĠĠĠĠĠĠ Ġsave Data ( H iker SaveData Request ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . mutable Data . value , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . image Path ToDelete , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . image Path To Upload , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . auth Repository , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . storage Repository , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . h iker Repository ĊĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlogin User () Ġ{ ĊĠĠĠĠĠĠĠ Ġload Data ( H iker Login Data Request ( this . auth Repository , Ġthis . h iker Repository )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlogout User () Ġ{ ĊĠĠĠĠĠĠĠ Ġclear Query Registration () ĊĠĠĠĠĠĠĠ Ġthis . mutable Data . post Value ( null ) ĊĠĠĠĠĠĠĠ Ġrun Specific Request ( H iker Logout Data Request ( this . auth Repository )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġreset User Password () Ġ{ ĊĠĠĠĠĠĠĠ Ġrun Specific Request ( H iker Reset Password Data Request ( this . auth Repository )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdelete User Account () Ġ{ ĊĠĠĠĠĠĠĠ Ġclear Query Registration () ĊĠĠĠĠĠĠĠ Ġrun Specific Request ( H iker Delete Account Data Request ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . auth Repository , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . storage Repository , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . h iker Repository ĊĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠsendMessage ( text : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrun Specific Request ( H iker SendMessage Data Request ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . mutable Data . value , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . h iker Repository ĊĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġmark Last Message As Read () Ġ{ ĊĠĠĠĠĠĠĠ Ġrun Specific Request ( H iker Read Message Data Request ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . mutable Data . value , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . h iker Repository ĊĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠ Ġ} Ċ }