PeerConnection.smali

.class public Lorg/webrtc/ali/PeerConnection;
.super Ljava/lang/Object;
.source "PeerConnection.java"


# annotations
.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Lorg/webrtc/ali/PeerConnection$RTCConfiguration;,
        Lorg/webrtc/ali/PeerConnection$ContinualGatheringPolicy;,
        Lorg/webrtc/ali/PeerConnection$KeyType;,
        Lorg/webrtc/ali/PeerConnection$CandidateNetworkPolicy;,
        Lorg/webrtc/ali/PeerConnection$TcpCandidatePolicy;,
        Lorg/webrtc/ali/PeerConnection$RtcpMuxPolicy;,
        Lorg/webrtc/ali/PeerConnection$BundlePolicy;,
        Lorg/webrtc/ali/PeerConnection$IceTransportsType;,
        Lorg/webrtc/ali/PeerConnection$IceServer;,
        Lorg/webrtc/ali/PeerConnection$Observer;,
        Lorg/webrtc/ali/PeerConnection$SignalingState;,
        Lorg/webrtc/ali/PeerConnection$TlsCertPolicy;,
        Lorg/webrtc/ali/PeerConnection$IceConnectionState;,
        Lorg/webrtc/ali/PeerConnection$IceGatheringState;
    }
.end annotation


# instance fields
.field private final localStreams:Ljava/util/List;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/List<",
            "Lorg/webrtc/ali/MediaStream;",
            ">;"
        }
    .end annotation
.end field

.field private final nativeObserver:J

.field private final nativePeerConnection:J

.field private receivers:Ljava/util/List;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/List<",
            "Lorg/webrtc/ali/RtpReceiver;",
            ">;"
        }
    .end annotation
.end field

.field private senders:Ljava/util/List;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/List<",
            "Lorg/webrtc/ali/RtpSender;",
            ">;"
        }
    .end annotation
.end field


# direct methods
.method static constructor <clinit>()V
    .registers 0

    .line 26
    return-void
.end method

.method constructor <init>(JJ)V
    .registers 6
    .param p1, "nativePeerConnection"    # J
    .param p3, "nativeObserver"    # J

    .line 209
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    .line 210
    iput-wide p1, p0, Lorg/webrtc/ali/PeerConnection;->nativePeerConnection:J

    .line 211
    iput-wide p3, p0, Lorg/webrtc/ali/PeerConnection;->nativeObserver:J

    .line 212
    new-instance v0, Ljava/util/LinkedList;

    invoke-direct {v0}, Ljava/util/LinkedList;-><init>()V

    iput-object v0, p0, Lorg/webrtc/ali/PeerConnection;->localStreams:Ljava/util/List;

    .line 213
    new-instance v0, Ljava/util/LinkedList;

    invoke-direct {v0}, Ljava/util/LinkedList;-><init>()V

    iput-object v0, p0, Lorg/webrtc/ali/PeerConnection;->senders:Ljava/util/List;

    .line 214
    new-instance v0, Ljava/util/LinkedList;

    invoke-direct {v0}, Ljava/util/LinkedList;-><init>()V

    iput-object v0, p0, Lorg/webrtc/ali/PeerConnection;->receivers:Ljava/util/List;

    .line 215
    return-void
.end method

.method private static native freeObserver(J)V
.end method

.method private static native freePeerConnection(J)V
.end method

.method private native nativeAddIceCandidate(Ljava/lang/String;ILjava/lang/String;)Z
.end method

.method private native nativeAddLocalStream(J)Z
.end method

.method private native nativeCreateSender(Ljava/lang/String;Ljava/lang/String;)Lorg/webrtc/ali/RtpSender;
.end method

.method private native nativeGetReceivers()Ljava/util/List;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "()",
            "Ljava/util/List<",
            "Lorg/webrtc/ali/RtpReceiver;",
            ">;"
        }
    .end annotation
.end method

.method private native nativeGetSenders()Ljava/util/List;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "()",
            "Ljava/util/List<",
            "Lorg/webrtc/ali/RtpSender;",
            ">;"
        }
    .end annotation
.end method

.method private native nativeNewGetStats(Lorg/webrtc/ali/RTCStatsCollectorCallback;)V
.end method

.method private native nativeOldGetStats(Lorg/webrtc/ali/StatsObserver;J)Z
.end method

.method private native nativeRemoveIceCandidates([Lorg/webrtc/ali/IceCandidate;)Z
.end method

.method private native nativeRemoveLocalStream(J)V
.end method

.method private native nativeStartRtcEventLog(II)Z
.end method

.method private native nativeStopRtcEventLog()V
.end method


# virtual methods
.method public addIceCandidate(Lorg/webrtc/ali/IceCandidate;)Z
    .registers 5
    .param p1, "candidate"    # Lorg/webrtc/ali/IceCandidate;

    .line 237
    iget-object v0, p1, Lorg/webrtc/ali/IceCandidate;->sdpMid:Ljava/lang/String;

    iget v1, p1, Lorg/webrtc/ali/IceCandidate;->sdpMLineIndex:I

    iget-object v2, p1, Lorg/webrtc/ali/IceCandidate;->sdp:Ljava/lang/String;

    invoke-direct {p0, v0, v1, v2}, Lorg/webrtc/ali/PeerConnection;->nativeAddIceCandidate(Ljava/lang/String;ILjava/lang/String;)Z

    move-result v0

    return v0
.end method

.method public addStream(Lorg/webrtc/ali/MediaStream;)Z
    .registers 4
    .param p1, "stream"    # Lorg/webrtc/ali/MediaStream;

    .line 245
    iget-wide v0, p1, Lorg/webrtc/ali/MediaStream;->nativeStream:J

    invoke-direct {p0, v0, v1}, Lorg/webrtc/ali/PeerConnection;->nativeAddLocalStream(J)Z

    move-result v0

    .line 246
    .local v0, "ret":Z
    if-nez v0, :cond_a

    .line 247
    const/4 v1, 0x0

    return v1

    .line 249
    :cond_a
    iget-object v1, p0, Lorg/webrtc/ali/PeerConnection;->localStreams:Ljava/util/List;

    invoke-interface {v1, p1}, Ljava/util/List;->add(Ljava/lang/Object;)Z

    .line 250
    const/4 v1, 0x1

    return v1
.end method

.method public native close()V
.end method

.method public native createAnswer(Lorg/webrtc/ali/SdpObserver;Lorg/webrtc/ali/MediaConstraints;)V
.end method

.method public native createDataChannel(Ljava/lang/String;Lorg/webrtc/ali/DataChannel$Init;)Lorg/webrtc/ali/DataChannel;
.end method

.method public native createOffer(Lorg/webrtc/ali/SdpObserver;Lorg/webrtc/ali/MediaConstraints;)V
.end method

.method public createSender(Ljava/lang/String;Ljava/lang/String;)Lorg/webrtc/ali/RtpSender;
    .registers 5
    .param p1, "kind"    # Ljava/lang/String;
    .param p2, "stream_id"    # Ljava/lang/String;

    .line 259
    invoke-direct {p0, p1, p2}, Lorg/webrtc/ali/PeerConnection;->nativeCreateSender(Ljava/lang/String;Ljava/lang/String;)Lorg/webrtc/ali/RtpSender;

    move-result-object v0

    .line 260
    .local v0, "new_sender":Lorg/webrtc/ali/RtpSender;
    if-eqz v0, :cond_b

    .line 261
    iget-object v1, p0, Lorg/webrtc/ali/PeerConnection;->senders:Ljava/util/List;

    invoke-interface {v1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z

    .line 263
    :cond_b
    return-object v0
.end method

.method public dispose()V
    .registers 5

    .line 322
    invoke-virtual {p0}, Lorg/webrtc/ali/PeerConnection;->close()V

    .line 323
    iget-object v0, p0, Lorg/webrtc/ali/PeerConnection;->localStreams:Ljava/util/List;

    invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;

    move-result-object v0

    :goto_9
    invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z

    move-result v1

    if-eqz v1, :cond_1e

    invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Lorg/webrtc/ali/MediaStream;

    .line 324
    .local v1, "stream":Lorg/webrtc/ali/MediaStream;
    iget-wide v2, v1, Lorg/webrtc/ali/MediaStream;->nativeStream:J

    invoke-direct {p0, v2, v3}, Lorg/webrtc/ali/PeerConnection;->nativeRemoveLocalStream(J)V

    .line 325
    invoke-virtual {v1}, Lorg/webrtc/ali/MediaStream;->dispose()V

    .line 326
    .end local v1    # "stream":Lorg/webrtc/ali/MediaStream;
    goto :goto_9

    .line 327
    :cond_1e
    iget-object v0, p0, Lorg/webrtc/ali/PeerConnection;->localStreams:Ljava/util/List;

    invoke-interface {v0}, Ljava/util/List;->clear()V

    .line 328
    iget-object v0, p0, Lorg/webrtc/ali/PeerConnection;->senders:Ljava/util/List;

    invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;

    move-result-object v0

    :goto_29
    invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z

    move-result v1

    if-eqz v1, :cond_39

    invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Lorg/webrtc/ali/RtpSender;

    .line 329
    .local v1, "sender":Lorg/webrtc/ali/RtpSender;
    invoke-virtual {v1}, Lorg/webrtc/ali/RtpSender;->dispose()V

    .line 330
    .end local v1    # "sender":Lorg/webrtc/ali/RtpSender;
    goto :goto_29

    .line 331
    :cond_39
    iget-object v0, p0, Lorg/webrtc/ali/PeerConnection;->senders:Ljava/util/List;

    invoke-interface {v0}, Ljava/util/List;->clear()V

    .line 332
    iget-object v0, p0, Lorg/webrtc/ali/PeerConnection;->receivers:Ljava/util/List;

    invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;

    move-result-object v0

    :goto_44
    invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z

    move-result v1

    if-eqz v1, :cond_54

    invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Lorg/webrtc/ali/RtpReceiver;

    .line 333
    .local v1, "receiver":Lorg/webrtc/ali/RtpReceiver;
    invoke-virtual {v1}, Lorg/webrtc/ali/RtpReceiver;->dispose()V

    .line 334
    .end local v1    # "receiver":Lorg/webrtc/ali/RtpReceiver;
    goto :goto_44

    .line 335
    :cond_54
    iget-object v0, p0, Lorg/webrtc/ali/PeerConnection;->receivers:Ljava/util/List;

    invoke-interface {v0}, Ljava/util/List;->clear()V

    .line 336
    iget-wide v0, p0, Lorg/webrtc/ali/PeerConnection;->nativePeerConnection:J

    invoke-static {v0, v1}, Lorg/webrtc/ali/PeerConnection;->freePeerConnection(J)V

    .line 337
    iget-wide v0, p0, Lorg/webrtc/ali/PeerConnection;->nativeObserver:J

    invoke-static {v0, v1}, Lorg/webrtc/ali/PeerConnection;->freeObserver(J)V

    .line 338
    return-void
.end method

.method public native getLocalDescription()Lorg/webrtc/ali/SessionDescription;
.end method

.method public getReceivers()Ljava/util/List;
    .registers 3
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "()",
            "Ljava/util/List<",
            "Lorg/webrtc/ali/RtpReceiver;",
            ">;"
        }
    .end annotation

    .line 277
    iget-object v0, p0, Lorg/webrtc/ali/PeerConnection;->receivers:Ljava/util/List;

    invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;

    move-result-object v0

    :goto_6
    invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z

    move-result v1

    if-eqz v1, :cond_16

    invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Lorg/webrtc/ali/RtpReceiver;

    .line 278
    .local v1, "receiver":Lorg/webrtc/ali/RtpReceiver;
    invoke-virtual {v1}, Lorg/webrtc/ali/RtpReceiver;->dispose()V

    .line 279
    .end local v1    # "receiver":Lorg/webrtc/ali/RtpReceiver;
    goto :goto_6

    .line 280
    :cond_16
    invoke-direct {p0}, Lorg/webrtc/ali/PeerConnection;->nativeGetReceivers()Ljava/util/List;

    move-result-object v0

    iput-object v0, p0, Lorg/webrtc/ali/PeerConnection;->receivers:Ljava/util/List;

    .line 281
    invoke-static {v0}, Ljava/util/Collections;->unmodifiableList(Ljava/util/List;)Ljava/util/List;

    move-result-object v0

    return-object v0
.end method

.method public native getRemoteDescription()Lorg/webrtc/ali/SessionDescription;
.end method

.method public getSenders()Ljava/util/List;
    .registers 3
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "()",
            "Ljava/util/List<",
            "Lorg/webrtc/ali/RtpSender;",
            ">;"
        }
    .end annotation

    .line 269
    iget-object v0, p0, Lorg/webrtc/ali/PeerConnection;->senders:Ljava/util/List;

    invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;

    move-result-object v0

    :goto_6
    invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z

    move-result v1

    if-eqz v1, :cond_16

    invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Lorg/webrtc/ali/RtpSender;

    .line 270
    .local v1, "sender":Lorg/webrtc/ali/RtpSender;
    invoke-virtual {v1}, Lorg/webrtc/ali/RtpSender;->dispose()V

    .line 271
    .end local v1    # "sender":Lorg/webrtc/ali/RtpSender;
    goto :goto_6

    .line 272
    :cond_16
    invoke-direct {p0}, Lorg/webrtc/ali/PeerConnection;->nativeGetSenders()Ljava/util/List;

    move-result-object v0

    iput-object v0, p0, Lorg/webrtc/ali/PeerConnection;->senders:Ljava/util/List;

    .line 273
    invoke-static {v0}, Ljava/util/Collections;->unmodifiableList(Ljava/util/List;)Ljava/util/List;

    move-result-object v0

    return-object v0
