diff options
author | Andrew Dolgov <[email protected]> | 2015-07-10 13:48:14 +0300 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2015-07-10 13:48:14 +0300 |
commit | a5da507b58da3b0347ef0ff4ad04b2c7e28ad84b (patch) | |
tree | 7094c8c087f8fbc66f234ab0a213ff865c82037b /org.fox.ttrss/src/main/java/org | |
parent | b30de39dd5e691fde7414b597db5cc89331d724e (diff) |
add separate drawables for youtube and video links, better cover drawable
Diffstat (limited to 'org.fox.ttrss/src/main/java/org')
-rwxr-xr-x | org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java | 41 |
1 files changed, 40 insertions, 1 deletions
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java index 45fb5480..94cf3c9d 100755 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java @@ -74,6 +74,8 @@ import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.TimeZone; +import java.util.regex.Matcher; +import java.util.regex.Pattern; public class HeadlinesFragment extends Fragment implements OnItemClickListener, OnScrollListener { public static enum ArticlesSelection { ALL, NONE, UNREAD } @@ -1032,6 +1034,7 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener, if (article.articleDoc != null && holder.flavorVideoPlayView != null) { Element video = article.articleDoc.select("video").first(); + Element ytframe = article.articleDoc.select("iframe[src*=youtube.com/embed/]").first(); if (video != null) { try { @@ -1040,7 +1043,9 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener, final String streamUri = source.attr("src"); String posterUri = video.attr("poster"); - if (streamUri != null && posterUri != null) { + Log.d(TAG, posterUri); + + if (streamUri.length() > 0 && posterUri.length() > 0) { if (!posterUri.equals(holder.flavorImageView.getTag())) { holder.flavorImageView.setTag(posterUri); @@ -1055,6 +1060,7 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener, holder.flavorImageLoadingBar.setVisibility(View.GONE); holder.flavorImageView.setVisibility(View.VISIBLE); holder.flavorVideoPlayView.setVisibility(View.VISIBLE); + holder.flavorVideoPlayView.setImageResource(R.drawable.flavor_video_play); ViewCompat.setTransitionName(holder.flavorImageView, "TRANSITION:ARTICLE_VIDEO_PLAYER"); @@ -1082,6 +1088,39 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener, e.printStackTrace(); videoFound = false; } + } else if (ytframe != null) { + // thumb: http://img.youtube.com/vi/{VID}/mqdefault.jpg + String srcEmbed = ytframe.attr("src"); + + if (srcEmbed.length() > 0) { + Pattern pattern = Pattern.compile("/embed/([\\w-]+)"); + Matcher matcher = pattern.matcher(srcEmbed); + + if (matcher.find()) { + String vid = matcher.group(1); + String thumbUri = "http://img.youtube.com/vi/"+vid+"/mqdefault.jpg"; + final String videoUri = "https://youtu.be/" + vid; + + videoFound = true; + + holder.flavorImageLoadingBar.setVisibility(View.GONE); + holder.flavorImageView.setVisibility(View.VISIBLE); + holder.flavorVideoPlayView.setVisibility(View.VISIBLE); + holder.flavorVideoPlayView.setImageResource(R.drawable.flavor_video_play_youtube); + + ImageAware imageAware = new ImageViewAware(holder.flavorImageView, false); + m_imageLoader.displayImage(thumbUri, imageAware, displayImageOptions); + + holder.flavorImageView.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(Intent.ACTION_VIEW, + Uri.parse(videoUri)); + startActivity(intent); + } + }); + } + } } } |