Search in sources :

Example 46 with ColorPreferences

use of me.ccrama.redditslide.Visuals.ColorPreferences in project Slide by ccrama.

the class Tumblr method onCreate.

public void onCreate(Bundle savedInstanceState) {
    overrideSwipeFromAnywhere();
    super.onCreate(savedInstanceState);
    getTheme().applyStyle(new ColorPreferences(this).getDarkThemeSubreddit(ColorPreferences.FONT_STYLE), true);
    setContentView(R.layout.album);
    // Keep the screen on
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
    final ViewPager pager = (ViewPager) findViewById(R.id.images);
    album = new TumblrPagerAdapter(getSupportFragmentManager());
    pager.setAdapter(album);
    pager.setCurrentItem(1);
    if (getIntent().hasExtra(SUBREDDIT)) {
        subreddit = getIntent().getStringExtra(SUBREDDIT);
    }
    pager.addOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {

        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
            if (position == 0 && positionOffsetPixels == 0) {
                finish();
            }
            if (position == 0 && ((TumblrPagerAdapter) pager.getAdapter()).blankPage != null) {
                if (((TumblrPagerAdapter) pager.getAdapter()).blankPage != null) {
                    ((TumblrPagerAdapter) pager.getAdapter()).blankPage.doOffset(positionOffset);
                }
                ((TumblrPagerAdapter) pager.getAdapter()).blankPage.realBack.setBackgroundColor(Palette.adjustAlpha(positionOffset * 0.7f));
            }
        }
    });
    if (!Reddit.appRestart.contains("tutorialSwipe")) {
        startActivityForResult(new Intent(this, SwipeTutorial.class), 3);
    }
}
Also used : ColorPreferences(me.ccrama.redditslide.Visuals.ColorPreferences) Intent(android.content.Intent) ViewPager(androidx.viewpager.widget.ViewPager)

Example 47 with ColorPreferences

use of me.ccrama.redditslide.Visuals.ColorPreferences in project Slide by ccrama.

the class Tutorial method onCreate.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    final Resources.Theme theme = getTheme();
    theme.applyStyle(new FontPreferences(this).getCommentFontStyle().getResId(), true);
    theme.applyStyle(new FontPreferences(this).getPostFontStyle().getResId(), true);
    theme.applyStyle(new ColorPreferences(this).getFontStyle().getBaseId(), true);
    binding = ActivityTutorialBinding.inflate(getLayoutInflater());
    setContentView(binding.getRoot());
    // The pager adapter, which provides the pages to the view pager widget.
    binding.tutorialViewPager.setAdapter(new TutorialPagerAdapter(getSupportFragmentManager()));
    if (getIntent().hasExtra("page")) {
        binding.tutorialViewPager.setCurrentItem(1);
    }
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        final Window window = this.getWindow();
        window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
        window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
        window.setStatusBarColor(Palette.getDarkerColor(Color.parseColor("#FF5252")));
    }
}
Also used : FontPreferences(me.ccrama.redditslide.Visuals.FontPreferences) Window(android.view.Window) ColorPreferences(me.ccrama.redditslide.Visuals.ColorPreferences) Resources(android.content.res.Resources)

Example 48 with ColorPreferences

use of me.ccrama.redditslide.Visuals.ColorPreferences in project Slide by ccrama.

the class MultiredditOverview method setDataSet.

private void setDataSet(List<MultiReddit> data) {
    try {
        usedArray = data;
        if (usedArray.isEmpty()) {
            buildDialog();
        } else {
            if (adapter == null) {
                adapter = new MultiredditOverviewPagerAdapter(getSupportFragmentManager());
            } else {
                adapter.notifyDataSetChanged();
            }
            pager.setAdapter(adapter);
            pager.setOffscreenPageLimit(1);
            tabs.setupWithViewPager(pager);
            if (!initialMulti.isEmpty()) {
                for (int i = 0; i < usedArray.size(); i++) {
                    if (usedArray.get(i).getDisplayName().equalsIgnoreCase(initialMulti)) {
                        pager.setCurrentItem(i);
                        break;
                    }
                }
            }
            tabs.setSelectedTabIndicatorColor(new ColorPreferences(MultiredditOverview.this).getColor(usedArray.get(0).getDisplayName()));
            doDrawerSubs(0);
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                Window window = this.getWindow();
                window.setStatusBarColor(Palette.getDarkerColor(usedArray.get(0).getDisplayName()));
            }
            final View header = findViewById(R.id.header);
            tabs.addOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(pager) {

                @Override
                public void onTabReselected(TabLayout.Tab tab) {
                    super.onTabReselected(tab);
                    int pastVisiblesItems = 0;
                    int[] firstVisibleItems = ((CatchStaggeredGridLayoutManager) (((MultiredditView) adapter.getCurrentFragment()).rv.getLayoutManager())).findFirstVisibleItemPositions(null);
                    if (firstVisibleItems != null && firstVisibleItems.length > 0) {
                        for (int firstVisibleItem : firstVisibleItems) {
                            pastVisiblesItems = firstVisibleItem;
                        }
                    }
                    if (pastVisiblesItems > 8) {
                        ((MultiredditView) adapter.getCurrentFragment()).rv.scrollToPosition(0);
                        if (header != null) {
                            header.animate().translationY(header.getHeight()).setInterpolator(new LinearInterpolator()).setDuration(0);
                        }
                    } else {
                        ((MultiredditView) adapter.getCurrentFragment()).rv.smoothScrollToPosition(0);
                    }
                }
            });
            findViewById(R.id.header).setBackgroundColor(Palette.getColor(usedArray.get(0).getDisplayName()));
        }
    } catch (NullPointerException e) {
        buildDialog(true);
        Log.e(LogUtil.getTag(), "Cannot load multis:\n" + e);
    }
}
Also used : Window(android.view.Window) ColorPreferences(me.ccrama.redditslide.Visuals.ColorPreferences) LinearInterpolator(android.view.animation.LinearInterpolator) TabLayout(com.google.android.material.tabs.TabLayout) MultiredditView(me.ccrama.redditslide.Fragments.MultiredditView) View(android.view.View) TextView(android.widget.TextView) MultiredditView(me.ccrama.redditslide.Fragments.MultiredditView)

Example 49 with ColorPreferences

use of me.ccrama.redditslide.Visuals.ColorPreferences in project Slide by ccrama.

the class Profile method onCreate.

@Override
public void onCreate(Bundle savedInstance) {
    overrideSwipeFromAnywhere();
    super.onCreate(savedInstance);
    name = getIntent().getExtras().getString(EXTRA_PROFILE, "");
    setShareUrl("https://reddit.com/u/" + name);
    applyColorTheme();
    setContentView(R.layout.activity_profile);
    setupUserAppBar(R.id.toolbar, name, true, name);
    mToolbar.setPopupTheme(new ColorPreferences(this).getFontStyle().getBaseId());
    profSort = Sorting.HOT;
    profTime = TimePeriod.ALL;
    findViewById(R.id.header).setBackgroundColor(Palette.getColorUser(name));
    tabs = (TabLayout) findViewById(R.id.sliding_tabs);
    tabs.setTabMode(TabLayout.MODE_SCROLLABLE);
    tabs.setSelectedTabIndicatorColor(new ColorPreferences(Profile.this).getColor("no sub"));
    pager = (ViewPager) findViewById(R.id.content_view);
    if (name.equals(Authentication.name))
        setDataSet(new String[] { getString(R.string.profile_overview), getString(R.string.profile_comments), getString(R.string.profile_submitted), getString(R.string.profile_gilded), getString(R.string.profile_upvoted), getString(R.string.profile_downvoted), getString(R.string.profile_saved), getString(R.string.profile_hidden), getString(R.string.profile_history) });
    else
        setDataSet(new String[] { getString(R.string.profile_overview), getString(R.string.profile_comments), getString(R.string.profile_submitted), getString(R.string.profile_gilded) });
    new getProfile().execute(name);
    pager.addOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {

        @Override
        public void onPageSelected(int position) {
            isSavedView = position == 6;
            findViewById(R.id.header).animate().translationY(0).setInterpolator(new LinearInterpolator()).setDuration(180);
            if (sortItem != null) {
                sortItem.setVisible(position < 3);
            }
            if (categoryItem != null && Authentication.me != null && Authentication.me.hasGold()) {
                categoryItem.setVisible(position == 6);
            }
        }
    });
    if (getIntent().hasExtra(EXTRA_SAVED) && name.equals(Authentication.name)) {
        pager.setCurrentItem(6);
    }
    if (getIntent().hasExtra(EXTRA_COMMENT) && name.equals(Authentication.name)) {
        pager.setCurrentItem(1);
    }
    if (getIntent().hasExtra(EXTRA_SUBMIT) && name.equals(Authentication.name)) {
        pager.setCurrentItem(2);
    }
    if (getIntent().hasExtra(EXTRA_HISTORY) && name.equals(Authentication.name)) {
        pager.setCurrentItem(8);
    }
    if (getIntent().hasExtra(EXTRA_UPVOTE) && name.equals(Authentication.name)) {
        pager.setCurrentItem(4);
    }
    isSavedView = pager.getCurrentItem() == 6;
    if (pager.getCurrentItem() != 0) {
        LayoutUtils.scrollToTabAfterLayout(tabs, pager.getCurrentItem());
    }
}
Also used : ColorPreferences(me.ccrama.redditslide.Visuals.ColorPreferences) LinearInterpolator(android.view.animation.LinearInterpolator) ViewPager(androidx.viewpager.widget.ViewPager)

Example 50 with ColorPreferences

use of me.ccrama.redditslide.Visuals.ColorPreferences in project Slide by ccrama.

the class Search method onCreate.

@Override
public void onCreate(Bundle savedInstanceState) {
    overrideSwipeFromAnywhere();
    super.onCreate(savedInstanceState);
    applyColorTheme("");
    setContentView(R.layout.activity_search);
    where = getIntent().getExtras().getString(EXTRA_TERM, "");
    time = TimePeriod.ALL;
    if (getIntent().hasExtra(EXTRA_MULTIREDDIT)) {
        multireddit = true;
        subreddit = getIntent().getExtras().getString(EXTRA_MULTIREDDIT);
    } else {
        if (getIntent().hasExtra(EXTRA_AUTHOR)) {
            where = where + "&author=" + getIntent().getExtras().getString(EXTRA_AUTHOR);
        }
        if (getIntent().hasExtra(EXTRA_NSFW)) {
            where = where + "&nsfw=" + (getIntent().getExtras().getBoolean(EXTRA_NSFW) ? "yes" : "no");
        }
        if (getIntent().hasExtra(EXTRA_SELF)) {
            where = where + "&selftext=" + (getIntent().getExtras().getBoolean(EXTRA_SELF) ? "yes" : "no");
        }
        if (getIntent().hasExtra(EXTRA_SITE)) {
            where = where + "&site=" + getIntent().getExtras().getString(EXTRA_SITE);
        }
        if (getIntent().hasExtra(EXTRA_URL)) {
            where = where + "&url=" + getIntent().getExtras().getString(EXTRA_URL);
        }
        if (getIntent().hasExtra(EXTRA_TIME)) {
            TimePeriod timePeriod = TimeUtils.stringToTimePeriod(getIntent().getExtras().getString(EXTRA_TIME));
            if (timePeriod != null) {
                time = timePeriod;
            }
        }
        subreddit = getIntent().getExtras().getString(EXTRA_SUBREDDIT, "");
    }
    where = StringEscapeUtils.unescapeHtml4(where);
    setupSubredditAppBar(R.id.toolbar, "Search", true, subreddit.toLowerCase(Locale.ENGLISH));
    getSupportActionBar().setTitle(CompatUtil.fromHtml(where));
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    // it won't be, trust me
    assert mToolbar != null;
    mToolbar.setNavigationOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // Simulate a system's "Back" button functionality.
            onBackPressed();
        }
    });
    mToolbar.setPopupTheme(new ColorPreferences(this).getFontStyle().getBaseId());
    // When the .name() is returned for both of the ENUMs, it will be in all caps.
    // So, make it lowercase, then capitalize the first letter of each.
    getSupportActionBar().setSubtitle(StringUtils.capitalize(SortingUtil.search.name().toLowerCase(Locale.ENGLISH)) + " › " + StringUtils.capitalize(time.name().toLowerCase(Locale.ENGLISH)));
    rv = ((RecyclerView) findViewById(R.id.vertical_content));
    final RecyclerView.LayoutManager mLayoutManager = createLayoutManager(LayoutUtils.getNumColumns(getResources().getConfiguration().orientation, Search.this));
    rv.setLayoutManager(mLayoutManager);
    rv.addOnScrollListener(new ToolbarScrollHideHandler(mToolbar, findViewById(R.id.header)) {

        @Override
        public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
            super.onScrolled(recyclerView, dx, dy);
            visibleItemCount = rv.getLayoutManager().getChildCount();
            totalItemCount = rv.getLayoutManager().getItemCount();
            if (rv.getLayoutManager() instanceof PreCachingLayoutManager) {
                pastVisiblesItems = ((PreCachingLayoutManager) rv.getLayoutManager()).findFirstVisibleItemPosition();
            } else {
                int[] firstVisibleItems = null;
                firstVisibleItems = ((CatchStaggeredGridLayoutManager) rv.getLayoutManager()).findFirstVisibleItemPositions(firstVisibleItems);
                if (firstVisibleItems != null && firstVisibleItems.length > 0) {
                    pastVisiblesItems = firstVisibleItems[0];
                }
            }
            if (!posts.loading && (visibleItemCount + pastVisiblesItems) + 5 >= totalItemCount && !posts.nomore) {
                posts.loading = true;
                posts.loadMore(adapter, subreddit, where, false, multireddit, time);
            }
        }
    });
    final SwipeRefreshLayout mSwipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.activity_main_swipe_refresh_layout);
    mSwipeRefreshLayout.setColorSchemeColors(Palette.getColors(subreddit, this));
    // If we use 'findViewById(R.id.header).getMeasuredHeight()', 0 is always returned.
    // So, we estimate the height of the header in dp.
    mSwipeRefreshLayout.setProgressViewOffset(false, Constants.SINGLE_HEADER_VIEW_OFFSET - Constants.PTR_OFFSET_TOP, Constants.SINGLE_HEADER_VIEW_OFFSET + Constants.PTR_OFFSET_BOTTOM);
    mSwipeRefreshLayout.post(new Runnable() {

        @Override
        public void run() {
            mSwipeRefreshLayout.setRefreshing(true);
        }
    });
    posts = new SubredditSearchPosts(subreddit, where.toLowerCase(Locale.ENGLISH), this, multireddit);
    adapter = new ContributionAdapter(this, posts, rv);
    rv.setAdapter(adapter);
    posts.bindAdapter(adapter, mSwipeRefreshLayout);
    // TODO catch errors
    mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {

        @Override
        public void onRefresh() {
            posts.loadMore(adapter, subreddit, where, true, multireddit, time);
        // TODO catch errors
        }
    });
}
Also used : CatchStaggeredGridLayoutManager(me.ccrama.redditslide.Views.CatchStaggeredGridLayoutManager) ColorPreferences(me.ccrama.redditslide.Visuals.ColorPreferences) TimePeriod(net.dean.jraw.paginators.TimePeriod) SubredditSearchPosts(me.ccrama.redditslide.Adapters.SubredditSearchPosts) PreCachingLayoutManager(me.ccrama.redditslide.Views.PreCachingLayoutManager) View(android.view.View) RecyclerView(androidx.recyclerview.widget.RecyclerView) SwipeRefreshLayout(androidx.swiperefreshlayout.widget.SwipeRefreshLayout) ContributionAdapter(me.ccrama.redditslide.Adapters.ContributionAdapter) RecyclerView(androidx.recyclerview.widget.RecyclerView) ToolbarScrollHideHandler(me.ccrama.redditslide.handler.ToolbarScrollHideHandler)

Aggregations

ColorPreferences (me.ccrama.redditslide.Visuals.ColorPreferences)55 View (android.view.View)25 TextView (android.widget.TextView)21 Intent (android.content.Intent)18 AlertDialog (androidx.appcompat.app.AlertDialog)15 ArrayList (java.util.ArrayList)15 SpoilerRobotoTextView (me.ccrama.redditslide.SpoilerRobotoTextView)13 Context (android.content.Context)12 LayoutInflater (android.view.LayoutInflater)12 ContextThemeWrapper (androidx.appcompat.view.ContextThemeWrapper)12 RecyclerView (androidx.recyclerview.widget.RecyclerView)11 SubmissionsView (me.ccrama.redditslide.Fragments.SubmissionsView)11 ImageView (android.widget.ImageView)10 HorizontalScrollView (android.widget.HorizontalScrollView)9 ViewPager (androidx.viewpager.widget.ViewPager)9 MaterialDialog (com.afollestad.materialdialogs.MaterialDialog)9 Snackbar (com.google.android.material.snackbar.Snackbar)8 LinearInterpolator (android.view.animation.LinearInterpolator)7 Dialog (android.app.Dialog)6 AutoCompleteTextView (android.widget.AutoCompleteTextView)6