Skip to content

Instantly share code, notes, and snippets.

@Bramengton
Last active July 9, 2017 11:06
Show Gist options
  • Save Bramengton/a3e7dc7587522456002bf542eea44420 to your computer and use it in GitHub Desktop.
Save Bramengton/a3e7dc7587522456002bf542eea44420 to your computer and use it in GitHub Desktop.
Ho To in twitter4j get Twitter timeline by pages
private class TimeLineLoader extends AsyncTask<Void, Void, List<Status>> {
private AdapterTweets adapter;
private SwipyRefreshLayoutDirection direction;
private SwipyRefreshLayout mSwipyRefreshLayout;
TimeLineLoader(final AdapterTweets adapter, SwipyRefreshLayout swipyRefreshLayout){
this.adapter = adapter;
this.mSwipyRefreshLayout =swipyRefreshLayout;
this.direction = swipyRefreshLayout.getDirection();
}
@Override
protected List<twitter4j.Status> doInBackground(Void... voids) {
try {
if (pages == null) {
pages = new Paging(1, 20);
} else {
twitter4j.Status s = timeline.get(timeline.size()-1);
pages = new Paging();
switch (direction){
case TOP:
pages.setSinceId(s.getId());
break;
case BOTTOM:
pages.setMaxId(s.getId());
break;
}
}
timeline = twitter.getUserTimeline("Twitter",pages);
return timeline;
} catch (TwitterException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(List<twitter4j.Status> result) {
if (result != null) {
switch (direction){
case TOP:
adapter.addAll(result);
break;
case BOTTOM:
result.remove(0);
//Удаляем дубль элемента.
// так как первый элемент предыдущей страницы Timeline
// начинается с последнего элемента первой страницы
adapter.addAll(result);
break;
}
adapter.notifyDataSetChanged();
} else {
showToast("Не удалось получить список");
}
mSwipyRefreshLayout.setRefreshing(false);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment