CommonUtility$4.smali 
.class Lio/agora/rtc2/internal/CommonUtility$4;
.super Landroid/net/ConnectivityManager$NetworkCallback;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
    value = Lio/agora/rtc2/internal/CommonUtility;->bindSocket2Network(ILjava/lang/String;)V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
    accessFlags = 0x0
    name = null
.end annotation
# instance fields
.field final synthetic this$0:Lio/agora/rtc2/internal/CommonUtility;
.field final synthetic val$addressInner:Ljava/lang/String;
.field final synthetic val$comm:Lio/agora/rtc2/internal/CommonUtility;
.field final synthetic val$connectivityManager:Landroid/net/ConnectivityManager;
.field final synthetic val$socketFdInner:I
# direct methods
.method constructor <init>(Lio/agora/rtc2/internal/CommonUtility;Landroid/net/ConnectivityManager;Ljava/lang/String;ILio/agora/rtc2/internal/CommonUtility;)V
    .registers 6
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x8010,
            0x1010,
            0x1010,
            0x1010,
            0x1010
        }
        names = {
            "this$0",
            "val$comm",
            "val$socketFdInner",
            "val$addressInner",
            "val$connectivityManager"
        }
    .end annotation
    iput-object p1, p0, Lio/agora/rtc2/internal/CommonUtility$4;->this$0:Lio/agora/rtc2/internal/CommonUtility;
    iput-object p2, p0, Lio/agora/rtc2/internal/CommonUtility$4;->val$connectivityManager:Landroid/net/ConnectivityManager;
    iput-object p3, p0, Lio/agora/rtc2/internal/CommonUtility$4;->val$addressInner:Ljava/lang/String;
    iput p4, p0, Lio/agora/rtc2/internal/CommonUtility$4;->val$socketFdInner:I
    iput-object p5, p0, Lio/agora/rtc2/internal/CommonUtility$4;->val$comm:Lio/agora/rtc2/internal/CommonUtility;
    invoke-direct {p0}, Landroid/net/ConnectivityManager$NetworkCallback;-><init>()V
    return-void
.end method
# virtual methods
.method public onAvailable(Landroid/net/Network;)V
    .registers 5
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0
        }
        names = {
            "network"
        }
    .end annotation
    iget-object v0, p0, Lio/agora/rtc2/internal/CommonUtility$4;->val$connectivityManager:Landroid/net/ConnectivityManager;
    invoke-virtual {v0, p1}, Landroid/net/ConnectivityManager;->getLinkProperties(Landroid/net/Network;)Landroid/net/LinkProperties;
    move-result-object v0
    invoke-virtual {v0}, Landroid/net/LinkProperties;->getLinkAddresses()Ljava/util/List;
    move-result-object v0
    const/4 v1, 0x0
    invoke-interface {v0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;
    move-result-object v0
    check-cast v0, Landroid/net/LinkAddress;
    invoke-virtual {v0}, Landroid/net/LinkAddress;->getAddress()Ljava/net/InetAddress;
    move-result-object v0
    # invokes: Lio/agora/rtc2/internal/CommonUtility;->inetAddressToIpAddress(Ljava/net/InetAddress;)Ljava/lang/String;
    invoke-static {v0}, Lio/agora/rtc2/internal/CommonUtility;->access$200(Ljava/net/InetAddress;)Ljava/lang/String;
    move-result-object v0
    if-eqz v0, :cond_81
    iget-object v1, p0, Lio/agora/rtc2/internal/CommonUtility$4;->val$addressInner:Ljava/lang/String;
    invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
    move-result v0
    if-eqz v0, :cond_81
    const-string v0, "start bindSocket2Network"
    invoke-static {v0}, Lio/agora/rtc2/internal/Logging;->d(Ljava/lang/String;)V
    new-instance v0, Ljava/lang/StringBuilder;
    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
    const-string v1, "addressInner"
    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    iget-object v1, p0, Lio/agora/rtc2/internal/CommonUtility$4;->val$addressInner:Ljava/lang/String;
    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object v0
    invoke-static {v0}, Lio/agora/rtc2/internal/Logging;->d(Ljava/lang/String;)V
    new-instance v0, Ljava/io/FileDescriptor;
    invoke-direct {v0}, Ljava/io/FileDescriptor;-><init>()V
    :try_start_43
    const-class v1, Ljava/io/FileDescriptor;
    const-string v2, "descriptor"
    invoke-virtual {v1, v2}, Ljava/lang/Class;->getDeclaredField(Ljava/lang/String;)Ljava/lang/reflect/Field;
    move-result-object v1
    const/4 v2, 0x1
    invoke-virtual {v1, v2}, Ljava/lang/reflect/Field;->setAccessible(Z)V
    iget v2, p0, Lio/agora/rtc2/internal/CommonUtility$4;->val$socketFdInner:I
    invoke-virtual {v1, v0, v2}, Ljava/lang/reflect/Field;->setInt(Ljava/lang/Object;I)V
    invoke-virtual {p1, v0}, Landroid/net/Network;->bindSocket(Ljava/io/FileDescriptor;)V
    iget-object v0, p0, Lio/agora/rtc2/internal/CommonUtility$4;->val$comm:Lio/agora/rtc2/internal/CommonUtility;
    iget-object v1, p0, Lio/agora/rtc2/internal/CommonUtility$4;->val$addressInner:Ljava/lang/String;
    invoke-virtual {v0, v1}, Lio/agora/rtc2/internal/CommonUtility;->notifyAddressBound(Ljava/lang/String;)V
    new-instance v0, Ljava/lang/StringBuilder;
    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
    const-string v1, "bindSocket2Network success: network"
    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
    const-string p1, "+socketfd"
    invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    iget p1, p0, Lio/agora/rtc2/internal/CommonUtility$4;->val$socketFdInner:I
    invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object p1
    invoke-static {p1}, Lio/agora/rtc2/internal/Logging;->d(Ljava/lang/String;)V
    :try_end_7c
    .catch Ljava/lang/Exception; {:try_start_43 .. :try_end_7c} :catch_7d
    goto :goto_81
    :catch_7d
    move-exception p1
    invoke-virtual {p1}, Ljava/lang/Exception;->printStackTrace()V
    :cond_81
    :goto_81
    return-void
.end method