Search in sources :

Example 6 with SubredditPosts

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);
    }
}
Also used : Bundle(android.os.Bundle) OfflineSubreddit(me.ccrama.redditslide.OfflineSubreddit) Intent(android.content.Intent) ViewPager(android.support.v4.view.ViewPager) MultiredditPosts(me.ccrama.redditslide.Adapters.MultiredditPosts) ColorDrawable(android.graphics.drawable.ColorDrawable) SubredditPosts(me.ccrama.redditslide.Adapters.SubredditPosts)

Aggregations

SubredditPosts (me.ccrama.redditslide.Adapters.SubredditPosts)6 MultiredditPosts (me.ccrama.redditslide.Adapters.MultiredditPosts)3 OfflineSubreddit (me.ccrama.redditslide.OfflineSubreddit)3 ViewPager (android.support.v4.view.ViewPager)2 SwipeRefreshLayout (android.support.v4.widget.SwipeRefreshLayout)2 SubmissionAdapter (me.ccrama.redditslide.Adapters.SubmissionAdapter)2 Intent (android.content.Intent)1 ColorDrawable (android.graphics.drawable.ColorDrawable)1 Bundle (android.os.Bundle)1 RecyclerView (android.support.v7.widget.RecyclerView)1 LinearInterpolator (android.view.animation.LinearInterpolator)1 GalleryView (me.ccrama.redditslide.Adapters.GalleryView)1 ColorPreferences (me.ccrama.redditslide.ColorPreferences)1 SubmissionsView (me.ccrama.redditslide.Fragments.SubmissionsView)1 CatchStaggeredGridLayoutManager (me.ccrama.redditslide.Views.CatchStaggeredGridLayoutManager)1 Submission (net.dean.jraw.models.Submission)1