package Ġcom . h udson . wan android . ui . fragment . tree Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . fragment . app . view Models Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġcom . h udson . wan android . data . entity . Article Ċ import Ġcom . h udson . wan android . data . entity . Paging Retry Load Ċ import Ġcom . h udson . wan android . data . entity . Subject Ċ import Ġcom . h udson . wan android . di . Injectable Ċ import Ġcom . h udson . wan android . ui . fragment . base . Article Pager Fragment Ċ import Ġcom . h udson . wan android . view model . TreeItem Model Ċ import Ġjavax . inject . Inject Ċ Ċ private Ġconst Ġval ĠARG _ SUBJECT Ġ= Ġ" subject " Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠH udson Ġon Ġ 2 0 2 0 / 8 / 2 6 . Ċ Ġ*/ Ċ class ĠTree Article Fragment : ĠArticle Pager Fragment (), ĠInjectable { ĊĠĠĠ Ġlateinit Ġvar Ġsubject : ĠSubject ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġarguments ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsubject Ġ= Ġit . get Serializable ( ARG _ SUBJECT ) Ġas ĠSubject ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar ĠviewModel Factory : ĠViewModel Provider . Factory ĊĊĠĠĠ Ġprivate Ġval Ġtree Item Model : ĠTree Item Model Ġby Ġview Models Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel Factory ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġstar Or Reverse Article ( article : ĠArticle ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ= Ġtree Item Model . star Or Reverse Article ( require Activity (), Ġarticle ) ĊĊĠĠĠ Ġoverride Ġfun Ġget Paging Load State () Ġ= Ġtree Item Model . load State ĊĊĠĠĠ Ġoverride Ġfun Ġnotify Load StateChange ( retry Load : ĠP aging Retry Load ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtree Item Model . load State . value Ġ= Ġretry Load ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġload Data () Ġ= Ġtree Item Model . load Articles ( subject . id , Ġsubject . parent Chapter Id ) ĊĊĊĠĠĠ Ġcompanion Ġobject { ĊĊĠĠĠĠĠĠĠ Ġ// Ġkeep Ġfragment Ġconstructor Ġwithout Ġparam ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( subject : ĠSubject ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTree Article Fragment (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarguments Ġ= ĠBundle (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Serializable ( ARG _ SUBJECT , Ġsubject ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }