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);
}
}
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")));
}
}
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);
}
}
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());
}
}
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
}
});
}
Aggregations