/* Ċ Ġ* ĠCreated Ġby ĠSh ud ipt o ĠTr af der Ċ Ġ* Ġon Ġ 6 / 1 2 / 1 8 Ġ 8 : 5 2 ĠPM Ċ Ġ*/ Ċ Ċ package Ġcom . i ams dt . android sketch pad . ui . page Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . support . v 4 . content . Context Compat Ċ import Ġandroid . support . v 7 . recyclerview . extensions . Async List Differ Ċ import Ġandroid . support . v 7 . util . Diff Util Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . TextView Ċ import Ġcom . i ams dt . android sketch pad . R Ċ import Ġcom . i ams dt . android sketch pad . data . database . table . Page Table Ċ import Ġcom . i ams dt . android sketch pad . utils . Date Utils Ċ import Ġkotlinx . android . synt hetic . main . page _ list _ item . view .* Ċ import Ġjava . util .* Ċ Ċ class ĠPage Adapter ( val Ġcontext : ĠContext ) Ġ: ĠRecyclerView . Adapter < Page Adapter . Page VH >() Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġlist : ĠList < Page Table > Ġ= Ġempty List () ĊĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠPage VH Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate ( R . layout . page _ list _ item , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠPage VH ( view ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . size ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠPage VH , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmodel : Page Table Ġ?= Ġlist [ position ] ĊĠĠĠĠĠĠĠ Ġif Ġ( model Ġ!= Ġnull ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . bind ( model ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . item View . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( context , ĠPage Details Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( Intent . EXTRA _ HTML _ TEXT , Ġmodel . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . startActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsubmit List ( new List : ĠList < Page Table > ){ ĊĊĠĠĠĠĠĠĠ Ġlist Ġ= Ġnew List ĊĊĠĠĠĠĠĠĠ ĠAsync List Differ < Page Table >( this , Ġobject Ġ: ĠDiff Util . Item Callback < Page Table >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Items The Same ( old Item : ĠPage Table ?, Ġnew Item : ĠPage Table ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġold Item ?. id Ġ== Ġnew Item ?. id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( old Item : ĠPage Table ?, Ġnew Item : ĠPage Table ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġold Item Ġ== Ġnew Item ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ}). submit List ( list ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠPage VH ( view : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( view ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtitle : ĠTextView Ġ= Ġview . title Tv ĊĠĠĠĠĠĠĠ Ġval Ġpublished : ĠTextView Ġ= Ġview . published Tv ĊĠĠĠĠĠĠĠ Ġval Ġupdate : ĠTextView Ġ= Ġview . update Tv ĊĊĠĠĠĠĠĠĠ Ġfun Ġbind ( page : ĠPage Table ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle . text Ġ= Ġpage . title ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Color () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpub Ġ= Ġ" Live Ġsince Ġ${ Date Utils . get Readable Date ( page . published )}" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġup Ġ= Ġ" Last Ġupdate Ġ: Ġ${ Date Utils . get Readable Date ( page . updated )}" ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublished . text Ġ= Ġpub ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate . text Ġ= Ġup ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġget Color (){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcolor Ġ= ĠContext Compat . getColor ( context , getRandom Color ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle . setTextColor ( color ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun ĠgetRandom Color (): Int { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġcomplete : Ġ 6 / 1 2 / 2 0 1 8 Ġadd Ġcolor Ġarray ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġarray Ġ= ĠlistOf ( R . color . cyan _ 5 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . color . indigo _ 5 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . color . orange _ 5 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . color . purple _ 5 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . color . deep _ orange _ 5 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . color . green _ 5 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . color . pink _ 5 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . color . light _ blue _ 5 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . color . light _ green _ 5 0 0 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrandom = ĠRandom () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= random . nextInt ( 8 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġarray [ value ] ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }