package Ġcom . android . am it . inst acl one . view . profile Ċ Ċ import Ġandroid . net . Uri Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġcom . android . am it . inst acl one . data . Notification Ċ import Ġcom . android . am it . inst acl one . data . Post Ċ import Ġcom . android . am it . inst acl one . data . Resource Ċ import Ġcom . android . am it . inst acl one . data . UserDetails Model Ċ import Ġcom . android . am it . inst acl one . repo . Repository Ċ import Ġcom . android . am it . inst acl one . util . Status Ċ import Ġcom . android . am it . inst acl one . util . StringUtils . capitalize Words Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠFile Ġcreated Ġat Ġ 2 7 / 0 5 / 2 0 2 0 Ċ Ġ* ĠAuthor Ġ: ĠA mit ĠK umar ĠS ahoo Ċ Ġ* Ġemail : Ġa mit . s ahoo @ mind fire solutions . com Ċ Ġ* ĠAbout Ġfile Ġ: ĠProfile Ġfragment Ġview Ġmodel Ċ Ġ*/ Ċ class ĠProfile Fragment ViewModel Ġ: ĠViewModel () Ġ{ ĊĠĠĠ Ġvar Ġm Follower : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġm Following : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġm Post : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġm FullName Ġ= Ġ" N / A " ĊĠĠĠ Ġvar Ġm Bio Ġ= Ġ" N / A " ĊĠĠĠ Ġvar Ġm Profile Image : ĠUri Ġ= ĠUri . EMPTY ĊĠĠĠ Ġvar Ġis Edit Profile : ĠBoolean Ġ= Ġfalse ĊĠĠĠ Ġvar Ġm Edit ButtonText Ġ= ĠStatus . Follow ĊĊĠĠĠ Ġvar Ġrepo : ĠRepository Ġ= ĠRepository () ĊĠĠĠ Ġvar Ġid Ġ= Ġrepo . getCurrent UserId () ĊĊĠĠĠ Ġfun Ġget UserData ( userId : ĠString ?): ĠMutable LiveData < Resource < UserDetails Model >> Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( userId Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= ĠuserId ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Edit Profile Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġid . let Ġ{ Ġrepo . getUser Details ( it ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Experimental Std lib Api ĊĠĠĠ Ġfun Ġset UserDetails ( user Details Model : ĠUser Details Model ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( user Details Model Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Follower Ġ= Ġuser Details Model . follow er . size ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Following Ġ= Ġuser Details Model . following . size ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm FullName Ġ= Ġuser Details Model . fullName . capitalize Words () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Bio Ġ= Ġuser Details Model . bio ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Profile Image Ġ= ĠUri . parse ( user Details Model . image ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! is Edit Profile ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsetStatus ( user Details Model ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġset Ġfollow Ġbutton Ġfunctionality ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun ĠsetStatus ( item : ĠUser Details Model ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Edit ButtonText Ġ= Ġif Ġ( item . follow er . containsKey ( repo . getCurrent UserId ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStatus . Following ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStatus . Follow ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġfollow / un - follow ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset Follow Status ( userId : ĠString , Ġcurrent Status : ĠString ): ĠMutable LiveData < Resource < Unit >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġrepo . follow ( userId , Ġcurrent Status ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġget Ġposts Ġimages ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Posts Images (): ĠMutable LiveData < Resource < ArrayList < Post >>> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġrepo . getUser Posts ( id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġget Ġsaved Ġposts Ġimages ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Saved Posts Images ( id List : ĠArrayList < String >): ĠMutable LiveData < Resource < ArrayList < Post >>> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġrepo . get Posts From Ids ( id List ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġget Ġsaved Ġlists ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Saved List (): ĠMutable LiveData < Resource < HashMap < String , ĠBoolean >>> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġrepo . get Saved List () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġset Ġposts Ġcount ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset Posts Count ( posts Count : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Post Ġ= Ġposts Count ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġadd Ġnew Ġnotification ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġadd Notification ( notification : ĠNotification , Ġter getUserId : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrepo . add Notification ( notification , Ġter getUserId ) ĊĠĠĠ Ġ} Ċ }