.end method

.method public getStats(Lorg/webrtc/ali/RTCStatsCollectorCallback;)V
    .registers 2
    .param p1, "callback"    # Lorg/webrtc/ali/RTCStatsCollectorCallback;

    .line 293
    invoke-direct {p0, p1}, Lorg/webrtc/ali/PeerConnection;->nativeNewGetStats(Lorg/webrtc/ali/RTCStatsCollectorCallback;)V

    .line 294
    return-void
.end method

.method public getStats(Lorg/webrtc/ali/StatsObserver;Lorg/webrtc/ali/MediaStreamTrack;)Z
    .registers 5
    .param p1, "observer"    # Lorg/webrtc/ali/StatsObserver;
    .param p2, "track"    # Lorg/webrtc/ali/MediaStreamTrack;
    .annotation runtime Ljava/lang/Deprecated;
    .end annotation

    .line 287
    if-nez p2, :cond_5

    const-wide/16 v0, 0x0

    goto :goto_7

    :cond_5
    iget-wide v0, p2, Lorg/webrtc/ali/MediaStreamTrack;->nativeTrack:J

    :goto_7
    invoke-direct {p0, p1, v0, v1}, Lorg/webrtc/ali/PeerConnection;->nativeOldGetStats(Lorg/webrtc/ali/StatsObserver;J)Z

    move-result v0

    return v0
