use of me.ccrama.redditslide.Adapters.SubredditPosts in project Slide by ccrama.
the class CommentsScreen method onCreate.
@Override
public void onCreate(Bundle savedInstance) {
popup = SettingValues.tabletUI && getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE && !SettingValues.fullCommentOverride;
seen = new ArrayList<>();
if (popup) {
disableSwipeBackLayout();
applyColorTheme();
setTheme(R.style.popup);
supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setBackgroundDrawableResource(android.R.color.transparent);
super.onCreate(savedInstance);
setContentView(R.layout.activity_slide_popup);
} else {
overrideSwipeFromAnywhere();
applyColorTheme();
getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
getWindow().getDecorView().setBackgroundDrawable(null);
super.onCreate(savedInstance);
setContentView(R.layout.activity_slide);
}
Reddit.setDefaultErrorHandler(this);
firstPage = getIntent().getExtras().getInt(EXTRA_PAGE, -1);
baseSubreddit = getIntent().getExtras().getString(EXTRA_SUBREDDIT);
subreddit = baseSubreddit;
multireddit = getIntent().getExtras().getString(EXTRA_MULTIREDDIT);
profile = getIntent().getExtras().getString(EXTRA_PROFILE, "");
currentPosts = new ArrayList<>();
if (multireddit != null) {
subredditPosts = new MultiredditPosts(multireddit, profile);
} else {
baseSubreddit = subreddit.toLowerCase(Locale.ENGLISH);
subredditPosts = new SubredditPosts(baseSubreddit, CommentsScreen.this);
}
if (firstPage == RecyclerView.NO_POSITION || firstPage < 0) {
firstPage = 0;
// IS SINGLE POST
} else {
OfflineSubreddit o = OfflineSubreddit.getSubreddit(multireddit == null ? baseSubreddit : "multi" + multireddit, OfflineSubreddit.currentid, !Authentication.didOnline, CommentsScreen.this);
subredditPosts.getPosts().addAll(o.submissions);
currentPosts.addAll(subredditPosts.getPosts());
}
if (getIntent().hasExtra("fullname")) {
String fullname = getIntent().getStringExtra("fullname");
for (int i = 0; i < currentPosts.size(); i++) {
if (currentPosts.get(i).getFullName().equals(fullname)) {
if (i != firstPage)
firstPage = i;
break;
}
}
}
if (currentPosts.isEmpty() || currentPosts.size() < firstPage || currentPosts.get(firstPage) == null || firstPage < 0) {
finish();
} else {
updateSubredditAndSubmission(currentPosts.get(firstPage));
final ViewPager pager = (ViewPager) findViewById(R.id.content_view);
comments = new OverviewPagerAdapter(getSupportFragmentManager());
pager.setAdapter(comments);
currentPage = firstPage;
pager.setCurrentItem(firstPage + 1);
pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
if (position <= firstPage && positionOffsetPixels == 0) {
finish();
}
if (position == firstPage && !popup) {
if (((OverviewPagerAdapter) pager.getAdapter()).blankPage != null) {
((OverviewPagerAdapter) pager.getAdapter()).blankPage.doOffset(positionOffset);
}
pager.setBackgroundColor(adjustAlpha(positionOffset * 0.7f));
}
}
@Override
public void onPageSelected(int position) {
if (position != firstPage && position < currentPosts.size()) {
position = position - 1;
if (position < 0)
position = 0;
updateSubredditAndSubmission(currentPosts.get(position));
if (currentPosts.size() - 2 <= position && subredditPosts.hasMore()) {
subredditPosts.loadMore(CommentsScreen.this.getApplicationContext(), CommentsScreen.this, false);
}
currentPage = position;
seen.add(position);
Bundle conData = new Bundle();
conData.putIntegerArrayList("seen", seen);
conData.putInt("lastPage", position);
Intent intent = new Intent();
intent.putExtras(conData);
setResult(RESULT_OK, intent);
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
}
if (!Reddit.appRestart.contains("tutorialSwipeComments")) {
Intent i = new Intent(this, SwipeTutorial.class);
i.putExtra("subtitle", "Swipe from the left edge to exit comments.\n\nYou can swipe in the middle to get to the previous/next submission.");
startActivityForResult(i, 333);
}
}
Aggregations