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