mirror of
https://codeberg.org/Bazsalanszky/Infinity-For-Lemmy.git
synced 2024-11-10 20:57:25 +01:00
Long click gallery layout.
This commit is contained in:
parent
7070959687
commit
db2c4d6c8d
@ -1737,6 +1737,54 @@ public class PostRecyclerViewAdapter extends PagedListAdapter<Post, RecyclerView
|
|||||||
mActivity.startActivity(intent);
|
mActivity.startActivity(intent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void openMedia(Post post) {
|
||||||
|
if (post.getPostType() == Post.VIDEO_TYPE) {
|
||||||
|
Intent intent = new Intent(mActivity, ViewVideoActivity.class);
|
||||||
|
if (post.isGfycat()) {
|
||||||
|
intent.putExtra(ViewVideoActivity.EXTRA_VIDEO_TYPE, ViewVideoActivity.VIDEO_TYPE_GFYCAT);
|
||||||
|
intent.putExtra(ViewVideoActivity.EXTRA_GFYCAT_ID, post.getGfycatId());
|
||||||
|
} else if (post.isRedgifs()) {
|
||||||
|
intent.putExtra(ViewVideoActivity.EXTRA_VIDEO_TYPE, ViewVideoActivity.VIDEO_TYPE_REDGIFS);
|
||||||
|
intent.putExtra(ViewVideoActivity.EXTRA_GFYCAT_ID, post.getGfycatId());
|
||||||
|
} else {
|
||||||
|
intent.setData(Uri.parse(post.getVideoUrl()));
|
||||||
|
intent.putExtra(ViewVideoActivity.EXTRA_SUBREDDIT, post.getSubredditName());
|
||||||
|
intent.putExtra(ViewVideoActivity.EXTRA_ID, post.getId());
|
||||||
|
intent.putExtra(ViewVideoActivity.EXTRA_VIDEO_DOWNLOAD_URL, post.getVideoDownloadUrl());
|
||||||
|
}
|
||||||
|
intent.putExtra(ViewVideoActivity.EXTRA_POST_TITLE, post.getTitle());
|
||||||
|
intent.putExtra(ViewVideoActivity.EXTRA_IS_NSFW, post.isNSFW());
|
||||||
|
mActivity.startActivity(intent);
|
||||||
|
} else if (post.getPostType() == Post.IMAGE_TYPE) {
|
||||||
|
Intent intent = new Intent(mActivity, ViewImageOrGifActivity.class);
|
||||||
|
intent.putExtra(ViewImageOrGifActivity.EXTRA_IMAGE_URL_KEY, post.getUrl());
|
||||||
|
intent.putExtra(ViewImageOrGifActivity.EXTRA_FILE_NAME_KEY, post.getSubredditName()
|
||||||
|
+ "-" + post.getId() + ".jpg");
|
||||||
|
intent.putExtra(ViewImageOrGifActivity.EXTRA_POST_TITLE_KEY, post.getTitle());
|
||||||
|
intent.putExtra(ViewImageOrGifActivity.EXTRA_SUBREDDIT_OR_USERNAME_KEY, post.getSubredditName());
|
||||||
|
mActivity.startActivity(intent);
|
||||||
|
} else if (post.getPostType() == Post.GIF_TYPE){
|
||||||
|
Intent intent = new Intent(mActivity, ViewImageOrGifActivity.class);
|
||||||
|
intent.putExtra(ViewImageOrGifActivity.EXTRA_FILE_NAME_KEY, post.getSubredditName()
|
||||||
|
+ "-" + post.getId() + ".gif");
|
||||||
|
intent.putExtra(ViewImageOrGifActivity.EXTRA_GIF_URL_KEY, post.getVideoUrl());
|
||||||
|
intent.putExtra(ViewImageOrGifActivity.EXTRA_POST_TITLE_KEY, post.getTitle());
|
||||||
|
intent.putExtra(ViewImageOrGifActivity.EXTRA_SUBREDDIT_OR_USERNAME_KEY, post.getSubredditName());
|
||||||
|
mActivity.startActivity(intent);
|
||||||
|
} else if (post.getPostType() == Post.LINK_TYPE || post.getPostType() == Post.NO_PREVIEW_LINK_TYPE) {
|
||||||
|
Intent intent = new Intent(mActivity, LinkResolverActivity.class);
|
||||||
|
Uri uri = Uri.parse(post.getUrl());
|
||||||
|
intent.setData(uri);
|
||||||
|
intent.putExtra(LinkResolverActivity.EXTRA_IS_NSFW, post.isNSFW());
|
||||||
|
mActivity.startActivity(intent);
|
||||||
|
} else if (post.getPostType() == Post.GALLERY_TYPE) {
|
||||||
|
Intent intent = new Intent(mActivity, ViewRedditGalleryActivity.class);
|
||||||
|
intent.putParcelableArrayListExtra(ViewRedditGalleryActivity.EXTRA_REDDIT_GALLERY, post.getGallery());
|
||||||
|
intent.putExtra(ViewRedditGalleryActivity.EXTRA_SUBREDDIT_NAME, post.getSubredditName());
|
||||||
|
mActivity.startActivity(intent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public class PostBaseViewHolder extends RecyclerView.ViewHolder {
|
public class PostBaseViewHolder extends RecyclerView.ViewHolder {
|
||||||
MaterialCardView cardView;
|
MaterialCardView cardView;
|
||||||
AspectRatioGifImageView iconGifImageView;
|
AspectRatioGifImageView iconGifImageView;
|
||||||
@ -2600,51 +2648,7 @@ public class PostRecyclerViewAdapter extends PagedListAdapter<Post, RecyclerView
|
|||||||
Post post = getItem(position);
|
Post post = getItem(position);
|
||||||
if (post != null) {
|
if (post != null) {
|
||||||
markPostRead(post, true);
|
markPostRead(post, true);
|
||||||
if (post.getPostType() == Post.VIDEO_TYPE) {
|
openMedia(post);
|
||||||
Intent intent = new Intent(mActivity, ViewVideoActivity.class);
|
|
||||||
if (post.isGfycat()) {
|
|
||||||
intent.putExtra(ViewVideoActivity.EXTRA_VIDEO_TYPE, ViewVideoActivity.VIDEO_TYPE_GFYCAT);
|
|
||||||
intent.putExtra(ViewVideoActivity.EXTRA_GFYCAT_ID, post.getGfycatId());
|
|
||||||
} else if (post.isRedgifs()) {
|
|
||||||
intent.putExtra(ViewVideoActivity.EXTRA_VIDEO_TYPE, ViewVideoActivity.VIDEO_TYPE_REDGIFS);
|
|
||||||
intent.putExtra(ViewVideoActivity.EXTRA_GFYCAT_ID, post.getGfycatId());
|
|
||||||
} else {
|
|
||||||
intent.setData(Uri.parse(post.getVideoUrl()));
|
|
||||||
intent.putExtra(ViewVideoActivity.EXTRA_SUBREDDIT, post.getSubredditName());
|
|
||||||
intent.putExtra(ViewVideoActivity.EXTRA_ID, post.getId());
|
|
||||||
intent.putExtra(ViewVideoActivity.EXTRA_VIDEO_DOWNLOAD_URL, post.getVideoDownloadUrl());
|
|
||||||
}
|
|
||||||
intent.putExtra(ViewVideoActivity.EXTRA_POST_TITLE, post.getTitle());
|
|
||||||
intent.putExtra(ViewVideoActivity.EXTRA_IS_NSFW, post.isNSFW());
|
|
||||||
mActivity.startActivity(intent);
|
|
||||||
} else if (post.getPostType() == Post.IMAGE_TYPE) {
|
|
||||||
Intent intent = new Intent(mActivity, ViewImageOrGifActivity.class);
|
|
||||||
intent.putExtra(ViewImageOrGifActivity.EXTRA_IMAGE_URL_KEY, post.getUrl());
|
|
||||||
intent.putExtra(ViewImageOrGifActivity.EXTRA_FILE_NAME_KEY, post.getSubredditName()
|
|
||||||
+ "-" + post.getId() + ".jpg");
|
|
||||||
intent.putExtra(ViewImageOrGifActivity.EXTRA_POST_TITLE_KEY, post.getTitle());
|
|
||||||
intent.putExtra(ViewImageOrGifActivity.EXTRA_SUBREDDIT_OR_USERNAME_KEY, post.getSubredditName());
|
|
||||||
mActivity.startActivity(intent);
|
|
||||||
} else if (post.getPostType() == Post.GIF_TYPE){
|
|
||||||
Intent intent = new Intent(mActivity, ViewImageOrGifActivity.class);
|
|
||||||
intent.putExtra(ViewImageOrGifActivity.EXTRA_FILE_NAME_KEY, post.getSubredditName()
|
|
||||||
+ "-" + post.getId() + ".gif");
|
|
||||||
intent.putExtra(ViewImageOrGifActivity.EXTRA_GIF_URL_KEY, post.getVideoUrl());
|
|
||||||
intent.putExtra(ViewImageOrGifActivity.EXTRA_POST_TITLE_KEY, post.getTitle());
|
|
||||||
intent.putExtra(ViewImageOrGifActivity.EXTRA_SUBREDDIT_OR_USERNAME_KEY, post.getSubredditName());
|
|
||||||
mActivity.startActivity(intent);
|
|
||||||
} else if (post.getPostType() == Post.LINK_TYPE || post.getPostType() == Post.NO_PREVIEW_LINK_TYPE) {
|
|
||||||
Intent intent = new Intent(mActivity, LinkResolverActivity.class);
|
|
||||||
Uri uri = Uri.parse(post.getUrl());
|
|
||||||
intent.setData(uri);
|
|
||||||
intent.putExtra(LinkResolverActivity.EXTRA_IS_NSFW, post.isNSFW());
|
|
||||||
mActivity.startActivity(intent);
|
|
||||||
} else if (post.getPostType() == Post.GALLERY_TYPE) {
|
|
||||||
Intent intent = new Intent(mActivity, ViewRedditGalleryActivity.class);
|
|
||||||
intent.putParcelableArrayListExtra(ViewRedditGalleryActivity.EXTRA_REDDIT_GALLERY, post.getGallery());
|
|
||||||
intent.putExtra(ViewRedditGalleryActivity.EXTRA_SUBREDDIT_NAME, post.getSubredditName());
|
|
||||||
mActivity.startActivity(intent);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -2965,51 +2969,7 @@ public class PostRecyclerViewAdapter extends PagedListAdapter<Post, RecyclerView
|
|||||||
Post post = getItem(position);
|
Post post = getItem(position);
|
||||||
if (post != null) {
|
if (post != null) {
|
||||||
markPostRead(post, true);
|
markPostRead(post, true);
|
||||||
if (post.getPostType() == Post.VIDEO_TYPE) {
|
openMedia(post);
|
||||||
Intent intent = new Intent(mActivity, ViewVideoActivity.class);
|
|
||||||
if (post.isGfycat()) {
|
|
||||||
intent.putExtra(ViewVideoActivity.EXTRA_VIDEO_TYPE, ViewVideoActivity.VIDEO_TYPE_GFYCAT);
|
|
||||||
intent.putExtra(ViewVideoActivity.EXTRA_GFYCAT_ID, post.getGfycatId());
|
|
||||||
} else if (post.isRedgifs()) {
|
|
||||||
intent.putExtra(ViewVideoActivity.EXTRA_VIDEO_TYPE, ViewVideoActivity.VIDEO_TYPE_REDGIFS);
|
|
||||||
intent.putExtra(ViewVideoActivity.EXTRA_GFYCAT_ID, post.getGfycatId());
|
|
||||||
} else {
|
|
||||||
intent.setData(Uri.parse(post.getVideoUrl()));
|
|
||||||
intent.putExtra(ViewVideoActivity.EXTRA_SUBREDDIT, post.getSubredditName());
|
|
||||||
intent.putExtra(ViewVideoActivity.EXTRA_ID, post.getId());
|
|
||||||
intent.putExtra(ViewVideoActivity.EXTRA_VIDEO_DOWNLOAD_URL, post.getVideoDownloadUrl());
|
|
||||||
}
|
|
||||||
intent.putExtra(ViewVideoActivity.EXTRA_POST_TITLE, post.getTitle());
|
|
||||||
intent.putExtra(ViewVideoActivity.EXTRA_IS_NSFW, post.isNSFW());
|
|
||||||
mActivity.startActivity(intent);
|
|
||||||
} else if (post.getPostType() == Post.IMAGE_TYPE) {
|
|
||||||
Intent intent = new Intent(mActivity, ViewImageOrGifActivity.class);
|
|
||||||
intent.putExtra(ViewImageOrGifActivity.EXTRA_IMAGE_URL_KEY, post.getUrl());
|
|
||||||
intent.putExtra(ViewImageOrGifActivity.EXTRA_FILE_NAME_KEY, post.getSubredditName()
|
|
||||||
+ "-" + post.getId() + ".jpg");
|
|
||||||
intent.putExtra(ViewImageOrGifActivity.EXTRA_POST_TITLE_KEY, post.getTitle());
|
|
||||||
intent.putExtra(ViewImageOrGifActivity.EXTRA_SUBREDDIT_OR_USERNAME_KEY, post.getSubredditName());
|
|
||||||
mActivity.startActivity(intent);
|
|
||||||
} else if (post.getPostType() == Post.GIF_TYPE){
|
|
||||||
Intent intent = new Intent(mActivity, ViewImageOrGifActivity.class);
|
|
||||||
intent.putExtra(ViewImageOrGifActivity.EXTRA_FILE_NAME_KEY, post.getSubredditName()
|
|
||||||
+ "-" + post.getId() + ".gif");
|
|
||||||
intent.putExtra(ViewImageOrGifActivity.EXTRA_GIF_URL_KEY, post.getVideoUrl());
|
|
||||||
intent.putExtra(ViewImageOrGifActivity.EXTRA_POST_TITLE_KEY, post.getTitle());
|
|
||||||
intent.putExtra(ViewImageOrGifActivity.EXTRA_SUBREDDIT_OR_USERNAME_KEY, post.getSubredditName());
|
|
||||||
mActivity.startActivity(intent);
|
|
||||||
} else if (post.getPostType() == Post.LINK_TYPE || post.getPostType() == Post.NO_PREVIEW_LINK_TYPE) {
|
|
||||||
Intent intent = new Intent(mActivity, LinkResolverActivity.class);
|
|
||||||
Uri uri = Uri.parse(post.getUrl());
|
|
||||||
intent.setData(uri);
|
|
||||||
intent.putExtra(LinkResolverActivity.EXTRA_IS_NSFW, post.isNSFW());
|
|
||||||
mActivity.startActivity(intent);
|
|
||||||
} else if (post.getPostType() == Post.GALLERY_TYPE) {
|
|
||||||
Intent intent = new Intent(mActivity, ViewRedditGalleryActivity.class);
|
|
||||||
intent.putParcelableArrayListExtra(ViewRedditGalleryActivity.EXTRA_REDDIT_GALLERY, post.getGallery());
|
|
||||||
intent.putExtra(ViewRedditGalleryActivity.EXTRA_SUBREDDIT_NAME, post.getSubredditName());
|
|
||||||
mActivity.startActivity(intent);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -3478,56 +3438,31 @@ public class PostRecyclerViewAdapter extends PagedListAdapter<Post, RecyclerView
|
|||||||
if (post.getPostType() == Post.TEXT_TYPE || !mSharedPreferences.getBoolean(SharedPreferencesUtils.CLICK_TO_SHOW_MEDIA_IN_GALLERY_LAYOUT, false)) {
|
if (post.getPostType() == Post.TEXT_TYPE || !mSharedPreferences.getBoolean(SharedPreferencesUtils.CLICK_TO_SHOW_MEDIA_IN_GALLERY_LAYOUT, false)) {
|
||||||
openViewPostDetailActivity(post, getBindingAdapterPosition());
|
openViewPostDetailActivity(post, getBindingAdapterPosition());
|
||||||
} else {
|
} else {
|
||||||
if (post.getPostType() == Post.VIDEO_TYPE) {
|
openMedia(post);
|
||||||
Intent intent = new Intent(mActivity, ViewVideoActivity.class);
|
|
||||||
if (post.isGfycat()) {
|
|
||||||
intent.putExtra(ViewVideoActivity.EXTRA_VIDEO_TYPE, ViewVideoActivity.VIDEO_TYPE_GFYCAT);
|
|
||||||
intent.putExtra(ViewVideoActivity.EXTRA_GFYCAT_ID, post.getGfycatId());
|
|
||||||
} else if (post.isRedgifs()) {
|
|
||||||
intent.putExtra(ViewVideoActivity.EXTRA_VIDEO_TYPE, ViewVideoActivity.VIDEO_TYPE_REDGIFS);
|
|
||||||
intent.putExtra(ViewVideoActivity.EXTRA_GFYCAT_ID, post.getGfycatId());
|
|
||||||
} else {
|
|
||||||
intent.setData(Uri.parse(post.getVideoUrl()));
|
|
||||||
intent.putExtra(ViewVideoActivity.EXTRA_SUBREDDIT, post.getSubredditName());
|
|
||||||
intent.putExtra(ViewVideoActivity.EXTRA_ID, post.getId());
|
|
||||||
intent.putExtra(ViewVideoActivity.EXTRA_VIDEO_DOWNLOAD_URL, post.getVideoDownloadUrl());
|
|
||||||
}
|
|
||||||
intent.putExtra(ViewVideoActivity.EXTRA_POST_TITLE, post.getTitle());
|
|
||||||
intent.putExtra(ViewVideoActivity.EXTRA_IS_NSFW, post.isNSFW());
|
|
||||||
mActivity.startActivity(intent);
|
|
||||||
} else if (post.getPostType() == Post.IMAGE_TYPE) {
|
|
||||||
Intent intent = new Intent(mActivity, ViewImageOrGifActivity.class);
|
|
||||||
intent.putExtra(ViewImageOrGifActivity.EXTRA_IMAGE_URL_KEY, post.getUrl());
|
|
||||||
intent.putExtra(ViewImageOrGifActivity.EXTRA_FILE_NAME_KEY, post.getSubredditName()
|
|
||||||
+ "-" + post.getId() + ".jpg");
|
|
||||||
intent.putExtra(ViewImageOrGifActivity.EXTRA_POST_TITLE_KEY, post.getTitle());
|
|
||||||
intent.putExtra(ViewImageOrGifActivity.EXTRA_SUBREDDIT_OR_USERNAME_KEY, post.getSubredditName());
|
|
||||||
mActivity.startActivity(intent);
|
|
||||||
} else if (post.getPostType() == Post.GIF_TYPE){
|
|
||||||
Intent intent = new Intent(mActivity, ViewImageOrGifActivity.class);
|
|
||||||
intent.putExtra(ViewImageOrGifActivity.EXTRA_FILE_NAME_KEY, post.getSubredditName()
|
|
||||||
+ "-" + post.getId() + ".gif");
|
|
||||||
intent.putExtra(ViewImageOrGifActivity.EXTRA_GIF_URL_KEY, post.getVideoUrl());
|
|
||||||
intent.putExtra(ViewImageOrGifActivity.EXTRA_POST_TITLE_KEY, post.getTitle());
|
|
||||||
intent.putExtra(ViewImageOrGifActivity.EXTRA_SUBREDDIT_OR_USERNAME_KEY, post.getSubredditName());
|
|
||||||
mActivity.startActivity(intent);
|
|
||||||
} else if (post.getPostType() == Post.LINK_TYPE || post.getPostType() == Post.NO_PREVIEW_LINK_TYPE) {
|
|
||||||
Intent intent = new Intent(mActivity, LinkResolverActivity.class);
|
|
||||||
Uri uri = Uri.parse(post.getUrl());
|
|
||||||
intent.setData(uri);
|
|
||||||
intent.putExtra(LinkResolverActivity.EXTRA_IS_NSFW, post.isNSFW());
|
|
||||||
mActivity.startActivity(intent);
|
|
||||||
} else if (post.getPostType() == Post.GALLERY_TYPE) {
|
|
||||||
Intent intent = new Intent(mActivity, ViewRedditGalleryActivity.class);
|
|
||||||
intent.putParcelableArrayListExtra(ViewRedditGalleryActivity.EXTRA_REDDIT_GALLERY, post.getGallery());
|
|
||||||
intent.putExtra(ViewRedditGalleryActivity.EXTRA_SUBREDDIT_NAME, post.getSubredditName());
|
|
||||||
mActivity.startActivity(intent);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
itemView.setOnLongClickListener(view -> {
|
||||||
|
int position = getBindingAdapterPosition();
|
||||||
|
if (position >= 0 && canStartActivity) {
|
||||||
|
Post post = getItem(position);
|
||||||
|
if (post != null) {
|
||||||
|
markPostRead(post, true);
|
||||||
|
canStartActivity = false;
|
||||||
|
|
||||||
|
if (post.getPostType() == Post.TEXT_TYPE || mSharedPreferences.getBoolean(SharedPreferencesUtils.CLICK_TO_SHOW_MEDIA_IN_GALLERY_LAYOUT, false)) {
|
||||||
|
openViewPostDetailActivity(post, getBindingAdapterPosition());
|
||||||
|
} else {
|
||||||
|
openMedia(post);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
|
||||||
noPreviewImageView.setOnClickListener(view -> {
|
noPreviewImageView.setOnClickListener(view -> {
|
||||||
itemView.performClick();
|
itemView.performClick();
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user