package Ġar un . com . chrom er . data . history . paging Ċ Ċ import Ġandroid . arch . paging . DataSource Ċ import Ġandroid . arch . paging . Position al DataSource Ċ import Ġar un . com . chrom er . data . history . History Store Ċ import Ġar un . com . chrom er . data . website . model . Website Ċ import Ġjavax . inject . Inject Ċ import Ġjavax . inject . Provider Ċ import Ġjavax . inject . Singleton Ċ Ċ @ Singleton Ċ class ĠP aged History DataSource Ċ @ Inject Ċ constructor ( private Ġval Ġhistory Store : ĠHistory Store ) Ġ: ĠPosition al DataSource < Website >() Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġload Range ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparams : ĠLoad Range Params , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcallback : ĠLoad Range Callback < Website > ĊĠĠĠ Ġ) Ġ= Ġcallback . on Result ( history Store . load History Range ( params . load Size , Ġparams . start Position )) ĊĊĠĠĠ Ġoverride Ġfun Ġload Initial ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparams : ĠLoad Initial Params , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcallback : ĠLoad Initial Callback < Website > ĊĠĠĠ Ġ) Ġ= Ġcallback . on Result ( history Store . load History Range ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparams . requested Load Size , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparams . requested Start Position ĊĠĠĠ Ġ), Ġ 0 ) ĊĊĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġclass ĠFactory ĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġconstructor ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġpage d History DataSource Provider : ĠProvider < Paged History DataSource > ĊĠĠĠ Ġ) Ġ: ĠDataSource . Factory < Int , ĠWebsite >() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcreate (): ĠP aged History DataSource Ġ= Ġpage d History DataSource Provider . get () ĊĠĠĠ Ġ} Ċ } Ċ