use of me.ccrama.redditslide.Activities.Tumblr in project Slide by ccrama.
the class GalleryView method onBindViewHolder.
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder2, final int i) {
if (holder2 instanceof AlbumViewHolder) {
final AlbumViewHolder holder = (AlbumViewHolder) holder2;
final Submission submission = posts.get(i);
if (submission.getThumbnails() != null && submission.getThumbnails().getSource() != null) {
((Reddit) main.getApplicationContext()).getImageLoader().displayImage(submission.getThumbnails().getSource().getUrl(), holder.image, ImageGridAdapter.options);
} else {
((Reddit) main.getApplicationContext()).getImageLoader().displayImage(submission.getUrl(), holder.image, ImageGridAdapter.options);
}
double h = 0;
int height = 0;
if (submission.getThumbnails() != null) {
Thumbnails.Image source = submission.getThumbnails().getSource();
if (source != null) {
h = getHeightFromAspectRatio(source.getHeight(), source.getWidth(), holder.image.getWidth());
height = source.getHeight();
}
}
holder.type.setVisibility(View.VISIBLE);
switch(ContentType.getContentType(submission)) {
case ALBUM:
holder.type.setImageResource(R.drawable.album);
break;
case EXTERNAL:
case LINK:
case REDDIT:
holder.type.setImageResource(R.drawable.world);
break;
case SELF:
holder.type.setImageResource(R.drawable.fontsizedarker);
break;
case EMBEDDED:
case GIF:
case STREAMABLE:
case VIDEO:
case VID_ME:
holder.type.setImageResource(R.drawable.play);
break;
default:
holder.type.setVisibility(View.GONE);
break;
}
if (h != 0) {
if (h > 3200) {
holder.image.setLayoutParams(new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, 3200));
} else {
holder.image.setLayoutParams(new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, (int) h));
}
} else {
if (height > 3200) {
holder.image.setLayoutParams(new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, 3200));
} else {
holder.image.setLayoutParams(new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT));
}
}
holder.comments.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
v.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS);
Intent i2 = new Intent(main, CommentsScreen.class);
i2.putExtra(CommentsScreen.EXTRA_PAGE, main.subredditPosts.getPosts().indexOf(submission));
i2.putExtra(CommentsScreen.EXTRA_SUBREDDIT, subreddit);
i2.putExtra("fullname", submission.getFullName());
main.startActivity(i2);
}
});
holder.image.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
if (main != null) {
BottomSheet.Builder b = new BottomSheet.Builder(main).title(submission.getUrl()).grid();
int[] attrs = new int[] { R.attr.tintColor };
TypedArray ta = main.obtainStyledAttributes(attrs);
int color = ta.getColor(0, Color.WHITE);
Drawable open = main.getResources().getDrawable(R.drawable.ic_open_in_browser);
open.setColorFilter(color, PorterDuff.Mode.SRC_ATOP);
Drawable share = main.getResources().getDrawable(R.drawable.ic_share);
share.setColorFilter(color, PorterDuff.Mode.SRC_ATOP);
Drawable copy = main.getResources().getDrawable(R.drawable.ic_content_copy);
copy.setColorFilter(color, PorterDuff.Mode.SRC_ATOP);
ta.recycle();
b.sheet(R.id.open_link, open, main.getResources().getString(R.string.submission_link_extern));
b.sheet(R.id.share_link, share, main.getResources().getString(R.string.share_link));
b.sheet(R.id.copy_link, copy, main.getResources().getString(R.string.submission_link_copy));
b.listener(new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch(which) {
case R.id.open_link:
LinkUtil.openExternally(submission.getUrl(), main);
break;
case R.id.share_link:
Reddit.defaultShareText("", submission.getUrl(), main);
break;
case R.id.copy_link:
LinkUtil.copyUrl(submission.getUrl(), main);
break;
}
}
}).show();
return true;
}
return true;
}
});
holder.image.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ContentType.Type type = ContentType.getContentType(submission);
if (!PostMatch.openExternal(submission.getUrl()) || type == ContentType.Type.VIDEO) {
switch(type) {
case VID_ME:
case STREAMABLE:
if (SettingValues.video) {
Intent myIntent = new Intent(main, MediaView.class);
myIntent.putExtra(MediaView.SUBREDDIT, subreddit);
myIntent.putExtra(MediaView.EXTRA_URL, submission.getUrl());
main.startActivity(myIntent);
} else {
LinkUtil.openExternally(submission.getUrl(), main);
}
break;
case IMGUR:
PopulateSubmissionViewHolder.openImage(type, main, submission, null, holder.getAdapterPosition());
break;
case EMBEDDED:
if (SettingValues.video) {
String data = Html.fromHtml(submission.getDataNode().get("media_embed").get("content").asText()).toString();
{
Intent i = new Intent(main, FullscreenVideo.class);
i.putExtra(FullscreenVideo.EXTRA_HTML, data);
main.startActivity(i);
}
} else {
LinkUtil.openExternally(submission.getUrl(), main);
}
break;
case REDDIT:
PopulateSubmissionViewHolder.openRedditContent(submission.getUrl(), main);
break;
case LINK:
LinkUtil.openUrl(submission.getUrl(), Palette.getColor(submission.getSubredditName()), main);
break;
case ALBUM:
if (SettingValues.album) {
if (SettingValues.albumSwipe) {
Intent i = new Intent(main, AlbumPager.class);
i.putExtra(AlbumPager.SUBREDDIT, subreddit);
i.putExtra(Album.EXTRA_URL, submission.getUrl());
main.startActivity(i);
} else {
Intent i = new Intent(main, Album.class);
i.putExtra(Album.SUBREDDIT, subreddit);
i.putExtra(Album.EXTRA_URL, submission.getUrl());
main.startActivity(i);
}
} else {
LinkUtil.openExternally(submission.getUrl(), main);
}
break;
case TUMBLR:
if (SettingValues.image) {
if (SettingValues.albumSwipe) {
Intent i = new Intent(main, TumblrPager.class);
i.putExtra(TumblrPager.SUBREDDIT, subreddit);
i.putExtra(Album.EXTRA_URL, submission.getUrl());
main.startActivity(i);
} else {
Intent i = new Intent(main, Tumblr.class);
i.putExtra(Tumblr.SUBREDDIT, subreddit);
i.putExtra(Album.EXTRA_URL, submission.getUrl());
main.startActivity(i);
}
} else {
LinkUtil.openExternally(submission.getUrl(), main);
}
break;
case DEVIANTART:
case XKCD:
case IMAGE:
PopulateSubmissionViewHolder.openImage(type, main, submission, null, holder.getAdapterPosition());
break;
case GIF:
PopulateSubmissionViewHolder.openGif(main, submission, holder.getAdapterPosition());
break;
case NONE:
case SELF:
holder.comments.callOnClick();
break;
case VIDEO:
if (Reddit.videoPlugin) {
try {
Intent sharingIntent = new Intent(Intent.ACTION_SEND);
sharingIntent.setClassName("ccrama.me.slideyoutubeplugin", "ccrama.me.slideyoutubeplugin.YouTubeView");
sharingIntent.putExtra("url", submission.getUrl());
main.startActivity(sharingIntent);
} catch (Exception e) {
LinkUtil.openExternally(submission.getUrl(), main);
}
} else {
LinkUtil.openExternally(submission.getUrl(), main);
}
break;
}
} else {
LinkUtil.openExternally(submission.getUrl(), main);
}
}
});
}
}
use of me.ccrama.redditslide.Activities.Tumblr in project Slide by ccrama.
the class MediaFragment method addClickFunctions.
private static void addClickFunctions(final View base, final SlidingUpPanelLayout slidingPanel, final View clickingArea, final ContentType.Type type, final Activity contextActivity, final Submission submission) {
base.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (slidingPanel.getPanelState() == SlidingUpPanelLayout.PanelState.EXPANDED) {
slidingPanel.setPanelState(SlidingUpPanelLayout.PanelState.COLLAPSED);
} else {
switch(type) {
case VID_ME:
case STREAMABLE:
if (SettingValues.video) {
Intent myIntent = new Intent(contextActivity, MediaView.class);
myIntent.putExtra(MediaView.EXTRA_URL, submission.getUrl());
myIntent.putExtra(MediaView.SUBREDDIT, submission.getSubredditName());
contextActivity.startActivity(myIntent);
} else {
LinkUtil.openExternally(submission.getUrl(), contextActivity);
}
case EMBEDDED:
if (SettingValues.video) {
LinkUtil.openExternally(submission.getUrl(), contextActivity);
String data = submission.getDataNode().get("media_embed").get("content").asText();
{
Intent i = new Intent(contextActivity, FullscreenVideo.class);
i.putExtra(FullscreenVideo.EXTRA_HTML, data);
contextActivity.startActivity(i);
}
} else {
LinkUtil.openExternally(submission.getUrl(), contextActivity);
}
break;
case REDDIT:
PopulateSubmissionViewHolder.openRedditContent(submission.getUrl(), contextActivity);
break;
case LINK:
LinkUtil.openUrl(submission.getUrl(), Palette.getColor(submission.getSubredditName()), contextActivity);
break;
case SELF:
break;
case ALBUM:
if (SettingValues.album) {
if (SettingValues.albumSwipe) {
Intent i = new Intent(contextActivity, AlbumPager.class);
i.putExtra(Album.EXTRA_URL, submission.getUrl());
i.putExtra(AlbumPager.SUBREDDIT, submission.getSubredditName());
contextActivity.startActivity(i);
} else {
Intent i = new Intent(contextActivity, Album.class);
i.putExtra(Album.EXTRA_URL, submission.getUrl());
i.putExtra(Album.SUBREDDIT, submission.getSubredditName());
contextActivity.startActivity(i);
}
} else {
LinkUtil.openExternally(submission.getUrl(), contextActivity);
}
break;
case TUMBLR:
if (SettingValues.image) {
if (SettingValues.albumSwipe) {
Intent i = new Intent(contextActivity, TumblrPager.class);
i.putExtra(Album.EXTRA_URL, submission.getUrl());
i.putExtra(TumblrPager.SUBREDDIT, submission.getSubredditName());
contextActivity.startActivity(i);
} else {
Intent i = new Intent(contextActivity, Tumblr.class);
i.putExtra(Album.EXTRA_URL, submission.getUrl());
i.putExtra(Tumblr.SUBREDDIT, submission.getSubredditName());
contextActivity.startActivity(i);
}
} else {
LinkUtil.openExternally(submission.getUrl(), contextActivity);
}
break;
case DEVIANTART:
case XKCD:
case IMAGE:
PopulateSubmissionViewHolder.openImage(type, contextActivity, submission, null, -1);
break;
case GIF:
PopulateSubmissionViewHolder.openGif(contextActivity, submission, -1);
break;
case NONE:
break;
case VIDEO:
if (Reddit.videoPlugin) {
try {
Intent sharingIntent = new Intent(Intent.ACTION_SEND);
sharingIntent.setClassName("ccrama.me.slideyoutubeplugin", "ccrama.me.slideyoutubeplugin.YouTubeView");
sharingIntent.putExtra("url", submission.getUrl());
contextActivity.startActivity(sharingIntent);
} catch (Exception e) {
LinkUtil.openExternally(submission.getUrl(), contextActivity);
}
} else {
LinkUtil.openExternally(submission.getUrl(), contextActivity);
}
}
}
}
});
}
Aggregations