Search in sources :

Example 1 with Tumblr

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);
                }
            }
        });
    }
}
Also used : DialogInterface(android.content.DialogInterface) Tumblr(me.ccrama.redditslide.Activities.Tumblr) Album(me.ccrama.redditslide.Activities.Album) MediaView(me.ccrama.redditslide.Activities.MediaView) TypedArray(android.content.res.TypedArray) TumblrPager(me.ccrama.redditslide.Activities.TumblrPager) CommentsScreen(me.ccrama.redditslide.Activities.CommentsScreen) Submission(net.dean.jraw.models.Submission) Drawable(android.graphics.drawable.Drawable) Thumbnails(net.dean.jraw.models.Thumbnails) Intent(android.content.Intent) MediaView(me.ccrama.redditslide.Activities.MediaView) ImageView(android.widget.ImageView) View(android.view.View) RecyclerView(android.support.v7.widget.RecyclerView) ContentType(me.ccrama.redditslide.ContentType) AlbumPager(me.ccrama.redditslide.Activities.AlbumPager) RelativeLayout(android.widget.RelativeLayout) BottomSheet(com.cocosw.bottomsheet.BottomSheet)

Example 2 with Tumblr

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);
                        }
                }
            }
        }
    });
}
Also used : AlbumPager(me.ccrama.redditslide.Activities.AlbumPager) Tumblr(me.ccrama.redditslide.Activities.Tumblr) TumblrPager(me.ccrama.redditslide.Activities.TumblrPager) Album(me.ccrama.redditslide.Activities.Album) Intent(android.content.Intent) MediaView(me.ccrama.redditslide.Activities.MediaView) ImageView(android.widget.ImageView) View(android.view.View) MediaVideoView(me.ccrama.redditslide.Views.MediaVideoView) SubsamplingScaleImageView(me.ccrama.redditslide.Views.SubsamplingScaleImageView) MediaView(me.ccrama.redditslide.Activities.MediaView) IOException(java.io.IOException)

Aggregations

Intent (android.content.Intent)2 View (android.view.View)2 ImageView (android.widget.ImageView)2 Album (me.ccrama.redditslide.Activities.Album)2 AlbumPager (me.ccrama.redditslide.Activities.AlbumPager)2 MediaView (me.ccrama.redditslide.Activities.MediaView)2 Tumblr (me.ccrama.redditslide.Activities.Tumblr)2 TumblrPager (me.ccrama.redditslide.Activities.TumblrPager)2 DialogInterface (android.content.DialogInterface)1 TypedArray (android.content.res.TypedArray)1 Drawable (android.graphics.drawable.Drawable)1 RecyclerView (android.support.v7.widget.RecyclerView)1 RelativeLayout (android.widget.RelativeLayout)1 BottomSheet (com.cocosw.bottomsheet.BottomSheet)1 IOException (java.io.IOException)1 CommentsScreen (me.ccrama.redditslide.Activities.CommentsScreen)1 ContentType (me.ccrama.redditslide.ContentType)1 MediaVideoView (me.ccrama.redditslide.Views.MediaVideoView)1 SubsamplingScaleImageView (me.ccrama.redditslide.Views.SubsamplingScaleImageView)1 Submission (net.dean.jraw.models.Submission)1