.end method

.method public native iceConnectionState()Lorg/webrtc/ali/PeerConnection$IceConnectionState;
.end method

.method public native iceGatheringState()Lorg/webrtc/ali/PeerConnection$IceGatheringState;
.end method

.method public native nativeSetConfiguration(Lorg/webrtc/ali/PeerConnection$RTCConfiguration;J)Z
.end method

.method public removeIceCandidates([Lorg/webrtc/ali/IceCandidate;)Z
    .registers 3
    .param p1, "candidates"    # [Lorg/webrtc/ali/IceCandidate;

    .line 241
    invoke-direct {p0, p1}, Lorg/webrtc/ali/PeerConnection;->nativeRemoveIceCandidates([Lorg/webrtc/ali/IceCandidate;)Z

    move-result v0

    return v0
.end method

.method public removeStream(Lorg/webrtc/ali/MediaStream;)V
    .registers 4
    .param p1, "stream"    # Lorg/webrtc/ali/MediaStream;

    .line 254
    iget-wide v0, p1, Lorg/webrtc/ali/MediaStream;->nativeStream:J

    invoke-direct {p0, v0, v1}, Lorg/webrtc/ali/PeerConnection;->nativeRemoveLocalStream(J)V

    .line 255
    iget-object v0, p0, Lorg/webrtc/ali/PeerConnection;->localStreams:Ljava/util/List;

    invoke-interface {v0, p1}, Ljava/util/List;->remove(Ljava/lang/Object;)Z

    .line 256
    return-void
.end method

.method public setConfiguration(Lorg/webrtc/ali/PeerConnection$RTCConfiguration;)Z
    .registers 4
    .param p1, "config"    # Lorg/webrtc/ali/PeerConnection$RTCConfiguration;

    .line 233
    iget-wide v0, p0, Lorg/webrtc/ali/PeerConnection;->nativeObserver:J

    invoke-virtual {p0, p1, v0, v1}, Lorg/webrtc/ali/PeerConnection;->nativeSetConfiguration(Lorg/webrtc/ali/PeerConnection$RTCConfiguration;J)Z

    move-result v0

    return v0
.end method

.method public native setLocalDescription(Lorg/webrtc/ali/SdpObserver;Lorg/webrtc/ali/SessionDescription;)V
.end method

.method public native setRemoteDescription(Lorg/webrtc/ali/SdpObserver;Lorg/webrtc/ali/SessionDescription;)V
.end method

.method public native signalingState()Lorg/webrtc/ali/PeerConnection$SignalingState;
.end method

.method public startRtcEventLog(II)Z
    .registers 4
    .param p1, "file_descriptor"    # I
    .param p2, "max_size_bytes"    # I

    .line 302
    invoke-direct {p0, p1, p2}, Lorg/webrtc/ali/PeerConnection;->nativeStartRtcEventLog(II)Z

    move-result v0

    return v0
.end method

.method public stopRtcEventLog()V
    .registers 1

    .line 308
    invoke-direct {p0}, Lorg/webrtc/ali/PeerConnection;->nativeStopRtcEventLog()V

    .line 309
    return-void
.end method