The package The trap.Simplified coding.androidpagingexample;
Import Android.Arch.Paging.PageKeyedDataSource;
Import Android.Support.Annotation.No no;
Import Android.Useful.Log;
Import Retrofit 2.Call out;
Import Retrofit 2.call back;
Import Retrofit 2.Feedback;
public class Itemdotsource Is spread PageKeyedDataSource<Maximum Marks, Item> {{
// a page size we want
public Fixed The last int page size = = 50;
// We start with the first page which is 1
Private Fixed The last int First page = = 1;
// we need to fetch from stackoverflow
Private Fixed The last String site name = = “stack Overflow”;
// It will be called once to load the initial data
@Override
public Zero burden()@No no Loadinfliterams<Maximum Marks> The ultimate, @No no The last LoadInitialCallback<Maximum Marks, Item> call back) {{
Retrofitclient.get Instance())
.Bring fire()).getAnswers()First page, page size, site name)
.Begrudge()New call back<StackApiResponse>()) {{
@Override
public Zero Treason()Call out<StackApiResponse> Call, Feedback<StackApiResponse> Feedback) {{
If ()Feedback.Body()) ! = Invalid) {{
call back.onResult()Feedback.Body()).item, Invalid, First page + 1);
}
}
@Override
public Zero Failure()Call out<StackApiResponse> Call, Throwable T) {{
}
});
}
// it will load the previous page
@Override
public Zero burden()@No no The last Loadparts<Maximum Marks> Para, @No no The last Load callback<Maximum Marks, Item> call back) {{
Retrofitclient.get Instance())
.Bring fire()).getAnswers()Para.The key, page size, site name)
.Begrudge()New call back<StackApiResponse>()) {{
@Override
public Zero Treason()Call out<StackApiResponse> Call, Feedback<StackApiResponse> Feedback) {{
// if the current page is more than one
// We’re reducing the page count
// and no previous page
Maximum Marks Proximate = = ()The ultimate.The key > 1) The Para.The key – 1 : Invalid;
If ()Feedback.Body()) ! = Invalid) {{
// Passing loaded data
// and previous page’s
call back.onResult()Feedback.Body()).item, Nearby);
}
}
@Override
public Zero Failure()Call out<StackApiResponse> Call, Throwable T) {{
}
});
}
// it will load the next page
@Override
public Zero Later()@No no The last Loadparts<Maximum Marks> The ultimate, @No no The last Load callback<Maximum Marks, Item> call back) {{
Retrofitclient.get Instance())
.Bring fire())
.getAnswers()The ultimate.The key, page size, site name)
.Begrudge()New call back<StackApiResponse>()) {{
@Override
public Zero Treason()Call out<StackApiResponse> Call, Feedback<StackApiResponse> Feedback) {{
If ()Feedback.Body()) ! = Invalid) {{
// if the next page in the response is
// Next page number increase
Maximum Marks The key = = Feedback.Body()).is_Excess The The ultimate.The key + 1 : Invalid;
// Passing loaded data and next page value
call back.onResult()Feedback.Body()).item, The key);
}
}
@Override
public Zero Failure()Call out<StackApiResponse> Call, Throwable T) {{
}
});
}
}
Source link