use of me.ccrama.redditslide.Adapters.GalleryView in project Slide by ccrama.
the class Gallery method onCreate.
@Override
public void onCreate(Bundle savedInstance) {
overrideSwipeFromAnywhere();
subreddit = getIntent().getExtras().getString(EXTRA_SUBREDDIT);
String multireddit = getIntent().getExtras().getString(EXTRA_MULTIREDDIT);
String profile = getIntent().getExtras().getString(EXTRA_PROFILE, "");
if (multireddit != null) {
subredditPosts = new MultiredditPosts(multireddit, profile);
} else {
subredditPosts = new SubredditPosts(subreddit, Gallery.this);
}
subreddit = multireddit == null ? subreddit : ("multi" + multireddit);
if (multireddit == null) {
setShareUrl("https://reddit.com/r/" + subreddit);
}
applyDarkColorTheme(subreddit);
super.onCreate(savedInstance);
setContentView(R.layout.gallery);
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_IMMERSIVE);
long offline = getIntent().getLongExtra("offline", 0L);
final OfflineSubreddit submissions = OfflineSubreddit.getSubreddit(subreddit, offline, !Authentication.didOnline, this);
baseSubs = new ArrayList<>();
for (Submission s : submissions.submissions) {
if (s.getThumbnails() != null && s.getThumbnails().getSource() != null) {
baseSubs.add(s);
} else if (ContentType.getContentType(s) == ContentType.Type.IMAGE) {
baseSubs.add(s);
}
subredditPosts.getPosts().add(s);
}
rv = (RecyclerView) findViewById(R.id.content_view);
recyclerAdapter = new GalleryView(this, baseSubs, subreddit);
RecyclerView.LayoutManager layoutManager = createLayoutManager(getNumColumns(getResources().getConfiguration().orientation));
rv.setLayoutManager(layoutManager);
rv.setAdapter(recyclerAdapter);
rv.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
int[] firstVisibleItems;
firstVisibleItems = ((CatchStaggeredGridLayoutManager) rv.getLayoutManager()).findFirstVisibleItemPositions(null);
if (firstVisibleItems != null && firstVisibleItems.length > 0) {
for (int firstVisibleItem : firstVisibleItems) {
pastVisiblesItems = firstVisibleItem;
}
}
if ((visibleItemCount + pastVisiblesItems) + 5 >= totalItemCount) {
if (subredditPosts instanceof SubredditPosts) {
if (!((SubredditPosts) subredditPosts).loading) {
((SubredditPosts) subredditPosts).loading = true;
((SubredditPosts) subredditPosts).loadMore(Gallery.this, Gallery.this, false, subreddit);
}
} else if (subredditPosts instanceof MultiredditPosts) {
if (!((MultiredditPosts) subredditPosts).loading) {
((MultiredditPosts) subredditPosts).loading = true;
(subredditPosts).loadMore(Gallery.this, Gallery.this, false);
}
}
}
}
});
}
Aggregations