diff options
author | Alex Ning <chineseperson5@gmail.com> | 2020-07-06 14:14:58 +0000 |
---|---|---|
committer | Alex Ning <chineseperson5@gmail.com> | 2020-07-06 14:14:58 +0000 |
commit | ba2a219168721680cd6e5e553a35a7cbf2614e22 (patch) | |
tree | 3f7ca7211e500aa0473c21438d26cc4b20a971ee /app | |
parent | 3ef4b90a63a55e712babecf1ad9ac8972a255a91 (diff) | |
download | infinity-for-reddit-ba2a219168721680cd6e5e553a35a7cbf2614e22.tar infinity-for-reddit-ba2a219168721680cd6e5e553a35a7cbf2614e22.tar.gz infinity-for-reddit-ba2a219168721680cd6e5e553a35a7cbf2614e22.tar.bz2 infinity-for-reddit-ba2a219168721680cd6e5e553a35a7cbf2614e22.tar.lz infinity-for-reddit-ba2a219168721680cd6e5e553a35a7cbf2614e22.tar.xz infinity-for-reddit-ba2a219168721680cd6e5e553a35a7cbf2614e22.tar.zst infinity-for-reddit-ba2a219168721680cd6e5e553a35a7cbf2614e22.zip |
Show a preview image before autoplaying video is loaded.
Diffstat (limited to 'app')
3 files changed, 28 insertions, 2 deletions
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/Adapter/PostRecyclerViewAdapter.java b/app/src/main/java/ml/docilealligator/infinityforreddit/Adapter/PostRecyclerViewAdapter.java index 0537e0e8..7bc347b6 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/Adapter/PostRecyclerViewAdapter.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/Adapter/PostRecyclerViewAdapter.java @@ -522,6 +522,8 @@ public class PostRecyclerViewAdapter extends PagedListAdapter<Post, RecyclerView if (holder instanceof PostVideoAutoplayViewHolder) { ((PostVideoAutoplayViewHolder) holder).aspectRatioFrameLayout.setAspectRatio((float) post.getPreviewWidth() / post.getPreviewHeight()); + ((PostVideoAutoplayViewHolder) holder).previewImageView.setVisibility(View.VISIBLE); + mGlide.load(post.getPreviewUrl()).apply(RequestOptions.noTransformation()).into(((PostVideoAutoplayViewHolder) holder).previewImageView); ((PostVideoAutoplayViewHolder) holder).bindVideoUri(Uri.parse(post.getVideoUrl())); } else if (holder instanceof PostVideoAndGifPreviewViewHolder) { if (post.getPostType() == Post.VIDEO_TYPE) { @@ -1351,6 +1353,8 @@ public class PostRecyclerViewAdapter extends PagedListAdapter<Post, RecyclerView if (holder instanceof PostVideoAutoplayViewHolder) { ((PostVideoAutoplayViewHolder) holder).muteButton.setVisibility(View.GONE); ((PostVideoAutoplayViewHolder) holder).resetVolume(); + mGlide.clear(((PostVideoAutoplayViewHolder) holder).previewImageView); + ((PostVideoAutoplayViewHolder) holder).previewImageView.setVisibility(View.GONE); } else if (holder instanceof PostImageAndGifAutoplayViewHolder) { mGlide.clear(((PostImageAndGifAutoplayViewHolder) holder).imageView); ((PostImageAndGifAutoplayViewHolder) holder).imageView.setScaleType(ImageView.ScaleType.FIT_START); @@ -1884,6 +1888,8 @@ public class PostRecyclerViewAdapter extends PagedListAdapter<Post, RecyclerView CustomTextView awardsTextView; @BindView(R.id.aspect_ratio_frame_layout_item_post_video_type_autoplay) AspectRatioFrameLayout aspectRatioFrameLayout; + @BindView(R.id.preview_image_view_item_post_video_type_autoplay) + ImageView previewImageView; @BindView(R.id.player_view_item_post_video_type_autoplay) PlayerView videoPlayer; @BindView(R.id.mute_exo_playback_control_view) @@ -2024,6 +2030,12 @@ public class PostRecyclerViewAdapter extends PagedListAdapter<Post, RecyclerView public void onCues(List<Cue> cues) { } + + @Override + public void onRenderedFirstFrame() { + mGlide.clear(previewImageView); + previewImageView.setVisibility(View.GONE); + } }); } helper.initialize(container, playbackInfo); @@ -2054,7 +2066,7 @@ public class PostRecyclerViewAdapter extends PagedListAdapter<Post, RecyclerView @Override public boolean wantsToPlay() { - return ToroUtil.visibleAreaOffset(this, itemView.getParent()) >= 0.85; + return ToroUtil.visibleAreaOffset(this, itemView.getParent()) >= 0.75; } @Override diff --git a/app/src/main/res/layout/item_post_detail_video_autoplay.xml b/app/src/main/res/layout/item_post_detail_video_autoplay.xml index 6ee5736a..b8b75860 100644 --- a/app/src/main/res/layout/item_post_detail_video_autoplay.xml +++ b/app/src/main/res/layout/item_post_detail_video_autoplay.xml @@ -202,6 +202,13 @@ android:background="#000000" app:resize_mode="fixed_width"> + <ImageView + android:id="@+id/preview_image_view_item_post_detail_video_autoplay" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:scaleType="fitStart" + android:visibility="gone" /> + <com.google.android.exoplayer2.ui.PlayerView android:id="@+id/player_view_item_post_detail_video_autoplay" android:layout_width="match_parent" diff --git a/app/src/main/res/layout/item_post_video_type_autoplay.xml b/app/src/main/res/layout/item_post_video_type_autoplay.xml index 5db83d38..c5713565 100644 --- a/app/src/main/res/layout/item_post_video_type_autoplay.xml +++ b/app/src/main/res/layout/item_post_video_type_autoplay.xml @@ -206,7 +206,14 @@ android:id="@+id/player_view_item_post_video_type_autoplay" android:layout_width="match_parent" android:layout_height="match_parent" - app:controller_layout_id="@layout/exo_autoplay_playback_control_view"/> + app:controller_layout_id="@layout/exo_autoplay_playback_control_view" /> + + <ImageView + android:id="@+id/preview_image_view_item_post_video_type_autoplay" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:scaleType="fitStart" + android:visibility="gone" /> </com.google.android.exoplayer2.ui.AspectRatioFrameLayout> |