package Ġcom . y az an 9 8 . auto hub . starter Ċ Ċ import Ġcom . y az an 9 8 . data . database . map pers . Database Account Mapper Ċ import Ġcom . y az an 9 8 . data . database . models . Github Account Ċ import Ġcom . y az an 9 8 . data . database . repos . Database Following Repository Ċ import Ġcom . y az an 9 8 . data . models . Github User Ċ import Ġcom . y az an 9 8 . data . repos . Profile Repository Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . with Context Ċ import Ġtim ber . log . Tim ber Ċ Ċ class ĠGithub Starter ( private Ġval Ġusername : ĠString ): ĠGithub Starter Impl Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġprofile Repository : ĠProfile Repository Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠProfile Repository () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġstart Actions () Ġ{ ĊĠĠĠĠĠĠĠ Ġstart Save Follow ers () ĊĠĠĠĠĠĠĠ Ġstart Save Follow ings () ĊĠĠĠĠĠĠĠ Ġstart Save Profile Info () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġstart Save Follow ings () Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġwith Context ( Dispatch ers . Main ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġprofile Repository . get Following By Token (). subscribe ({ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . forEach Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" The ĠEntity ĠResponse Ġ: Ġ$ it ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDatabase Following Repository (). apply Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . sage Entities ( getLocal Account sBy Response ( it )) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . printStackTrace () Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . message ?. let Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . d (" The ĠResponse Ġ: ĠError Ġ: Ġ$ it ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ}) Ċ // ĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Local Account sBy Response ( list : ĠList < Github User >): ĠList < Github Account > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= ĠArrayList < Github Account >() ĊĠĠĠĠĠĠĠ ĠDatabase Account Mapper (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . add ( this . get ( it )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġprintln (" The ĠMapper ĠResult Ġ: Ġ${ response }") ĊĠĠĠĠĠĠĠ Ġreturn Ġresponse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġstart Save Follow ers () Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġwith Context ( Dispatch ers . Main ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġprofile Repository . get Follow ers By Token (). subscribe ({ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . forEach Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" The ĠEntity ĠResponse Ġ: Ġ$ it ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDatabase Following Repository (). apply Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . sage Entities ( getLocal Account sBy Response ( it )) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . printStackTrace () Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . message ?. let Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . d (" The ĠResponse Ġ: ĠError Ġ: Ġ$ it ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ}) Ċ // ĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġstart Save Profile Info () Ġ{ ĊĠĠĠĠĠĠĠ Ġwith Context ( Dispatch ers . Main ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