.class public final Lcom/discord/views/video/AppVideoStreamRenderer; .super Lco/discord/media_engine/VideoStreamRenderer; .source "AppVideoStreamRenderer.kt" # annotations .annotation system Ldalvik/annotation/MemberClasses; value = { Lcom/discord/views/video/AppVideoStreamRenderer$a; } .end annotation # instance fields .field public d:Z .field public final e:Lrx/subjects/BehaviorSubject; .annotation system Ldalvik/annotation/Signature; value = { "Lrx/subjects/BehaviorSubject<", "Lkotlin/Unit;", ">;" } .end annotation .end field .field public f:Lrx/Subscription; .field public g:Ljava/lang/Integer; .field public h:Lrx/subjects/BehaviorSubject; .annotation system Ldalvik/annotation/Signature; value = { "Lrx/subjects/BehaviorSubject<", "Landroid/graphics/Point;", ">;" } .end annotation .end field .field public i:Lkotlin/jvm/functions/Function1; .annotation system Ldalvik/annotation/Signature; value = { "Lkotlin/jvm/functions/Function1<", "-", "Landroid/graphics/Point;", "Lkotlin/Unit;", ">;" } .end annotation .end field .field public j:Lorg/webrtc/RendererCommon$ScalingType; .field public k:Lorg/webrtc/RendererCommon$ScalingType; # direct methods .method public constructor (Landroid/content/Context;Landroid/util/AttributeSet;)V .locals 1 const/4 v0, 0x0 if-eqz p1, :cond_1 if-eqz p2, :cond_0 invoke-direct {p0, p1, p2}, Lco/discord/media_engine/VideoStreamRenderer;->(Landroid/content/Context;Landroid/util/AttributeSet;)V sget-object p1, Lkotlin/Unit;->a:Lkotlin/Unit; invoke-static {p1}, Lrx/subjects/BehaviorSubject;->h0(Ljava/lang/Object;)Lrx/subjects/BehaviorSubject; move-result-object p1 iput-object p1, p0, Lcom/discord/views/video/AppVideoStreamRenderer;->e:Lrx/subjects/BehaviorSubject; invoke-static {v0}, Lrx/subjects/BehaviorSubject;->h0(Ljava/lang/Object;)Lrx/subjects/BehaviorSubject; move-result-object p1 iput-object p1, p0, Lcom/discord/views/video/AppVideoStreamRenderer;->h:Lrx/subjects/BehaviorSubject; sget-object p1, Lorg/webrtc/RendererCommon$ScalingType;->SCALE_ASPECT_BALANCED:Lorg/webrtc/RendererCommon$ScalingType; iput-object p1, p0, Lcom/discord/views/video/AppVideoStreamRenderer;->j:Lorg/webrtc/RendererCommon$ScalingType; iput-object p1, p0, Lcom/discord/views/video/AppVideoStreamRenderer;->k:Lorg/webrtc/RendererCommon$ScalingType; return-void :cond_0 const-string p1, "attrs" invoke-static {p1}, Lk0/n/c/h;->c(Ljava/lang/String;)V throw v0 :cond_1 const-string p1, "context" invoke-static {p1}, Lk0/n/c/h;->c(Ljava/lang/String;)V throw v0 .end method # virtual methods .method public final b()V .locals 7 .annotation build Landroidx/annotation/UiThread; .end annotation iget-object v0, p0, Lcom/discord/views/video/AppVideoStreamRenderer;->f:Lrx/Subscription; if-eqz v0, :cond_0 invoke-interface {v0}, Lrx/Subscription;->unsubscribe()V :cond_0 sget-object v0, Lf/a/n/n0/d;->a:Ljava/util/HashMap; iget-object v1, p0, Lcom/discord/views/video/AppVideoStreamRenderer;->g:Ljava/lang/Integer; if-eqz v0, :cond_3 invoke-static {v0}, Lk0/n/c/u;->asMutableMap(Ljava/lang/Object;)Ljava/util/Map; move-result-object v0 invoke-interface {v0, v1}, Ljava/util/Map;->remove(Ljava/lang/Object;)Ljava/lang/Object; iget-object v0, p0, Lcom/discord/views/video/AppVideoStreamRenderer;->h:Lrx/subjects/BehaviorSubject; const/4 v1, 0x0 invoke-virtual {v0, v1}, Lrx/subjects/BehaviorSubject;->onNext(Ljava/lang/Object;)V sget-object v0, Lf/a/n/n0/d;->a:Ljava/util/HashMap; invoke-virtual {v0}, Ljava/util/HashMap;->isEmpty()Z move-result v0 if-eqz v0, :cond_2 sget-object v0, Lcom/discord/views/video/AppVideoStreamRenderer$a;->a:Lkotlinx/coroutines/Job; if-eqz v0, :cond_1 const/4 v2, 0x1 invoke-static {v0, v1, v2, v1}, Lf/n/a/k/a;->r(Lkotlinx/coroutines/Job;Ljava/util/concurrent/CancellationException;ILjava/lang/Object;)V :cond_1 sput-object v1, Lcom/discord/views/video/AppVideoStreamRenderer$a;->a:Lkotlinx/coroutines/Job; :cond_2 sget-object v0, Lcom/discord/stores/StoreStream;->Companion:Lcom/discord/stores/StoreStream$Companion; invoke-virtual {v0}, Lcom/discord/stores/StoreStream$Companion;->getMediaEngine()Lcom/discord/stores/StoreMediaEngine; move-result-object v0 invoke-virtual {v0}, Lcom/discord/stores/StoreMediaEngine;->getVoiceEngineNative()Lcom/hammerandchisel/libdiscord/Discord; move-result-object v2 const/4 v3, 0x0 const/4 v4, 0x0 const/4 v5, 0x4 const/4 v6, 0x0 move-object v1, p0 invoke-static/range {v1 .. v6}, Lco/discord/media_engine/VideoStreamRenderer;->attachToStream$default(Lco/discord/media_engine/VideoStreamRenderer;Lcom/hammerandchisel/libdiscord/Discord;Ljava/lang/String;Lorg/webrtc/RendererCommon$RendererEvents;ILjava/lang/Object;)V return-void :cond_3 new-instance v0, Lkotlin/TypeCastException; const-string v1, "null cannot be cast to non-null type kotlin.collections.MutableMap" invoke-direct {v0, v1}, Lkotlin/TypeCastException;->(Ljava/lang/String;)V throw v0 .end method .method public final c(Ljava/lang/Integer;Lorg/webrtc/RendererCommon$ScalingType;Lorg/webrtc/RendererCommon$ScalingType;Z)V .locals 15 .annotation build Landroidx/annotation/UiThread; .end annotation move-object v0, p0 move-object/from16 v1, p1 const/4 v2, 0x0 if-eqz v1, :cond_9 iget-object v3, v0, Lcom/discord/views/video/AppVideoStreamRenderer;->g:Ljava/lang/Integer; invoke-static {v1, v3}, Lk0/n/c/h;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z move-result v3 const/4 v4, 0x1 xor-int/2addr v3, v4 if-eqz v3, :cond_0 invoke-virtual {p0}, Lcom/discord/views/video/AppVideoStreamRenderer;->b()V :cond_0 if-eqz v3, :cond_5 invoke-virtual/range {p1 .. p1}, Ljava/lang/Integer;->intValue()I move-result v3 sget-object v5, Lf/a/n/n0/d;->a:Ljava/util/HashMap; invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v6 invoke-virtual {v5, v6}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v5 move-object v6, v5 check-cast v6, Lco/discord/media_engine/VideoStreamRenderer; if-eqz v6, :cond_3 if-ne v6, v0, :cond_1 goto :goto_0 :cond_1 sget-object v5, Lcom/discord/stores/StoreStream;->Companion:Lcom/discord/stores/StoreStream$Companion; invoke-virtual {v5}, Lcom/discord/stores/StoreStream$Companion;->getMediaEngine()Lcom/discord/stores/StoreMediaEngine; move-result-object v5 invoke-virtual {v5}, Lcom/discord/stores/StoreMediaEngine;->getVoiceEngineNative()Lcom/hammerandchisel/libdiscord/Discord; move-result-object v7 const/4 v8, 0x0 const/4 v9, 0x0 const/4 v10, 0x4 const/4 v11, 0x0 invoke-static/range {v6 .. v11}, Lco/discord/media_engine/VideoStreamRenderer;->attachToStream$default(Lco/discord/media_engine/VideoStreamRenderer;Lcom/hammerandchisel/libdiscord/Discord;Ljava/lang/String;Lorg/webrtc/RendererCommon$RendererEvents;ILjava/lang/Object;)V sget-object v5, Lf/a/n/n0/d;->a:Ljava/util/HashMap; invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v6 invoke-virtual {v5, v6}, Ljava/util/HashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object; sget-object v5, Lf/a/n/n0/d;->a:Ljava/util/HashMap; invoke-virtual {v5}, Ljava/util/HashMap;->isEmpty()Z move-result v5 if-eqz v5, :cond_3 sget-object v5, Lcom/discord/views/video/AppVideoStreamRenderer$a;->a:Lkotlinx/coroutines/Job; if-eqz v5, :cond_2 invoke-static {v5, v2, v4, v2}, Lf/n/a/k/a;->r(Lkotlinx/coroutines/Job;Ljava/util/concurrent/CancellationException;ILjava/lang/Object;)V :cond_2 sput-object v2, Lcom/discord/views/video/AppVideoStreamRenderer$a;->a:Lkotlinx/coroutines/Job; :cond_3 :goto_0 sget-object v2, Lf/a/n/n0/d;->a:Ljava/util/HashMap; invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v4 invoke-interface {v2, v4, p0}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; new-instance v2, Lf/a/n/n0/e; invoke-direct {v2}, Lf/a/n/n0/e;->()V iget-object v4, v0, Lcom/discord/views/video/AppVideoStreamRenderer;->f:Lrx/Subscription; if-eqz v4, :cond_4 invoke-interface {v4}, Lrx/Subscription;->unsubscribe()V :cond_4 iget-object v4, v0, Lcom/discord/views/video/AppVideoStreamRenderer;->e:Lrx/subjects/BehaviorSubject; new-instance v5, Lf/a/n/n0/a; invoke-direct {v5, v2}, Lf/a/n/n0/a;->(Lf/a/n/n0/e;)V invoke-virtual {v4, v5}, Lrx/Observable;->x(Ls0/k/b;)Lrx/Observable; move-result-object v4 const-string v5, "onSizeChangedSubject\n \u2026rameResolutionSampled() }" invoke-static {v4, v5}, Lk0/n/c/h;->checkExpressionValueIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V sget-object v5, Lcom/discord/utilities/rx/ObservableExtensionsKt$filterNull$1;->INSTANCE:Lcom/discord/utilities/rx/ObservableExtensionsKt$filterNull$1; invoke-virtual {v4, v5}, Lrx/Observable;->w(Ls0/k/b;)Lrx/Observable; move-result-object v4 sget-object v5, Lcom/discord/utilities/rx/ObservableExtensionsKt$filterNull$2;->INSTANCE:Lcom/discord/utilities/rx/ObservableExtensionsKt$filterNull$2; invoke-virtual {v4, v5}, Lrx/Observable;->E(Ls0/k/b;)Lrx/Observable; move-result-object v4 const-string v5, "filter { it != null }.map { it!! }" invoke-static {v4, v5}, Lk0/n/c/h;->checkExpressionValueIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V invoke-static {v4}, Lcom/discord/utilities/rx/ObservableExtensionsKt;->ui(Lrx/Observable;)Lrx/Observable; move-result-object v6 const/4 v7, 0x0 new-instance v10, Lf/a/n/n0/b; invoke-direct {v10, p0}, Lf/a/n/n0/b;->(Lcom/discord/views/video/AppVideoStreamRenderer;)V const-class v4, Lcom/discord/views/video/AppVideoStreamRenderer; invoke-virtual {v4}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String; move-result-object v8 const-string v4, "javaClass.simpleName" invoke-static {v8, v4}, Lk0/n/c/h;->checkExpressionValueIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V new-instance v9, Lf/a/n/n0/c; invoke-direct {v9, p0}, Lf/a/n/n0/c;->(Lcom/discord/views/video/AppVideoStreamRenderer;)V const/4 v11, 0x0 const/4 v12, 0x0 const/16 v13, 0x31 const/4 v14, 0x0 invoke-static/range {v6 .. v14}, Lcom/discord/utilities/rx/ObservableExtensionsKt;->appSubscribe$default(Lrx/Observable;Landroid/content/Context;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function0;ILjava/lang/Object;)V const-string v4, "binding native renderer " invoke-static {v4}, Lf/e/b/a/a;->D(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v4 invoke-virtual {p0}, Landroid/view/SurfaceView;->hashCode()I move-result v5 invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; const-string v5, " to stream id: " invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v4, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v4 const-string v5, "AppVideoStreamRenderer" invoke-static {v5, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I sget-object v4, Lcom/discord/stores/StoreStream;->Companion:Lcom/discord/stores/StoreStream$Companion; invoke-virtual {v4}, Lcom/discord/stores/StoreStream$Companion;->getMediaEngine()Lcom/discord/stores/StoreMediaEngine; move-result-object v4 invoke-virtual {v4}, Lcom/discord/stores/StoreMediaEngine;->getVoiceEngineNative()Lcom/hammerandchisel/libdiscord/Discord; move-result-object v4 invoke-static {v3}, Ljava/lang/String;->valueOf(I)Ljava/lang/String; move-result-object v3 invoke-virtual {p0, v4, v3, v2}, Lco/discord/media_engine/VideoStreamRenderer;->attachToStream(Lcom/hammerandchisel/libdiscord/Discord;Ljava/lang/String;Lorg/webrtc/RendererCommon$RendererEvents;)V iput-object v1, v0, Lcom/discord/views/video/AppVideoStreamRenderer;->g:Ljava/lang/Integer; :cond_5 if-eqz p2, :cond_6 move-object/from16 v1, p2 goto :goto_1 :cond_6 iget-object v1, v0, Lcom/discord/views/video/AppVideoStreamRenderer;->j:Lorg/webrtc/RendererCommon$ScalingType; :goto_1 if-eqz p3, :cond_7 move-object/from16 v2, p3 goto :goto_2 :cond_7 iget-object v2, v0, Lcom/discord/views/video/AppVideoStreamRenderer;->k:Lorg/webrtc/RendererCommon$ScalingType; :goto_2 move/from16 v3, p4 invoke-virtual {p0, v3}, Lorg/webrtc/SurfaceViewRenderer;->setMirror(Z)V iget-boolean v3, v0, Lcom/discord/views/video/AppVideoStreamRenderer;->d:Z invoke-virtual {p0, v3}, Landroid/view/SurfaceView;->setZOrderMediaOverlay(Z)V iget-object v3, v0, Lcom/discord/views/video/AppVideoStreamRenderer;->j:Lorg/webrtc/RendererCommon$ScalingType; if-ne v1, v3, :cond_8 iget-object v3, v0, Lcom/discord/views/video/AppVideoStreamRenderer;->k:Lorg/webrtc/RendererCommon$ScalingType; if-eq v2, v3, :cond_a :cond_8 invoke-virtual {p0, v1, v2}, Lorg/webrtc/SurfaceViewRenderer;->setScalingType(Lorg/webrtc/RendererCommon$ScalingType;Lorg/webrtc/RendererCommon$ScalingType;)V iput-object v1, v0, Lcom/discord/views/video/AppVideoStreamRenderer;->j:Lorg/webrtc/RendererCommon$ScalingType; iput-object v2, v0, Lcom/discord/views/video/AppVideoStreamRenderer;->k:Lorg/webrtc/RendererCommon$ScalingType; goto :goto_3 :cond_9 invoke-virtual {p0}, Lcom/discord/views/video/AppVideoStreamRenderer;->b()V iput-object v2, v0, Lcom/discord/views/video/AppVideoStreamRenderer;->g:Ljava/lang/Integer; :cond_a :goto_3 return-void .end method .method public final getOnFrameRenderedListener()Lkotlin/jvm/functions/Function1; .locals 1 .annotation system Ldalvik/annotation/Signature; value = { "()", "Lkotlin/jvm/functions/Function1<", "Landroid/graphics/Point;", "Lkotlin/Unit;", ">;" } .end annotation iget-object v0, p0, Lcom/discord/views/video/AppVideoStreamRenderer;->i:Lkotlin/jvm/functions/Function1; return-object v0 .end method .method public onSizeChanged(IIII)V .locals 0 invoke-super {p0, p1, p2, p3, p4}, Landroid/view/SurfaceView;->onSizeChanged(IIII)V iget-object p1, p0, Lcom/discord/views/video/AppVideoStreamRenderer;->e:Lrx/subjects/BehaviorSubject; sget-object p2, Lkotlin/Unit;->a:Lkotlin/Unit; invoke-virtual {p1, p2}, Lrx/subjects/BehaviorSubject;->onNext(Ljava/lang/Object;)V return-void .end method .method public final setIsOverlay(Z)V .locals 0 iput-boolean p1, p0, Lcom/discord/views/video/AppVideoStreamRenderer;->d:Z return-void .end method .method public final setMatchVideoOrientation(Z)V .locals 0 return-void .end method .method public final setOnFrameRenderedListener(Lkotlin/jvm/functions/Function1;)V .locals 0 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lkotlin/jvm/functions/Function1<", "-", "Landroid/graphics/Point;", "Lkotlin/Unit;", ">;)V" } .end annotation iput-object p1, p0, Lcom/discord/views/video/AppVideoStreamRenderer;->i:Lkotlin/jvm/functions/Function1; return-void .end method