Skip to content

Instantly share code, notes, and snippets.

@cloudshooterhuman
Created September 1, 2014 08:32
Show Gist options
  • Save cloudshooterhuman/4daa10f21c1b64b6c2a9 to your computer and use it in GitHub Desktop.
Save cloudshooterhuman/4daa10f21c1b64b6c2a9 to your computer and use it in GitHub Desktop.
...
private Thread worker;
....
// AUTOLOADING
boolean loadMore = /* maybe add a padding */
firstVisibleItem + visibleItemCount >= totalItemCount;
if(pages!=null & adapter!=null && scroll){
if(loadMore) {
// It is time to add new data. We call the listener
getListView().addFooterView(footer);
worker = new Thread(new Runnable(){
private void updateUI(final List<Object> list)
{
if(worker.isInterrupted()){
return;
}
getActivity().runOnUiThread(new Runnable(){
@Override
public void run()
{
// Update view and remove loading spinner etc...
pages.addAll(pagesToAdd);
pages.size();
//mHandler.postDelayed(mAddItemsRunnable, 1);
if(pagesToAdd.size()>0){
adapter.addMoreItems(6, pages);
getListView().removeFooterView(footer);
scroll = true;
}
else {
scroll = false;
}
}
});
}
private List<Object> download()
{
try {
scroll = false;
HttpHeaders requestHeaders = new HttpHeaders();
List<MediaType> acceptableMedia = new ArrayList<MediaType>();
acceptableMedia.add(MediaType.APPLICATION_JSON);
requestHeaders.setAccept(acceptableMedia);
HttpEntity< ?> requestEntity = new HttpEntity<Object>(requestHeaders);
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
ResponseEntity<Actualite2[]> responseEntity = restTemplate.exchange("http://www.bb.pro/api/v1/actualites.json?limit=6&offset="+(offset+=6), HttpMethod.GET, requestEntity, Actualite2[].class);
pagesToAdd = new LinkedList(Arrays.asList(responseEntity.getBody()));
} catch (Exception e) {
e.printStackTrace();
}
return new ArrayList<Object>();
}
@Override
public void run()
{
//Log.d(TAG, "Thread run()");
updateUI(download());
}
});
worker.start();
//a new RequestTask().execute("http://www.bb.pro/api/v1/actualites.json?limit=6&offset="+(offset+=6));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment