/*---------------------------------------------------------------- -------------- Ċ Ċ This Ġsource Ġis Ġpart Ġof Ġthe Ġassignment Ġof Ġthe ĠP ADC ĠFun 5 Ġclass . Ċ Ċ Modification ĠHistory ĊĊ Ċ Date ĉ ĉ Version ĉ ĉ Author ĉĉ ĉ Description Ċ ---------- ĉ ----------- ĉ --------------- Ġ---------------------------------------- Ċ 0 5 Ġ 0 8 Ġ 2 0 1 8 ĉ 1 . 0 ĉĉ ĉ N we ĠN i ĠA ung ĉ ĉ Initial ĠVersion . Ċ ---------------------------------------------------------------- -------------- */ Ċ package Ġcom . pad c my an mar . k un yi . data . models Ċ Ċ import Ġcom . pad c my an mar . k un yi . data . v os . Jobs VO Ċ import Ġcom . pad c my an mar . k un yi . events . Data Event Ċ import Ġcom . pad c my an mar . k un yi . network . Ret rofit Data Agent Impl Ċ import Ġorg . green robot . event bus . EventBus Ċ import Ġorg . green robot . event bus . Subscribe Ċ import Ġorg . green robot . event bus . Thread Mode Ċ Ċ class ĠJob App Model Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ/* ĠSingleton ĠDesign ĠPattern Ġ*/ ĊĠĠĠĠĠĠĠ Ġ// 2 . Ġstatic Ġclass Ġtype Ġattribute ĊĠĠĠĠĠĠĠ Ġprivate Ġvar ĠINSTANCE : ĠJob App Model ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġfun ĠgetInstance (): ĠJob App Model Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( INSTANCE Ġ== Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠINSTANCE Ġ= ĠJob App Model () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġi Ġ= ĠINSTANCE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġi !! ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// 1 . Ġprivate Ġconstructor ĊĠĠĠ Ġprivate Ġconstructor () Ġ{ ĊĠĠĠĠĠĠĠ Ġ/* Ġ 2 Ġsteps Ġfor Ġlisten Ġ Ġbroadcast Ġevent Ġfrom ĠEvent Bus ĊĠĠĠĠĠĠĠĠĠ 1 . Ġregister Ġevent ĊĠĠĠĠĠĠĠĠĠ 2 . Ġdefine ĠEvent Ġlisten Ġmethod ĊĠĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠĠĠĠĠ ĠEvent Bus . getDefault (). register ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġm Jobs Page : ĠInt Ġ= Ġ 1 ĊĠĠĠ Ġprivate Ġvar Ġm Jobs Data : ĠHashMap < Int , ĠJobs VO > Ġ= ĠHashMap () ĊĊĠĠĠ Ġprivate Ġval ĠD UMMY _ ACCESS _ TOKEN Ġ= Ġ" b 0 0 2 c 7 e 1 a 5 2 8 b 7 cb 4 6 0 9 3 3 fc 2 8 7 5 e 9 1 6 " ĊĊĠĠĠ Ġ// private Ġvar Ġm Data Agent : ĠJob Data Agent Ġ= ĠRet rofit Data Agent Impl . getInstance () ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* Ġload Job Info Ġ- ĠThis Ġmethod Ġis Ġcalled Ġload ĠJob ĠList Ġfrom Ġnetwork Ġcall ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param ĠaccessToken ĊĠĠĠĠ Ġ* Ġ@ return Ġvoid ĠĠĠĠĠĠĠĠ Ġlisten Ġresponse Ġasynchronously ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġload Job Info () Ġ{ ĊĠĠĠĠĠĠĠ ĠRet rofit Data Agent Impl . getInstance (). load Job Info ( D UMMY _ ACCESS _ TOKEN , Ġm Jobs Page ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġforce Load Job Info () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Jobs Page Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġm Jobs Data Ġ= ĠHashMap () ĊĠĠĠĠĠĠĠ ĠRet rofit Data Agent Impl . getInstance (). load Job Info ( D UMMY _ ACCESS _ TOKEN , Ġm Jobs Page ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// composite ĊĠĠĠ Ġ/* ĠDefine ĠEvent ĠListen ĠMethod Ġ*/ ĊĠĠĠ Ġ@ Subscribe ( thread Mode Ġ= ĠThread Mode . BACKGROUND ) ĊĠĠĠ Ġfun Ġon Jobs Loaded Event ( job Loaded Event : ĠData Event . Job Info Loaded Event ){ ĊĠĠĠĠĠĠĠ Ġfor ( job info Ġ: ĠJobs VO Ġin Ġjob Loaded Event . loaded Job Info ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Jobs Data [ job info . job Post Id ] Ġ= Ġjob info ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// m Jobs Page Ġ= Ġjob Info Loaded Event . loaded Page Index Ġ+ 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* Send ĠId Ġto Ġdetails Ġactivity ĊĠĠĠĠĠĠĠ ĠRetrieve Ġdata Ġfrom Ġdata ĠRepository ĊĠĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Job ById ( jobId : ĠInt ): ĠJobs VO ? { ĊĠĠĠĠĠĠĠ Ġreturn Ġm Jobs Data [ jobId ] ĊĠĠĠ Ġ} Ċ }