package Ġorg . p anta . miss key nest . use case Ċ Ċ import Ġandroid . util . Log Ċ import Ġorg . p anta . miss key nest . interfaces . Error CallBack Listener Ċ import Ġorg . p anta . miss key nest . interfaces . ID Ċ import Ġorg . p anta . miss key nest . interfaces . I Item Repository Ċ import Ġorg . p anta . miss key nest . interfaces . IP aging Ċ Ċ class ĠP aging Controller < E : ĠID >( private Ġval Ġm Repository : ĠI Item Repository < E >, Ġprivate Ġval Ġerror CallBack Listener : ĠError CallBack Listener ): ĠIP aging < E >{ ĊĠĠĠ Ġprivate Ġvar Ġlatest Id : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġoldest Id : ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġvar Ġrequest Ol dest Flag : ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġget New Items ( call Back :( List < E > )-> Unit ){ ĊĠĠĠĠĠĠĠ Ġif ( latest Id Ġ== Ġnull ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit ( call Back ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġm Repository . getItems Use Since Id ( latest Id !! ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( it Ġ== Ġnull ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror CallBack Listener . call Back ( Exception (" NULL è¿Ķ ãģ£ãģ¦ ãģį ãģ¡ ãĤ ĥ ãģ£ãģŁ ãĥ» ãĥ» ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ getItems Use Since Id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcall Back ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġl Ġ= Ġsearch Latest Id ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( l Ġ!= Ġnull ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlatest Id Ġ= Ġl ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġoverride Ġfun Ġget Old Items ( call Back :( List < E > )-> Unit ){ ĊĠĠĠĠĠĠĠ Ġif ( Ġoldest Id Ġ== Ġnull Ġ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit ( call Back ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif ( request Ol dest Flag Ġ== Ġoldest Id ){ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" Paging Controller ", Ġ" éĩį è¤ĩ ãĤĴ éĺ² ãģĦ ãģł ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcall Back ( emptyList ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Ol dest Flag Ġ= Ġoldest Id ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġm Repository . getItems Use Until Id ( ol dest Id !! ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( it Ġ== Ġnull ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror CallBack Listener . call Back ( Exception (" NULL è¿Ķ ãģ£ãģ¦ ãģį ãģ¡ ãĤ ĥ ãģ£ãģŁ ãĥ» ãĥ» ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ getItems Use Until Id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcall Back ( it ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġo Ġ= Ġsearch Ol dest Id ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( o Ġ!= Ġnull ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoldest Id Ġ= Ġo ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Ol dest Flag Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġoverride Ġfun Ġinit ( call Back :( List < E > )-> Unit ){ ĊĠĠĠĠĠĠĠ Ġm Repository . getItems Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( it Ġ== Ġnull ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror CallBack Listener . call Back ( Exception (" NULL è¿Ķ ãģ£ãģ¦ ãģį ãģ¡ ãĤ ĥ ãģ£ãģŁ ãĥ» ãĥ» ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ getItems ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcall Back ( it ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġl Ġ= Ġsearch Latest Id ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġo Ġ= Ġsearch Ol dest Id ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( l Ġ!= Ġnull ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlatest Id Ġ= Ġl ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( o Ġ!= Ġnull ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoldest Id Ġ= Ġo ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsearch Latest Id ( list : ĠList < ID >): ĠString ? { ĊĠĠĠĠĠĠĠ Ġfor ( n Ġin Ġlist ){ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif (! Ġn . is Ignore Ġ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġn . id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsearch Ol dest Id ( list : ĠList < ID >): ĠString ? { ĊĠĠĠĠĠĠĠ Ġfor ( n Ġin Ġ( list . size Ġ- Ġ 1 ). down To ( 0 )){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġlist [ n ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/* if (! note ViewData . is Origin Reply ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnote ViewData ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif (! data . is Ignore ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġdata . id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} Ċ Ċ }