mirror of
https://github.com/yuliskov/SmartTube.git
synced 2026-01-06 22:10:32 -06:00
animated previews: final
This commit is contained in:
Submodule MediaServiceCore updated: 49caabc237...0f4744621f
@@ -88,7 +88,7 @@ public class CardPresenter extends Presenter {
|
||||
cardView.setTitleText(video.title);
|
||||
cardView.setContentText(video.description);
|
||||
cardView.setBadgeText(video.badge);
|
||||
//cardView.setPreviewUrl(video.previewUrl);
|
||||
cardView.setPreviewUrl(video.previewUrl);
|
||||
|
||||
if (video.cardImageUrl != null) {
|
||||
// Set card size from dimension resources.
|
||||
|
||||
@@ -3,6 +3,8 @@ package com.liskovsoft.smartyoutubetv2.tv.ui.widgets.textbadgecard;
|
||||
import android.content.Context;
|
||||
import android.text.TextUtils.TruncateAt;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView.ScaleType;
|
||||
import android.widget.TextView;
|
||||
import androidx.leanback.widget.ImageCardView;
|
||||
import com.liskovsoft.smartyoutubetv2.tv.R;
|
||||
@@ -71,13 +73,40 @@ public class TextBadgeImageCardView extends ImageCardView {
|
||||
|
||||
private void enableVideoPreview(boolean selected) {
|
||||
if (selected) {
|
||||
mTextBadgeImageLayout.setLoading();
|
||||
mTextBadgeImageLayout.startPlayback();
|
||||
} else {
|
||||
mTextBadgeImageLayout.setFinished();
|
||||
mTextBadgeImageLayout.stopPlayback();
|
||||
}
|
||||
}
|
||||
|
||||
public void setPreviewUrl(String previewUrl) {
|
||||
mTextBadgeImageLayout.setPreviewUrl(previewUrl);
|
||||
}
|
||||
|
||||
/**
|
||||
* Enables or disables adjustment of view bounds on the main image.
|
||||
*/
|
||||
@Override
|
||||
public void setMainImageAdjustViewBounds(boolean adjustViewBounds) {
|
||||
super.setMainImageAdjustViewBounds(adjustViewBounds);
|
||||
mTextBadgeImageLayout.setMainImageAdjustViewBounds(adjustViewBounds);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the ScaleType of the main image.
|
||||
*/
|
||||
@Override
|
||||
public void setMainImageScaleType(ScaleType scaleType) {
|
||||
super.setMainImageScaleType(scaleType);
|
||||
mTextBadgeImageLayout.setMainImageScaleType(scaleType);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the layout dimensions of the ImageView.
|
||||
*/
|
||||
@Override
|
||||
public void setMainImageDimensions(int width, int height) {
|
||||
super.setMainImageDimensions(width, height);
|
||||
mTextBadgeImageLayout.setMainImageDimensions(width, height);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,9 @@ import android.content.Context;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.ImageView.ScaleType;
|
||||
import android.widget.RelativeLayout;
|
||||
import android.widget.TextView;
|
||||
import androidx.annotation.Nullable;
|
||||
@@ -74,17 +76,12 @@ public class TextBadgeImageView extends RelativeLayout {
|
||||
mPreviewUrl = videoUrl;
|
||||
}
|
||||
|
||||
//public ImageView getImageView() {
|
||||
// return mImageView;
|
||||
//}
|
||||
|
||||
public void setLoading() {
|
||||
public void startPlayback() {
|
||||
if (mPreviewUrl == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
mPreviewImage.setVisibility(View.VISIBLE);
|
||||
mMainImage.setVisibility(View.INVISIBLE);
|
||||
|
||||
Glide.with(getContext())
|
||||
.load(mPreviewUrl)
|
||||
@@ -97,21 +94,39 @@ public class TextBadgeImageView extends RelativeLayout {
|
||||
@Override
|
||||
public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource,
|
||||
boolean isFirstResource) {
|
||||
//mMainImage.setVisibility(View.GONE);
|
||||
//mPreviewImage.setVisibility(View.VISIBLE);
|
||||
mMainImage.setVisibility(View.GONE);
|
||||
return false;
|
||||
}
|
||||
})
|
||||
.into(mPreviewImage);
|
||||
}
|
||||
|
||||
public void setFinished() {
|
||||
public void stopPlayback() {
|
||||
if (mPreviewUrl == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
mPreviewImage.setVisibility(View.INVISIBLE);
|
||||
mPreviewImage.setImageDrawable(null);
|
||||
mMainImage.setVisibility(View.VISIBLE);
|
||||
mPreviewImage.setVisibility(View.GONE);
|
||||
mPreviewImage.setImageDrawable(null);
|
||||
}
|
||||
|
||||
public void setMainImageAdjustViewBounds(boolean adjustViewBounds) {
|
||||
if (mPreviewImage != null) {
|
||||
mPreviewImage.setAdjustViewBounds(adjustViewBounds);
|
||||
}
|
||||
}
|
||||
|
||||
public void setMainImageScaleType(ScaleType scaleType) {
|
||||
if (mPreviewImage != null) {
|
||||
mPreviewImage.setScaleType(scaleType);
|
||||
}
|
||||
}
|
||||
|
||||
public void setMainImageDimensions(int width, int height) {
|
||||
ViewGroup.LayoutParams lp = mPreviewImage.getLayoutParams();
|
||||
lp.width = width;
|
||||
lp.height = height;
|
||||
mPreviewImage.setLayoutParams(lp);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,18 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<merge xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<merge xmlns:tools="http://schemas.android.com/tools" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<ImageView
|
||||
android:id="@+id/main_image"
|
||||
tools:ignore="ContentDescription"
|
||||
style="?attr/imageCardViewImageStyle"/>
|
||||
<ImageView
|
||||
android:visibility="invisible"
|
||||
android:visibility="gone"
|
||||
android:id="@+id/preview_image"
|
||||
android:layout_alignTop="@+id/main_image"
|
||||
android:layout_alignStart="@+id/main_image"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:scaleType="centerCrop"
|
||||
android:adjustViewBounds="true"
|
||||
android:layout_alignTop="@+id/main_image"
|
||||
android:layout_alignStart="@+id/main_image"
|
||||
/>
|
||||
tools:ignore="ContentDescription"/>
|
||||
<TextView android:visibility="gone"
|
||||
android:id="@+id/extra_text_badge"
|
||||
android:layout_alignBottom="@+id/main_image"
|
||||
|
||||
Reference in New Issue
Block a user