package Ġcom . jar van . app . ui Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroidx . arch . core . executor . Arch Task Executor Ċ import Ġandroidx . paging . Item Key ed DataSource Ċ import Ġandroidx . paging . Paged List Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* Ġ ä¸Ģä¸ª åı¯ åıĺ æĽ´ çļĦ Item Key ed DataSource Ġæķ°æį® æºĲ Ċ Ġ* Ċ Ġ* Ġ å·¥ä½ľ åİŁ çĲĨ æĺ¯ ï¼ļ æĪĳä»¬ çŁ¥éģĵ DataSource æĺ¯ ä¼ļ è¢« Paged List Ġ æĮģ æľīçļĦ ãĢĤ Ċ Ġ* Ġä¸Ģ æĹ ¦ ï¼Į æĪĳä»¬ è°ĥçĶ¨ äºĨ new ĠP aged List . Builder < Key , ĠValue >(). build (); Ġ éĤ£ä¹Ī å°±ä¼ļ ç«ĭ åĪ» è§¦åıĳ å½ĵåīį DataSource çļĦ load Initial () æĸ¹æ³ķ ï¼Į èĢĮä¸Ķ æĺ¯ åĲĮæŃ¥ Ċ Ġ* Ġ è¯¦æĥħ è§ģ Cont iguous Paged List çļĦ æŀĦéĢł åĩ½æķ° , èĢĮ æĪĳä»¬ åľ¨ å½ĵåīį DataSource çļĦ load Initial () æĸ¹æ³ķ ä¸Ń è¿ĶåĽŀ äºĨ Ġ æľĢæĸ° çļĦæķ°æį® éĽĨåĲĪ Ġdata ãĢĤ Ċ Ġ* Ġä¸Ģ æĹ ¦ ï¼Į æĪĳä»¬ åĨį æ¬¡ è°ĥçĶ¨ Paged ListAdapter # submit List () æĸ¹æ³ķ Ġ å°±ä¼ļ è§¦åıĳ å·® åĪĨ å¼Ĥ è®¡ç®Ĺ ĠæĬ Ĭ æĸ° æķ°æį® åıĺ æĽ´ åĪ° åĪĹè¡¨ ä¹ĭ ä¸Ĭ äºĨ ãĢĤ Ċ Ġ* Ċ Ġ* Ġ@ param Ġ< Key > Ċ Ġ* Ġ@ param Ġ< Value > Ċ Ġ*/ Ċ abstract Ġclass ĠMutable Item Key ed DataSource < Key , ĠValue > Ġ: ĠItem Key ed DataSource < Key , ĠValue >() Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġm DataSource : ĠItem Key ed DataSource < Key , ĠValue >? Ġ= Ġnull ĊĊĠĠĠ Ġopen Ġfun ĠMutable Item Key ed DataSource ( dataSource : ĠItem Key ed DataSource < Key , ĠValue >) Ġ{ ĊĠĠĠĠĠĠĠ Ġm DataSource Ġ= ĠdataSource ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġdata : ĠMutable List < Value > Ġ= ĠArrayList () ĊĊĠĠĠ Ġ@ Suppress Lint (" Restricted Api ") ĊĠĠĠ Ġfun Ġbuild New Paged List ( config : ĠP aged List . Config ): ĠP aged List < Value > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠP aged List . Builder < Key , ĠValue >( this , Ġconfig ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Fetch Executor ( Arch Task Executor . get IO Thread Executor ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Notify Executor ( Arch Task Executor . get MainThread Executor ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġload Initial ( params : ĠLoad Initial Params < Key >, Ġcallback : ĠLoad Initial Callback < Value >) Ġ{ ĊĠĠĠĠĠĠĠ Ġcallback . on Result ( data ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġload Before ( params : ĠLoad Params < Key >, Ġcallback : ĠLoad Callback < Value >) Ġ{ ĊĠĠĠĠĠĠĠ Ġcallback . on Result ( emptyList ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġload After ( params : ĠLoad Params < Key >, Ġcallback : ĠLoad Callback < Value >) Ġ{ ĊĠĠĠĠĠĠĠ Ġm DataSource ?. load After ( params , Ġcallback ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġabstract Ġoverride Ġfun ĠgetKey ( item : ĠValue ): ĠKey Ċ Ċ }