2021-06-27 20:44:35 +00:00
|
|
|
package com.discord.widgets.chat.list;
|
|
|
|
|
|
|
|
import android.content.Context;
|
|
|
|
import android.util.AttributeSet;
|
|
|
|
import android.view.LayoutInflater;
|
|
|
|
import android.view.View;
|
|
|
|
import android.view.ViewGroup;
|
|
|
|
import android.widget.ImageView;
|
|
|
|
import android.widget.ProgressBar;
|
|
|
|
import androidx.cardview.widget.CardView;
|
|
|
|
import c.a.q.i;
|
|
|
|
import c.d.b.a.a;
|
|
|
|
import com.airbnb.lottie.parser.AnimatableValueParser;
|
|
|
|
import com.discord.api.message.attachment.MessageAttachment;
|
|
|
|
import com.discord.api.message.attachment.MessageAttachmentType;
|
|
|
|
import com.discord.api.message.embed.EmbedType;
|
|
|
|
import com.discord.api.message.embed.EmbedVideo;
|
|
|
|
import com.discord.api.message.embed.MessageEmbed;
|
|
|
|
import com.discord.app.AppComponent;
|
|
|
|
import com.discord.databinding.InlineMediaViewBinding;
|
|
|
|
import com.discord.embed.RenderableEmbedMedia;
|
|
|
|
import com.discord.player.AppMediaPlayer;
|
|
|
|
import com.discord.player.MediaSource;
|
|
|
|
import com.discord.player.MediaType;
|
|
|
|
import com.discord.stores.StoreStream;
|
|
|
|
import com.discord.stores.StoreUserSettings;
|
|
|
|
import com.discord.utilities.embed.EmbedResourceUtils;
|
|
|
|
import com.discord.utilities.images.MGImages;
|
|
|
|
import com.discord.utilities.rx.ObservableExtensionsKt;
|
|
|
|
import com.facebook.drawee.view.SimpleDraweeView;
|
|
|
|
import com.google.android.exoplayer2.ui.PlayerView;
|
|
|
|
import d0.z.d.m;
|
|
|
|
import kotlin.NoWhenBranchMatchedException;
|
|
|
|
import kotlin.jvm.functions.Function0;
|
|
|
|
import kotlin.jvm.functions.Function1;
|
|
|
|
import kotlin.jvm.internal.DefaultConstructorMarker;
|
|
|
|
import rx.Observable;
|
|
|
|
import rx.subjects.PublishSubject;
|
|
|
|
import rx.subjects.Subject;
|
|
|
|
import rx.subscriptions.CompositeSubscription;
|
|
|
|
/* compiled from: InlineMediaView.kt */
|
|
|
|
public final class InlineMediaView extends CardView implements View.OnAttachStateChangeListener, AppComponent {
|
|
|
|
private AppMediaPlayer appMediaPlayer;
|
|
|
|
private final InlineMediaViewBinding binding;
|
|
|
|
private CompositeSubscription compositeSubscription;
|
|
|
|
private String featureTag;
|
|
|
|
private final StoreUserSettings storeUserSettings;
|
|
|
|
private final Subject<Void, Void> unsubscribeSignal;
|
|
|
|
private ViewParams viewParams;
|
|
|
|
|
|
|
|
/* compiled from: InlineMediaView.kt */
|
|
|
|
public static final class ViewParams {
|
|
|
|
private final boolean autoPlayGifs;
|
|
|
|
private final EmbedType embedType;
|
|
|
|
private final RenderableEmbedMedia previewImage;
|
|
|
|
private final String progressiveMediaUri;
|
|
|
|
private final Integer targetHeight;
|
|
|
|
private final Integer targetWidth;
|
|
|
|
|
|
|
|
public ViewParams(RenderableEmbedMedia renderableEmbedMedia, String str, EmbedType embedType, Integer num, Integer num2, boolean z2) {
|
|
|
|
this.previewImage = renderableEmbedMedia;
|
|
|
|
this.progressiveMediaUri = str;
|
|
|
|
this.embedType = embedType;
|
|
|
|
this.targetWidth = num;
|
|
|
|
this.targetHeight = num2;
|
|
|
|
this.autoPlayGifs = z2;
|
|
|
|
}
|
|
|
|
|
|
|
|
public static /* synthetic */ ViewParams copy$default(ViewParams viewParams, RenderableEmbedMedia renderableEmbedMedia, String str, EmbedType embedType, Integer num, Integer num2, boolean z2, int i, Object obj) {
|
|
|
|
if ((i & 1) != 0) {
|
|
|
|
renderableEmbedMedia = viewParams.previewImage;
|
|
|
|
}
|
|
|
|
if ((i & 2) != 0) {
|
|
|
|
str = viewParams.progressiveMediaUri;
|
|
|
|
}
|
|
|
|
if ((i & 4) != 0) {
|
|
|
|
embedType = viewParams.embedType;
|
|
|
|
}
|
|
|
|
if ((i & 8) != 0) {
|
|
|
|
num = viewParams.targetWidth;
|
|
|
|
}
|
|
|
|
if ((i & 16) != 0) {
|
|
|
|
num2 = viewParams.targetHeight;
|
|
|
|
}
|
|
|
|
if ((i & 32) != 0) {
|
|
|
|
z2 = viewParams.autoPlayGifs;
|
|
|
|
}
|
|
|
|
return viewParams.copy(renderableEmbedMedia, str, embedType, num, num2, z2);
|
|
|
|
}
|
|
|
|
|
|
|
|
public final RenderableEmbedMedia component1() {
|
|
|
|
return this.previewImage;
|
|
|
|
}
|
|
|
|
|
|
|
|
public final String component2() {
|
|
|
|
return this.progressiveMediaUri;
|
|
|
|
}
|
|
|
|
|
|
|
|
public final EmbedType component3() {
|
|
|
|
return this.embedType;
|
|
|
|
}
|
|
|
|
|
|
|
|
public final Integer component4() {
|
|
|
|
return this.targetWidth;
|
|
|
|
}
|
|
|
|
|
|
|
|
public final Integer component5() {
|
|
|
|
return this.targetHeight;
|
|
|
|
}
|
|
|
|
|
|
|
|
public final boolean component6() {
|
|
|
|
return this.autoPlayGifs;
|
|
|
|
}
|
|
|
|
|
|
|
|
public final ViewParams copy(RenderableEmbedMedia renderableEmbedMedia, String str, EmbedType embedType, Integer num, Integer num2, boolean z2) {
|
|
|
|
return new ViewParams(renderableEmbedMedia, str, embedType, num, num2, z2);
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean equals(Object obj) {
|
|
|
|
if (this == obj) {
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
if (!(obj instanceof ViewParams)) {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
ViewParams viewParams = (ViewParams) obj;
|
|
|
|
return m.areEqual(this.previewImage, viewParams.previewImage) && m.areEqual(this.progressiveMediaUri, viewParams.progressiveMediaUri) && m.areEqual(this.embedType, viewParams.embedType) && m.areEqual(this.targetWidth, viewParams.targetWidth) && m.areEqual(this.targetHeight, viewParams.targetHeight) && this.autoPlayGifs == viewParams.autoPlayGifs;
|
|
|
|
}
|
|
|
|
|
|
|
|
public final boolean getAutoPlayGifs() {
|
|
|
|
return this.autoPlayGifs;
|
|
|
|
}
|
|
|
|
|
|
|
|
public final EmbedType getEmbedType() {
|
|
|
|
return this.embedType;
|
|
|
|
}
|
|
|
|
|
|
|
|
public final RenderableEmbedMedia getPreviewImage() {
|
|
|
|
return this.previewImage;
|
|
|
|
}
|
|
|
|
|
|
|
|
public final String getProgressiveMediaUri() {
|
|
|
|
return this.progressiveMediaUri;
|
|
|
|
}
|
|
|
|
|
|
|
|
public final Integer getTargetHeight() {
|
|
|
|
return this.targetHeight;
|
|
|
|
}
|
|
|
|
|
|
|
|
public final Integer getTargetWidth() {
|
|
|
|
return this.targetWidth;
|
|
|
|
}
|
|
|
|
|
|
|
|
public int hashCode() {
|
|
|
|
RenderableEmbedMedia renderableEmbedMedia = this.previewImage;
|
|
|
|
int i = 0;
|
|
|
|
int hashCode = (renderableEmbedMedia != null ? renderableEmbedMedia.hashCode() : 0) * 31;
|
|
|
|
String str = this.progressiveMediaUri;
|
|
|
|
int hashCode2 = (hashCode + (str != null ? str.hashCode() : 0)) * 31;
|
|
|
|
EmbedType embedType = this.embedType;
|
|
|
|
int hashCode3 = (hashCode2 + (embedType != null ? embedType.hashCode() : 0)) * 31;
|
|
|
|
Integer num = this.targetWidth;
|
|
|
|
int hashCode4 = (hashCode3 + (num != null ? num.hashCode() : 0)) * 31;
|
|
|
|
Integer num2 = this.targetHeight;
|
|
|
|
if (num2 != null) {
|
|
|
|
i = num2.hashCode();
|
|
|
|
}
|
|
|
|
int i2 = (hashCode4 + i) * 31;
|
|
|
|
boolean z2 = this.autoPlayGifs;
|
|
|
|
if (z2) {
|
|
|
|
z2 = true;
|
|
|
|
}
|
|
|
|
int i3 = z2 ? 1 : 0;
|
|
|
|
int i4 = z2 ? 1 : 0;
|
|
|
|
int i5 = z2 ? 1 : 0;
|
|
|
|
return i2 + i3;
|
|
|
|
}
|
|
|
|
|
|
|
|
public String toString() {
|
|
|
|
StringBuilder L = a.L("ViewParams(previewImage=");
|
|
|
|
L.append(this.previewImage);
|
|
|
|
L.append(", progressiveMediaUri=");
|
|
|
|
L.append(this.progressiveMediaUri);
|
|
|
|
L.append(", embedType=");
|
|
|
|
L.append(this.embedType);
|
|
|
|
L.append(", targetWidth=");
|
|
|
|
L.append(this.targetWidth);
|
|
|
|
L.append(", targetHeight=");
|
|
|
|
L.append(this.targetHeight);
|
|
|
|
L.append(", autoPlayGifs=");
|
|
|
|
return a.G(L, this.autoPlayGifs, ")");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public final /* synthetic */ class WhenMappings {
|
|
|
|
public static final /* synthetic */ int[] $EnumSwitchMapping$0;
|
|
|
|
|
|
|
|
static {
|
|
|
|
MessageAttachmentType.values();
|
|
|
|
int[] iArr = new int[3];
|
|
|
|
$EnumSwitchMapping$0 = iArr;
|
|
|
|
iArr[MessageAttachmentType.VIDEO.ordinal()] = 1;
|
|
|
|
iArr[MessageAttachmentType.IMAGE.ordinal()] = 2;
|
|
|
|
iArr[MessageAttachmentType.FILE.ordinal()] = 3;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/* JADX INFO: super call moved to the top of the method (can break code semantics) */
|
|
|
|
public InlineMediaView(Context context) {
|
|
|
|
super(context);
|
|
|
|
m.checkNotNullParameter(context, "context");
|
|
|
|
InlineMediaViewBinding a = InlineMediaViewBinding.a(LayoutInflater.from(getContext()), this);
|
|
|
|
m.checkNotNullExpressionValue(a, "InlineMediaViewBinding.i…ater.from(context), this)");
|
|
|
|
this.binding = a;
|
|
|
|
this.storeUserSettings = StoreStream.Companion.getUserSettings();
|
|
|
|
this.featureTag = "";
|
|
|
|
this.compositeSubscription = new CompositeSubscription();
|
|
|
|
addOnAttachStateChangeListener(this);
|
2021-07-03 23:36:06 +00:00
|
|
|
PublishSubject k0 = PublishSubject.k0();
|
|
|
|
m.checkNotNullExpressionValue(k0, "PublishSubject.create()");
|
|
|
|
this.unsubscribeSignal = k0;
|
2021-06-27 20:44:35 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/* JADX INFO: super call moved to the top of the method (can break code semantics) */
|
|
|
|
public InlineMediaView(Context context, AttributeSet attributeSet) {
|
|
|
|
super(context, attributeSet);
|
|
|
|
m.checkNotNullParameter(context, "context");
|
|
|
|
InlineMediaViewBinding a = InlineMediaViewBinding.a(LayoutInflater.from(getContext()), this);
|
|
|
|
m.checkNotNullExpressionValue(a, "InlineMediaViewBinding.i…ater.from(context), this)");
|
|
|
|
this.binding = a;
|
|
|
|
this.storeUserSettings = StoreStream.Companion.getUserSettings();
|
|
|
|
this.featureTag = "";
|
|
|
|
this.compositeSubscription = new CompositeSubscription();
|
|
|
|
addOnAttachStateChangeListener(this);
|
2021-07-03 23:36:06 +00:00
|
|
|
PublishSubject k0 = PublishSubject.k0();
|
|
|
|
m.checkNotNullExpressionValue(k0, "PublishSubject.create()");
|
|
|
|
this.unsubscribeSignal = k0;
|
2021-06-27 20:44:35 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/* JADX INFO: super call moved to the top of the method (can break code semantics) */
|
|
|
|
public InlineMediaView(Context context, AttributeSet attributeSet, int i) {
|
|
|
|
super(context, attributeSet, i);
|
|
|
|
m.checkNotNullParameter(context, "context");
|
|
|
|
InlineMediaViewBinding a = InlineMediaViewBinding.a(LayoutInflater.from(getContext()), this);
|
|
|
|
m.checkNotNullExpressionValue(a, "InlineMediaViewBinding.i…ater.from(context), this)");
|
|
|
|
this.binding = a;
|
|
|
|
this.storeUserSettings = StoreStream.Companion.getUserSettings();
|
|
|
|
this.featureTag = "";
|
|
|
|
this.compositeSubscription = new CompositeSubscription();
|
|
|
|
addOnAttachStateChangeListener(this);
|
2021-07-03 23:36:06 +00:00
|
|
|
PublishSubject k0 = PublishSubject.k0();
|
|
|
|
m.checkNotNullExpressionValue(k0, "PublishSubject.create()");
|
|
|
|
this.unsubscribeSignal = k0;
|
2021-06-27 20:44:35 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/* JADX INFO: this call moved to the top of the method (can break code semantics) */
|
|
|
|
public /* synthetic */ InlineMediaView(Context context, AttributeSet attributeSet, int i, int i2, DefaultConstructorMarker defaultConstructorMarker) {
|
|
|
|
this(context, (i2 & 2) != 0 ? null : attributeSet, (i2 & 4) != 0 ? 0 : i);
|
|
|
|
}
|
|
|
|
|
|
|
|
/* JADX INFO: this call moved to the top of the method (can break code semantics) */
|
|
|
|
public /* synthetic */ InlineMediaView(Context context, AttributeSet attributeSet, int i, DefaultConstructorMarker defaultConstructorMarker) {
|
|
|
|
this(context, (i & 2) != 0 ? null : attributeSet);
|
|
|
|
}
|
|
|
|
|
|
|
|
public static final /* synthetic */ AppMediaPlayer access$getAppMediaPlayer$p(InlineMediaView inlineMediaView) {
|
|
|
|
return inlineMediaView.appMediaPlayer;
|
|
|
|
}
|
|
|
|
|
|
|
|
public static final /* synthetic */ InlineMediaViewBinding access$getBinding$p(InlineMediaView inlineMediaView) {
|
|
|
|
return inlineMediaView.binding;
|
|
|
|
}
|
|
|
|
|
|
|
|
public static final /* synthetic */ CompositeSubscription access$getCompositeSubscription$p(InlineMediaView inlineMediaView) {
|
|
|
|
return inlineMediaView.compositeSubscription;
|
|
|
|
}
|
|
|
|
|
|
|
|
public static final /* synthetic */ void access$handlePlayerEvent(InlineMediaView inlineMediaView, AppMediaPlayer.Event event) {
|
|
|
|
inlineMediaView.handlePlayerEvent(event);
|
|
|
|
}
|
|
|
|
|
|
|
|
public static final /* synthetic */ void access$setAppMediaPlayer$p(InlineMediaView inlineMediaView, AppMediaPlayer appMediaPlayer) {
|
|
|
|
inlineMediaView.appMediaPlayer = appMediaPlayer;
|
|
|
|
}
|
|
|
|
|
|
|
|
public static final /* synthetic */ void access$setCompositeSubscription$p(InlineMediaView inlineMediaView, CompositeSubscription compositeSubscription) {
|
|
|
|
inlineMediaView.compositeSubscription = compositeSubscription;
|
|
|
|
}
|
|
|
|
|
|
|
|
private final void clearPlayerAndSubscriptions() {
|
|
|
|
releasePlayer();
|
|
|
|
getUnsubscribeSignal().onNext(null);
|
|
|
|
}
|
|
|
|
|
|
|
|
private final void diffViewParamsAndUpdateEmbed(RenderableEmbedMedia renderableEmbedMedia, String str, EmbedType embedType, Integer num, Integer num2, String str2, boolean z2) {
|
|
|
|
Integer num3;
|
|
|
|
Integer num4;
|
|
|
|
Integer num5 = null;
|
|
|
|
if (num != null) {
|
|
|
|
num3 = num;
|
|
|
|
} else {
|
|
|
|
ViewParams viewParams = this.viewParams;
|
|
|
|
num3 = viewParams != null ? viewParams.getTargetWidth() : null;
|
|
|
|
}
|
|
|
|
if (num2 != null) {
|
|
|
|
num4 = num2;
|
|
|
|
} else {
|
|
|
|
ViewParams viewParams2 = this.viewParams;
|
|
|
|
if (viewParams2 != null) {
|
|
|
|
num5 = viewParams2.getTargetHeight();
|
|
|
|
}
|
|
|
|
num4 = num5;
|
|
|
|
}
|
|
|
|
ViewParams viewParams3 = new ViewParams(renderableEmbedMedia, str, embedType, num3, num4, z2);
|
|
|
|
if (!m.areEqual(viewParams3, this.viewParams)) {
|
|
|
|
this.viewParams = viewParams3;
|
|
|
|
updateUI(renderableEmbedMedia, str, embedType, num, num2, str2);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public static /* synthetic */ void diffViewParamsAndUpdateEmbed$default(InlineMediaView inlineMediaView, RenderableEmbedMedia renderableEmbedMedia, String str, EmbedType embedType, Integer num, Integer num2, String str2, boolean z2, int i, Object obj) {
|
|
|
|
inlineMediaView.diffViewParamsAndUpdateEmbed(renderableEmbedMedia, str, embedType, (i & 8) != 0 ? null : num, (i & 16) != 0 ? null : num2, str2, z2);
|
|
|
|
}
|
|
|
|
|
|
|
|
private final void handlePlayerEvent(AppMediaPlayer.Event event) {
|
|
|
|
boolean z2 = true;
|
|
|
|
int i = 0;
|
|
|
|
if (m.areEqual(event, AppMediaPlayer.Event.a.a)) {
|
2021-07-03 23:36:06 +00:00
|
|
|
SimpleDraweeView simpleDraweeView = this.binding.f1611c;
|
2021-06-27 20:44:35 +00:00
|
|
|
m.checkNotNullExpressionValue(simpleDraweeView, "binding.inlineMediaImagePreview");
|
|
|
|
if (!(!shouldAutoPlay())) {
|
|
|
|
i = 8;
|
|
|
|
}
|
|
|
|
simpleDraweeView.setVisibility(i);
|
|
|
|
ProgressBar progressBar = this.binding.d;
|
|
|
|
m.checkNotNullExpressionValue(progressBar, "binding.inlineMediaLoadingIndicator");
|
|
|
|
progressBar.setVisibility(8);
|
|
|
|
} else if (m.areEqual(event, AppMediaPlayer.Event.f.a)) {
|
|
|
|
ViewParams viewParams = this.viewParams;
|
|
|
|
EmbedType embedType = viewParams != null ? viewParams.getEmbedType() : null;
|
|
|
|
ImageView imageView = this.binding.g;
|
|
|
|
m.checkNotNullExpressionValue(imageView, "binding.inlineMediaVolumeToggle");
|
|
|
|
if (!(embedType == EmbedType.VIDEO || embedType == null)) {
|
|
|
|
z2 = false;
|
|
|
|
}
|
|
|
|
if (!z2) {
|
|
|
|
i = 8;
|
|
|
|
}
|
|
|
|
imageView.setVisibility(i);
|
|
|
|
} else if (m.areEqual(event, AppMediaPlayer.Event.e.a)) {
|
|
|
|
resetCurrentEmbed();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
private final void releasePlayer() {
|
|
|
|
AppMediaPlayer appMediaPlayer = this.appMediaPlayer;
|
|
|
|
if (appMediaPlayer != null) {
|
|
|
|
appMediaPlayer.c();
|
|
|
|
}
|
|
|
|
this.appMediaPlayer = null;
|
|
|
|
}
|
|
|
|
|
|
|
|
private final void resetCurrentEmbed() {
|
|
|
|
ViewParams viewParams = this.viewParams;
|
|
|
|
if (viewParams != null) {
|
|
|
|
updateUI(viewParams.getPreviewImage(), viewParams.getProgressiveMediaUri(), viewParams.getEmbedType(), viewParams.getTargetWidth(), viewParams.getTargetHeight(), this.featureTag);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
private final void resetViews() {
|
|
|
|
ViewParams viewParams = this.viewParams;
|
|
|
|
if (viewParams != null) {
|
2021-07-03 23:36:06 +00:00
|
|
|
SimpleDraweeView simpleDraweeView = this.binding.f1611c;
|
2021-06-27 20:44:35 +00:00
|
|
|
m.checkNotNullExpressionValue(simpleDraweeView, "binding.inlineMediaImagePreview");
|
|
|
|
int i = 0;
|
|
|
|
simpleDraweeView.setVisibility(0);
|
|
|
|
ImageView imageView = this.binding.b;
|
|
|
|
m.checkNotNullExpressionValue(imageView, "binding.inlineMediaGifIndicator");
|
|
|
|
boolean z2 = true;
|
|
|
|
imageView.setVisibility(shouldAutoPlay() ^ true ? 0 : 8);
|
|
|
|
PlayerView playerView = this.binding.f;
|
|
|
|
m.checkNotNullExpressionValue(playerView, "binding.inlineMediaPlayerView");
|
|
|
|
playerView.setVisibility(8);
|
|
|
|
ImageView imageView2 = this.binding.g;
|
|
|
|
m.checkNotNullExpressionValue(imageView2, "binding.inlineMediaVolumeToggle");
|
|
|
|
imageView2.setVisibility(8);
|
|
|
|
ImageView imageView3 = this.binding.e;
|
|
|
|
m.checkNotNullExpressionValue(imageView3, "binding.inlineMediaPlayButton");
|
|
|
|
if (viewParams.getEmbedType() != EmbedType.VIDEO) {
|
|
|
|
z2 = false;
|
|
|
|
}
|
|
|
|
if (!z2) {
|
|
|
|
i = 8;
|
|
|
|
}
|
|
|
|
imageView3.setVisibility(i);
|
|
|
|
ProgressBar progressBar = this.binding.d;
|
|
|
|
m.checkNotNullExpressionValue(progressBar, "binding.inlineMediaLoadingIndicator");
|
|
|
|
progressBar.setVisibility(8);
|
|
|
|
ImageView imageView4 = this.binding.g;
|
|
|
|
m.checkNotNullExpressionValue(imageView4, "binding.inlineMediaVolumeToggle");
|
|
|
|
imageView4.setVisibility(8);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
private final boolean shouldAutoPlay() {
|
|
|
|
EmbedResourceUtils embedResourceUtils = EmbedResourceUtils.INSTANCE;
|
|
|
|
ViewParams viewParams = this.viewParams;
|
|
|
|
String str = null;
|
|
|
|
EmbedType embedType = viewParams != null ? viewParams.getEmbedType() : null;
|
|
|
|
ViewParams viewParams2 = this.viewParams;
|
|
|
|
if (viewParams2 != null) {
|
|
|
|
str = viewParams2.getProgressiveMediaUri();
|
|
|
|
}
|
|
|
|
if (!embedResourceUtils.isAnimated(embedType, str)) {
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
ViewParams viewParams3 = this.viewParams;
|
|
|
|
return viewParams3 != null ? viewParams3.getAutoPlayGifs() : this.storeUserSettings.getIsAutoPlayGifsEnabled();
|
|
|
|
}
|
|
|
|
|
|
|
|
private final void updateUI(RenderableEmbedMedia renderableEmbedMedia, String str, EmbedType embedType, Integer num, Integer num2, String str2) {
|
|
|
|
resetViews();
|
|
|
|
this.compositeSubscription.unsubscribe();
|
|
|
|
if (!(num == null || num2 == null)) {
|
|
|
|
ViewGroup.LayoutParams layoutParams = getLayoutParams();
|
|
|
|
if (!(layoutParams.width == num.intValue() && layoutParams.height == num2.intValue())) {
|
|
|
|
layoutParams.width = num.intValue();
|
|
|
|
layoutParams.height = num2.intValue();
|
|
|
|
requestLayout();
|
|
|
|
}
|
|
|
|
if ((renderableEmbedMedia != null ? renderableEmbedMedia.a : null) != null) {
|
2021-07-03 23:36:06 +00:00
|
|
|
SimpleDraweeView simpleDraweeView = this.binding.f1611c;
|
2021-06-27 20:44:35 +00:00
|
|
|
m.checkNotNullExpressionValue(simpleDraweeView, "binding.inlineMediaImagePreview");
|
|
|
|
MGImages.setImage$default(simpleDraweeView, EmbedResourceUtils.INSTANCE.getPreviewUrls(renderableEmbedMedia.a, num.intValue(), num2.intValue(), shouldAutoPlay()), 0, 0, false, null, null, null, 252, null);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (str != null) {
|
|
|
|
AppMediaPlayer appMediaPlayer = this.appMediaPlayer;
|
|
|
|
if (appMediaPlayer == null) {
|
|
|
|
Context context = getContext();
|
|
|
|
m.checkNotNullExpressionValue(context, "context");
|
|
|
|
appMediaPlayer = i.a(context);
|
|
|
|
}
|
|
|
|
this.appMediaPlayer = appMediaPlayer;
|
|
|
|
PlayerView playerView = this.binding.f;
|
|
|
|
m.checkNotNullExpressionValue(playerView, "binding.inlineMediaPlayerView");
|
|
|
|
int i = 8;
|
|
|
|
playerView.setVisibility(shouldAutoPlay() ? 0 : 8);
|
|
|
|
ImageView imageView = this.binding.b;
|
|
|
|
m.checkNotNullExpressionValue(imageView, "binding.inlineMediaGifIndicator");
|
|
|
|
if (!shouldAutoPlay()) {
|
|
|
|
i = 0;
|
|
|
|
}
|
|
|
|
imageView.setVisibility(i);
|
|
|
|
m.checkNotNullParameter(str, "progressiveMediaUri");
|
|
|
|
m.checkNotNullParameter(str2, "featureTag");
|
|
|
|
EmbedType embedType2 = EmbedType.GIFV;
|
|
|
|
MediaSource R = AnimatableValueParser.R(embedType == embedType2 ? MediaType.GIFV : MediaType.VIDEO, str, str2);
|
|
|
|
this.compositeSubscription = new CompositeSubscription();
|
|
|
|
ObservableExtensionsKt.appSubscribe$default(ObservableExtensionsKt.ui$default(appMediaPlayer.d, this, null, 2, null), InlineMediaView.class, (Context) null, new InlineMediaView$updateUI$1(this), (Function1) null, (Function0) null, (Function0) null, new InlineMediaView$updateUI$2(this, appMediaPlayer), 58, (Object) null);
|
2021-07-03 23:36:06 +00:00
|
|
|
Observable<AppMediaPlayer.Event> J = appMediaPlayer.a.J();
|
|
|
|
m.checkNotNullExpressionValue(J, "eventSubject.onBackpressureBuffer()");
|
|
|
|
ObservableExtensionsKt.appSubscribe$default(ObservableExtensionsKt.ui$default(J, this, null, 2, null), InlineMediaView.class, (Context) null, new InlineMediaView$updateUI$3(this), (Function1) null, (Function0) null, (Function0) null, new InlineMediaView$updateUI$4(this), 58, (Object) null);
|
2021-06-27 20:44:35 +00:00
|
|
|
if (embedType == embedType2) {
|
|
|
|
PlayerView playerView2 = this.binding.f;
|
|
|
|
m.checkNotNullExpressionValue(playerView2, "binding.inlineMediaPlayerView");
|
|
|
|
AppMediaPlayer.b(appMediaPlayer, R, true, true, 0, playerView2, null, 40);
|
|
|
|
appMediaPlayer.d(0.0f);
|
|
|
|
} else {
|
|
|
|
appMediaPlayer.d(1.0f);
|
|
|
|
}
|
|
|
|
this.binding.e.setOnClickListener(new InlineMediaView$updateUI$5(this, R));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public static /* synthetic */ void updateUI$default(InlineMediaView inlineMediaView, RenderableEmbedMedia renderableEmbedMedia, String str, EmbedType embedType, Integer num, Integer num2, String str2, int i, Object obj) {
|
|
|
|
inlineMediaView.updateUI(renderableEmbedMedia, str, embedType, (i & 8) != 0 ? null : num, (i & 16) != 0 ? null : num2, str2);
|
|
|
|
}
|
|
|
|
|
|
|
|
public static /* synthetic */ void updateUIWithAttachment$default(InlineMediaView inlineMediaView, MessageAttachment messageAttachment, Integer num, Integer num2, boolean z2, int i, Object obj) {
|
|
|
|
if ((i & 2) != 0) {
|
|
|
|
num = null;
|
|
|
|
}
|
|
|
|
if ((i & 4) != 0) {
|
|
|
|
num2 = null;
|
|
|
|
}
|
|
|
|
inlineMediaView.updateUIWithAttachment(messageAttachment, num, num2, z2);
|
|
|
|
}
|
|
|
|
|
|
|
|
public static /* synthetic */ void updateUIWithEmbed$default(InlineMediaView inlineMediaView, MessageEmbed messageEmbed, Integer num, Integer num2, boolean z2, int i, Object obj) {
|
|
|
|
if ((i & 2) != 0) {
|
|
|
|
num = null;
|
|
|
|
}
|
|
|
|
if ((i & 4) != 0) {
|
|
|
|
num2 = null;
|
|
|
|
}
|
|
|
|
inlineMediaView.updateUIWithEmbed(messageEmbed, num, num2, z2);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override // com.discord.app.AppComponent
|
|
|
|
public Subject<Void, Void> getUnsubscribeSignal() {
|
|
|
|
return this.unsubscribeSignal;
|
|
|
|
}
|
|
|
|
|
|
|
|
public final void onPause() {
|
|
|
|
clearPlayerAndSubscriptions();
|
|
|
|
}
|
|
|
|
|
|
|
|
public final void onResume() {
|
|
|
|
resetCurrentEmbed();
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override // android.view.View.OnAttachStateChangeListener
|
|
|
|
public void onViewAttachedToWindow(View view) {
|
|
|
|
m.checkNotNullParameter(view, "view");
|
|
|
|
resetCurrentEmbed();
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override // android.view.View.OnAttachStateChangeListener
|
|
|
|
public void onViewDetachedFromWindow(View view) {
|
|
|
|
m.checkNotNullParameter(view, "view");
|
|
|
|
clearPlayerAndSubscriptions();
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override // android.view.View
|
|
|
|
public void onVisibilityChanged(View view, int i) {
|
|
|
|
m.checkNotNullParameter(view, "changedView");
|
|
|
|
super.onVisibilityChanged(view, i);
|
|
|
|
if (i == 0) {
|
|
|
|
resetCurrentEmbed();
|
|
|
|
} else {
|
|
|
|
clearPlayerAndSubscriptions();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public final void updateUIWithAttachment(MessageAttachment messageAttachment, Integer num, Integer num2, boolean z2) {
|
|
|
|
EmbedType embedType;
|
|
|
|
m.checkNotNullParameter(messageAttachment, "attachment");
|
|
|
|
MessageAttachmentType e = messageAttachment.e();
|
|
|
|
boolean z3 = false;
|
|
|
|
if ((e == MessageAttachmentType.IMAGE || e == MessageAttachmentType.VIDEO) && this.storeUserSettings.getIsAttachmentMediaInline()) {
|
|
|
|
RenderableEmbedMedia createRenderableEmbedMediaFromAttachment = EmbedResourceUtils.INSTANCE.createRenderableEmbedMediaFromAttachment(messageAttachment);
|
|
|
|
this.featureTag = InlineMediaView.class.getSimpleName() + ": attachment";
|
|
|
|
if (messageAttachment.e() == MessageAttachmentType.VIDEO) {
|
|
|
|
z3 = true;
|
|
|
|
}
|
|
|
|
String c2 = z3 ? messageAttachment.c() : null;
|
|
|
|
int ordinal = e.ordinal();
|
|
|
|
if (ordinal == 0) {
|
|
|
|
embedType = EmbedType.VIDEO;
|
|
|
|
} else if (ordinal == 1) {
|
|
|
|
embedType = EmbedType.IMAGE;
|
|
|
|
} else if (ordinal == 2) {
|
|
|
|
embedType = EmbedType.FILE;
|
|
|
|
} else {
|
|
|
|
throw new NoWhenBranchMatchedException();
|
|
|
|
}
|
|
|
|
diffViewParamsAndUpdateEmbed(createRenderableEmbedMediaFromAttachment, c2, embedType, num, num2, this.featureTag, z2);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public final void updateUIWithEmbed(MessageEmbed messageEmbed, Integer num, Integer num2, boolean z2) {
|
|
|
|
String str;
|
|
|
|
m.checkNotNullParameter(messageEmbed, "embed");
|
|
|
|
EmbedResourceUtils embedResourceUtils = EmbedResourceUtils.INSTANCE;
|
|
|
|
boolean z3 = true;
|
|
|
|
if (!(embedResourceUtils.getPreviewImage(messageEmbed) != null) || !this.storeUserSettings.getIsEmbedMediaInlined() || !this.storeUserSettings.getIsRenderEmbedsEnabled()) {
|
|
|
|
z3 = false;
|
|
|
|
}
|
|
|
|
if (z3) {
|
|
|
|
this.featureTag = InlineMediaView.class.getSimpleName() + ": embed";
|
|
|
|
EmbedVideo m = messageEmbed.m();
|
|
|
|
if (m == null || (str = m.b()) == null) {
|
|
|
|
EmbedVideo m2 = messageEmbed.m();
|
|
|
|
str = m2 != null ? m2.c() : null;
|
|
|
|
}
|
|
|
|
diffViewParamsAndUpdateEmbed(embedResourceUtils.getPreviewImage(messageEmbed), str, messageEmbed.k(), num, num2, this.featureTag, z2);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|